Chad Fowler has been reading some of my articles and my book (very cool and much appreciated), and he has observed that code generation is just a natural extension of the compilation technologies we have been successfully using for years. Very true. Languages have always grown best when we require a new level of abstraction in order to effectively represent software engineering problems. I think that code generation is just another step in that evolutionary chain of tools to raise the abstraction level.
If I say it in multiple different ways it's only because my goal is to get people to use the technique first. Once they have taken that step, so that they no longer look at their own hand code as magic, and they understand that they themselves can build tools to increase their own efficiency. Then they might come to understand that in so doing they are raising the level of abstraction and creating a new language.
Anyway, thanks Chad. It's nice to see that people as smart as you are reading and enjoying the articles.