code is a liability, and they likely have more to lose than gain by allowing AI contribution.
code is a liability, and they likely have more to lose than gain by allowing AI contribution.
java never had that phase. If anything it had a full binary class (not even source, e.g. long and int are not compatible on binary level) compatibility. Generally you can take an application from '98 and run it nowadays.
It's only recent changes (jigsaw in java9 mostly) that were made them to drop some of that part.
What did you mean by this?
The same applies to having a method "void x(String s)", it cannot be changed to "void x(Object s)" (even though all the code would compile with auto downcast) but both methods have to co-exist being overloaded. There is more to the binary compatibility but I'd leave it here.
The way to do it is keeping the existing public (and protected) methods (&fields), possibly deprecating them, along with introducing new ones. Effectively any removal of anything that has been made accessible, public mostly, is forbidden.
Personally, whenever I had to maintain library code I stuck to the same principle, so folks could grab a new version w/o worrying or doing any changes on their own.
It's shocking given Oracle's AI spending spree over the last couple of years.
If you know how to work with it it's great, but if you use it indiscriminately it does more harm than good.
The biggest use of Java currently is Android, and Google is on a path to migrate to Fuchsia eventually.
The second biggest use is Apache Spark/Kafka, but with LLMs now, you can pretty much re implement all of that functionality in pure C.
They just want a legal angle, since this is how they make most of their money.
Spark is written in Scala, precisely because distributed systems are best modelled as a set of pure functions with minimal references to state. This is also why part of the reason why it's ascending successor, Polars Cloud, is written in a functional language, Rust, rather than C.
Android development is also increasingly being monopolized by Kotlin, not Java.
It was the same conversations about Haskell, how functional programming with no side effects was the future, e.t.c and so on.
There is literally ZERO reason to use Java outside of Android these days. If you are still developing applications in Java, you are behind.
Oracle's own OpenJDK is free but they will only let consumers download Java 8 for free, that's why companies like Jetbrains ship JDKs with their products.
Google is in the middle of moving ChromeOS to Android, they're not replacing Android with Fuchsia any time soon.
All because of baked in legacy. This is going to change in the next few years. You beat Java with Python today very easily - write your application and tests in Python, have LLM transpile it to C.