|
|
|
|
|
by 127
1458 days ago
|
|
My experience after a couple of weeks: Pros:
Extremely good C and C++ interop
Significant indentation
Very good performance
Quick compilation
Terse, but readable
Easy cross platform
Powerful macros and close to trivial DSL construction
Very little code to do a lot of stuff
Incoming future features look very promising Cons:
Hard to predict and control program performance, LTO does a lot of heavy lifting
Immature ecosystem, because only few users. Many libraries have bugs, missing features or just a very clunky API. Or maybe they are deprecated or abandoned all together.
Many different ways to do the same thing
everyThingIsCamelCase, ambiguous variable names (subjective)
Documentation and tutorials is mostly reading through the code and googling forum posts outside the core language
You compile either for C or C++, some libraries simply won't work without C++ compilation |
|
For my contribution to the ecosystem see Nexus mentioned in another comment. If you see bugs please report them. Sometimes libraries are deprecated/abandoned because of new ideas, this happens in every ecosystem.
I personally use camelCase/PascalCase, but Nim is style insensitive, meaning you can call procs written in camelCase using snake case. However this is controversial and under discussion, my personal opinion is to make style sensitivity optional, with insensitivity the default.
Ambiguous variable names I hate, you won't see that in Nexus, if anyone does they should file an issue. That's really developer dependent.
For my part Nexus has some docs and a basic tutorial. But if people want more they need to ask for it. Why write docs nobody wants or will read? Anyway, this book (Mastering Nim) is one more definite step forward for learning Nim.
I think compiling to C is what mostly happens, C++ is probably an outlier. Even then, a C++ compiler isn't difficult to install if needed.