I saw a demonstration of a code gen tool today. It was quite good. But I think that code gen is both a good and bad thing.
One reason that I do like it is that it can save you an amazing amount of time. And deliver other benefits you may not have thought of, like auto generating doco and unit tests.
One reason that I don't like it is that you can spend an awlful amount of time getting it to generate the code that you want, and it puts in another layer into the design/feedback cycle.
But that is the point of this post - the code gen tool is potentially fantastic for development and it's also potentially bad for getting your application completed.
So the question is: If you have a really flexible tool, something like code gen, or even C#, is it that the tool is good, or is it how you use it?
I believe that you have to know how to leverage the tool to get the most out of it. This goes for code gen and development. Techniques will make you a better programmer. Knowing where to put a function can make an amazing difference to your application...