4 ms·
I also wonder if perfection is reached when there is nothing more to add ;-) Current popular languages seem to converge.
by augustk 3y ago
I also wonder if perfection is reached when there is nothing more to add ;-) Current popular languages seem to converge.
- wongarsu 3y agoOne major upside of newer languages like rust is that they can start out with these "newer" primitives, with a standard library designed around them and without tons of "legacy primitives" that do the same thing, but worse (like how python has 4+ distinct ways to print a string with variables in it, all in various degrees of popular use). Once your language has aged a little it's hard to impossible to take old primitives away, but you still want to adopt ergonomic improvements in order to not be left behind. Until at some point you become a language nobody can master in its entirety.
- _a_a_a_ 3y agoThey seem to be converging on Scala :)
- clhodapp 3y agoThey're converging on Kotlin, but of course 75% of the difference between Java and Kotlin consists of Scala features that have been laundered of their dirty "academic" origins for acceptance in polite industry.
- _a_a_a_ 3y ago> laundered of their dirty "academic" origins curious; can you give a few examples? TIA
- xmcqdpt2 3y agoKotlin extension methods are basically just type classes but without the theory.
- Tainnor 3y agoUh, I don't get this. Extension methods are ultimately just syntactic sugar, everything written as an extension method could just be written as a top-level function taking the receiver as an extra parameter. I would say the analogous feature to typeclasses are interfaces.
- clhodapp 3y agoTo be clear: I speaking somewhat in jest, and I'm not really talking about academic versus industrial programming. I'm snarkily referring to the fact that that many developers didn't see the value in a lot of Scala's features and labeled Scala as an impractical, over-complicated academic language. And yet: Kotlin has seen great success by spoon-feeding Java devs a lot of those very some features (with the benefit of second-mover advantage). In terms of actual examples, I'll point to JEP 443, linked in the Java 21 article that kicked off this topic. That feature comes from Scala, by way of Kotlin.