|
|
|
|
|
by stouset
1903 days ago
|
|
With all due respect, I do understand why go was designed the way it was, and I vehemently disagree with those decisions. I used go for years, and with every passing day I grew more and more disenfranchised with the language. GP is right. Eschewing abstractions in a programming language forces users of that language to deal with it themselves on a recurring basis. Millions of lines of if res, err := fn(...); err != nil {
return nil, fmt.Errorf("...")
}
don't help anyone, and only detract from readability which is bar none the most important part of a code base. Sadly, this is one of many symptoms in the language where problems that could have been solved in the language have instead been pushed down to its users to deal with over and over and over. |
|
Why is go error handling designed the way it is? What are the intended benefits? What are the actual benefits?
A follow up, on your abstraction point: why does go eschew abstraction? Intended upside? Actual upside?
It’s very clear people in these threads can perceive downsides of some of Go’s decisions, but what about upsides? And further, can you recognize how Go copes with the downsides it’s choices produce?