Comment

Comment by netbioserror

I use Nim at work. I've built a backend CLI program that processes signal data collected from instruments. That CLI program is used in many contexts, but is primarily called through a PHP API by many of our web services. The executable has no dependencies (compiled with musl-libc and statically-compiled libraries).

Modeling problems is almost as powerful as a Lisp: It prefers stack allocation, immutable data, and referentially transparent procedures, but all of that can be short-circuited when necessary. The type system is simple and clear. The syntax is Pythonic and easy to make readable and self-documenting. Magic is not required. The Datamancer data frame library is incredibly robust. The standard library is quite extensive, and the included JSON data structure functions well as a dynamic, heterogenous structure when needed. Turning Nim objects and data into JSON is so trivially easy that it's a no-brainer for my use case, and probably web-focused use cases as well. Nimja templating is incredibly good and great for building pages or documents, so long as you're preprocessing as much as possible (as with most templating libraries). C interop is also trivially easy, requiring no more than a function signature in most cases.

I can absolutely say that Nim has been a secret weapon for tackling the specific data processing problem I've been solving. Highly recommended, especially if you can invoke it from the CLI using other languages to solve things such as UI. I'm building an Electron app around it currently, and the NodeJS backend invokes my Nim program.

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton