title: What's the use of metaprogramming?
body: <p>I've read:</p>
  
  <ul>
  <li><a href="http://en.wikipedia.org/wiki/Metaprogramming" rel="noreferrer">Wikipedia</a></li>
  <li><a href="http://www.qcodo.com/wiki/article/background/metaprogramming" rel="noreferrer">Code Generation vs. Metaprogramming</a></li>
  <li><a href="http://www.ibm.com/developerworks/linux/library/l-metaprog3/?ca=dgr-wikiaMetaprogP3" rel="noreferrer">The art of Metaprogramming</a></li>
  <li><a href="http://c2.com/cgi/wiki?MetaProgramming" rel="noreferrer">Metaprogramming at c2.com</a></li>
  </ul>
  
  <p>and I confess some confusion at the purpose behind metaprogramming/code generation.</p>
  
  <p>Does anyone have a concrete example of where they use metaprogramming/code generation? Even better would be an accompanying explanation of why it was better than an alternative.</p>
  
  <p><strong>edit</strong>:
  Would <a href="http://www.fogcreek.com/FogBugz/blog/post/The-Origin-of-Wasabi.aspx" rel="noreferrer">Thistle</a> be considered metaprogramming?</p>