| ▲ | esafak a day ago |
| Java's new features are always going to be on paper. The ecosystem, with all its legacy code, is always going to be a decade behind. And if you are starting a new project, why would you pick Java over Kotlin? |
|
| ▲ | frje1400 a day ago | parent | next [-] |
| > And if you are starting a new project, why would you pick Java over Kotlin? Because in 5-10 years you'll have a Java project that people can still maintain as if it's any other Java project. If you pick Kotlin, that might at that point no longer be a popular language in whatever niche you are in. What used to be the cool Kotlin project is now seen as a burden. See: Groovy, Clojure, Scala. Of course, I recognize that not all projects work on these kinds of timelines, but many do, including most things that I work on. |
| |
| ▲ | esafak 5 hours ago | parent | next [-] | | Kotlin has already been around for ~10 years and it's in the TIOBE top 20. https://www.tiobe.com/tiobe-index/kotlin/ | | | |
| ▲ | fulafel 20 hours ago | parent | prev | next [-] | | I don't think Clojure belongs there. It was never as big as Kotlin, but it's got great community, longevity and takes backwards compatibility very seriously, and 10 year old Clojure projects seem to be aging at least as well as 10 year old Java projects. | |
| ▲ | wrathofmonads a day ago | parent | prev [-] | | Clojure has never been a popular language, nor has it aimed to be mainstream. That is the Lisp curse. It has never positioned itself as a "better Java". It shines in applications where immutable, consistent, and queryable data is crucial, and it has found another niche in UIs through ClojureScript. |
|
|
| ▲ | spicybbq 10 hours ago | parent | prev | next [-] |
| > And if you are starting a new project, why would you pick Java over Kotlin? I've written multiple production services in Kotlin Spring Boot. Now, we're building a new system and using Java 21 (25 soon). Why? Kotlin the language is great, but there are corresponding tradeoffs in interop. Meanwhile, Java the language has improved to the point that it's good enough, and Java feels like it's headed in the right direction. In my opinion, AI models are better at Java than Kotlin. If you prefer a weaker claim, the models are trained on more Java code than Kotlin code. Finally, from an enterprise perspective, it is a safer long-term investment for a Java shop to own an application written in Java rather than in Kotlin. |
|
| ▲ | pjmlp a day ago | parent | prev | next [-] |
| Because the Java Virtual Machine is designed for Java, and that is what all vendors care about. Kotlin is Google's C#, with Android being Google's .NET, after Google being sued by coming up with Google's J++, Android Java dialect. Since Google wasn't able to come up with a replacement themselves, Fuchsia/Dart lost the internal politics, they adopted the language of the JetBrains, thanks to internal JetBrains advocates. |
| |
| ▲ | bhawks a day ago | parent [-] | | | Android being Google's .NET, after Google being sued by coming up with Google's J++, Android Java dialect. The Oracle v Google was specifically over copyright infringement concerning the Java APIs used in Android's original implementation (Dalvik/ART), not about creating a "J++" dialect. Android never ran a JVM on mobile because it cannot be optimized for resource constrained devices a solution like DalvikVM was necessary. If you want to level critiques about creating fragmented dialects of Java I would recommend starting with J2ME. The only nice thing I can say about J2ME is at least it died. The Android ecosystem was far too mature for Fuchsia/Dart to be successful without a very compelling interop story that was never produced. As a technology Kotlin met Android's platform and community needs. Advocacy and politicking played a minimal, if any, role. | | |
| ▲ | pjmlp 20 hours ago | parent [-] | | Lies sold by Google. Nokia and Sony Ericsson were using J2ME perfectly fine, as did Blackberry. I should know ad ex-Nokian. Kotlin met nothing, it was pushed by Kotlin heads working on Android Studio, telling lies comparing Kotlin to Java 7, instead of Java was already offering at the time. To this day they never do Kotlin vs Java samples, where modern Java is used, rather the version that bests fits their purpose to sell why Kotlin. Fragmentation, what a joke, the fragmentation got so bad in Android, that JetPack libraries, previously Android X, exist to work around the fragmentation and lack of OEM updates. Gosling said it better, regarding Google's "good" intentions https://www.youtube.com/watch?v=ZYw3X4RZv6Y&feature=youtu.be... | | |
| ▲ | bhawks 10 hours ago | parent [-] | | J2ME was an alphabet soup of incompatible implementations stuck somewhere between Java 1.2 and 1.3. Getting code to run across device manufacturers was a huge engineering burden. In fact doing something like JetPack for that world would be technically impossible. If Sun was offering some technically relevant foundation for the smartphone era, it would have been able to actually have some adoption. They were starting from a leading position (obviously - see blackberry or Nokia), and in the space of 3 to 4 years they completely disappeared. | | |
| ▲ | re-thc 9 hours ago | parent [-] | | > J2ME was an alphabet soup of incompatible implementations So Google? (alphabet) |
|
|
|
|
|
| ▲ | hylaride a day ago | parent | prev | next [-] |
| That's kind of what I'm asking. I did have a former co-worker write a micro service in Kotlin around 2018. He said that as nice as the language is, the ecosystem was (at the time, not sure how it is today) so utterly dominated by Android development, that he said he wouldn't recommend using it again - half the time he was calling out Java anyways. |
| |
| ▲ | gavinray a day ago | parent | next [-] | | Kotlins "ecosystem" is all of Java, and then all of Kotlin. Put another way: Java only has access to a subset of the ecosystem Almost all of the backend libraries I use are Java libs. Some of them have additional Kotlin extension libs that add syntax sugar for more idiomatic code. | |
| ▲ | esafak a day ago | parent | prev | next [-] | | I use kotlin and I do not feel oppressed by Android in any way. And I'd rather call Java libraries from Kotlin than Java. Many have Kotlin wrappers. | |
| ▲ | dtech a day ago | parent | prev [-] | | That's a weird take. Even if true, kotlin has perfect interop with calling Java libs so there's not really a downside to keep using Java libs. There's not that much demand for kotlin-specific libs outside multiplatform which includes Android. For what it's worth, Spring has first tier Kotlin support, I haven't noticed this bias. |
|
|
| ▲ | adrianN a day ago | parent | prev [-] |
| It’s a lot cheaper to hire for Java than for „modern“ languages. |
| |