Hacker News new | ask | show | jobs
by treeform 1308 days ago
Nothing is without the cons. I would say:

* Libraries: there is no NPM ecosystem to get anything you need.

* Stack-overflow: If you looking for a aswers there might not be anyone who encounters it before. You might have to dig really deep to find some thing.

* Some times you might run into a compiler bug usually related with performance of the generated code. Like it generates correct code bug it's slow for no reason and minor changes to the code make it fast again.

* Relying on OpenSSL especially v3 especially on windows is a big problem, but thats more on openSSL i think. I actually wrote a library around this that uses platforms HTTP/SSL instead: https://github.com/treeform/puppy

* Not having HTTP gzip support in standard library. You can always work around with zippy though: https://github.com/guzba/zippy

* async stack traces are really hard to read.

* not enough docs around the different ways to do threading. There is no one solution some times you want a quick thing, some times you are doing CPU tasks other times you are doing network tasks (where async is better). But many big languages struggle here, there is no one fits all threading solution.

It's definitely not style case insensitivity which everyone loves to bike-shed about.

3 comments

For the ecosystem, https://nimble.directory/ is listing quite a few packages. It's still nowhere near the size of the JavaScript ecosystem, but it's a good start.
Unlike JavaScript libraries, Nim libraries seem to be a lot more sane and self contained. No left-pad nonsense or downloading 20 dependences.
> there is no NPM ecosystem

That's a pro, not a con!

Note the async stack traces have gotten better recently! They mostly report like other stack traces now. I actually forgot I was using async for a bit. Theres still some bugs I think.