3 ms·
> From the perspective of language design, this manifests a failure to design an orthogonal language. I wanted to convey this observation in my post. I wouldn'
by drogus 4y ago
> From the perspective of language design, this manifests a failure to design an orthogonal language. I wanted to convey this observation in my post.
I wouldn't say it's a "failure". It's an incremental design. This stuff is known to language maintainers and it's being worked on as far as I know. I understand your point of view, but I felt like it would be good to point out that it should be viewed only in a very specific context.
> Additionally, how we write libraries in a given language reveals its true potential
Yes and no. Rust has many flaws in this context and yet I think it's still one of the best languages out there. Can it be better? Sure, and I hope it will be. Is it good enough for most of its users? Yeah, I think so.
> One gentleman also outlined a more comprehensive list of the `async` failures in Rust [1]. This pretty much sums up all the bad things you have to deal with in generic `async` code.
I really hate this kind of comments. Saying that async was "rushed" is an insult to all of the people that put so much time and effort into releasing the future. It wasn't rushed, it took years to release it. All of these issues are well known and many people are working on improving the situation and comments like this are not only not constructive - they're actively harmful to the development of the language.
To be clear: I don't mind listing things you find frustrating, it's fine. I just don't like doing it in this kind of unconstructive way that basically just burns out language maintainers.
I really hope the issues listed there can be resolved in time, but if I had a choice between having async in its current form vs waiting for an ideal release in 10 years, I would vote for releasing it even sooner. Again, it's not ideal, it has lots of problems, but I wrote very successful async web services and there are countless companies that did so too, so I'd say it's good enough.
- dmitriid 4y ago> I wouldn't say it's a "failure". It's an incremental design. I'd say all this is why you don't usually try and bolt on async (and anything doing multithreading, async, parallel, or distribution) after the fact. It has to be in the language from the very beginning.
- ssokolow 4y agoThe bits of Rust that feel "bolted on" were known to Rust's developers prior to the v1.0 freeze. You can go back through the mailing lists and find talk about things like higher-kinded types and guaranteed tail call optimization and all sorts of other things. ...the problem is that doing this sort of stuff in an eagerly evaluated native-compiled imperative language with no GC and an emphasis on C interop is an area of active research. Rust is literally pushing the envelope with things like its take on async/await.
- crabbygrabby 4y agoYea the original post reads like "you cannot get rusts' async to do anything useful" and then there were hundreds of trolls jumping in "the language is unreadable" train. "oh yeah, no one can actually use rust". Uh okay... That's why I've been using it in production for two years ok... Async is hard, that said it really does work just fine.
- deleted 4y ago[deleted]