Finally I have managed to _translate_ a 2400 lines Python Code to a nearly 2700 lines Nim code. The hardest part was a 550 lines long Python generator which calls itself (recursively) in many places and is called itself by another generator. This was only possible with the brilliant **iterate** macro by Timothee Cour. Unfortunately this had a bug when called recursively. Only with the fantastic help (sometime within seconds) of very kind people on Gitter, I managed to apply a non-trivial fix to that macro -- see <https://github.com/timotheecour/Nim/issues/378>
I've learnt a lot about _macros_ and I'm still learning. My **personal** conclusion is as follows: * Nim is a very powerful language - but much more difficult than it looked at first glance. For me, Nim is a blend of the meanstream languages _C++_ and _Python_. It is much easier and safer to use than _C++_. In many respects it is as comfortable as _Python_ \- which is a surprise for a strictly typed language. But it is much more performant than _Python_. * Nim generates fast native code - and is nearly self-contained, e.g. it needs only very few system libraries * It can profit from (true) multi-threading * Its _Generics_ are much easier and consistent than _C++_. Its _macro_ language is nearly as powerfull as that of _Lisp_ ... but it still has a steep learning curve ( with all its pragmas ). I like the brilliant `quote do:` feature - I'm only missing some quoting mechanism to replace the boilerplate let X_id = ident"X" .... quote do: ..... `X_id` Run I am convinced Nim can replace _Java_ sometime in the future if the community grows further, some big players jump on the bandwagon such that it gets on par with Javas wealth of libraries. I predict a bright future in the growing market of embedded systems and I can image a mobile phone with a _Linux_ kernel but infrastructure based on _Nim_. Many thanks to the creator and the contributors to the _Nim_ language!