76 karma · joined May 24, 2025
It's too easy to accidentally write `if err == nil` instead of `if err != nil`. I have even seen LLMs erroneously generate the first instead of the latter. And since it's such a tiny difference and the code is riddled with `if err != nil`, it's hard to catch at review time.
Second, you're not forced by the language to do anything with the error at all. There are cases where `err` is used in a function that not handling the `err` return value from a specific function silently compiles. E.g.
x, err := strconv.Atoi(s1)
if err != nil {
panic(err)
}
y, err := strconv.Atoi(s2)
fmt.Println(x, y)
I think accidentally allowing such bugs, and making them hard to spot, is a serious design flaw in the language.Last year I was fed up with Windows, and switched to Linux. Since I had a lot of experience with Linux already, I went with Arch. I thought it was going to be really difficult. Sure, the initial setup was a lot of work, but now I'm extremely happy with it. Much happier than I ever was running Ubuntu, Mint, etc.
But anyway, nowadays I don't even think about that I'm running Linux anymore. I have a pretty big Steam library and play a lot of games. I install a game, I run it, and play it. I haven't found any instance where it doesn't work yet. Granted, I don't play multi-player games nor games with DRM (I'm a patient gamer, most games I play are >2 years old).