DEV Community

Discussion on: Why do beginner hate Java so much

Collapse
 
ranewallin profile image
Rane Wallin

I like Java, but I think there are some challenges with it.

The most popular version of Java is v 8, but the current version is way past that. They are up to Java 13, with 11 being the current LTS release. A lot of institutions are still teaching Java 8, though. This becomes problematic if you decide to installed the current version, because your old code simply will not work.

A lot of things people are learning now are no longer in the current version, or are in it in a very different way (JavaFX for instance). It's different enough to make the transition difficult, especially when Java 8 is still the standard at so many places.

Also, Java just isn't great if you want to make nice GUIs unless you have very good interface design skills AND coding skills. Any .NET language with VS as the IDE will get you much nicer GUIs with far less effort. And, if you like Java you can use C# with is almost identical.

Another reason people don't like it is that Java is strictly typed, which can be annoying if you are used to a language like python or javascript.

The awesome thing about Java is that it is very much an object oriented language. For the most part, it does an excellent job of abstracting the what from the how. Those features, though, can be hard to learn in the beginning and may push people away.

Collapse
 
stamanker profile image
Maxim

Your old code will work on newer Java.

Collapse
 
khmarbaise profile image
Karl Heinz Marbaise • Edited

If your code does not work on newer java version you are doing very strange things... I used code which was written with Java 5,6 and works without any issues on JDK11, 12, 13 etc.

Also, Java just isn't great if you want to make nice GUIs unless you have very good interface design skills AND coding skills. Any .NET language with VS as the IDE will get you much nicer GUIs with far less effort. And, if you like Java you can use C# with is almost identical.

If you have to do GUI's today you do WEB or you use JavaFX or other things like Vaadin. It's much powerful then you think. If you use C#, .NET you are limited to be running on Windows only..which is usually a bad thing...

Another reason people don't like it is that Java is strictly typed, which can be annoying if you are used to a language like python or javascript.

The strict type systems is in the end a safety net which helps a lot and prevent issues which you have to cover on top via Tests in Python, Javascript (Typescript?)...

Collapse
 
ranewallin profile image
Rane Wallin

This is simply not true. Java 9 introduced breaking changes.

theregister.com/2019/03/07/java_de....

Thread Thread
 
khmarbaise profile image
Karl Heinz Marbaise • Edited

What exactly you are referencing to? The module system? The module system is opt-in so if you use it then yes that would break more or less all apps, but no library etc. is using it so keep your java on classpath and it works as before ...

Update: In 2020/2021 some libraries have begun to use the module system...which takes time as expected...

Furthermore if you are referencing on the small changes which could cause breaking your code then I quote myself:

If your code does not work on newer java version you are doing very strange things... I used code which was written with Java 5,6 and works without any issues on JDK9,10,11, 12, 13 etc.

The majority of those changes have been deprecated for more than a decade ... and produce warnings during the builds (compiling) Ok if you ignore such things? Ok... then you have a problem...

I've migrated a lot of projects from JDK4,5,6,7 to JDK 8 and afterwards to JDK 11 and we had exactly 3 such cases using deprecated code of the JDK .... so where is the problem?...If would start to blame someone I would blame the original developers to use deprecated code or even worse not cleaned up the code after years...