- Alright, so which Java Development Kit version
do you need to instal and use as a developer,
and also, do you have to pay to use it?
Let's talk about that in today's video.
(upbeat electronic music)
Alright, so welcome back, thanks for watching,
and let's go through this in order.
So I'm gonna start back at JDK 8.
Now, that was the first that Oracle brought out in 2014,
and that was their long-term support version,
so if you started back around 2014,
you saw that JDK 8 was updated for years,
and in fact, there's still updates available,
but basically, that's now changing.
JDK 11 is the version now that Oracle is telling us
is the long-term support version.
So in other words, that's gonna be supported
until at least 2023, and probably longer than that.
But where it gets confusing is that
this is long-term support version, version 11,
but they're also releasing a version
of the JDK every six months,
and, in fact, I'm recording this in March 2019,
JDK 12 has just come out,
and what's confusing about this release schedule
is every six months they're releasing a new version,
and the version prior is basically expiring
and no longer being supported
with no updates coming through.
So this makes it quite confusing at first glance
as a developer to try and figure out
which version you should be using.
Now, the next long-term support version of Java
is currently, they're saying it's Java 17,
or JDK version 17,
and by my calculations,
that's not gonna be released till September 2021.
So basically, every new version of Java
that's coming out between now and September 2021
is going to be a version that expires in six months.
So consequently, it's my opinion that most companies
won't adopt these interim versions
unless there's a specific need for a specific version,
a specific piece of functionality in that version.
What they'll do is they'll stick to
the long-term support version,
which is currently version 11,
then perhaps in 2021 in September,
when version 17 of the JDK comes out,
they'll then update to that.
Now the reason for that, for sticking to JDK 11,
is that if you move to JDK 12,
because of the lack of support,
because there's no more updates,
particularly security updates,
that's gonna be a risk for companies.
So basically, if you start using JDK 12,
you really are having to commit
to update your software every six months,
basically before the support expires,
and before there's now no longer any future updates.
So from a company's perspective,
if they've got a large team of people
and a large investment in a particular version of the JDK,
they generally don't want to update
on such a sort of quick release date,
because even though it's six monthly,
for a large application,
that would be considered quite a short period of time
to try and keep things updated,
because the whole thing is,
with the JDK's updating on a regular basis,
things are changing,
and it could be quite hard for a company
to adopt that stance,
and in fact, that's why Oracle have committed
to a long-term support version of the JDK.
They recognise that it's a considerable investment
for some companies to update their software at all,
and they why they're committing to JDK 11 for the long-term.
So for that reason, I'm gonna recommend that,
generally speaking, that you stick to JDK 11
until such time as the next long-term support version,
which in this case, currently,
as of the time I'm recording this,
is JDK 17 comes out.
And that's gonna stand you in good stead,
because that's gonna be the version that a lot of companies
will be adopting and using,
and obviously, if you are familiar with that version,
that'll go well if you're looking
for a Java, basically, to work with.
Now the other thing to keep in mind here with this anyway,
is that it's likely that some of these changes
that are introduced in JDK 12, 13, and beyond,
they'll probably be rolled back into JDK 11
at some point anyway,
so in other words, it'll be updated at some point anyway,
because if you look back to JDK 9 and 10,
those features in JDK 9 and 10
were rolled into JDK 11 anyway.
So the point of all this is that it's probably good,
in my opinion, if you're a developer,
to actually stick to using JDK 11 for the long term,
unless you've got a specific reason, specific feature
that hasn't been updated in JDK 11 yet.
And now, the other thing is I wanted to introduce,
I talked about it at the start of the video,
as a developer, which version should you use,
because there's two versions of the JDK,
we're not talking version numbers here,
I'm talking the actual products.
We've got Oracle's official version, the JDK,
and there's also an OpenJDK.
Now, you can use either of those as a developer,
but there are ramifications if you're a company.
Now, from a developer's perspective,
you can download the Oracle version
of the Java Development Kit totally free of charge,
there's no licencing constraints
if you're using that version to develop
and test your applications,
so basically, no problem using that.
But if you go to deploy that application,
the company, technically, the company
who you're deploying the application to,
will have to pay to use the JDK.
This is the Oracle version.
However, if you go to the OpenJDK,
that's basically an open source product,
so JDK 11, Oracle are now releasing that as open source,
and it's virtually identical in features
to the Oracle version.
So in my opinion, there's really no reason
for you to have to use the Oracle version
unless you're writing software for a company
that doesn't like to use open source software,
or as a support contract.
If already got support contract with Oracle,
and they're paying for Java anyway,
there's no reason for them not to use the Oracle version,
so basically what I'm saying as a developer,
stick to the JDK version 11,
and you probably can stick to either version,
either the Oracle version,
because it's good practise to use that, to instal that,
because that's what you'll likely see at a large company,
but you can just as easily use the OpenJDK version as well.
Now, just another final quick note, if the OpenJDK,
sorry, not with the OpenJDK, but the other version,
the Oracle JDK version,
companies will need to pay for that, as I alluded to,
and currently, Oracle's pricing model
is basically per server, per CPU,
so what they're trying to do is sort of,
for enterprise customers, you've got,
you know, a server with lots of CPUs that charge,
I think it's around $25 a month per CPU
from off the top of my head, that's the licencing agreement,
but that licencing is all done through Oracle anyway.
So, to be totally free,
I would suggest to stick to the OpenJDK, it's open source,
and it's practically identical to the Oracle version anyway.
Alright, so JDK 11 and OpenJDK would be my recommendations,
but of course, as a developer,
you can also use the OpenJDK,
sorry, the Oracle JDK,
quite confusing to keep up with these terms,
because you're a developer, you're free to use that to test
and develop your applications.
Alright, so hope that's given you some ideas and what to do,
and I look forward to talking to you in another video.
Alright, so thanks for watching,
if you've got questions, leave a comment.
If you're ready for the next programming specific video,
click on the link up here
in the top left-hand corner of your screen.
To look at non-coding, program-related questions,
click on the link down
in the bottom left-hand corner of your screen.
Feel free to subscribe by clicking on the link up here,
and I'll see you in another video.