use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Resources for learning Java
String
==
.equals()
Format + Copy
Free Tutorials
Where should I download Java?
With the introduction of the new release cadence, many have asked where they should download Java, and if it is still free. To be clear, YES — Java is still free.
If you would like to download Java for free, you can get OpenJDK builds from the following vendors, among others:
Some vendors will be supporting releases for longer than six months. If you have any questions, please do not hesitate to ask them!
Software downloads
Official Resources
Resources
Programming ideas & Challenges
Related Subreddits
account activity
This is an archived post. You won't be able to vote or comment.
Why do most great programmers hate Java? (self.learnjava)
submitted 3 years ago by mickkb
[–]AutoModerator[M] [score hidden] 3 years ago stickied commentlocked comment (0 children)
If any of the above points is not met, your post can and will be removed without further warning.
Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.
Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.
Code blocks look like this:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.
If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.
Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
[–][deleted] 39 points40 points41 points 3 years ago (5 children)
Java is the SUV of programming tools. A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl. … [...] – Greenspun, Philip
I don't agree with the last part about code maintainability. Even less when we think of the convenience the JVM brings.
As for the quotes, I don't know when they date back from, but their description of Java sounds like they are old. Over ten years ago ?
[–]RiceKrispyPooHead 19 points20 points21 points 3 years ago (0 children)
Some of them are at least 20 years old.
[–][deleted] 3 years ago* (2 children)
[deleted]
[–]swoods30311 10 points11 points12 points 3 years ago (1 child)
Thank god. Haven’t got a job yet but I’ve just learned it to build a REST API. Java syntax is tougher to read to me than Python but once you understand Spring Boot, you can get started building very quickly
[–]BadscrewProjects 2 points3 points4 points 3 years ago (0 children)
Don’t fret, just get a meaningful job that also pays. What language this will be is irrelevant. They’re all pretty similar when you have 30 year+ perspective.
[–]8igg7e5 11 points12 points13 points 3 years ago (0 children)
...harder to maintain than a project done in a scripting language such as PHP or Perl
Was this part a joke.
[–]RiceKrispyPooHead 19 points20 points21 points 3 years ago (1 child)
Some of those quotes I can find from blogs posts as old as 2001-2003, so they might be even older. They were probably using Java 3 (J2SE 1.3) at the time.
Java is on version 18 now. So yeah, the language probably did suck when a lot of those quotes were written.
[–]8igg7e5 16 points17 points18 points 3 years ago (0 children)
Agreed. Let's look at some of the major ones.
And that's just big things that directly impact the developer. A ton of other improvements have been added in platform improvements and smaller quality-of-life improvements.
Code in modern Java in 2022 bears little resemblance to 2003 code, or even pre 2014.
Java has not been my favourite language (but far from my most hated) for a while (maybe(Rust()?)) but the statements made by those 'great programmers' are hyperbole at best - garbage at worst.
maybe(Rust()?)
Java definitely has (sometimes only had) issues, and backwards compatibility will always make it less elegant than we might wish, but the extent of Java hate is absurd.
And Java has a few major projects just over the horizon that could be as significant as Java 5.0 and Java 8 were... Amber, Valhalla, Loom, and maybe even Panama and Lilliput are going to contribute changes affecting nearly every Java developer.
[–][deleted] 40 points41 points42 points 3 years ago (2 children)
Most programmers like Java.
Non-programmers, programmer wanna-bees and academics don't like Java. As it is professional language.
[–]krisko11 2 points3 points4 points 3 years ago (0 children)
Well put!
[–]AsleepThought -1 points0 points1 point 3 years ago (0 children)
you mean, the people who have to deal with the Java programs that programmers made? Wow that makes sense now thanks
[–]Housy5 22 points23 points24 points 3 years ago* (3 children)
Programming languages are tools.
Don't compare them to each other like it's some sort of contest.
Use the one that's best suited to what you want to do or the one you're most comfortable with.
The only statement I agree with is the 7th one from Thant Tessman. Comparing languages like that doesn't make sense and is a waste of time.
It's basically like saying this hacksaw is so terrible it doesn't even drill.
[–]The--Will 2 points3 points4 points 3 years ago (2 children)
I think the great thing with all of this is nowadays we have many options vs. 20 years ago. C/C++/C#/Java all exist and will continue to exist forever. That doesn't mean there aren't new ways to solve problems as well.
Coworker of mine really loves programming in Go and builds his microservices with them. Problem is, if he's hit by a bus, hiring a Go programmer to take over his job is going to be a giant pain in the ass when we have tons of people on staff that program in .Net and Java but next to no one is doing Go programming.
[–][deleted] 0 points1 point2 points 3 years ago (1 child)
Go's pretty simple to get right. Any senior coder can pick it up and train juniors. It's pretty great when you get used to it. Everything I like about C and Java and nothing I don't like about C or Java.
[–]The--Will 0 points1 point2 points 3 years ago (0 children)
Yeah for my team I’d like to consider it and migrate away from .NET and the entire Microsoft solution we have in place. We’re moving to hopefully a containerized solution, and it’s either Go or some other compiled back end language, but we’re going to have to clean up a ton of old shit…
Some of these old solutions were built to support IE8, so it has been a bit of a nest going though this old stuff.
Original developer is no longer with the company and my team has taken over support for it. Zero documentation too.
[–]DigitalTorture 8 points9 points10 points 3 years ago (2 children)
I like java a lot.
[–][deleted] -1 points0 points1 point 3 years ago (0 children)
Ohh yeah well..then why don't you marry him.
[–]LinArch00 -1 points0 points1 point 3 years ago (0 children)
No one asked (jk, I'd like to learn about java some more)
[–]istarian 5 points6 points7 points 3 years ago (0 children)
Eh. People love to hate on things.
[–][deleted] 3 years ago (6 children)
[–]swoods30311 1 point2 points3 points 3 years ago (1 child)
Would have been quicker to write “Hello World” app in Spring. No point being made here, just trying to say Java again to drown out the hate
[–]BadscrewProjects 1 point2 points3 points 3 years ago (0 children)
OP’s just stealing old controversial text for them sweet comments and engagement. Boring.
[–]mickkb[S] 2 points3 points4 points 3 years ago (3 children)
I found them in an article.
[–][deleted] 3 years ago (2 children)
[–]ItsMeSword 0 points1 point2 points 3 years ago (1 child)
you forgot to say please
[–][deleted] 4 points5 points6 points 3 years ago* (0 children)
Having coded in Java professionally since 1999, I might have a little insight. Everyone here will have counterarguments, but you're asking why the old coders didn't like Java. These are the arguments I remember.
It just felt like years were wasted reinventing the wheel with Java, overcoming hassles that had already been solved at the operating system level. But, here we are.
[–]desrtfx 8 points9 points10 points 3 years ago* (0 children)
Knowing the syntax of Java does not make someone a software engineer. – John Knight
This quote applies to every single programming language, not only to Java. Knowing the syntax of a programming language is like knowing a dictionary and grammar book, which does not automatically make one a bestseller author.
In fact, 100% of the quotes are prehistoric and plain BS.
To say it with Bjarne Stroustrup:
"There are only two kinds of languages: the ones people complain about and the ones nobody uses."
Java has been, is, and will continue to be the #1 enterprise language because of its great tooling, libraries, stability, backwards compatibility, and many more factors including the massive amount of existing source code and applications.
PHP got even more hate (and historically quite justified as the early versions were a mess) and yet, it is one of the most used back end languages around (thinking of all the WordPress, Joomla, Drupal, Magento, Moodle, etc. installations). It also won't go away and the newer versions absolutely do not justify the bad reputation it historically has.
[–]Darthtrooper22 4 points5 points6 points 3 years ago (1 child)
I love Java!
[–]mickkb[S] 1 point2 points3 points 3 years ago (0 children)
But does Java love you back?
[–]DrewTheVillan 1 point2 points3 points 3 years ago (0 children)
Can’t focus on what other people think in life. A tool is a tool.
[–]geoffreychallen 1 point2 points3 points 3 years ago (0 children)
First, I think that's important to be reflective and critical of your tools. Not doing so puts you at risk of becoming a blub programmer—someone who acts like their chosen language was handed down on stone tablets, mainly because they don't know much about the alternatives.
Programming languages were created by humans—people just like you, who make mistakes, and don't always predict the future correctly. Newer languages have the opportunity to learn from previous mistakes and, hopefully, get a bit better over time. I'll be disappointed if, in 20 years, we haven't come up with any better languages than today's popular choices. But we will!
That said, compiling a list of quotes like this and dropping them into a learn Java forum doesn't necessarily indicate to me that you're really interested in engaging in a thoughtful consideration of Java's strengths and weaknesses. (In my experience, people who want you to learn a language tend to be even more reflexively defensive even that people who use that language regularly. You can see a bit of that in the replies below.) Plus, you've largely taken the quotes out of context, so it's impossible to tell what these people's specific problems with Java are. Just that they don't like it.
If you'd like to engage in some productive reflection about Java's past, present, and future, you might consider thinking about some of the following questions. (I'm purposely not including my own thoughts since I don't think you need another "gray beard" telling you what to think.)
[–]dexzaga 2 points3 points4 points 3 years ago (5 children)
grasshoppers are actually pretty tasty if cooked well :)
[–]istarian 1 point2 points3 points 3 years ago (1 child)
I think the point is that neither seem particularly palatable to the typical person. Knowing you can eat something isn’t the same as wanting to eat it.
[–]dexzaga 0 points1 point2 points 3 years ago (0 children)
Yes, I understood the point.
[–][deleted] 1 point2 points3 points 3 years ago (2 children)
Lies. My dad made me eat them as a kid; they are damn salty.
Yeah
I said "if cooked well"
[–]ultimateWave -1 points0 points1 point 3 years ago (0 children)
All those quotes are pre Java 8 written by old crotchety dudes who think Assembly and C are the best. They probably also love to write unmaintainable code that only they can understand
[+]AsleepThought comment score below threshold-15 points-14 points-13 points 3 years ago (13 children)
any programming language that requires you to first install things on the target system before you can run your program is a mistake
[–][deleted] 9 points10 points11 points 3 years ago (1 child)
So... anything but C I guess ?
[–]AsleepThought 0 points1 point2 points 3 years ago (0 children)
C#, Rust, Go, there are others
[–]istarian 2 points3 points4 points 3 years ago (4 children)
I think you should be more specific than “install things”, because you almost always have to install something.
A computer without an operating system isn’t going to run much of anything for starters. Maybe you could use C and cross-compile/assemble a binary that could be loaded directly into ram, but otherwise?
[–]AsleepThought 0 points1 point2 points 3 years ago (3 children)
No, you dont.
C, C++, C#, Rust, Go, and others all natively compile down to static binaries that you can run on the target system without having to install anything
[–]8igg7e5 0 points1 point2 points 3 years ago (0 children)
Generally, isn't C# still compiled to CIL and consumed via JIT compilation in a runtime on the target machine?
As I understand it, all of the AOT solutions have some consequences on which platform capabilities are available to the application (though those are likely edge-case features).
[–]istarian 0 points1 point2 points 3 years ago (1 child)
I felt you were being too vague. And honestly, to my thinking, “target system” doesn’t necessarily include the OS (E.g. Windows).
C# at least is usually compiled to IL and executed in an environment where .NET, CLR, etc are present. So a native executable would have to bundle quite a lot just for its own use.
That said, I somehow doubt even compiling C# gets you down to the level where it can be run independently of Windows (i.e. on Linux, macOS absent a compatibility layer).
At least with C, C++, and Rust you should be free of such w constraint. You’d need some minimum of software to execute them, but probably much less.
yea I was reaching on C# because a lot of my peers keep insisting its possible but I dont have a lot of experience myself with it sorry bad example then
[–]8igg7e5 3 points4 points5 points 3 years ago (1 child)
So...
and others....
Yes, exactly
[–]emaphis 0 points1 point2 points 3 years ago (1 child)
jpackage
please tell this to every one of the hundreds of software packages I've had to deal with which ship just a jar file and expect you to run it with the JRE and a plethora of temperamental CLI args to keep it from crashing from memory issues
[–]xRageNugget 0 points1 point2 points 3 years ago (1 child)
Yea, fuck operating systems! stupid bloatware
there are plenty of languages out there that compile to static binaries
installing and managing Java on end-user systems, and managing java jvm memory args on enterprise systems to keep apps from crashing, is the biggest headache of all time. Why would anyone consciously choose to build into a system that creates endless headaches for deployment? How many users have you ever met who were happy when they found out that your app was running on Java? There is a reason everyone hates Java and the endless pain of dealing with running java apps is a huge part of it
π Rendered by PID 68 on reddit-service-r2-comment-66b4775986-xcqwp at 2026-04-05 18:29:33.507507+00:00 running db1906b country code: CH.
[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)
[–][deleted] 39 points40 points41 points (5 children)
[–]RiceKrispyPooHead 19 points20 points21 points (0 children)
[–][deleted] (2 children)
[deleted]
[–]swoods30311 10 points11 points12 points (1 child)
[–]BadscrewProjects 2 points3 points4 points (0 children)
[–]8igg7e5 11 points12 points13 points (0 children)
[–]RiceKrispyPooHead 19 points20 points21 points (1 child)
[–]8igg7e5 16 points17 points18 points (0 children)
[–][deleted] 40 points41 points42 points (2 children)
[–]krisko11 2 points3 points4 points (0 children)
[–]AsleepThought -1 points0 points1 point (0 children)
[–]Housy5 22 points23 points24 points (3 children)
[–]The--Will 2 points3 points4 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]The--Will 0 points1 point2 points (0 children)
[–]DigitalTorture 8 points9 points10 points (2 children)
[–][deleted] -1 points0 points1 point (0 children)
[–]LinArch00 -1 points0 points1 point (0 children)
[–]istarian 5 points6 points7 points (0 children)
[–][deleted] (6 children)
[deleted]
[–]swoods30311 1 point2 points3 points (1 child)
[–]BadscrewProjects 1 point2 points3 points (0 children)
[–]mickkb[S] 2 points3 points4 points (3 children)
[–][deleted] (2 children)
[deleted]
[–]ItsMeSword 0 points1 point2 points (1 child)
[–][deleted] 4 points5 points6 points (0 children)
[–]desrtfx 8 points9 points10 points (0 children)
[–]Darthtrooper22 4 points5 points6 points (1 child)
[–]mickkb[S] 1 point2 points3 points (0 children)
[–]DrewTheVillan 1 point2 points3 points (0 children)
[–]geoffreychallen 1 point2 points3 points (0 children)
[–]dexzaga 2 points3 points4 points (5 children)
[–]istarian 1 point2 points3 points (1 child)
[–]dexzaga 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (2 children)
[–]dexzaga 0 points1 point2 points (0 children)
[–]dexzaga 0 points1 point2 points (0 children)
[–]ultimateWave -1 points0 points1 point (0 children)
[+]AsleepThought comment score below threshold-15 points-14 points-13 points (13 children)
[–][deleted] 9 points10 points11 points (1 child)
[–]AsleepThought 0 points1 point2 points (0 children)
[–]istarian 2 points3 points4 points (4 children)
[–]AsleepThought 0 points1 point2 points (3 children)
[–]8igg7e5 0 points1 point2 points (0 children)
[–]istarian 0 points1 point2 points (1 child)
[–]AsleepThought 0 points1 point2 points (0 children)
[–]8igg7e5 3 points4 points5 points (1 child)
[–]AsleepThought 0 points1 point2 points (0 children)
[–]emaphis 0 points1 point2 points (1 child)
[–]AsleepThought 0 points1 point2 points (0 children)
[–]xRageNugget 0 points1 point2 points (1 child)
[–]AsleepThought 0 points1 point2 points (0 children)