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!

Reply via email to