Wrapping a C++ header-only template library: https://github.com/status-im/nim-ttmath
Generating Cuda C++ Functor: https://github.com/mratsim/Arraymancer/blob/master/src/tenso...
Because language age doesn't make a difference. People have to actually use the language, and this is a practical concern.
If you were choosing to put a high school football player or an NFL player on your team right now it'd be an easy choice, wouldn't it?
do they? is it in the rules of building languages and ecosystems that every new language has to be production ready from day 1? it is also possible that you can use it for hobby projects and that that's sufficient merit to talk about it and have posts about it too.
My point is, this is an actual deficiency that you need to consider when evaluating Nim, that isn't just a function of the language being new. For example, Zig is another option which puts any C libraries at your fingertips, without requiring bindings. If Nim had better interop (not just relatively good, but zero effort) this would no longer be a concern and you wouldn't need all of your libraries to be in Nim.
...
>However, the ecosystems are not at all comparable.
......?
But... there's a loooooot of "high school level" applications out there in the world. And the way a language graduates up to the higher classes is getting tried out in the "lower criticality" systems, and getting experience.
I wouldn't try to build an S3 competitor in Nim right now, no matter how good it may look. But even a company building an S3 competitor in some other language could still have tons of other places Nim would be a fit.
Except they do, if the new untested language is qualitatively better than the old one. For example, a critical crypto algorithm in Firefox is written in F* and compiled to C: https://blog.mozilla.org/security/2017/09/13/verified-crypto... . The new implementation is formally verified free of certain classes of bugs (like buffer overflows), and significantly faster than the hand-written C implementation.
All the usual static analysis tools, debuggers and even formal methods can be used on the generated C code.
i see no problem with this but i think JS is only ready for high school level applications too.
Really?
https://github.com/VPashkov/awesome-nim
You can install Nim packages easily with nimble.
Also for people actually targeting production there is hufe dif. between say DB driver that is used in literally millions of projects and has a large number of active maintainers and DB driver written by 1 dude that has not commited any fixes in 12 month
https://github.com/kozross/awesome-c