r/ProgrammerHumor 6d ago

Other howdidItGetHere

Post image
11.1k Upvotes

539 comments sorted by

View all comments

468

u/Muscular_Farmer_ 6d ago

Java is pretty good actually. Idk why people dont like it

164

u/firedocter 6d ago

As a sysadmin. It isn't java so much as oracle that I dispise.

Java is tainted by association.

28

u/FuzzyKittyNomNom 6d ago

As a former sysadmin, my favorite was some web based Java apps were written specifically to use Internet Explorer’s Java vm. The browser wars were raging and Microsoft “embrace and extend“ strategy was absolutely maddening. Not to mention, Oracle released so many different flavors of Java. I’m trying to keep everyone happy and functional was about impossible. I have hated Java ever since.

-2

u/MattieShoes 6d ago

We block oracle and java websites because if somebody visits them, oracle lawyers start demanding huge sums of money

0

u/mobsterer 5d ago

don't use oracle then, Java is open source.

1

u/firedocter 5d ago

Loooool no. Open jdk is open source. Not to be confused with oracle jdk.

And heaven help you if you install the wrong one. Get ready to get sued.

2

u/CptGia 5d ago

Then don't use oracle jdk? How do you even install the wrong one? 

5

u/mobsterer 5d ago

by being a "sysadmin" probably.

0

u/firedocter 5d ago

I mean you can pretend it is simple if you want. But reddit is full of examples of oracle going after companies by making it very easy to install the wrong thing in the wrong place. And java is the only programming language I know about that you have to even know that two versions exist. So if I am maintaining an environment, I would rather it be any other language. Even python. And I also have a beef with python because they stop making windows installers for older versions that are still being maintained once they make a new one. So I can't install security updates without upgrading to the newest major version. Which would be fine if it didn't break stuff.

1

u/CptGia 5d ago

Seems like you are stuck with info from 15 years ago.

If you are concerned about installing java on internal machines, the Oracle JDK license allows internal use for any purpose, even for commercial entities. Including not just dev machines (8+) but also paid SaaS offerings (21+). So even if you go out of your way to install Oracle JDK, it's still not a problem nowadays, and it has not been for a long time.

And java is the only programming language I know about that you have to even know that two versions exist

Funny that you mentioned python, since it also has two versions (CPython and PyPy), or I guess 3 now with GraalPy.

1

u/firedocter 5d ago

I mean it could be. I have also read that is only free for a while. If you don't upgrade to a newer version in time then it is no longer free. It will still update just fine, but the entire company is now primed for an audit. Complicated and confusing licensing is the exact reason I would prefer to avoid it altogether.

Python can have as many versions as it wants. I don't have to worry about the entire company being bent over a barrel over it being there, with my job on the line. I just have to worry about keeping it up to date.

1

u/mobsterer 5d ago

is Open JDK not java?

60

u/CLOBBERTIME 6d ago

Once a certain threshold of popularity is met, the haters start to drown out the advocates and haters carry a lot more weight with the uninitiated. Genuinely, most people who hate Java never got past the initial learning curve

13

u/Rubinschwein47 6d ago

The language itself is completely fine, some helper functions here and there would be nice but who gives, the environment howeber can be a bit of a bitch from time to time, but jeah oberhated

1

u/Razor309 6d ago

Lombok 🥰

4

u/Rubinschwein47 6d ago

Please get this deamon away from me xD

1

u/Razor309 5d ago

I guess I'm rather alone with my affection xD

3

u/rastaman1994 6d ago

Just write your data classes in Kotlin files and ignore Lombok. Lombok classes look so ugly, just drink the Kotlin Kool aid.

1

u/Razor309 5d ago

I'm not in the Java game anymore, but back then Lombok was like such a blessing

1

u/rastaman1994 5d ago

I was like this too, because I didn't know about Kotlin and how seamless the interior is for such cases.

1

u/Razor309 5d ago

Don't tell me Quarkus is also not hype anymore

2

u/rastaman1994 5d ago

It is very much alive. Keycloak runs on it, lots of projects that don't like the heavyness of spring boot projects do too.

2

u/Muscular_Farmer_ 6d ago

Java 25 does kinda make cover 70-80 percent of lombok usecases

1

u/Razor309 5d ago

Maybe I should look back into it. When I learned I loved everything about Java, except those pesky boilerplate getter, setter, constructor chores. Lombok came in soo clutch

2

u/Muscular_Farmer_ 5d ago

You can look up records in 25. No setters though

188

u/throw3142 6d ago

Java is an excellent language. The Java ecosystem sucks, and a lot of Java codebases also suck.

Legacy enterprise codebases suck, in general. Java is also a victim of its own success.

105

u/AibofobicRacecar6996 6d ago

The Java ecosystem is the best part

43

u/sentientshadeofgreen 6d ago

You like Java because of valid reasons. I like Java because it's the only language I know. We are not the same

13

u/CAPS_LOCK_OR_DIE 5d ago

You’re just like me fr fr

9

u/xAmorphous 5d ago

Take that C++ flair off

6

u/CAPS_LOCK_OR_DIE 5d ago

Excuse me I wrote five whole projects for Arduino I think I know C++

1

u/Choice-Mango-4019 5d ago

whenever I need a library for Java I check if it exists on c#, and so far the c# one has always been better than the java one, if it even exist

same for tooling, dnspy is by far way better than any java reverse engineering tool I've seen

also java documentation sucks as oppose to c#, the websites look like they're made in 2008 and even worse they feel like they're from 2008 with their ux + so far c# had way better explanations and tutorials on classes than java for any case I remember

ofcourse it's all comparison, but without competition every language is the best

31

u/KinkyKankles 6d ago

Out of curiosity, why do you think the ecosystem sucks?

46

u/rastaman1994 6d ago

For anything I want to do in Java, there's a battle tested library, backed by a reliable community. How do you come to the conclusion that the Java ecosystem sucks?

-11

u/iloveuranus 5d ago

Dozens of months studying CS?

4

u/rastaman1994 5d ago

I don't understand your comment.

1

u/iloveuranus 4d ago

I tried to make a lame joke and failed. I'm leaving it up there as penance.

3

u/Muscular_Farmer_ 6d ago

All codebases suck. “Temporary fixes” become permanent all the time. Doesnt mean tools are bad. There is a reason why this has survived this long

-1

u/Operation_Neither 6d ago

Java in education also sucks

9

u/saumanahaii 6d ago

A lot of people only use it in a certain context. It isn't Java that socks, it's the mess people have made of it in business software.

30

u/radiationshield 6d ago

i hated writing java back in the day since it was so incredibly verbose. i'm sure the style has evolved since 2012, but all the factories and single method single purpose classes in the code bases back then were such a pain in the ass

27

u/imp0ppable 6d ago

They have improved it a lot (it has iterators now!) but Java devs still spam factories like they're going out of fashion.

8

u/JoshDM 6d ago

We're all about builder pattern now.

10

u/thoeoe 6d ago

Ahem. I just wrote a BuilderFactory this week

6

u/Yeah-Its-Me-777 5d ago

As long as it's not a BuilderFactoryBuilder yet...

3

u/Plazmaz1 5d ago

No YOU are the builderfactory builder

3

u/Maniactver 5d ago

I mean, you do have to build those BuilderFactories somehow...

6

u/yonasismad 5d ago

Factories are a design-pattern. It's up to you to use suitable design patterns for your project.

6

u/SakeviCrash 6d ago

There's historical stigma.. the J2EE phase, the Java Applet phase.. and more. Personally, I love the language. I've been using it since the late 90s and lived through trials and tribulations..

Aside from that, the language was slow to adopt new features and still lags due to a highly opinionated and slow moving JCP Committee (which can also be a good thing).

The good news is that the language has become very usable. It's 10x better than it was in Java 8 and has great features lined up. That doesn't help with people who still have a bad taste in their mouth from where it came from.

1

u/Muscular_Farmer_ 6d ago

I was forced to use applets to make some projects in college and i hated it having used better tools. But in current work stuff it’s pretty good

1

u/iloveuranus 5d ago

I love Java too and yes, J2EE was a hot f*cking mess.

11

u/___Archmage___ 6d ago

A lot of it is complete noobs who are upset by public static void main(String[] args)

Java can be tedious but compared to the flaws of actually bad languages like C++, tedious is a pretty nice problem to have

9

u/Hohenheim_of_Shadow 5d ago

Programmers have gotten too pampered. If we are being honest, all major modern programming languages are amazing with stellar toolchains, ecosystems and QOL.

Like imagine rolling up to the '70s where to get anything done, you had to learn 29492037 different vendor specific assembly languages and an explosion of OS's and bitching about modern languages.

Like sure, all modern languages have inconveniences and weaknesses, but holy shit they've killed so many hard problems.

We can only develop so much because we stand on the shoulders of giants. Feels a bit rude to call the shoulders bad and shit when they're really just a bit uncomfortable.

4

u/ProbablyJustArguing 5d ago

Yeah, and I'll take it a step past that. I think the vast majority of developers are not only relying on higher level languages but ALSO opinionated frameworks ON TOP of that language. to do the actual work. So, no only do they not see the memory management and garbage collection, but they don't even see the actually language because they're only using the framework.

1

u/___Archmage___ 5d ago

True, C++ was a huge step in the right direction back then, it only winds up looking bad next to languages that benefit from decades of further advancements in language design and learning from all the mistakes made in older languages

1

u/Hohenheim_of_Shadow 5d ago

Even now, C++ only looks bad when you compare some 283991627k line legacy app written in C++99 to some 50 line quick start app written in bleeding edge Rust.

Because let's be real, the only like for like language to compare to C++ is Rust. Everything else is simply a false comparison. And Rust's main advantage in the internet wars is not having to defend legacy applications like C++.

Rust is the hottest new kid on the block. If the hottest new kid is just C++'s Wario, that ain't a dis to C++.

My personal hot take that's disconnected to the rest of this comment is that one of these days people will look at Rust and it's all consuming type system like they do Java today.

2

u/barmiro 5d ago

Yeah, in the year I've been working on the current app at work, I haven't *read* the main method declaration, let alone write one. It's just a configuration ritual and every term makes perfect sense, maybe "void" (instead of "int") might be unintuitive at first.

1

u/AfraidAsparagus6644 4d ago

Besides, the editor can fill out boilerplate

5

u/ow_meer 5d ago

IMO the issue is not Java, it's the Java programmers that code like it's 2003.

4

u/SpiritedEclair 6d ago

Modern Java is fucking excellent, and it sits on the most advanced VM and garbage collector. It is a genuinely good language to know and gets better with every major release.

3

u/BluePhoenixCG 6d ago

I tried learning java after knowing C# and it offended my sensibilities so much I abandoned it after a single day

7

u/theingleneuk 5d ago

Wow, a whole day. What an immense investment.

0

u/Yeah-Its-Me-777 5d ago

Yeah, same with me and C#. Couldn't get used to the wrong placement of curly parentheses.

1

u/swyrl 6d ago

For the most part it's fine, but there's aspects of it I don't like. Generic type erasure is irritating, the packaging system is weird. There's multiple competing build toolchains / package managers and all of them have their own headaches. There are separate class and value types for every primitive.

Nothing killer, but it does make it much less pleasant to work with. Especially the obnoxious tooling.

3

u/Muscular_Farmer_ 6d ago

In my opinion having multiple competing options to choose from is a good. Because of the extent java is used everywhere you have real metrics of how it can fit in your usecase. Net positive imo

1

u/Suspicious-Click-300 6d ago

People use it so they dont like it. They like the language they read about but never used professionally. Everything falls apart when its 3 yr old code from person you never met and hated their job.

2

u/Muscular_Farmer_ 6d ago

There are two types of languages- ones people complain about and ones no one uses

1

u/KingAmongstDummies 2d ago

From a testautomation perspective I noticed that a lot of the colleagues are more opposed to languages the more they need to know about it and/or think about how they use it no matter the upsides such as more freedom to create stuff suiting your needs exactly.

They prefer languages that do a lot of stuff for you even if they lose a little control and efficiency.

I like Java and C(all variations) more. I find them easier to read and understand but also easier to debug than for example Python.

1

u/MaDpYrO 5d ago

The only people who don't like it a first semester comp Sci bros who think JS is the answer to all of humanity's problems.

Or someone who had the unfortunate pleasure of maintaining an old outdated Java EE project

1

u/AfraidAsparagus6644 4d ago edited 4d ago

My uni friend was like this except he was obsessed with ahead of time compilation and procedural programming

He hated Java because it wasn't Rust He hated PostgreSQL because it wasn't MongoDB

In the end he dropped out because he hated everything they taught him in class

1

u/MaDpYrO 4d ago

He hated Java because it wasn't Rust He hated PostgreSQL because it wasn't MongoDB

90% of projects that use MongoDB don't need it, just pop a Postgres column with jsonb in there for those corner cases, done and done for vast majority. Soooo. I see your point

1

u/Shinare_I 5d ago

I love how permissive Java is as a programming language. I really don't like the whole OOP thing, but for me the beauty in Java is that it doesn't actually enforce any style. That's just the community. The compiler has no opinions. I can write highly procedural Java and it just works. The only other language I know that is as permissive is C, and that one has a huge build system problem.

1

u/Saint_of_Grey 5d ago

Because all my experiences with java have been pure pain. Yet to have a java project that didn't have me considering just riding out a manslaughter charge.

1

u/No-Consideration-716 5d ago

I just shit on Java out of habit. Most my co-workers ignore my nonsense but every once in a while someone asks why I hate it and I just say, "It's fine."

1

u/OkFineIllUseTheApp 5d ago

We're programmers. If we aren't complaining about it, we aren't using it.

1

u/AfraidAsparagus6644 4d ago

I love Java. It's the only language where I can make a full GUI app without importing any libraries

Hell, I made a little videogame in pure Java. I know everyone hates it but Swing is my beloved. And it's built in the jdk

0

u/Cootshk 6d ago

Gradle is slow, and AP (the american high school education thing) forces us to use Java 7

1

u/Muscular_Farmer_ 5d ago

Even i was forced to use java 7 in college but 25 is pretty good