3 ms·
modern features the type system of Go is missing How about starting with old features that it are missing, since Go is literally decades behind PL research?
by danieldk 13y ago
modern features the type system of Go is missing
How about starting with old features that it are missing, since Go is literally decades behind PL research?
- Parametric polymorphism (plus constraints e.g. in the form of type classes).
- Algebraic data types
- Pattern matching (with non-exhaustiveness checks).
- Enforcing purity via the type system.
- No null pointers.
No, these are not esoteric Haskell features, but have been around in ML since the 70ies. Also, the claim that Go's designers want to keep the language simple is not a strong argument. A language such as ML is simple.
Also, many old(er) imperative languages adopted some of these type system features, such as Ada, C++, Java, and D.
- mseepgood 13y agoYes, most of these things are pretty old. Why can't you accept that there are people out there who do not think that these features are unequivocal good ideas or necessary?
- copergi 13y agoBecause those people seem unable to present an argument to support that stance. At best you get "but simple". All of those things are simple. At worst you get outright nonsense that demonstrates that people like Russ and Rob genuinely do not understand the things they are dismissing.
- yohanatan 13y agoI am pretty sure Rob Pike does not fall into that category. My impression is that he is not all that familiar with these features from the ML-derived family of languages. Do you have a quote from him to the contrary (where he specifically rejects these features)?