5 ms·
Go is a language for software engineering, which entails pragmatic human factors. It's not a computer science language, which emphasizes theory.
by weberc2 7y ago
Go is a language for software engineering, which entails pragmatic human factors. It's not a computer science language, which emphasizes theory.
- pjmlp 7y agoEiffel and Ada are languages for proper software engineering. Go not so much, specially given its toy type system, where one cannot even do Type Driven Design.
- weberc2 7y ago> proper software engineering Only if you define this in such a way that it's tautologically true. If your definition of software engineering incorporates some degree of economic success, then no, these languages don't work well. I'm sure someone will be tempted to levee this strawman argument: "But lots of languages drive projects that make more money than Go!" Note that I never claimed market success was the sole criteria.
- pjmlp 7y agoWell, then pick C++, Java and C# instead. All of them provide more features for software engineering at large scale that Go is still catching up with, hence Go 2.0 proposals.
- weberc2 7y agoThere’s no evidence that those languages are better at engineering at scale than Go is. In particular, all of them are riddled with anti-features e.g., inheritance and all of them have ridiculously convoluted tooling (especially build tooling a la CMake). If I want to get something done, especially in a team setting, I’ll reach for Go over those languages every time.
- GenericsMotors 7y ago> It's not a computer science language, which emphasizes theory. "Modern" type theory has been around since the 70s but aparently that's still too academic for Go. But perhaps Canadian Aboriginal Syllabics are still the more pragmatic approach! https://www.reddit.com/r/rust/comments/5penft/parallelizing_enjarify_in_go_and_rust/dcsgk7n/ https://www.reddit.com/r/rust/comments/5penft/parallelizing_...