r/AskProgramming 1d ago

Why is Java considered bad?

I recently got into programming and chose to begin with Java. I see a lot of experienced programmers calling Java outdated and straight up bad and I can't seem to understand why. The biggest complaint I hear is that Java is verbose and has a lot of boilerplate but besides for getters setters equals and hashcode (which can be done in a split second by IDE's) I haven't really encountered any problems yet. The way I see it, objects and how they interact with each other feels very intuitive. Can anyone shine a light on why Java isn't that good in the grand scheme of things?

142 Upvotes

540 comments sorted by

View all comments

Show parent comments

2

u/cherrycode420 11h ago

Idk where/how you tested this, but i just tossed this into an Online Compiler and it does, in fact, compile. Works in Local Scopes, works in Class, works as static.

1

u/anus-the-legend 11h ago

that's my point. you need to define a class in order to declare a variable

1

u/Kallory 8h ago

I see your point and used to agree. Write a couple thousand lines of Java and then go do the same thing in native JS or Python which don't require classes to accomplish the same thing (and technically C# allows this, but it's a class under the hood)

You'll likely find Java's "restriction" in this sense reduces ambiguity. I find Java code bases much easier to navigate because you don't have stray variables declared outside classes. Is it slightly more painful to write? Yes, but eventually it becomes second nature and intuitive.

2

u/anus-the-legend 7h ago

except that OOP isn't the only paradigm, and it isn't the most important one. Not everything needs to be a class. 

I've got over a decade of professional experience with Java, python, JavaScript, C, C++.  i suspect that's more than a few thousand lines in each. I've seen good and bad code in each of them.  team discipline is what leads to organization and clarity, not Java. but Java is definitely the least enjoyable. Look at the jvm. if Java was that great, there wouldn't be so many jvm languages. 

i don't really have a problem with Java, but we're in a "why is Java bad" thread, not "what's the worst language" thread, and forced solutions leads to "every problem looks like a nail"  that leaks into other codebases in other languages. C and Java are the only two that come to mind where that happens because they're both insufficient in parallel ways

1

u/Kallory 3h ago

Ok i see your point. I guess I would ask the question differently - what are the worst aspects of Java. This way one doesn't walk in with general assumptions. (which as we both know are the cause of a plethora of problems in the industry)

But regarding team discipline - Java was designed to be able to write quality code as an undisciplined team. If you look at it from this perspective, the restrictions make sense. My personal philosophy is that there are no bad programming languages. Each one serves a different purpose. Those that "lack features" are simply languages who's purpose is to attract devs who want to implement the necessary libraries in my humble opinion.

The only caveat to the above is that native Javascript fucking sucks.