title: What is a programming idiom?
body: <p>I see the phrase "programming idiom" thrown around as if it is commonly understood. Yet, in search results and stackoverflow I see everything...</p>
  
  <p>From micro:</p>
  
  <ul>
  <li>Incrementing a variable</li>
  <li>Representing an infinite loop</li>
  <li>Swapping variable values</li>
  </ul>
  
  <p>To medium:</p>
  
  <ul>
  <li><a href="http://aszt.inf.elte.hu/~gsd/halado_cpp/ch09s03.html" rel="noreferrer">PIMPL</a></li>
  <li><a href="http://www.hackcraft.net/raii/" rel="noreferrer">RAII</a></li>
  <li><a href="http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html" rel="noreferrer">Format, comments, style...</a></li>
  </ul>
  
  <p>To macro:</p>
  
  <ul>
  <li><a href="http://pschombe.wordpress.com/2006/05/06/the-next-big-programming-idiom/" rel="noreferrer">Programming paradigm or common library features as idiom</a></li>
  <li><a href="http://blogs.msdn.com/g/archive/2008/06/07/a-finding-from-an-architecture-review-of-a-product-with-components-that-originated-on-unix.aspx" rel="noreferrer">Process model as idiom</a></li>
  <li><a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.7793" rel="noreferrer">A collection of idioms equals a new paradigm</a></li>
  </ul>
  
  <p>Is there a single, common definition for "programming idiom"? Since "programming idiom" is used in many scopes:</p>
  
  <ul>
  <li>Micro: syntactic nuance or common syntax</li>
  <li>Medium: common style and patterns</li>
  <li>Macro: programming paradigms as idiom</li>
  </ul>
  
  <p>Is it valid to use the phrase in any of these scopes? The answers so far focus on syntactic idioms. Are the others valid as well?</p>