4 ms·
Pre-1.0. Rust removed the green-threads runtime prior to stabilization. I personally think this was one of the most important changes Rust made; without it, Ru
by JoshTriplett 8mo ago
Pre-1.0. Rust removed the green-threads runtime prior to stabilization.
I personally think this was one of the most important changes Rust made; without it, Rust would have been interesting but would not have been able to compete directly with C and C++ for systems programming.
- satvikpendem 8mo agoYep, it would've just been another OCaml with C style syntax.
- JoshTriplett 8mo agoOr another Go, with a mandatory runtime, which would have been a useful language but not something you'd add to a production OS kernel or firmware or similar.
- satvikpendem 8mo agoI wonder if we'd have eventually saw something like Nim, which has optional green thread concurrency and a garbage collector. Rust does not have these currently right? At least I haven't heard of them.
- JoshTriplett 8mo agoSome of Rust's async runtimes seem pretty similar to "optional green threads". There's no garbage collection; you can get something like a reference-counted GC by using Arc everywhere, but it's neither automatic nor universal. Would we have gotten to "optional"? Maybe! But it's hard to predict the counterfactual, especially when substantial success usually has components of both design and luck/right-place-right-time. Rust hit a sweet spot, and it's not clear how a different history of Rust would have turned out.
- Groxx 8mo agoa significantly more complex Go, without sufficiently-better perf or usage locations, yea. it'd likely have died rather quickly. the lack of a runtime means it can go a lot of places Go cannot, e.g. other languages can use rust's build artifacts easily and safely with roughly as much performance as is possible. Go is a dead end in that sense.
- irishcoffee 8mo ago> without it, Rust would have been interesting Thanks for articulating what I’ve failed to do for a decade.