4 ms·
Is it anger? The agent thing maybe. The other two points seem to boil down to: 1. Kotlin is a hack and 2. Rust is more fun. Pretty understandable why one wou
by WD-42 10mo ago
Is it anger? The agent thing maybe. The other two points seem to boil down to:
1. Kotlin is a hack and
2. Rust is more fun.
Pretty understandable why one would simply want to move on to greener pastures.
- vips7L 10mo agoI'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
- Larrikin 10mo agoKotlin is a thoughtful language that is a joy to write. Java was stagnant and ripe for being kicked off the top. Scala was the hack that showed why Java was starting to suck but Scala suffered from no direction. Every single idea a PhD ever had was implemented in the language with no thought other than it seems cool to be able to do that too. Which is why all the Scala codebases fell apart, because you could write anything, anyway you want, and it was impossible to maintain without extremely strict guidelines on what parts of the language you were allowed to use. Also the build times were atrocious. Kotlin designers evaluated language features across the ecosystem and chose what made sense to make Java better when it came out and now has easily surpassed Java. They are still thoughtful in what they choose to add to the language and it is now very powerful. However they smartly imitate Python by having clear guidelines on what choices you should be making when writing code so that other developers can easily dive in.
- lisbbb 10mo agoI liked Groovy, but Kotlin was the better successor. Scala was beyond ridiculous as far as learning curve--crazy language. I always thought Java sucked and I spent far too much time working with Java (because money) and having to deal with framework on top of framework as well as all those idiotic design patterns that seemed so important only for me to realize years later that it was all basically a waste because OOP itself is a waste. I was writing better code in Python and Go five years ago without needing those all-important design patterns (okay, a few still translate). I just didn't know it at the time how horrible the situation was in Java. In hindsight, everything about Java was someone's money grab that I was dealing with. Mockito did help me a lot through those times, but I wish I had never gone through them at all!
- throwaway7783 10mo agoI still miss dependency injection in Python
- EdwardDiego 10mo agoFastAPI rolled their own using annotations. It's... ...okay.