Nice! Nim has been great for us - fast to code in and even faster once compiled! We're using it for the backend and microservices at https://cxplanner.com and loving it.
HN user
ThomasTJdev
Founder of https://CxPlanner.com - Quality management software
https://TTJ.dk
Nim-lang fits 1, 2 and 3! And in a couple of years the ecosystem is up to level ;)
One of the reasons for choosing Nim was the ease of getting a production ready web backend. For the core part of managing the backend we are using existing Nim libraries [1], and they are easy to expand and work with. I cannot give you a comparison with Go since I haven't managed that large Go projects - but for Nim we are all into the async and threading. I think the channels within the threading is hardest part in Nim, but work is being done it.
[1] https://nimble.directory [1a] https://github.com/dom96/jester/ [1b] https://github.com/planety/Prologue [1c] https://github.com/guzba/mummy
For startups, you can count us in[1]. Our backend, across all services, is using Nim. [1] https://cxplanner.com
Have a look at Jackson from https://boxyhq.com . Spin up one container and a couple of simple endpoints - voila, up and running. And a really cool team too!
A full project management platform for construction projects. Webserver, websocket, microservices, etc.: https://cxplanner.com
Ditto! Nim is just easy and incredibly fast (to develop and the code!). Our code base is Nim based - even normal bash script have been replaced!
We use it at www.cxplanner.com for a mix of micro/mono-services. Statically typed and good compile time combined with really fast code makes Nim perfect for us.
For me it was. Python was everything for me - but too slow. It was a pretty quick to convert software to Nim, and I have never looked back. You don't get the whole ecosystem from python, but you get fast code and easy syntax. We even often use Nim instead of small shell scripting.
I don’t know about other web-guides. Nim’s official website is made with Nim and available at Github[0], but it has become at bit more complicated after they switched to Karax[1]. Jester’s tests gives a good view on the routing procedures[2].
The official tutorials[3] are pretty good, when you get the grab on how to ”decode” them. For web development with websockets and microservices I would suggest you to have a look at the Redis package[4], and @treeform’s Websocket[5] and JsonParsing-packet[6].
[0] https://github.com/nim-lang/nimforum/ [1] https://github.com/karaxnim/karax [2] https://github.com/dom96/jester/blob/master/tests/alltest.ni... [3] https://nim-lang.org/docs/tut1.html [4] https://github.com/nim-lang/redis [5] https://github.com/treeform/ws [6] https://github.com/treeform/jsony
I'm glad you liked it! We have been using Nim from 0.18.x to now (1.6.x) with a minimal work with breaking changes - so no warning signals from here.
My advice would be to use the current stable version since 2.0.0 is just around the corner :) ! We are quite happy with the performance and system load using jester[1] with httpbeast for routing, but there are a couple of alternatives in the package repository[2].
[0] https://nim-lang.org/install_unix.html [1] https://github.com/dom96/jester/ [2] https://nimble.directory/
[Author here] This post was quite a surprise to see here! Guess who got busy checking out his old repository ;) . This is a blog post from 2019 during my Nim journey, which has now resulted in our entire SaaS[0] running Nim. Nim[1] has evolved a lot since the post - current stable 1.6.4, blog post was for 0.19.2.