Hacker News new | past | comments | ask | show | jobs | submit login

Good write-up. Optimizing for embedded, real-time systems is a nice way for them to cut out a little niche among similar languages.

Aside: I've tinkered with Nim a long time ago (when it was called Nimrod) and thought it was pleasant. I'd be interested to hear from anyone in the HN community that has used Nim in production. What did you use it for? How was the experience?




A well-known and nice app that is build with Nim is Nitter (https://github.com/zedeus/nitter), a free and open source alternative Twitter front-end focused on privacy and performance.


It runs part of my billing system and was nice to use, particularly with community support which was fast and effective given their online Nim tools.

Some of the debug / error messages were frustrating red herrings which IIRC I was told was an area needing improvement at least at the time.


As a frequent Nim user, I can unfortunately confirm that misleading error messages are still a problem.


I would gladly work at a company that used Nim as its primary language.


I found it very pleasant as well! It was pythonesque that compiled. Now pythons code makes me wants to pull my hair out. I don't know what I like anymore


Nim is a Wirthian language not a Python language, but Python always had some Wirthian touches so...


I've tried learning it a couple times, but the syntax seems so irregular and non-uniform. It's confusing and annoying.


Nim gives a bit more choice in many dimensions than many languages -- how to manage memory, whether to use the stdlib at all for things like hash tables, and yes, also syntactic choices like several ways to call a function. This can actually be convenient in constructing a DSL for something with minimal fuss. While `func arg1 arg2` might look weird in "real" "code", it might look great inside some DSL and you can just have it be a "regular Nim invocation" instead of something special to get that.

There are also compile-time superpowers like macros that just receive a parsed AST. That can be used to "re-parse" or "re-compile" external code as in https://github.com/c-blake/cligen. So, trade-offs like in all of life.

There is even a book called The Paradox Of Choice [1]. I think there is just a spectrum/distribution of human predisposition where some like to have things "standardized & packaged up for them" while others more like to invent their own rules..and enough variation within the population that people have to learn to agree to disagree more. (EDIT: and FWIW, I think this is context-modulated - the same person could be on one end of the spectrum about gardening and the other about software.)

I do feel like the syntax is far less chaotic than Perl.

[1] https://en.wikipedia.org/wiki/The_Paradox_of_Choice


I think this is because it takes more stylistic influence from Oberon than it does from Python.

https://en.wikipedia.org/wiki/Nim_(programming_language)#Inf...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: