5 ms·
> The .await war was the final straw [...] Interesting. I witnessed a constructive collaboration by which the Rust community chose (mainly) the syntax for it's
by cies 7y ago
> The .await war was the final straw [...]
Interesting. I witnessed a constructive collaboration by which the Rust community chose (mainly) the syntax for it's async features. I thought of it as amazing, thoughtful, rather democratic and on point. Nothing war-like to me.
- GolDDranks 7y agoTo be honest, reading mainly blog posts, RFCs and summarisation comments, it did look like a thoughtful and organised process. However, there has been a constant problem of tiresome work and "intellectual and emotional labour" of reading thousands pieces of feedback, some of which are emotionally charged, and many of which are duplicates or re-statements of similar ideas, and many of which have misunderstanding or mis-valuations of other ideas. I've heard that collecting and editing this huge amount of unstructured feedback into comprehensive and balanced summaries has been a huge drain of mental energy for the participants.
- saghm 7y agoI wasn't involved at all in the discussion, but having dove deep into async over the past few months since async/await was stabilized, I definitely am happy with the result of that process. Writing code with postfix `.await` feels very natural to me and it fits it much better with the surrounding code I write than a prefix version would. I can sympathize that participating in that process might not have been fun, but I really hope that the results of future discussions make me as happy as this one has.
- lightgreen 7y ago> Writing code with postfix `.await` feels very natural to me and it fits it much better with the surrounding code I write than a prefix version would. That’s your subjective point of view, not everyone agrees with it. Part of the problem is that Rust team failed to find a solution good enough for the most people and failed to communicate this decision. In particular the switch to .await syntax happened just couple weeks before it was finally stabilized. And await is not the only controversial decision made by the Rust team. Even if 10% of people unhappy that’s too much, because the next controversial feature will cause 10% more of unhappy people and so on. I hope they will do better next time.
- sagichmal 7y ago> Even if 10% of people unhappy that’s too much You realize this is an impossible standard, right? Literally impossible.
- lightgreen 7y agoI might be wrong but for C++ for example every C++ fan seems to happy about every new release (at least happy with new features, not lack of desired new features). Same for Java, IIRC the only controversial decision they made was the introduction of modules. Python 3 was a mistake, but generally Python users are happy with Python changes. 10% is not impossible. Even if this decision is ”right”, communication could be better: more options to play with different syntaxes, more time to get used to new syntax before stabilizing are just two possible ways to deal with the angry mob.
- peteretep 7y agoHow often is C++ adding features of that size though?
- dunkelheit 7y ago> I might be wrong but for C++ for example every C++ fan seems to happy about every new release (at least happy with new features, not lack of desired new features). I believe you are mistaken. C++ community has a lot of diverse opinions about its features. As an old saying goes, it is possible to use only the good subset of C++ features, the problem is every shop has its own subset. Even about something as basic as exceptions there is no consensus. Similarly, not everybody is happy about the "modern C++" movement. I guess these people are just confident that thanks to serious commitment to backwards compatibility they will be able to continue writing code in their old grumpy ways so there is no need to loudly express their dissatisfaction. Rust community is much less fractured (in part because it is smaller and younger) and there is a sense that decisions made today will determine how everybody will write Rust code tomorrow. Combine that with efforts to encourage an inclusive discussion and you get a lot of disagreement visible in discussions, especially concerning aspects that are prone to bikeshedding.
- rob74 7y agoMaybe "await debate" would be more fitting then - and it rhymes too, which is always a plus...
- Matthias247 7y agoI tried to contribute to the discussion and actually didn't find it to be super productive. We had thousands of comments just around syntax - from people who had never been involved in any async/await design or usage before. It was super hard for everyone involved to just keep up with the comments. And while the syntax discussion saw a ton of comments, the more important underlying semantic aspects of async/await got a lot less attention - even though they also had and still have a few issues to resolve (e.g. around cancellation, thread safety, extensibility).
- littlestymaar 7y agoThat's not really what happened : the core team decided they'd use ".await" instead of a regular prefix await (with good rational) and any people where pretty uneasy about that to say the least: most people considered that ultra ugly and confusing for new rust users (and I'm still in that camps even though I'm glad the discussion is finally over). Here are the results of a survey ran on this syntax on about 400 Rust users from rust subreddit : https://i.redd.it/660zjw4rhsv21.png https://i.redd.it/660zjw4rhsv21.png You'd see the chosen syntax (field-like access) was one of the most disliked one…
- dbrgn 7y agoI used to dislike the "field-like access" syntax because I was used to "await" being a prefix in other languages, but using await many times in longer function call chains with multiple await calls has totally changed my mind. No need for nested parentheses. No need for splitting up the code just to make it more readable. Syntax is something very emotional and beauty is very subjective. Thanks to the Rust team, the discussion around await syntax was mostly focussed on rational arguments, not around perceived beauty. The outcome is great in my opinion.
- swfsql 7y agoI guess the syntax was already a given, so they just did it regardless of the criticism. I still think there were other, better, postfix options. I also guess that, since part of the implementation was sponsored not by mozilla itself, then also the syntax choice was not led by mozilla itself (nor the overall community). I could be wrong - and I only superficially followed the discussions - but this is the impression that is left on me after all that. edit: but I think that this Ok-wrapping feature is different from the await one, since now there are no more deadline-like pressuring into mozilla/lang team. So I guess that now, something that is generally disliked (if it is) won't actually get into the lang..
- steveklabnik 7y ago> I guess the syntax was already a given, so they just did it regardless of the criticism This is not true. Several people on the lang team (and many community folks) changed their positions several times over the course of the debate.