▲ | LinXitoW a day ago | |||||||
One very subjective, very irrational factor for my borderline hate for Go is that for years the Go zealots gaslighted everyone about every single part of Go. Anything that Go did, no matter if it was the most basic implementation or if other languages already did it (better), was essential, the best and only way to solve that issue. Anything Go did not do was superfluous and downright a conspiracy by Big Complexity to keep us unenlightened Non-Goers addicted to the Syntax Sugar: Things like sane null handling, sane error handling, less boilerplate, generics, or not creating special cases for everything (generics and tuples) instead of developing one cohesive solution. Even now, in this thread, the strawmanning continues: Error handling is brought up, and instead of admitting the unmistakable truth that Gos error handling could be much better (s. Rust), people bring up things like JavaScript. As if anyone criticizing Go that JavaScript was the pinnacle of error handling. | ||||||||
▲ | stouset a day ago | parent | next [-] | |||||||
Dear christ yes. “Go is designed as a systems programming language” has been retconned so that “systems” is redefined to mean programs talking over a network? “Real programs won’t use repetitive error handling, but build on top of it.” I don’t think this one needs further explanation. “Go doesn’t need xyz.” This is just the slow and painful process of the golang community realizing one at a time why other languages have the features they do. “Explicit is good.” Explicit and verbose are not the same thing. You can have explicit and terse. “Golang is simple.” Golang is primitive, not simple. There are tons of footguns and gotchas, not all of which are chronicled in the linked essay, which would have been so easy to avoid. And everyone just collectively internalizes these issues as if “just avoid writing those bugs” is a sane mindset any different than the languages that came before. “Go doesn’t need a package managers.” Oops, it did. Now we’re like three attempts deep. Over and over and over I feel like we’ve been gaslit and told we’re crazy, only to later on have the community act like (for example) golang always intended to add generics and of course they’re a good idea. | ||||||||
| ||||||||
▲ | Seb-C a day ago | parent | prev | next [-] | |||||||
Yes, I've also grown tired of this toxic mindset, as well as the whole "idiomatic Go" dogma that is very often an excuse for poor engineering practices. | ||||||||
| ||||||||
▲ | Groxx a day ago | parent | prev [-] | |||||||
Yeah, this was/is a part big part of my frustration with the ecosystem too. It set a LOT of very problematic patterns in place in the beginning, and many of them are still not unwound. Stuff like "Go doesn't need dependency injection because it's simple". I heard that literally dozens of times. The opposite is true! It's an even bigger pain without DI because the language is so simple! DI everything or make your users suffer! Or a personal favorite: "Go doesn't need a package manager". We see where that went, and how much insanely better it is now that we have it. Or errors. Without wrapping. Oh boy we're gonna pay for that for decades. There's stuff to like in the language, but the zealots (especially early ones) really did not know which parts they were. |