Template metaprogramming facilities have a reputation for being a very powerful tool if used judiciously. If overused, they can lead to over-complexity though. And a template system that is as easy to use as D's might encourage overuse.
Presumably you're only asking about statically typed languages, right? Otherwise Julia, and every Lisp come to mind. Especially compared to Lisp all other languages are inferior when it comes to meta programming.
Comments
Does Nim really have no competition in the meta programming space? I assumed Haskell would do well there?
Also zig, meta programming is one of its key features from what I understand.
D too. D templates are dangerously easy to use.
Why dangerous?
Template metaprogramming facilities have a reputation for being a very powerful tool if used judiciously. If overused, they can lead to over-complexity though. And a template system that is as easy to use as D's might encourage overuse.
Presumably you're only asking about statically typed languages, right? Otherwise Julia, and every Lisp come to mind. Especially compared to Lisp all other languages are inferior when it comes to meta programming.
ruby is notorious/famous for monkeypatching everything and the simplicity of creating DSLs
swift and kotlin are slowly getting there.