Programming idiom
In programming and in code, an idiom describes a commonly-used way to code a relatively small construct in a particular programming context (i.e. programming language). Many such constructs are found in multiple programming contexts yet tend to vary by context.[1] Like a linguistic idiom, a programming idiom is a commonly-used way to express a concept in a language that exists outside the definition of the language yet is constrained by it.
Similar to a software design pattern, an idiom is a template to be followed; not code that can be copy-and-pasted into a codebase. In this sense, an idiom is a pattern, yet software design pattern is a classification reserved for significantly larger-scale functionality; usually involving the interaction of multiple objects.
Using the idioms for a programming context (instead of using idiosyncratic constructs) helps a team work together since they lower the cognitive load of the resulting code. Such idiomatic use is common in crowdsourced repositories to help developers overcome programming barriers.[2]
Examples
[edit]Writing to standard output
[edit]Writing to standard output is generally something covered early when learning a language; often presented to the learner as a task to write a hello world program.[3]
A common idiom in C++ like:
std::println("Hello World");
For Java:
System.out.println("Hello World");
For Rust:
println!("Hello World");
Using dynamic memory
[edit]In C, use the C dynamic memory allocation functions such as malloc() and free().
In C++, use the new and delete operators. The C dynamic memory allocation functions are usable in C++, but would generally be considered idiosyncratic.
See also
[edit]References
[edit]- ^ Allamanis, Miltiadis; Sutton, Charles (2014). "Mining idioms from source code". Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. pp. 472–483. arXiv:1404.0417. doi:10.1145/2635868.2635901. ISBN 9781450330565. S2CID 2923536.
- ^ Samudio, David I.; Latoza, Thomas D. (2022). "Barriers in Front-End Web Development" (PDF). 2022 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). pp. 1–11. doi:10.1109/VL/HCC53370.2022.9833127. ISBN 978-1-6654-4214-5. S2CID 251657931.
- ^ "Print Hello World". www.programming-idioms.org.
External links
[edit]- programming-idioms.org shows short idioms implementations in most mainstream languages.
- C++ programming idioms from Wikibooks.