On Saturday, 9 January 2016 at 11:02:46 UTC, Russel Winder wrote:
There is a difference always between what you can do and what you should do. The language should not be fascist in stopping all things not deemed the one true way by the language designers. To do so stops serendipitous evolution.
Indeed, although I think languages should have a library-mode and an application-mode.
That way you can constrain certain types of meta-programming to libraries and keep application implementation syntax simple and readable.
This is what happens in well structured programs anyway.