Hacker News new | past | comments | ask | show | jobs | submit login

> But the teams working on language design need to SLOW DOWN and focus on ergonomics and composability.

Except his concerns have already been explored.

> Rust experimented with all of these concepts at some point in its history, it wasn’t out of ignorance that they were excluded.

https://without.boats/blog/the-problem-of-effects/

I think there are people still broadly exploring how to make it easier to write code that is generic over sync+async so that, for example, the standard library only needs one implementation of closures that can be either async or sync and work correctly. I can’t recall if they’re focusing on just async effects or also making it generic to Result. I can’t find the docs page describing this effort for some reason but I swear I read something about it recently. The only other languages that have it are

* Go via Goroutines: doesn’t fit Rust’s execution model of not having GC / controlling threading / no-std environments

* Zig: not explicit enough which gives up optimality for the sake of user convenience.

The Rust team is moving slowly and carefully here to make sure the solution they find balances ergonomics, complexity, and speed that people would expect of a “Rusty” solution.

The author is basically complaining “drop all other work and focus on MY inconvenience” which is short sighted. Different people have different interests and capabilities. It’s likely not helpful to throw more people at the problem given that it’s well known, studied, and people are indeed trying to tackle it.

Edit: found it by way of remembering that I came to it via the effing-mad crate which kind of gives you the composability albeit only working on nightly. Rust is calling this keyword generics https://blog.rust-lang.org/inside-rust/2022/07/27/keyword-ge.... If they pull it off, this will let you write generics over multiple effect systems transparently (failable, const, async, etc) for composability. I definitely want to see them try at the broader vision and deliver a high quality thing like they did with GATs but recognize this is a huge l language feature that will take time to get all the design and the fiddly implementation bits correct. Hopefully there will be short term features that can be delivered along the way to the full thing.




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

Search: