I placed my bet on the Jetbrains Metaprogramming System. The concept is not new, but this is the first time it has been implemented on such a huge scale with great IDE support. First you create a DSL, then write programs to that DSL and finally generate the code in the target language.
source share