I have developed neat meta-programmingmeta-programming solutions with PrologProlog. Where the main application (in C++ say) translates an abstract definition of a problem into a Prolog application at runtime, which is then delegated to; oftento. Often writing equivalent functionality in C++ would take forever.
I think this scenario is an excellent case in favour of the code-writing-codecode-writing-code argument.