4 ms·
The single biggest reason is to avoid getting stuck with a codebase written in an evolutionary dead end. Java and Kotlin will gradually diverge, particularly a
by barrkel 5y ago
The single biggest reason is to avoid getting stuck with a codebase written in an evolutionary dead end.
Java and Kotlin will gradually diverge, particularly as Java gains features which are similar to Kotlin features but implements them slightly differently. Third party library APIs will start use the new constructs and you'll be stuck with two slightly different ways of doing something very similar in your codebase.
Over the course of 10 or 20 years, that will probably happen again and again. Java evolution used to be pretty conservative but it's picked up pace and its closest non-JVM competitor C# is miles ahead in expressiveness.
For example, CoffeeScript seemed like it made sense 10 years ago. JavaScript was full of defects and CoffeeScript fixed a lot of them, at the cost of a slightly different syntax, though not so different that you couldn't debug the resulting JS. But you wouldn't want to be stuck with a CoffeeScript codebase today.
- rrevo 5y agoCompletely agree on aspect of kotlin being an evolutionary dead end. For anyone interested in looking at C#, look at https://rahulrevo.substack.com/p/language-ecosystems-net https://rahulrevo.substack.com/p/language-ecosystems-net and how they have evolved differently.