4 ms·
Actually, I think the success of Go has proven the contrary. You can make a modern language without those features. In fact for an MVP you want to cut difficult
by eloff 7y ago
Actually, I think the success of Go has proven the contrary. You can make a modern language without those features. In fact for an MVP you want to cut difficult or not absolutely necessary features from the first version. So I think Go did fine here and I encourage other language designers to follow their lead.
One cavaet is if you don't think about at least how generics might work in your language in a backward compatible way, you box in your future options. See java for how this goes poorly. If you look at the generics proposals for Go you see how this has greatly complicated the task. That doesn't automatically mean it was a mistake to do it that way though.
If you try to do everything at the beginning you might take so long that you fail outright or don't get the early adopters who help shape the language. Plus you'd be behind the curve on adoption. So I think Go did the smart thing here.
- StandardFuture 7y agoYou and the parent are correct. Package management and generics are essentials for any general-purpose programming language. But, they fall lower than many other features (like syntactic consistency and simplicity) ranked by importance for developer productivity and usefulness.
- james-mcelwain 7y agoThere's nothing wrong with Java generics. Reified generics are a design choice. As someone who uses a lot of non-Java JVM languages, I'm thankful interop is easier.
- eloff 7y agoThere's a lot wrong with them. You may like the design choice, but I can find plenty of people who hate it.
- pron 7y agoThose "plenty of people" think they hate it because they don't understand it (especially the problem of variance). The only languages (in relatively common use) that reify generics for variant types are C++ and C#, and both of their variance models are fucked up, albeit in different ways. If reference-type generics were reified, Java couldn't serve as a platform for so many languages. In other words, they might hate it, but they would have hated the alternative even more. Specializing generics for invariant types is another matter, and Java is getting those.
- pjmlp 7y agoWithout Google, Docker and Kubernetes, Go would have been as successful as Limbo and Oberon-2, its two main influences.