INim
badger
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
INim
-
Nim
- `nim secret`[0]: code is interpreted with Nim's vm, it is limited to compile-time (e.g. no C/C++).
- `nlvm r`[1]: nlvm backend supports JIT compilation and repl-like interface was added in latest release.
- `inim`[2]: supports all nim code, but it's not really a true repl. It adds code to a file and recompiles it (you can see the source file with `ctrl+x`). I'd recommend to use it with clang compiler, because it's a bit faster than gcc in my experience. It's the best option right now. And I use it almost daily.
First two options have rudimentary input system. But you can get command history and left-right navigation by wrapping them with rlwrap (should be preinstalled on most *nixes): `rlwrap nim secret`, `rlwrap nlvm r`.
There are plans to support incremental compilation for the next Nim release (it is currently broken). That would improve inim and other repls experience significantly.
[0]: https://nim-lang.org/docs/manual.html#restrictions-on-compil...
[1]: https://forum.nim-lang.org/t/10697
[2]: https://github.com/inim-repl/INim
- Could Nim be a complete replacement for Python?
-
Writing a presentation to introduce rustlang to my dev team, and I've got to the "downsides" part.
Go must be terrible to google too! Nim's easy to google though, it's how I got to rust really. I'm actually the maintainer of inim, the nim repl: https://github.com/inim-repl/INim
- Nim Version 1.6 Released
badger
- How to get clean simple C output?
-
The Toit language is now open source
Nothing about the entire ecosystem I was talking about. But my initial work on the keyboard firmware can be found here: https://github.com/PMunch/badger/tree/final. There are many different projects in Nim running on microcontrollers though, but not something on a common ecosystem.
HHL?
-
Nim Version 1.6 Released
Well no language is perfect, but Nim can be used in almost every domain because of it's compilation targets(C, C++, JS) and it's fast compile times(who needs interpretation when compile times are that fast!):
* Shell scripting, I still assume most people will just use Bash tho: https://github.com/Vindaar/shell
* Frontend: https://github.com/karaxnim/karax or you could bind to an existing JS library.
* Backend: For something Flask-like: https://github.com/dom96/jester or something with more defaults https://github.com/planety/prologue
* Scientific computing: the wonderful SciNim https://github.com/SciNim
* Blockchain: Status has some of the biggest Nim codebases currently in production https://github.com/status-im?q=&type=&language=nim&sort=
* Gamedev: Also used in production: https://github.com/pragmagic/godot-nim and due to easy C and C++ interop, you get access to a lot of gamedev libraries!
* Embedded: this is a domain I know very little about but for example https://github.com/elcritch/nesper or https://github.com/PMunch/badger for fun Nim+embedded stuff!
Most of the disadvantages come from tooling and lack of $$$ support.
-
Looking into Zig
I think the fact that Nim compiles to C is neat in that you can use it on any platform that has a C compiler.
Here is a recent project that uses nim for AVR platforms, for example: https://github.com/PMunch/badger
What are some alternatives?
nlvm - LLVM-based compiler for the Nim language
jester - A sinatra-like web framework for Nim.
vscode-nim
skybison - Instagram's experimental performance oriented greenfield implementation of Python.
nim-chronos - Chronos - An efficient library for asynchronous programming
ulisp - A version of the Lisp programming language for ATmega-based Arduino boards.
packages - List of packages for Nimble
zig-bootstrap - take off every zig
norm - A Nim ORM for SQLite and Postgres
toit-color-tft
nimview - A Nim/Webview based helper to create Desktop/Server applications with Nim/C/C++ and HTML/CSS
toit-lsm303dlhc - Driver for the LSM303DLHC