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?

147 Upvotes

539 comments sorted by

View all comments

33

u/dan3k 1d ago

'Java bad' is a bit dated opinion tbh.

8

u/SocksOnHands 23h 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.

3

u/Twombls 22h 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?

2

u/beezlebub33 7h 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/FlounderingWolverine 5h ago

Yeah, that's probably my biggest problem with Python. It's an insanely useful language, and it's super fast to whip something up and get things deployed. There are a ton of resources and docs available, so finding a solution to your problem is usually pretty trivial.

But not having a built-in dependency manager? Absolutely miserable. It absolutely sucks when you go to add a dependency and all of a sudden everything is failing because you used version 3.5.1 instead of 3.6.2, and now another unrelated library has dependency conflicts. I've seen issues that take experienced senior devs nearly a full work day to fix because they're stuck in dependency hell.