Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Rust's problem is not correctness. The borrow checker is the good part of the language. It's feeping creaturism. The language started out as imperative, and then became semi-functional. It started out as thread-oriented, and now is acquiring "green threads"/coroutines/cooperative multitasking. The generics system and library started where C++ and Boost left off. The "trait" system was more "objects bad, must do something else" than an improved idea.

The Go guys knew when to stop. The Rust guys don't.



Er, no, Rust started out pretty solidly as a functional language.

It used to look like an ML variant, with purity and stuff. And it had a GC. It's lost most of that now.

It also used to have green threads up till 1.0 (they were removed pre-1.0), we're now adding them back. And they're being added back as a library, not as part of the language.

It moved away from both of these.


This is a misnomer. This hasn't been an issue since 1.0. Before then, the language designers specifically warned people that they were taking the time to learn what works together.

Lightweight threading isn't being re-added to the language. It might emerge from some of the asynchronous I/O work, but that's part of a third party library.


It's not getting green threads per se, it's getting co-routines. Even then, the co-routines will be mostly a library feature rather than a language feature. As for the distinction between coroutines and green threads - coroutines explicitly yield whilst green threads can be pre-empted. Implementing coroutines without a runtime is hard, implementing green threads without a runtime is harder.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: