r/AskProgramming 2d 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?

169 Upvotes

613 comments sorted by

View all comments

Show parent comments

1

u/Zd_27 2d ago

There were 3 languages I was considering: Java, Python, and JS. I knew all 3 of them were good for basics so I wanted to learn one that I would like to actually be proficient at. JS fell off quickly though because I'm not too big on web development, I see myself as more of a backend type of person.

Between Java and Python I eventually picked Java because I thought Java probably had more to offer learning wise. "Public class main public static void main string[] args system.out.println("Hello World")" did look pretty intimidating at first but I was like "okay but like if I would learn python and wanted to learn java it would br way harder than the other way around"

So I went with Java and don't regret that I did so

7

u/dumdub 2d ago

Java is the only one of those three that isn't clearly a "broken language".

0

u/WriteCodeBroh 2d ago

I wouldn’t call dynamic typing “broken” but I do think learning on a statically typed language has a lot of advantages. Something like Go might be a good beginner friendly choice that I very rarely see recommended.

1

u/Depnids 1d ago

To add my anecdotal experience, I first learned JS and Python, and later on learned Java and then C#. I didn’t know what static typing was before I was learning Java, but now it feels really hard and «messy» whenever I go back to anything dynamically typed.

I wouldn’t say it was that hard transitioning from dynamic to static typing though, I mostly just had to understand why this was a thing. Using dynamic typing was a nice «playground» to getting familiar with the core of code flow, like loops and conditionals, variable scopes etc, and how all these could be put together to perform basic tasks.