Hi,

Nim is a great tool.

but:

1) When you work on very platform dependent code, you have to manually add a 
bunch of constants and so on. Maybe the situation could be improved by using 
commands of the like "gcc -v -x c -E /dev/null" (or similar with other major 
compilers) to parse the default paths (in dectect.nim) and don't bother the 
user with so much chore. Wasted time because any official update or deployment 
cut yourself from the mainstream a bit further.

2) Too picky with variables types. I ended up casting so much in my code (or 
pending my values with ".intx" it is not even funny anymore. You type a lot.

3) Working with raw memory: easy 99% of the time. The edge case: when you have 
to play with raw memory. I encoutered a situation where I could not modify the 
raw memory of my pointer. I rewrote my whole app in C and it worked just fine 
(easy part, almost copy and paste). I think I've been trapped by automatic 
dereferences.

4) Compiled program. For the exact same program (line by line translation), nim 
is asking for 110k bytes (-d:release). Directly written in C: 14k (-O3).

For me, here it is. I am not ready for Nim, the "price" to pay is too high 
right now; but it will become a superb language once you sort those issues out.

Cheers!

Reply via email to