If it is correct, and mostly created by one person - how? Are they a genius? Is creating your own programming language from scratch something anyone can accomplish if they just go for it?
Or is it just something that shouldn't be trusted/used for commercial purposes because it's not as "legit" as a newer language like rust for example?
It's just a weird vibe - it seems like it should be so much more popular than it is.
[1] https://github.com/nim-lang/nimony/commits/master/
[2] https://en.wikipedia.org/wiki/Nim_(programming_language)
> If it is correct, and mostly created by one person - how? Are they a genius? Is creating your own programming language from scratch something anyone can accomplish if they just go for it?
Creating a compiler can be one by a single person. Maintaining it is harder, especially for commercial support contracts. That's where teams are needed, and Nim has that.
However a lot of the issues many languages is overcomplicated design. Nim is ardantly a pragmatic language. NJVL is an example of that.
> Or is it just something that shouldn't be trusted/used for commercial purposes because it's not as "legit" as a newer language like rust for example?
I say it can be trusted. It's survived ~20 years. Statistically it'll likely survive another 20.
I'd say it's not too different from Zig or Elixir on the compiler and language side. There's a number companies and open source projects using it.
Sure Rust is going to be bigger but also Rust is far more complicated as a language. Similarly for packages I found there's 10 crates of varying quality and incompatible. With Nim I can take something like Pixie for images and make an image finding library in a day that outperforms opencv without struggling with crates or dev compiler features.
Nim's used at Reddit, Status IM, and more. Especially with LLMS it's pretty easy to switch languages, to make support libraries, get devs productive, etc so there's much less risk these days IMO.
> It's just a weird vibe - it seems like it should be so much more popular than it is.
It should be more popular!
A few things hold back broader adoption IMHO. A big one is that it's a "European" language as Araq and team is European which sort of distances it from the SV and HN zeitgeist. There's a lot to "hype" factor. Nim has a more of a slow and steady adoption like early Python, IMHO.
Secondly it's just found it's niche by focusing on being a systems language with reference counted memory system with excellent metaprogramming. In the past things community issues arose, or lots of people disliked case insensitivity. Those issues have mostly settled though with case insensitivity being phased out.
LSP needs improvement. Nimony is designed to solve that.
It also doesn't rely on lexical scopes to do analysis for things like lifetimes, nil tracking, destructors, etc. Instead it uses the versioned variables AFICT to enable those features more directly. Should be much simpler for the compiler implementation for 99% of cases versus traditional SSA blocks.
Unfortunately I'm busy writing Nim code and not able to play with the new Nimony compiler framework. I'm excited about incremental compilation and borrow checking features though.
ebb_earl_co•15h ago
How does this differ? Is an IR the same idea as Python’s .pyc?
BoingBoomTschak•14h ago
What do you mean? CPython is a bytecode compiler and a virtual machine interpreting that bytecode. Or are you talking about the new experimental JIT?
almostgotcaught•12h ago