Metaprogramming is not magic  

I have always wondered why I like programming languages like Lisp etc. Sort of found an answer here:

“Metaprogramming is not magic. It is simply another tool in the prepared programmer’s toolbox. It’s awfully nice when that tool is also part of the programming language we use. Otherwise, we are limited in what we can say conveniently in our programs by the somewhat arbitrary lines drawn between real and meta.”