It's interesting how differently two similar dynlangs, Python and Ruby, decided to offer meta-programming. Ruby decided to offer a very simple way of evaluating code at construction, but python has you define custom metaclasses. One sees it as a routine way of extending the language, and the other treats it as a 'black-art'.
Metaprogramming done wrong, no matter the mechanism, is very painful. So, I'm not sure which way is better.
Metaprogramming done wrong, no matter the mechanism, is very painful. So, I'm not sure which way is better.