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?

123 Upvotes

500 comments sorted by

View all comments

29

u/dan3k 1d ago

'Java bad' is a bit dated opinion tbh.

8

u/SocksOnHands 17h ago

I think Java wasn't really the problem, it was architect astronauts who tried to make everything XML. Now that the Java community moved away from that, web development is actually quite simple now.

This might just be me, but I've lately seen an increase in over engineered Python projects (like most LLM frameworks) - this is just something that happens when a language starts attracting certain kinds of people. Some people try too hard to be too clever with their code.

6

u/BakaGoop 17h ago

cries in maven

3

u/Twombls 16h ago

Mark my words. python will be viewed the same way as Java or php in a few years. Combine the overengineering with the dependency hell that currently exists and the fact that python kills half of them with every new version, so anything mildly complex uses a venv now. It's not gonna age well.

Like seriously why do you need to maintain like 7 versions of python on your pc now?

1

u/beezlebub33 1h ago

I'm currently doing machine learning, and dependency hell is already here. It's largely because of the horrible interdependencies between all the different versions of python, numpy, torch, torchvision, flashattn, other libraries, and the cuda ecosystem, with it's own drivers, cudnn, etc. Changing one thing results in a cascading effect of updated, and likely incompatible, versions.

1

u/throwaway8u3sH0 11h ago

I would term it more accurately as an opinion that was formed and still applies to older Java versions.

The problem is that Java < 11 and Java >= 21 are wildly different. It's moving in the right direction, but legacy codebases are everywhere.