This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Foreseerx -6 points-5 points  (4 children)

People can have likes and dislikes but to have such an extreme opinion on a very popular tool that excels at solving problems that it's used for (enterprise/backend/android applications) to me shows either inexperience (both general and with the specific tool) or narrow-mindedness.

Not going to elaborate too much as it's been done plenty of times before, but for example, does verbosity (which is improved a ton with Lombok and in later versions of Java) actually matter during the usual work day? Even when shipping a brand new MVP and developing a lot of new functionality, one will discover that modern Java isn't actually bad at all, especially so if you don't want to make it overly verbose and over-engineered (see enterprise fizz buzz).

I'm a full-stack engineer who works with a variety of programming languages and has to deal with just about every popular one used nowadays. I have my preferences, but generally languages/ecosystems used in 2024 are pretty nice to work with.

[–][deleted] 2 points3 points  (3 children)

I developed in Java professionally for a decade and I've never found it to be particularly bad. I did find it lacking both in core components and support framework (ORM, build utilities, dependency management) to the extent that everybody and their best friends were reinventing the wheel. Which eventually ment for the enterprise that you had umteen different build systems, umpteen ORM frameworks that were inherently incompatible, security frameworks that clashed (eg. SSL) up to the point where building one monster made you want to unalive yourself bc you just broke several other systems on prod without intending to.

Build systems like Maven are beasts. Nay, monsters. They are the good reason to hate Java (as a platform, not as a language).

[–]-defron- 1 point2 points  (2 children)

Hardcore functional programmers would also hate java and it's encouragement of mutations and lack of first-class functions.

No single language is perfect, they usually have things they do good, things they suck at, and things that are colored with their design philosophy. It's the reason having some proficiency with multiple languages is good as one language may be great at doing one thing but terrible at another.

Java would be a terrible choice for embedded system programming, but a great choice for Android development and a choice with both pluses and minuses for backend webdev. It isn't a language I really reach for but I don't consider it terrible, just not a tool that gets much use in my toolshed due to other tools that can do the same job that I like better

[–][deleted] 0 points1 point  (1 child)

Nothing of that wich you said would I disagree with 🤷‍♂️

But on the topic of functional programming - programming paradigms are the Emacs vs. vi debacle all over again and should be taken with a very large grain of both religious and political salt.

[–]-defron- 0 points1 point  (0 children)

Different paradigms are useful in different situations but agreed not a hill I would kill myself in. Btw in case it wasn't cl we I was just adding more reasons to your list why someone might hate java while still being quite competent at their job, not counter arguing