6 ms·
I'm not sure Kotlin is a hack, but it's growth is directly related to Java not being able to deliver on simple features that would help the day to day lives of
by vips7L 10mo ago
I'm not sure Kotlin is a hack, but it's growth is directly related to Java not being able to deliver on simple features that would help the day to day lives of developers. So I also can't blame anyone for moving on from the language. I get frustrated with it all the time, especially when Kotlin shows that some feature could work perfectly fine.
Here are some examples that have hit the graveyard: It's been 2 years since exception handling in switch was proposed [0], 3 years since null-restricted types were proposed [1], 4 years since string templates [2], 8 years since concise method bodies [3], and 11 years for JSON parsing [4].
[0] https://inside.java/2023/12/15/switch-case-effect/ https://inside.java/2023/12/15/switch-case-effect/
[1] https://openjdk.org/jeps/8303099 https://openjdk.org/jeps/8303099
[2] https://openjdk.org/jeps/430 https://openjdk.org/jeps/430
[3] https://openjdk.org/jeps/8209434 https://openjdk.org/jeps/8209434
[4] https://openjdk.org/jeps/198 https://openjdk.org/jeps/198
- MBCook 10mo agoWhy did Kotlin prevent those features?
- vips7L 10mo agoIt didn't. They're examples of features that have driven Kotlin's growth. Thing's Java developers have been begging for. I'm using them as examples of why Java developers are starting to choose Kotlin. I'm a pretty die hard Java fan, I've built my career on it, and know way too much about the ecosystem. But, I've been writing F#, C#, Kotlin, and some other languages in my free time to see where I want to move to. I’m pretty sure C# is what I’ll settle on.
- MBCook 10mo agoOh I see, thank you for explaining. PS: personally I really like Swift, I would suggest giving it a try for fun
- vips7L 10mo agoYeah swift is nice! I’ve ranted about how Java should add Swift’s try! and try? for checked exceptions before. I don’t think it’s for me though. It’s very Apple centric and I’m a Windows gamer and PowerShell user at heart.
- gf000 10mo agoSure there are pain points in Java, but I definitely wouldn't want the language to introduce 15 new features each having only a tiny benefit. Based on your other comment you prefer "fat" languages like kotlin and C# - and that's fair. I find languages with less, but more powerful features far more elegant and while Java has its fair share of historic warts, modern additions are made in a very smart way. E.g. switch expressions seamlessly support sum and product types, meanwhile kotlin's `when` really is just syntactic sugar. All in all, with too many features you have to support and understand the complete matrix of their interactions as well, and that gets complicated quickly. And Kotlin is growing towards that.
- vips7L 10mo agoI’m sorry, but null restricted types, string templates, basic json support, and fixing the broken exception system isn’t “fat”. They’re the basics of a functioning language.
- gf000 10mo agoNull restricted types are indeed important and while null check plugins exist for Java, this is a big step in the good direction by kotlin. String templates are valuable syntactic sugar, but that's it. There are a bazillion JSON libraries with at least 3-4 absolutely stellar ones. I don't really see it that big of a limiter. And if you mean checked exceptions, that's controversial to claim it's all bad. But some ergonomics improvements would be better.
- krzyk 10mo agoHandling JSON as a basics for language? Really? null restricted type will come with valhalla, string templates had a try, but people complained and they withdrawn them after 2 preview iterations. Not sure what issue people had with them and what issues maintainers noticed. What do you mean by broken exception system? Java is not a small language that you can throw features around, they have to take into consideration final goal of it and decades of development.
- 10mo ago