Our great sponsors
- Onboard AI - Learn any GitHub repo in 59 seconds
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- SaaSHub - Software Alternatives and Reviews
-
Nim
Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
I don’t have any convincing links, but my sell would be that a yokel like me was able to learn and build things with Nim really quickly. It was something like 4 hours to start getting familiar and seeing results. I was able to make a wordle clone in a few days of very limited spare time.
The reference I used the most was this:
https://github.com/nim-lang/Nim/wiki/Nim-for-TypeScript-Prog...
-
Less of a global sales pitch for Nim (I'm a shoo-in from Pascal), but I found this today and thought it was neat:
"Enu lets you build and explore worlds using a familiar block-building interface and a Logo inspired API."
-
Onboard AI
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
-
The Rust Cookbook [0] was meant to be one way of maintaining a curated list of crates though I don't know how much attention it has received since the 2018 edition documentation blitz.
As for a central batteries-included crate, its been tried a couple of times (e.g. stdx, ergo). Some things that I think would help drive it forward
- RFC 3243 [1] to allow for a central "front" for these crates without having to actually compile what you don't need or feature flags
- A compelling reason for people to adopt it. For a lot of existing projects, there isn't much motivation. I see the biggest benefit mostly being for prototyping and new users, so they need to cater to these users. Don't just re-export existing crates but lay things out in a natural, discoverable way. Also consider making things easier by keeping the Rust language knowledge to a minimum for end-users (even avoiding lifetimes where possible), don't overwhelm users with choices that won't matter in these contexts, etc. If the user needs more performance or flexibility, they can scale up to the crates being wrapped
I'm interested in working in this space but need to wrap up some other projects first. If anyone wants to work on this and is looking for a mentor, feel free to reach out to me.
[0] https://rust-lang-nursery.github.io/rust-cookbook/intro.html
-
Just under their table of contents, they say that "This list is fairly outdated." and point you to https://github.com/xflywind/awesome-nim - and that repo seems to have recent updates.
-
I am working on OpenStreetMap renderer in Nim - see https://github.com/severak/lunarender3/ (but work somewhat stalled)
I needed some language which is:
- compiled to binaries
- and really fast
- has needed libraries (HTTP server, protocol buffers, sqlite and image generation)
- it's easy to set up
It was nice experience and Nim simply worked for my needs. People on Nim forum were nice and helped me when I ran into problems. It has nice and usable built-in library and I was really impressed by graphic library pixie - https://github.com/treeform/pixie
I would use Nim again when I when I will see this application is suited for it (e.g. some command line apps).
-
I am working on OpenStreetMap renderer in Nim - see https://github.com/severak/lunarender3/ (but work somewhat stalled)
I needed some language which is:
- compiled to binaries
- and really fast
- has needed libraries (HTTP server, protocol buffers, sqlite and image generation)
- it's easy to set up
It was nice experience and Nim simply worked for my needs. People on Nim forum were nice and helped me when I ran into problems. It has nice and usable built-in library and I was really impressed by graphic library pixie - https://github.com/treeform/pixie
I would use Nim again when I when I will see this application is suited for it (e.g. some command line apps).