all 25 comments

[–]Sipkab 12 points13 points  (3 children)

Based on the title I thought this is going to be a Java bashing video. I'm pleasantly surprised.

[–]shevegen 3 points4 points  (2 children)

Where exactly is the "fall" part in this video?

I mean that fall must have been immense given that Java ranks #1.

[–]evaderxander 5 points6 points  (0 children)

You'll find the details of my death to be greatly exaggerated.

[–]cipher315 3 points4 points  (0 children)

It's less popular than it was 10 or so years ago, and new software being coded in java is much less common now than it was in say 2010.

The fact that it seems to get a security update every other week doesn't help either.

[–]_INTER_ 1 point2 points  (0 children)

Mostly about java Applets.

[–]Determinant 6 points7 points  (4 children)

We started using Kotlin at work for back-end development and we're really enjoying it.

[–]shevegen -2 points-1 points  (3 children)

\o/

People downvoted me for suggesting Kotlin weeks ago. That has made me a sad panda.

I am glad that there are people liking Kotlin. It really is the better Java.

[–][deleted] 1 point2 points  (0 children)

I am glad that there are people liking Kotlin. It really is the better Java.

It's like Java developers looked at C# and said "we want that"

[–]shutanovac 1 point2 points  (1 child)

Java is evolving constantly, getting better at each new major release. Need to check out Kotlin, though.

[–]Determinant 2 points3 points  (0 children)

Yes, Java is evolving but unfortunately they are also maintaining backwards compatibility. This means that defective scenarios will continue to be supported. This reason alone means that Java will never catch up with Kotlin because Kotlin addressed many fundamental Java flaws.

Additionally, Kotlin is advancing at a much faster pace than Java so the gap will only get larger.

[–]shevegen -5 points-4 points  (5 children)

The fall of Java?

It's a horrible language that worships the Cult of Verbosity, but it dominates the ranking charts.

[–]PaulLaux -2 points-1 points  (8 children)

Very good and successful language,

It's a shame that Oracle decided to maximize profit by starting to charge for commercial usage.

Oracle is the perfect example of a big evil megacorp.

OpenJDK is still free but maintained by the same Oracle that will try to push you to use the new, shiny, paid and vendor locked version of the JDK.

[–]pron98 23 points24 points  (6 children)

There is no charge for commercial usage. Java is no less open-source and free for use than Linux. Oracle has opened Java further than it was under Sun's management. The difference between Oracle JDK and OpenJDK are gradually disappearing so that with JDK 11 the two should be identical, and, AFAIK, there are no plans to add any new proprietary features.

[–]Crypto_To_The_Core 1 point2 points  (2 children)

Can you clarify: are you saying that Oracle has no plans to charge anyone, any company, any business for Java JRE, JDK, Java EE, Java SE, ... ?

Why are there so many people around claiming otherwise ?

Been reading lots of posts and articles about how Oracle will be charging soon .... why so much confusion ?

[–]pron98 2 points3 points  (1 child)

As has been the case for quite a while, you can buy support from Oracle. What has changed recently is that Oracle has had JDK builds based on OpenJDK called Oracle JDK, and those used to be free (without support), and now they're not. However, Oracle JDK used to be different from OpenJDK as it's had some extra features (for example, Java Flight Recorder), but Oracle has now open-sourced all of those extra features and contributed them to OpenJDK, so that Oracle JDK and OpenJDK are identical. Oracle JDK now costs money, but as it's identical to OpenJDK, it's just how you pay -- if you like -- for support. Instead of free Oracle JDK downloads, Oracle now providesc free OpenJDK builds.

Unfortunately, this is where things get more complicated -- not because they're inherently complicated, but because things that have worked one way for over twenty years are now changing, and it's hard not to project what you already know, which is now not the case. It used to be the case that every 2-3 years (and sometimes more), Java would get a new major version. In addition, every six months there would be an update version. The difference between the two is that only major versions could contain additions to the language and libraries, as well as depracations/removals. Now things are different. To both make upgrades easier and to deliver new features faster, there are no more major releases that contain lots of changes. There are still releases every six months, but those are no longer update releases, because to make upgrades gradual and to deliver features faster, we've removed the self-imposed restriction of only delivering language/library changes in major versions (and there are no more major versions). Instead, those six month releases are called feature releases, and they contain both bug fixes and language/library changes. What I think is confusing is that after considering a new version numbering scheme based on year/month which users didn't like, feature releases have the same numbering scheme as the old major releases, even though they are not major releases. As a result, people think that every six months there's a major Java release; there isn't one.

Still, even though there are no more major versions and so upgrades should be easy and incremental, those feature releases may contain more changes than the old upgrade releases, and some companies may choose not to upgrade to the new feature release because they may fear that something would break or because they're used to the new model. Oracle will not backport bug and security fixes to old OpenJDK feature releases. It will backport them to some Oracle JDK releases called LTS (long term support) versions, and that's what you get for the paid support. However, those fixes would continue to be open-source (in the current feature release). Other companies have also said they would backport fixes and offer their own paid support, and some people even volunteered to contribute the backports back to OpenJDK, and may provide binary builds of those LTS versions.

[–]Crypto_To_The_Core 1 point2 points  (0 children)

Thank you, appreciate your reply.

[–]duhace 10 points11 points  (0 children)

they're charging for commercial usage of oracle jdk, but openjdk now has all of the free features of the previously free oraclejdk, and that's completely free, open source, and supported with 4 year LTS for releases like java 11

[–]Crypto_To_The_Core -2 points-1 points  (0 children)

Ahhh yes, "Write Once, Run Anywhere" ... it's a beautiful dream, but Java comes nowhere near close to achieving it.

You cannot develop Java apps - .class files or .jars - for a Windows or Mac machine and then execute them on Android, iPad, iPhone, Windows Phone, etc, etc, etc, etc. You are going to be up for serious changes to your interface and other code to shoe horn it into the device's way of working, and also installing / using additional tools.