Thanks for sharing your thoughts, @manuel.
If you wouldn’t mind considering some feedback on your own approach in the matter that has led to this discussion in the first place, here are just a few points that came to mind right away.
Starting a project in Rust, and explicitly confining yourself to the std alone, simply because “installing something from the internet” giving you a bad “vibe check”; are two different matters.
Researching/contrasting/comparing the pros/cons of a higher-level, interpreted runtime environment (Node), with the dis/advantages of a compiled language (C/C++/Rust) would have most likely giving you a slightly better overview of the “reality” you are now disappointed by.
As long as we stay firmly planted in the realm of “reality” still: it is worth recognizing that there are no universal “basic” building blocks out there. Only blocks any one individual might think of as “basic”, due to the amount of exposure they’ve personally had with a particular side of things.
Your own familiarity with js/npm/node: the last of which is powered by V8, itself conceived primarily for the browser-centric workloads; does not comprise the most universal experience out there, either. There is a reason a “JSON Object Notation” is named the way it does. There is a reason why any JS runtime environment would be outright foolish not to provide any decent support for it.
There is no obvious reason why a language that is meant to power both microcontrollers and servers under the highest of loads out there should adopt the same of reference as that of the team behind Node and its standard library, on the other hand. Different strokes for different folks.
Yet another thing about this “reality” we can’t seem to get enough of. It doesn’t run off adjectives. “Well sorted” is a matter of personal opinion. Same goes for whether any given “onboarding” process happens to be (or feel, if we’re perfectly honest with our wording) “easy” or not.
Particularly so, when any matter of engineering is concerned. Software engineering, as well. If “performance” is your actual goal, figure out which other side of the equation has to give way to it. If merely getting familiar with the ways and quirks of an entirely different language feels like an insurmountable exercise, however - including the need to cargo add a few dependencies - stick to JS/TS. Clearly, it’s what you know and like the most. Why even bother looking elsewhere?
This feels like the main crux of the issue. If the Node alone “feels” close enough to a system level, you don’t need anything with even remotely as steep of a learning curve is Rust. Around these parts, “system level” means being able to throw a bunch of bytes into an array, copy it into an executable region of memory, then call the pointer to that memory as if it was a fn(A) → B.
Vastly different strokes, for vastly different folks.
Try giving it a shot if you ever feel like stepping down a few abstraction layers into the nitty gritty parts that your hardware and OS deals with. As long as your goal remains “give me Node/JS but more performance” you’re going to have an absolutely miserable time with this particular lang.
For reference and proper expectation management: