Live data from Hacker News

Java is still available at zero-cost

blog.joda.org

31–40 of 164 posts

Re: Java is still available at zero-cost

#33
post #19
post #5

Earlier quoted context omitted.

Java has legendary backwards compatibility and has had that since the first public release. That’s not going anywhere.

I do wonder if that will be slowly changing under new ownership. Java 9 and 10 had some pretty risky changes, compared to the prior releases. Take a look at the migration guide. https://docs.oracle.com/javase/10/migrate/toc.htm#JSMIG-GUID... Usually you don't see sentences like 'For every tool and third-party library that you use, you may need to have an updated version that supports at least JDK 9.', nor 'Check the…

“Compared to previous releases“ is the issue there.

They removed classes that they had been telling people not to use for... well... since they were put in.

It had to happen someday. The fact that they let it go on for, what, most of two decades? That’s commitment to backwards compatibility.

With the new module system they can make sure that this doesn’t happen again.

Re: Java is still available at zero-cost

#34
post #5

Earlier quoted context omitted.

Java has legendary backwards compatibility and has had that since the first public release. That’s not going anywhere.

This changed somewhat starting with Java 9. Quite a few libraries broke down due to deprecated classes finally being removed and the version format change. Java also has a considerable class of libraries and tools that tends to break on every major release: mocking frameworks, dependency injection libraries, annotation processors and everything heavily relying on bytecode generation. I'd say most Java projects contai…

Java nine is sort of a special situation because they finally turned off something that people were never supposed to do in the first place and they been warning people about for a very long time.

My entire career has been as a Java developer, I’ve never had an issue updating Java to a newer version causing breakage.

Upgrading third-party tools, like maven or various other things, can certainly do that. But I haven’t had it happen with Java.

Re: Java is still available at zero-cost

#35
I have a friend working at a company that is having “very important” discussions about this.

They need to keep up with security patches (for obvious reasons) but the six month limit has them scared. The consensus seems to be that they don’t believe they can keep up with an upgrade schedule that fast and are thus forced to pay for support from someone or hope that the community backports security fixes far enough for the rate at which they feel comfortable upgrading.

It doesn’t sound like they actually know what their upgrade rate would be, but they’re sure that it’s much slower than six months.

Re: Java is still available at zero-cost

#36
post #2

Java moving to 6 month release cycles is good. OpenJDK is good. RedHat providing long term support is good. All of this is good. Where I'm worried this fails is with dependencies. Also in the context of developing plugins for other Java projects. For example building a plugin for IntelliJ and the different versions of IntelliJ users may have.

It's rare that Java the language or the JDK breaks backward-compatibility. Code without generics, for example, still compiles with JDK 10, albeit with a bunch of warnings, so long as you specify an appropriate language level. The ABI, however, can and does break, usually when one of your dependencies updates to a language level not supported by your toolchain or runtime environment. The common solutions are to update…

The biggest issue I've met with the ABI issue is frameworks (Spring etc.) that emit bytecode at runtime.

I tried upgrading our project to Java 10 and Spring 4 and Camel (I can't remember the version) were the main issues because of their runtime generated proxies. The fix is to upgrade Spring to Spring 5, but that's a whole bunch of other work, and I'm unsure of the scope of work to upgrade Camel.

All that said, Java ABI is far more forgiving than Scala ABI. Every Scala artifact is appended with an "underscore Scala version" and SBT uses the '%%' operator to handle this implicitly, and it causes me no end of grief.

Last time I looked at upgrading our Spark code to use JRE 10, Scala broke because JRE 10 support only came in at Scala 2.12 (but was backported to Scala 2.11 recently) and Spark only supports Scala 2.10 and 2.11 at the moment, apparently the work to support 2.12 is still ongoing.

Re: Java is still available at zero-cost

#37
post #19
post #5

Earlier quoted context omitted.

Java has legendary backwards compatibility and has had that since the first public release. That’s not going anywhere.

I do wonder if that will be slowly changing under new ownership. Java 9 and 10 had some pretty risky changes, compared to the prior releases. Take a look at the migration guide. https://docs.oracle.com/javase/10/migrate/toc.htm#JSMIG-GUID... Usually you don't see sentences like 'For every tool and third-party library that you use, you may need to have an updated version that supports at least JDK 9.', nor 'Check the…

My main issue with the Java 9 upgrade was the separation of the javax.* apis into a separate module, but it was easily fixed with a Maven artifact.

Re: Java is still available at zero-cost

#39
post #13
post #8

Earlier quoted context omitted.

That is not how it works. You can download the Oracle JDK and use it forever, commercially, for free. You just won't get updates backported to your version unless you pay for long term support.

Find that in writing. Everything I read says jdk 8 is the last free Oracle jdk.

Then read the article you're commenting on?

Re: Java is still available at zero-cost

#40
post #29

If Java is open and free, then why did Android decide to rewrite Java? I notice a lot of companies seem to avoid Java so there must be some sort of a catch.

You're a long time out of date at this point. Google merged openjdk a long time ago for their base JVM.

https://www.theregister.co.uk/2015/12/30/android_openjdk/

Post reply on HN