loading...

Why do beginner hate Java so much

ryboflavin42 profile image Ry ・1 min read

I'm getting to the point where I can start being considered an old guy. My primary language is Java. The more I engage with the community, the more I find dislike and frustration with Java. To me, it was my first serious language and I found it great as it told me everything I wanted to know about the new APIs and third-party libraries. It also didn't devastate my global environment by installing third-party libraries as would Node or Python. It's all a binary that you add to a classpath instead of installing it to the OS.

Working with JavaScript and Python I'm mostly frustrated by

  • magic string configurations
  • not knowing what is being passed into and returned by APIS
  • and not being able to trust third-party libraries

I'm curious

  • What frustrates you most about Java?
  • What frustrates you most about learning Java?
  • What is your perception about Java?

I'm really starting to think that it just needs an image overhaul on how you learn it and approach? I ask my self, would could I create to show its versatility and effectiveness as a backend language.

Posted on by:

ryboflavin42 profile

Ry

@ryboflavin42

At my core I’m a problem solver from business to personal. I’m here to help engineers improve their lives.

Discussion

markdown guide
 

I've only used java once in my life and that was enough to develop an irrational hate. That was shortly after i learned C.

The most annoying thing was that the smallest unit was a class. When you just want to write little things it looks "noisy".

As a beginner i thought that you really really needed an IDE to write java, so the idea of a programming language that "made me" use an IDE was awful. Having a crappy laptop doesn't help either.

The last thing was the bad apples of the local community, they were too loud and too arrogant to even consider approaching.

 

I second the "noisy" notion. I used to complain that it was so "chatty."

 

I also learned on java, but there was a twitter chat about this that was enlightening. Building and running Java requires more know how than other languages. There is more to learn and do know. New learners are put off by how verbose it is (I consider that a feature) versus more “readable” languages.

 

Everybody hates what is popular and working.

Anyways, JAVA was horrible pre-JAVA 1.5 (around a decade ago). Annotations were a game-changer, so we don't need a lot of XML to configure something.

Also, JAVA got a bad reputation because of EJB. And surprisingly, EJB is not as hard (if we use annotations). In fact, they are quite easy to understand.

Also, newcomers are stunned with "shiny new stuff." I, as an engineer, I like new technology, but some of the latest technology is "more of the same but complex, slow and hard to master." They (newcomers) don't pick a technology because it's the best for the job, they choose because it's new. It is faux thinking but it's their decision.

 

As a web developer I have no reason to learn Java, there's Vue.js, React, etc for the front-end and Laravel, NestJS for my back-end. Do I want to make a mobile app? Then I'll pick Flutter. An other reason I haven't dug into Java is due to the lack of modern resources/tutorials.

 

Long ago when I was younger, java run-time was like a shitty thing that you have to tolerate with in windows taskbar.

Oracle do not allow us to download java, neither JDK nor JRE cause It follows U.S trade policy, and do not let Iran IPs reach it and download.

Long ago we used to use VPN to download the shitty language runtime but now with a FORCE register and download, It's almost impossible.

Yet I can declare myself as an old guy too, cause I found some interest in Java lately, yet I swear to God, I won't use Oracle JDK nor JRE but I shall use openjdk for development.

Deciding between C or Java I would 100% go for C, but for other languages I think Java is a better choice.

 

Hey you are same like me, my main Programming Language is Java and I am also not able to understand why people hate Java and why not people building the applications of now a days using Java and I also do not understand why JavaScript despite of being unstable has taken most of the Heat.

I am a fresh graduate and I have completed my Final Year Project in the Java and Angular. I like Angular as it is quite similar to the Java and Doing object oriented programming in Angular is very easy.

I also have worked with Hibernate as well. So I love Java too.

 

Working mostly as web developer sometimes implementing ML and CV stuff I also haven't had the need for using java, all I need is nicely covered with Python and Node, I even used Golang with very good results.

Futhermore I don't have any desire to use Java, I had to learn some while at the University for tweaking some of Matlab's inner functions for a project and I hate it!

 

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.

 

What frustrates you most about Java?
lack of support for longs as array indexes. Not in big demand for some, but I want it.

What frustrates you most about learning Java?
this would be difficult to answer honestly since I have been learning it since the beginning. Learning it from the beginning I don't think would be the same as learning it now in 2020 as it was starting with JDK 1.0. Historically speaking, the language itself was easy enough to learn (I knew C/C++, LISP, Prolog and other languages already). Many "issues" I had work worked out along the way as Java evolved like any language.

What is your perception about Java?
It's a good language. It's not vastly different from most languages containing all of the usual same constructs, variables, loops, conditionals, etc.
Much of the value of any language is in it's community and available supported libraries. Having access to a myriad of databases, image libraries, and so forth is available in Java. Some languages, while cool, may not have libraries to do complex things forcing you to invest and write those libraries yourself. With Java, I can download matrix multiplication libraries that will take advantage of multiple cores. This isn't to say that other languages have their own library support. Python has much. Javascript getting better.
All languages evolve. Java has had it's issues, many resolved, some not, but so do they all.

Exciting new things in Java? See: graalvm.org/

 

I feel like there was not enough friendly beginner material on Java back then when i started learning java, no amount of books introduce me to the language properly i don't know if i was too dumb enough to understand the language but i plan on going back to re-learn it.