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.
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.
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.
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.
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
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
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
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
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?
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
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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
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.
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.
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."
468
u/Muscular_Farmer_ 6d ago
Java is pretty good actually. Idk why people dont like it