
Time to look beyond Oracle's JDK - wheresvic1
https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html
======
jeswin
Actually, time to look beyond the whole Java ecosystem.

After the claims Oracle made during the Google trial (such as APIs and method
signatures being patent-able), it is clear that one can't work on the Java
platform without infringing Oracle's IP. If Oracle doesn't sue you now, it can
sue you when it makes financial sense to do so.

.Net looks like a much better alternative, with a patent pledge and ECMA
standardization. Although to be fair, Microsoft is still a supporter of patent
lobbies.

~~~
pjmlp
Plenty of JVM vendors are happily selling their own versions, playing by the
rules.

[https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#...](https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#Active_2)

Google had the option to buy Sun after helping to their downfall, they have
chosen not to spend the money to own Java. Now they get to spend on lawyers
instead.

~~~
bhaak
Can you elaborate on Google helping in Sun's downfall.

I seem to be missing a historical bit there.

~~~
user5994461
To be confirmed but I recall that Sun offered to license Java to Google, for
usage on Android. Google didn't want to pay a dime or acknowledge that a
license a needed.

Long story short, Oracle bought java and it's back to square one, with layers
and court this time.

------
threeseed
Will be interesting once Graal is released. I've found it be at least 30%
faster than the existing JDKs around for Scala development. Others have found
similar results:

[https://medium.com/graalvm/compiling-scala-faster-with-
graal...](https://medium.com/graalvm/compiling-scala-faster-with-
graalvm-86c5c0857fa3)

~~~
kodablah
Surely it's no coincidence that, as Oracle removes differences between its JDK
and OpenJDK, that they are throwing their weight behind this non-community
project, with an enterprise version. Between sunsetting community owned
Nashorn in favor of Graal solution to giving tools to OpenJDK presumably with
fewer of their own maintainers, the resource shift is clear. Not that it's
wrong or even nefarious, but devs need to realize who they're getting in to
bed with when building a reliance on the tech.

~~~
brabel
Graal is open-source and most projects under its umbrella are [GPL2-with-
classpath-exception
licensed]([https://github.com/oracle/graal/#license](https://github.com/oracle/graal/#license)).
The fact that they also have an Enterprise Edition does not make this a non-
community project.

~~~
kodablah
Sorry, I meant non-community owned. Mentioned in sibling comment, I use plenty
of non-community-owned software, but I avoid wholly Oracle owned software.

~~~
repolfx
It's all GPL licensed. How is it not 'community owned'? What is your
definition of 'community', exactly?

~~~
kodablah
Who makes the decisions and who can change the license and who can sue you for
misuse of the software? I don't want to support any Oracle product if I can
help it, regardless of license.

~~~
maxgale
But the software was already released under GPL2. Even if Oracle changes the
license, the community can always fork it from the last open version.

------
hashrate
Interesting read.

I think the whole idea of "We need to replace Java with [Insert Language]" is
much more complicated topic than just saying "X is free , Java is owned by
Oracle".

Even is this is true , Java is by far one of the most performant programming
language that exist on earth.

People just don't realize the hundreds of millions of dollars that went into
the JVM and the JDK.

Even if they are great alternatives like Go or .NET , they either come with
huge limitations in performance or their ecosystem.

Per say , finding JVM developers isn't that hard, regardless of the geography.
However , finding Go developers outside of the Bay Area ? Good luck with that.

The issue with Patent on the JVM is well know and there is very little to
nothing that we can do about it.

~~~
acdha
Java is better than it used to be but you’re significantly overselling
performance as a competitive advantage. Many other languages have no trouble
producing code which is as fast or faster, and Java is still shaking the
culture of excessive complexity which has squandered much of the hard work in
the JIT.

The ecosystem is a much better argument since it’s certainly massive, as is
finding developers, although quality varies wildly in both cases.

~~~
village-idiot
More than that, speed is vastly overrated in a lot of cases.

~~~
acdha
True, although that has a way of becoming important after awhile. That’s why I
prefer to focus on complexity and clarity as it’s much harder to make
convoluted code when it becomes important.

~~~
village-idiot
It’s nit picking, but I think a more correct statement would be “lots of small
performance mistakes add up over time”. It’s very rare that I see a project
needing a new language for performance reasons, but I see projects that need
refactoring for performance all the time.

------
georgewfraser
Why would a company pay for "commercial support" of OpenJDK from IBM? I have
used Java for 15 years and I don't know what "support" for a JDK would mean.

~~~
pard68
The decision makers are not programmers. The people making the choices on
software in an enterprise are MBAs who know next to nothing about software and
so they need some "insurance".

Look at the tech founded enterprises, they do not go the tradition enterprise
software route. Why? Their leadership came from a developer background and not
an MBA one.

~~~
marmaduke
I don’t think it’s that simple. As a dev or sysadmin, all it takes is to have
resources invested in a legacy system that no one gave money to replace but
are ok with maintenance contracts. This easily happens when people leave/get
hired.

I have a legacy storage system only accessible through exactly Java 6u31
32-bit on Windows 7, of course I want to replace that but instead it’s cheaper
to keep and maintain than to replace.

 _edit_ and I think this must be a conscious strategy on the part of any
vendor: make maintenance just slightly cheaper than replacement

~~~
hyperman1
That's the theory. In practice, it is near-impossible to get any enterprise
vendor to actually fix something. Either you're lucky and another customer had
the problem. Then, after annoying them for about a week, you'll get a patch.

If however you've found something new like a feature that's so buggy it is
actually completely defect, you're in for an ordeal of a few months. Simply
getting a dev to look at your bug takes a month. In that month, you'll answer
every day questions like what OS you're on ('As I told your past 10
colleagues, We see it under red hat linux version X1 X2 X3, and under windows
Y1 and Y2, and under HPUX Z. Yes, this is a pristine OS install with a
pristine JVM. Yes, our support contract covers this. There is a test case in
the bug report, run it on your computer and see yourself'). They'll call you
in the middle of the night. Then call you again 12 hours later because you're
not allowed to respond to their questions outside business hours so please
tell us again and next time read your contract.

If you survive this, and you provide a perfect example source code fragment of
100 lines, and you decompile their own code, point at the bug, and suggest a
less insane way to write that code, you'll get a fix. This fix seems to work
for up to a day, when you notice your performance is less than a sixt from
what it was. Then you notice how they ignored your suggestion, did something
even less sane than the original code, and managed to break something else you
hadn't even noticed before.

Call again, insist they do not start a new ticket unless you want to redo that
original month. A few minutes later they call back and try to sell you six
times the hardware you have as a workaround, and promise a 10% price reduction
for the first year. Do not swear at any point, this will immediately end the
phone call and you'll have to navigate their insane phone menu again and get a
new lesson in Indian English from a guy who swears he is speaking your
language perfectly right now (which is neither English or anything spoken in
India, afaik).

After a few rounds of this, they produce a working patch. You confirm it works
and are promptly forbidden to use it ever again. They will provide you 'soon'
with an official version of the patch, which has been vetted against their
secure development lifecycle, legal team, and god knows what else. Actually
applying the current patch so your users stop screaming will end your support
contract.

It takes in total a bit more than 3 months before the final patch is
delivered. At that point:

1) management congratulates themselves for having bought support.

2) Your colleagues however are in awe about you've got actually managed to get
an enterprise vendor th actually fix a bug. Turns out they have tons and tons
of bugs and spend their days inventing horrible workarounds as they gave up
getting them fixed long ago.

3) Contractors from the enterprise vendor, working on another project in your
company will turn the feature off, as they know for sure it can't work. If you
claim to have a patch and it is already running on their servers, they refuse
to use it and turn the feature off once more. Not using the feature costs a
small fortune in network overhead, BTW. If you enable it, the next coontractor
entering the building will disable it instantly, even if your config file has
this story documented.

Anyway, thats my experience. YMMV.

~~~
hyperman1
Hey guys, i was a bit frustrated and venting. It scares me to see this post
reach 4 points in such a short time. We all feel lik this once in a while, but
this particular piece of drivel isnt worth much points. Please spend your
points on a more worthwile post ;-)

------
ece
There's really only one, possibly two saviors of Java. Redhat with
JBoss/Icedtea, and OpenJDK, which has IBM, Redhat, Oracle and Doug Lea at the
top level. I don't see any great examples of building successful open source
communities from IBM, but open sourcing OpenJ9 earns them some good will.
Short of OpenJDK being adopted by Apache/Mozilla/etc.. (Oracle will let this
happen after hell freezes over..) Java really has only one savior.

Redhat is skipping the minor Java versions, so it's Icedtea/OpenJDK build has
Java 8, and the next version will have Java 11. This is what I'll be using on
Linux.

~~~
Sindisil
"I don't see any great examples of building successful open source communities
from IBM, [...]"

What about Eclipse?

Love it or loathe it, it's certainly been successful.

~~~
ece
Sure, apart from their attempt to control the Java ecosystem being that old,
it doesn't leave me with confidence that they are as committed to open source
as Redhat.

This sounds harsh, and I don't mean to be, but only time will tell how
OpenJDK/Open J9 fares.

------
djsumdog
So would the Docker OpenJDK containers be equivalent to your distros OpenJDK
build?

[https://hub.docker.com/_/openjdk/](https://hub.docker.com/_/openjdk/)

I assume so since they're maintained by the Docker community in the same way
Debain or Ubuntu may maintain their package trees.

~~~
kam
These Docker images use the Debian or Alpine OpenJDK packages.

------
Jonnax
So apart from Java and .NET what other high level languages are there that
have gained traction to near the extent of these two?

I must say that Oracle makes me hesitant to want to use Java in anything I'd
make in my free time.

~~~
sheeshkebab
Go lang... although google is driving that one and it’s dependency management
is a mess, so pick your poison.

~~~
mmargerum
Go 1.11 added "modules" support.

[https://golang.org/doc/go1.11#modules](https://golang.org/doc/go1.11#modules)

------
exabrial
This is great! Competition breeds excellence; I'm glad we're going to have _a
lot_ of new distributions.

------
jarofgreen
> Note also that certification is currently on a trust-basis - the results are
> not submitted to the JCP/Oracle for checking and cannot be made public.

Not public? Why on earth not?

------
greatquux
But what about supporr for the JRE? Please help a sad IT admin understand
what's gonna happen.

~~~
pjmlp
JRE is on its way out.

Thanks to Java modules, jlinker and packager tool, the idea is that you just
distribute everything together.

~~~
jirkapinkas
Except on server. JRE on server will still be a thing (at least in forseeable
future).

[https://blogs.oracle.com/java-platform-
group/understanding-t...](https://blogs.oracle.com/java-platform-
group/understanding-the-server-jre)

~~~
pjmlp
Nothing prevents you to deploy everything together.

We have done it multiple times.

------
mnd999
I tend to go with the Oracle VM because of the profiler (Java Mission
Control). Does OpenJDK now have a credible alternative?

~~~
the8472
They have handed JMC over to OpenJDK and it is open source now.

[http://hg.openjdk.java.net/jmc/jmc/file/31576d187ec3/license...](http://hg.openjdk.java.net/jmc/jmc/file/31576d187ec3/license/LICENSE.txt)

------
csdreamer7
How much of the entire Java api is under the GPL?

I get mixed messages on OpenJFX on how much of JavaFX has been open sourced.

~~~
kjeetgill
All of it. I'm not familiar with OpenJFX but JavaFX has always been in the
GPLd OpenJDK.

------
samueldavid
can we fork OpenJDK?

~~~
exabrial
Yes.

~~~
Bjartr
Without getting sued by Oracle?

~~~
J-Kuhn
That's something nobody can be sure it won't happen.

OpenJDK is open source (GPL2 + classpath exception).

"Java" otoh is a trademark.

