It may be easier to just add the "?" operator everywhere (and we are lazy and will mostly do what is easier), but it often leads to problem explained in the article.
value, err := doFallibleOperation()
if err != nil {
return nil, fmt.Errorf("fallible operation failed - %w", err)
}
That error construct exclusively works for the poor human who has to debug the system, looking at its logs. No call stacks and, crucially, no automatic handling.At least with Rust's enums it is possible to make errors automatically actionable. If one skips that part and opts for anyhow because it's too much work, that's really a user problem.
I like the author's idea of "designing" errors by exposing their actionability in the interface a lot. I'm not overall sold on whether that should be the primary categorization, but at least including a docstring to each enum variant about what can be done about the matter sounds like a nice way to improve most code a little bit.
No it doesn't. Please stope the hyperbole. Its literally just advertisements and people have the agency to choose to buy products.
I would argue for "greater", and from that it rather naturally follows that advertisement and marketing indeed kills humanity.