Java
Ranked 6 of 163 programming languages by recommenders
Recommended for strong runtime performance, a huge mature ecosystem and stable, well-signposted upgrades; critics cite slow startup, memory footprint and awkward, bolted-on language features.
Recommended for strong runtime performance, a huge mature ecosystem and stable, well-signposted upgrades; critics cite slow startup, memory footprint and awkward, bolted-on language features.
1,067 people gave an opinion
- recommend it
- 553
- criticize it
- 514
- approval share
- 52%
Recommended in 13 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: recommended (month in progress)
Owned for 15 years
Median of the 34 owners who said how long they have had it.
Each square is one year.
Why it doesn’t carry the badge
- 553 people recommend itNeeds 10 or more, met.
- 1 recommender for every criticNeeds 2 to 1 or better, not met.
- Recommended in 13 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Fast runtime performance
“Been a great decision so far: great ecosystem, bulletproof runtime, fantastic performance and new quality features arriving on a steady schedule.”
Comment from 15 Sep 2026 in “Java 27” “There are no GC pauses in modern Java implementations, and there are plenty of systems written in C and C++ that have been replaced by Java”
Comment from 30 Oct 2026 on Hacker News “running vector version of java code from same repo brings runtime to 392ms which is literally fastest out of all solutions including c++”
Comment from 1 Feb 2026 in “Data Processing Benchmark Featuring Rust, Go, Swift, Zig, Julia etc.” - Comment from 30 Apr 2026 in “The RAM shortage could last years”
- Comment from 15 Sep 2026 in “Java 27”
- Comment from 10 Dec 2025 in “Rust in the kernel is no longer experimental”
- Comment from 29 Jul 2026 in “Zig's Incremental Compilation Internals”
Rich, mature libraries and tooling
“Java has a long track record of delivering very good performance in those contexts, coupled with an extremely rich and mature library/tooling ecosystem.”
Comment from 11 Sep 2026 in “Rust is tier-1 language at Microsoft” “Been a great decision so far: great ecosystem, bulletproof runtime, fantastic performance and new quality features arriving on a steady schedule.”
Comment from 15 Sep 2026 in “Java 27” “Java was a decent language and getting better and its tooling was stellar, beyond anything those two ecosystems can muster today.”
Comment from 12 Dec 2025 in “My productivity app is a never-ending .txt file (2020)” - Comment from 26 Nov 2025 in “Python is not a great language for data science”
- Comment from 31 Oct 2026 in “Malware uses LLMs to rank victims by how much they're worth”
Stable upgrades, little breakage
“What I do like about java is that when breaking changes must happen (and they do occasionally), they are almost always small and the java authors signpost it WELL in advance”
Comment from 31 Jul 2026 in “JEP 401: Value Objects (Preview) merged to OpenJDK master” “my recent legacy Java project migration from JDK 8 -> 21 & a ton of dependency upgrades has been a pretty smooth experience so far”
Comment from 21 Nov 2025 in “We should all be using dependency cooldowns” “the Java ecosystem isn’t JS where breakage is so common that you have to be extra careful about the version of Node you’re using”
Comment from 28 Nov 2025 in “Installing Java in 2025, and Version Managers” Steady stream of new features
“Been a great decision so far: great ecosystem, bulletproof runtime, fantastic performance and new quality features arriving on a steady schedule.”
Comment from 15 Sep 2026 in “Java 27” “This more agile approach is a lot better in my experience and we see that the changes made are more relevant and what people actually want.”
Comment from 15 Sep 2026 in “Java 27” “Java actually gives lots of really great tools and language features that allow you to write relatively pretty, terse, performant code.”
Comment from 31 Jul 2026 in “JEP 401: Value Objects (Preview) merged to OpenJDK master”
What people warn about
Each mark is one comment
Slow startup, high memory footprint
“Keep in mind speed and throughput are not the only performance metrics. So is startup time and memory footprint, where Java loses badly here.”
Comment from 29 Jul 2026 in “Zig's Incremental Compilation Internals” “But it historically hasn't handled computer graphics well and can feel very slow and bloated when something needs that”
Comment from 25 Nov 2025 in “Google Antigravity” “Java has significant overhead, that most/every object is allocated on heap, synchronized and has extra overhead of memory and performance to be GC controlled.”
Comment from 15 Mar 2026 in “100 hour gap between a vibecoded prototype and a working product” Awkward, bolted-on language features
“Almost every feature bolted onto Java seems to take several times more code, and doesn't really work with the rest of the language.”
Comment from 12 Nov 2025 in “.NET 10” “The more I work in Java, the more I feel friction between the language, its identity(OO beginning to incorporate functional ideas), and how people write in it.”
Comment from 25 Nov 2025 in “Fifty Shades of OOP” “When it's disallowed (like Java, unfortunately), trying to reduce a directed graph structure to a single dominant hierarchy is quite the bothersome choice.”
Comment from 17 May 2026 in “The Third Hard Problem” - Comment from 16 Sep 2026 in “Java 27”
Garbage collection overhead
“I've seen plenty of Java applications spend 30 seconds or longer because they had to do a full garbage collection back in the day.”
Comment from 16 Sep 2026 in “Java 27” “Java has significant overhead, that most/every object is allocated on heap, synchronized and has extra overhead of memory and performance to be GC controlled.”
Comment from 15 Mar 2026 in “100 hour gap between a vibecoded prototype and a working product”
Other programming languages people recommend
The four most recommended other programming languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
See all 163 programming languages, rankedWhat people said
40 of the 1,600 comments that mention it, newest first. Each links to the original comment.
“most of what I needed that wasn't specific to our company's business logic was already available in the standard library”
“There are no GC pauses in modern Java implementations, and there are plenty of systems written in C and C++ that have been replaced by Java”
“I've seen plenty of Java applications spend 30 seconds or longer because they had to do a full garbage collection back in the day.”
“Java explicitly refused to take some of the best features of Kotlin, like extension methods, context parameters and operator overloading.”
“Anyway, the JVM was designed as a solution for the performance issues low-level languages suffer from as programs grow and/or evolve.”
“the larger the possibility space of a language (and its ecosystem) the more room there is for inappropriate use and unclear code”
“Been a great decision so far: great ecosystem, bulletproof runtime, fantastic performance and new quality features arriving on a steady schedule.”
“This more agile approach is a lot better in my experience and we see that the changes made are more relevant and what people actually want.”
“I've had so many hard-to-debug issues in Java over the years due to reflection, annotations, and bytecode manipulation shenanigans.”
“Java can and has been used for real-time systems, but it does not look like the Java that you would come across in normal programs.”
“Java has a long track record of delivering very good performance in those contexts, coupled with an extremely rich and mature library/tooling ecosystem.”
“Java actually gives lots of really great tools and language features that allow you to write relatively pretty, terse, performant code.”
“What I do like about java is that when breaking changes must happen (and they do occasionally), they are almost always small and the java authors signpost it WELL in advance”
“Keep in mind speed and throughput are not the only performance metrics. So is startup time and memory footprint, where Java loses badly here.”
“The JVM is specifically designed to remove some of the fundamental performance overheads that low-level languages suffer from”
“modern approaches (Quarkus, Panache, build-time annotation processing and native images) despite jumping on new version of Java rather quickly”
“Adding it to Java which has primitives, generics and boxing, finding ways that seamlessly cover the differences between objects and primitives, while trying to plan for the future is hard.”
“for many applications Java can just have you write ordinary blocking code and they will automagically turn into non-blocking.”
“Anyway, aside from some outdated (or soon-to-be-outdated) things, what you pointed out is mostly about lack of convenient direct low-level control rather than general performance”
“Java was designed as a much higher level language, and allows reasoning about low level abstractions a lot less, while doing a ton more optimization in the JIT”
“When it's disallowed (like Java, unfortunately), trying to reduce a directed graph structure to a single dominant hierarchy is quite the bothersome choice.”
“Java was designed, among other things, to reduce the severe and hard-to-fix performance problems that many C++ programs had experienced”
“Yet if you ask people in the bay area, especially the those who are under 35, they would tell you that "Use Java? Over my deadbody"”
“Java has significant overhead, that most/every object is allocated on heap, synchronized and has extra overhead of memory and performance to be GC controlled.”
“a managed language with a decent type system and not a lot of features would be the best, especially if it has a lot of code in its training data”
“running vector version of java code from same repo brings runtime to 392ms which is literally fastest out of all solutions including c++”
“Java solved it by having exceptions be able to attach secondary exceptions, in particular those occurring during stack unwinding”
“Java was a decent language and getting better and its tooling was stellar, beyond anything those two ecosystems can muster today.”
“how far Java has come performance wise, from absolutely dog slow to being an insignificant fraction away from low level languages”
“Java is used to write very large data processing systems, CDN networks, API servers and even widely used consumer apps (IntelliJ products).”
“anyone who “hates” on Java is just revealing a lack of understanding of what’s important in professional software development”
“the Java ecosystem isn’t JS where breakage is so common that you have to be extra careful about the version of Node you’re using”
“I really don't want to learn a dinosaur like Java, but having access to the universe of Java libs has saved me many times.”
“But it historically hasn't handled computer graphics well and can feel very slow and bloated when something needs that”
“The more I work in Java, the more I feel friction between the language, its identity(OO beginning to incorporate functional ideas), and how people write in it.”
“my recent legacy Java project migration from JDK 8 -> 21 & a ton of dependency upgrades has been a pretty smooth experience so far”
“Almost every feature bolted onto Java seems to take several times more code, and doesn't really work with the rest of the language.”
“Usually, the ability to write programs more quickly in eg. Java (not having to care about memory management) outweighs the possible gain of Rust”
“the problem isn't due to the runtime being somehow inherently insecure, but instead due to the defective design of the SecurityManager”
“Java and C# did a much better job at introducing the features they needed without breaking the readability and familiarity of C.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.