I feel like Rust would be some complaint from the compiler saying that some apparently unrelated struct can't be Send/Sync for some inscrutable reason. Or something about pinning a future.
I would disagree. Especially since unlike npm every part of cargo was through through with all the experience and knowledge gained from npm, pip, nuget & co.
I have a LOT more problems with npm over cargo. Also it's 1 tool and not 100 different tools to do the same job (npm, pnpm, yarn, bun, deno, etc...)
Technically any language runtime can end in a segmentation fault.
For some languages, in principle this shouldn't be possible, but the runtimes can have bugs and/or you are calling libraries that do some native code at some point.
This implies that Javascript will get moving in the correct direction once it finishes installing dependencies, but it's just going to get fucked with incorrect behavior that doesn't even have the courtesy to throw an actual error.
incorrect behavior that doesn’t even have the courtesy to throw an actual error.
To be fair, this can be said of C. A C executable only really forces a crash out when you royally screw up beyond the bounds of your memory. Otherwise functions just return a negative value and calling code that never bothers to check just keep on going.
Golang is similar, slightly mitigated that if you are assigning any return value from a function, you must also explicitly receive an error and you know full well that you are being lazy if you don't handle it. Well unless you use a panic/recover scheme but golang community will skewer you alive for casually suggesting that and certainly third party libraries aren't going to do it that way.
"NPM install" isn't going to be the direct result of a race condition in JavaScript. And while I'm not familiar with Python, I'd guess that an "Indentation error" wouldn't be one either. A missing library or syntax error that's only discovered by executing a particular branch is still just a missing library or syntax error, not a race condition.
Also, while Node.js is popular, it isn't an integral part of JavaScript in the way that the other errors are integral to their respective languages.
none of these are race conditions, they're just runtime errors. python only parses code when it is about to run that block so you can absolutely get a crash from bad indentation.
in my experience, the js world's focus on developer ergonomics has absolutely yielded some insane situations where running an installed script has caused it to start downloading more dependencies. however, this has unfortunately started happening in python too lately.