Hi G.,
It takes guts to make a proposal in the Go community. Kudos for doing so.
However, the issue with this proposal for me is the issue I have with almost(?) every other proposal to handle errors in Go differently from what Go currently allows. They all make the assumption that as soon as an error occurs the only thing I would want to do is an immediate return, which I almost never do.
Instead I almost always annotate errors with context to help when debugging logs, and often do some analysis to potentially resolve the error — such as a retry, or ignoring when not relevant — and the current structure of Go error handling, while I am sure it could be improved somehow, currently works extremely well for this.
Also, I don't really like the idea of having to create a different function located a distance away in terms of code location from where the error occurs in order to be able to handle an error. I much better how Go optimizes my ability to address an error exactly at the point in which I recognize that an error occurred.
As an aside, I would rather see Go make it easier to annotate errors with context in a way that does not require so much duplication of effort throughout the code than make it easier to just return early.
So from a concerned-for-my-own-interests perspective if something that makes it easier to do an immediate return on `err!=nil` were added to Go and it were to be used ubiquitously it would make it much harder to me to stick with Go moving forward. #fwiw