Recently published Zen of Nim has a nice section on meta programming features of Nim with various examples: <https://nim-lang.org/blog/2021/11/15/zen-of-nim.html>
Regarding the why it says: > “We need to be able to do locking, logging, lazy evaluation, a typesafe > Writeln/Printf, a declarative UI description language, async and parallel > programming! So instead of building these features into the language, let’s > have a macro system.” (and I have to say something more or else the formatting is broken; I imagine that a new release of the forum using 1.6 would solve also this thanks to the great work @amr has been doing to fix related bugs)
