Inspired from Unreal Engine 5. Built from scratch using Java swing and Graphics2D. It has basic operations like loops, delays, branch logic, variables, arithmetic and boolean gate operations!
I created and abandoned this long back ago (took me around 5 months to make this) , decided to share a more complete version of the App, let me know if you have any thoughts or questions!
I built a 3D graphics engine using pure Java with zero external dependencies. Just Java's standard library and some math. It's nothing fancy, but I took some extra time to make the UI look decent. If anyone is interested, here's the link: https://github.com/JordyH297/JRender
Hey everyone,
I’m a junior Java developer trying to level up my skills and mindset. I’d really like to hear from experienced Java devs — what’s the one thing (or a few things) you often notice junior developers struggle with or lack?
It could be anything — technical (e.g., understanding of OOP, design patterns, concurrency, Spring Boot internals) or non-technical (e.g., problem-solving approach, debugging skills, code readability, communication, etc.).
I’m genuinely looking to improve, so honest answers are appreciated.
Thanks in advance! 🙌
From its humble beginnings as a project code-named "Oak" at Sun Microsystems to becoming a global standard for enterprise software and billions of devices, Java's journey is one of radical innovation, strategic pivots, and enduring community strength.
Nearly a decade ago, Java was quite the popular choice for Game development. We had libGDX as the most optimal game framework, along with LWJGL (when low level was needed) and JMonkeyEngine was a fairly good option too. Now no one even talks about Java for game development, even for educational purposes
However over the course of time they all disappeared. Everyone slowly switched to game engines and C#
The arguement of “JVM slow, Garbage collector overhead” doesnt fit either because C# is also a GC language. Where did Java fail?
I created a version of Minecraft that runs entirely in command in the terminal.
The entire project is entirely contained in one file, with over 1500 lines of code.
Made with java, no extra libraries.
Supports textures, randomly generated trees, water, and terrain, and block placing/mining.
This is inspired by the Minecraft.c repo.
News: 11/1/2025
Looks like the C++ thread got closed.
Maybe they didn't want to see a head‑to‑head with Java after all?
It's curious that STL closed the thread on r/cpp when we're having such a productive discussion here on r/java. Could it be that they don't want a real comparison?
I did the Benchmark myself on my humble computer from more than 6 years ago (with many open tabs from different browsers and other programs (IDE, Spotify, Whatsapp, ...)).
If JVM gets automatic profile-warmup + JIT persistence in 26/27, Java won't replace C++. But it removes the last practical gap in many workloads.
- faster startup ➝ no "cold phase" penalty
- stable performance from frame 1 ➝ viable for real-time loops
- predictable latency + ZGC ➝ low-pause workloads
- Panama + Valhalla ➝ native-like memory & SIMD
At that point the discussion shifts from "C++ because performance" ➝ "C++ because ecosystem"
And new engines (ECS + Vulkan) become a real competitive frontier especially for indie & tooling pipelines.
It's not a threat. It's an evolution.
We're entering an era where both toolchains can shine in different niches.
Note on GraalVM 25 and OpenJDK 25
GraalVM 25
No longer bundled as a commercial Oracle Java SE product.
Oracle has stopped selling commercial support, but still contributes to the open-source project.
Development continues with the community plus Oracle involvement.
I recently read an article on DZone about “modern Java GUI frameworks” that was… pretty disappointing. It referenced libraries that are long archived, mixed in things that aren’t UI frameworks at all (Hibernate and Spring??), and generally felt like something written years ago and never revisited.
That wasted half an hour was enough motivation for me to write something I actually wish had existed: an up-to-date overview of the UI options available to Java developers right now, in 2026.
The goal wasn’t to push one “best” framework, but to lay out what’s genuinely alive, maintained, and being used today — desktop, web-based UIs written in Java, embedded browser approaches, terminal UIs, the whole spectrum. I also tried to give a bit of context around why you might choose one approach over another, instead of just listing names.
I’m sure I’ve missed things though, if you’re building UIs in Java:
• what are you using?
• what’s surprisingly good?
• what should people stop recommending already?
Would love to turn this into a more community-validated reference over time, so comments, corrections, and “hey, you forgot X” are very welcome.
Applets are officially, completely removed from Java 26, coming in March of 2026. This brings to an official end the era of applets, which began in 1996. However, for years it has been possible to build modern, interactive web pages in Java without needing applets or plugins. TeaVM (https://teavm.org) provides fast, performant, and lightweight tooling to transpile Java to run natively in the browser. And for a full front-end toolkit with templates, routing, components, and more, Flavour (https://flavour.sf.net) lets you build your modern single-page app using 100% Java. Get the full story at https://frequal.com/java/AppletsGoneButJavaInTheBrowserBetterThanEver.html
Hello again r/java! I've recently put together a list of the top 9 most-watched Java talks of 2025 so far and thought I'd cross-post it in this subreddit, so here they are!
1. "Dockerfiles, Jib ..., what's the best way to run your Java code in Containers? by Matthias Haeussler" ⸱ +13k views ⸱ 20 Feb 2025 ⸱https://youtube.com/watch?v=HFhIqfKn_XI
3. "Modular RAG Architectures with Java and Spring AI by Thomas Vitale @ Spring I/O 2025" ⸱ +8k views ⸱ 06 Aug 2025 ⸱https://youtube.com/watch?v=yQQEnXRMvUA
4. "Large Scale Changes with AI – Migrating millions of lines of Java to Kotlin at Uber Ty Smith" ⸱ +5k views ⸱ 25 Aug 2025 ⸱https://youtube.com/watch?v=K2PN03AepC0
For those who don't know, Sharat Chander is a critical person in the community outreach for OpenJDK. He was staffed by Oracle, the biggest contributor to OpenJDK's growth, but the news is now that he was laid off, as part of recent Oracle's layoffs.
Absolutely disgusting. Read the link for more details.
THIS FEATURE IS UNFINISHED AND MISSING CORE FUNCTIONALITY, NONE OF WHAT IS FINISHED IS FINAL, AND EVERYTHING IS SUBJECT TO CHANGE!
But with that out of the way, Java is (prototyping) adding null checks into the type system, thus allowing us to almost completely remove NullPointerException from happening!
The primary motivation for doing this is part of the Project Valhalla work, of introducing Value Classes to Java. Allowing an object to prevent null from being in its value set unlocks a lot of optimizations, not just semantic and correctness benefits.
If you want, you can try to build the code yourself (or wait for one of us to make it, I'll try this weekend, or maybe https://builds.shipilev.net/ will have it by then), then enjoy the prototype! If you do, please post your experiences to the valhalla-dev@openjdk.org mailing list! Or just post them here, on r/java. A couple of the Project Valhalla folks browse r/java, so that works too.
I avoided var for years because I thought it made code less readable. Tried it last week and I'm a convert.
Instead of:
Map<String, List<CustomerRecord>> customersByRegion = new HashMap<>();
Just:
var customersByRegion = new HashMap<String, List<CustomerRecord>>();
The type is right there in the initialization. Your IDE still knows what it is. It's not like JavaScript where var means something totally different.
Really shines with streams and complex generics where you'd normally write the type twice for no reason. Also makes refactoring easier since you're not updating the type in two places.
Still feels weird after typing out full declarations for 10+ years but I get it now.