Here's my observation: People buy products with features, not products that let you build features. Programmers are no different. Most of them will choose a language that does x over a language that can easily be extended to do x, even if the library that provides x has already been written. The fact that their favorite language doesn't do y and z doesn't matter because they don't know about y and z, and the fact that their favorite language prevents them from inventing alpha and beta doesn't matter because they think in terms of using language features, not extending the language. They want something they can use without thinking very much about it. They don't want to change it.
Of course it is hard to do programming without doing any metaprogramming at all, so new languages, like C#, have some basic metaprogramming features. But you have to market them as features of an otherwise fixed programming language or you'll scare people off. It's all about minimizing the number of things your customer has to think about. It's even worse if management is driving the choice/design of the language.
Of course it is hard to do programming without doing any metaprogramming at all, so new languages, like C#, have some basic metaprogramming features. But you have to market them as features of an otherwise fixed programming language or you'll scare people off. It's all about minimizing the number of things your customer has to think about. It's even worse if management is driving the choice/design of the language.