title: What exactly is metaprogramming?
body: <p>I was reading an article on TheServerSide on <a href="http://www.theserverside.com/news/thread.tss?thread_id=47184#240893" rel="noreferrer">ployglot programming on the Java platform</a>. Some comments in the article refer to metaprogramming as the ability to generate code (perhaps on the fly). </p>
  
  <p>Is metaprogramming the ability to generate code on the fly or is it the ability to inject methods and attributes into existing objects at runtime (like what some dynamic languages like Python, Ruby, and Groovy allow).</p>