title: Generic programming vs. Metaprogramming
body: <p>What exactly is the difference? It seems like the terms can be used somewhat interchangeably, but reading the wikipedia entry for Objective-c, I came across: </p>
  
  <blockquote>
    <p>In addition to C’s style of procedural
    programming, C++ directly supports
    certain forms of object-oriented
    programming, generic programming, and
    metaprogramming.</p>
  </blockquote>
  
  <p>in reference to C++. So apparently they're different?</p>