4 ms·
Don't forget C# 1.0 which also shipped without generics. The people designing these langs were not inexperienced, far from it. Yet the mistake keeps being repea
by ntoskrnl 4y ago
Don't forget C# 1.0 which also shipped without generics. The people designing these langs were not inexperienced, far from it. Yet the mistake keeps being repeated every decade. I feel like the industry would be a lot further along if we paid more attention to these lessons from the past.
- derefr 4y agoIt seems that these languages without genetics keep getting popular. Perhaps they get popular in part because they don’t support generics at first, and so seem to be simpler?
- Jtsummers 4y agoIt seems to be inevitable. Few languages can remain simple forever because they run into the realities of large scale systems development. If they remain simple, they either force the programs to become more complex or effectively constrain the complexity of the systems that are developed. Even Fortran has added OO and generics.
- tines 4y agoAnders Hejlsberg, who designed C#, had previously designed Delphi, which has some support for generics (and I believe it had them before he left for Microsoft). I think the case may be that they're not making the same mistakes, but that they're just trying to ship software. Maybe though you would reply that generics are part of the minimum viable product of a programming language and it shouldn't ship without them. I can't say I disagree.
- layer8 4y agoWhen C# first came out it was in competition with Java, which at that point didn’t have generics yet either. That was probably a relevant consideration for shipping the first version without generics.
- scoopertrooper 4y agoWow C# is much older than I thought.
- Rapzid 4y agoC# is 22 going on 5.
- munificent 4y ago> Don't forget C# 1.0 which also shipped without generics. That's true, but work to support them was already underway and when C# 2.0 shipped with generics, the bytecode and VM already supported it. That's why C# generics support specialization for non-reference types. Don Syme and company knew they wanted generics, but it takes time to design a system like that, so they shipped C# before that work was complete.