4 ms·
Like the OP approved subset of C++, the design of Go is anachronistic on purpose, and makes a point to ignore most of what we have learned about programming lan
by srockets 6y ago
Like the OP approved subset of C++, the design of Go is anachronistic on purpose, and makes a point to ignore most of what we have learned about programming language design since the 1990s.
Go goes further and puts the blame on its users, who are “not capable of understanding a brilliant language […] the language that we give them has to be easy for them to understand and easy to adopt”[0].
This stands in a stark contrast to one of C++'s design principles, namely that the language shouldn't “force people to use a specific programming style”[1]. C++ not being opinionated is not aesthetically pleasing, and at times confusing. But that wide acceptance to new ideas is exactly what allowed those ideas to graduate from niche languages to the mainstream.
--
[0] Rob Pike at Lang.NEXT 2014. 20:52 @ https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/From-Parallel-to-Concurrent https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Fr...
[1] Bjarne Stroustrup, pp.3 @ https://stroustrup.com/hopl-almost-final.pdf https://stroustrup.com/hopl-almost-final.pdf
- 37ef_ced3 6y agoGo and C (even moreso) are simple languages. Some people understand the reason for (and appreciate) that simplicity Other people prefer profound language complexity; no comment
- srockets 6y agoI don't think the motivation behind Go's and C's austerity is the same for both language, so I wouldn't lump them together in the same argument.
- 37ef_ced3 6y agoGo's austerity is an acknowledgement that C's austerity is a net win (as long as you fix some of C's well-understood deficiencies; e.g., you're better off with slices and maps built directly into the language)
- erik_seaberg 6y agoWhen a language ignores a problem in the name of simplicity, every application now needs to choose some idiosyncratic way to solve the same problem without help. Mastering a larger toolbox takes work but it pays off.
- pansa2 6y ago> every application now needs to solve the same problem Some applications do. Other applications, for which the problem is irrelevant, can now ignore it rather than having the complexity of a solution baked into their foundations.