I still see projects using Java 5...
I still see projects using Java 5...
In addition to benefiting from the new features, being up-to-date is good for recruiting. You tell someone they'll be working with Java 6 and (in the absence of other evidence) they'll assume it's a legacy product suffering from chronic under-investment. Not exactly the impression you want to give job seekers!
Or Android.
Also I don't have any issue with Java as I do like the language and use it since JDK 1.0.1.
My issue is with Android Java, a forked version of Java with cherry picked features of Java 6, 7 and now 8, just because Google didn't want to pay Sun.
A version that will be even harder to write portable code when Java 9 and 10 come out.
I believe Google is running out of solutions to further optimize Android because they keep running into self inflicted Java roadblocks. If Fuchsia is any indication of their future efforts their next major overhaul will support multiple first class languages.
As for Fuchsia and Brillo, it remains to be seen if they will ever be productified.
Also I don't believe that Dart is a better option than Java in regards to performance.
The speed at which they stop freely supporting older versions feels much like a way to squeeze big, slow moving organizations for support contracts.
Are you serious? Even the worst shops I've been at have at least moved their JVMs to Java7 back around 2014. I mean you can take all your existing JARs from Java4 and run them on Java8 and nothing should break. Recompiling them might be another issue, but still not a huge one.
Having said that being on and old supported version of these products means you are at least enjoying Java 6.
My last contact with Websphere was in 2014 and the customer was still using 6.1 on their production servers.
What do you think those medium sized business apps are built off of if not things with JVM dependencies? It's not so simple.
Some things like Guava got more or less obsolete in JDK8.. so seeing it targeting JDK5.. doesn't really matter.
Also JDK5 stuff will work on JDK8.. so you can suck in all the JDK5 libraries you want, but still run a JDK8 project.