The terminology doesn’t change the fact that I’ll often prefer chains of map_err, with_context, map, and_then, ok_or_else and such over nested blocks.
Either way, the block vs. method distinction exists in both solutions, so I’m not sure it matters in the context of this proposal.
I’m not sure:
- Experimenters on nightly are a different group than the people experimenting with a stable crate they get to keep.
- You can iterate a lot more quickly on crates.io
More bluntly: Experimentation in core gave us std::error::Error, experimentation on crates.io gave us failure. Imagine if errors had been fixed syntax.
I think that would be a bad end result; There’s certain value to not having a proliferation of constructs that all users are expected to learn; Having try { … } in the language makes sure that we “speak the same language”.
But not without experience what those constructs should be.
We can still end up with try blocks, we just don’t need to hurry for now.
Edit: I would also argue that blocks, labels and breaks are a language we already speak. And we have the chance to figure out the new words with the ones we already have, which is macros on top of extensions of existing syntax.