Java for example has some very interesting ways to meta program it, for example you can relatively easily dynamically select a number of classes based on different features and say for example: "apply all these to the input and count each output as a vote on an input."
But except for when listening to or talking to long time users I never hear about it. Two reasons off the top of my head (but I guess there are many more):
- many educators teach Java in an extremely uninspiring way.
- the long and sad history of old enterprise Java (and later, Spring, although Spring was a force for good for a while)
Edited to mention "attributes" as well as good editor support.