4 ms·
Those four languages all have completely different implementations of parameterized types, but calling them all “generics” doesn’t add any extra confusion. To
by iainmerrick 7y ago
Those four languages all have completely different implementations of parameterized types, but calling them all “generics” doesn’t add any extra confusion.
To the contrary, it’s actually helpful to use the same word for something with roughly the same uses (eg generic type-safe container classes) even if the details are very different.
- jsty 7y agoI don't particularly disagree. My point was more that given what the authors wrote in the quoted sentence, I thought that - rightly or wrongly - was likely the reasoning behind the naming decision.
- nemith 7y agoContract is just the feature is defines the abilities of the genericized types. A contract in Go enables generic programming or as other state it "generics". In C++20 there is concepts which is very similar. https://en.wikipedia.org/wiki/Concepts_(C%2B%2B) https://en.wikipedia.org/wiki/Concepts_(C%2B%2B) in constraining the generic type before template expansion.
- pjmlp 7y agoContracts in programming language have a very precise meaning. https://en.wikipedia.org/wiki/Design_by_contract https://en.wikipedia.org/wiki/Design_by_contract