I found Nim being actually awesome, combining the type safety and metaprogramming features from Rust, asyncrhonous and concurrent execution from Golang, deep introspection from C (actually, you can transpile Nim to C instead of native compilation) and syntax ease from Python.
So, my question is - why it didn’t gain the audience and „hype” like other langguages did in the late-2010s language bubble
Nim compiles to C, C++ or JS – it doesn’t have native compilation.
Early on – bad name (used to be “Nimrod”), “all the features”(seriously, so many features) – which is a negative for learning, flexibility galore (again, hard to teach/learn), poor documentation and rough build/debug/obscure errors. Oh, and the stupid, profoundly stupid Wikipedia fight. That was the story of early Nimrod.
From the start – Nim made bold promises and wanted to be different in a lot of useful ways. Since then, it has grown up quick, it is starting to live up to the promises. The documentation and standard library has improved dramatically. The community around it has started to really take seriously writing examples and is very welcoming.
That said – that power – that flexibility isn’t free. It is training, it is maintenance, it is spooky-action-at-a-distance to the Nth degree. This type of “magic” is something that some developers revel in – live for, and others loathe.
Haven’t touch Nim in a bit, but I will try to write a little one up with modern Nim — templates are always fun, redefine != and such (!= is just a macro anyway).
I found Nim being actually awesome, combining the type safety and metaprogramming features from Rust, asyncrhonous and concurrent execution from Golang, deep introspection from C (actually, you can transpile Nim to C instead of native compilation) and syntax ease from Python.
So, my question is - why it didn’t gain the audience and „hype” like other langguages did in the late-2010s language bubble
Nim compiles to C, C++ or JS – it doesn’t have native compilation.
Early on – bad name (used to be “Nimrod”), “all the features”(seriously, so many features) – which is a negative for learning, flexibility galore (again, hard to teach/learn), poor documentation and rough build/debug/obscure errors. Oh, and the stupid, profoundly stupid Wikipedia fight. That was the story of early Nimrod.
From the start – Nim made bold promises and wanted to be different in a lot of useful ways. Since then, it has grown up quick, it is starting to live up to the promises. The documentation and standard library has improved dramatically. The community around it has started to really take seriously writing examples and is very welcoming.
That said – that power – that flexibility isn’t free. It is training, it is maintenance, it is spooky-action-at-a-distance to the Nth degree. This type of “magic” is something that some developers revel in – live for, and others loathe.
Can you provide an example of Nim’s ‘spooky action at a distance’ magic?
Haven’t touch Nim in a bit, but I will try to write a little one up with modern Nim — templates are always fun, redefine != and such (!= is just a macro anyway).