Re:Why I love Go
by steveklabnik on Wednesday December 06, 2017 @09:15AM
(#15861145)
At the time, those docs were the error handling documentation, so people did know they existed. They still weren't used anyway.
Re:Why I love Go
by alien_at_work on Wednesday December 06, 2017 @10:20AM
(#15861670)
I think the point is that sometimes showing documentation that something exists isn't enough for everyone to "get it". Sometimes you need some kind of technology evangelist to show something really cool they did with a feature for the creative process to begin on a larger scale.
Out of curiousity, if this was just a macro and no one was using it, what would have been the harm in just leaving them in? Is this a part of the language that changes so much it made maintainance a pain?
Re:Why I love Go
by steveklabnik on Wednesday December 06, 2017 @10:49AM
(#15861973)
Macros in Rust are global, insta-stable, and have no namespacing. This means any macro we put in std means you cannot define a macro in any Rust program with that same name. This is one of the reasons we've been working on a new macro system, to fix these kinds of issues.
"Just leave it in" isn't a good justification for a feature. We'd then require that every implementation of Rust ever, forever, implements this too. Being in std is a high bar.
Beyond that, there are a host of other reasons: https://github.com/rust-lang/rust/commit/454882dcb7fdb03867d...
Perl6 & Smalltalk also have them (conditions&restarts).
And i've seen modules to add condition systems to perl5, Ruby & Clojure. But these are kinda of hacks so the more languages that have it baked-in the better!
I develop in Common Lisp and conditions&restarts are so much superior to the other error handling paradigms i've seen, that it's not fun being left without them.