5 ms·
Agreed, Covariance / Contravariance was a fantastic feature to borrow from C#! It just should have been implemented to be friendlier to people new to language.
by CmonDev 13y ago
Agreed, Covariance / Contravariance was a fantastic feature to borrow from C#! It just should have been implemented to be friendlier to people new to language.
- firepoet 13y agoIs that where he borrowed it from? I've seen mention of the language feature showing up in Eiffel, Sather, and so on. http://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science) http://en.wikipedia.org/wiki/Covariance_and_contravariance_(...
- pkolaczk 13y agoEhm... No. If any, C# borrowed it from Scala. C# got them in version 4.0, which was first half of 2010. Scala had them since I remember (from day 1?) - for sure they were in Scala 2.6, which was released in 2006.
- tikhonj 13y agoVariance has been well understood in PL theory in basically forever. None of the languages had to borrow it from each other because they could all just get the inspiration from type theory.
- CmonDev 13y agoSorry guys, I stand corrected :).
- MichaelGG 13y agoAnd C# could only add it because the now-F# folks had originally designed it into the CLR Generics system. It's highly unlikely C# would ever go far out of the straightforward IL generation it does to implement such a feature otherwise.
- Locke1689 13y agoNope. The CLR has supported it back to v2, and C# delegates used the feature before language support was added in C# 4
- MichaelGG 13y agoRight, variance was part of the original MSR proposal for CLR Generics. How did delegates use variance? I've never been terribly clear on the whole delegates concept - they're like first class functions, except nominally typed and weird.