Java Archive

Java 25 released

Java 25 has been released. JDK 25, the reference implementation of Java 25, is now Generally Available. We shipped build 36 as the second Release Candidate of JDK 25 on 15 August, and no P1 bugs have been reported since then. Build 36 is therefore now the GA build, ready for production use. ↫ Java 25/JDK 25 release announcement If you want to dive into the details about this new release, feel free to peruse the long, long list of improvements and changes.

Java 25’s new CPU-time profiler

More than three years in the making, with a concerted effort starting last year, my CPU-time profiler landed in Java with OpenJDK 25. It’s an experimental new profiler/method sampler that helps you find performance issues in your code, having distinct advantages over the current sampler. This is what this week’s and next week’s blog posts are all about. This week, I will cover why we need a new profiler and what information it provides; next week, I’ll cover the technical internals that go beyond what’s written in the JEP. I will quote the JEP 509 quite a lot, thanks to Ron Pressler; it reads like a well-written blog post in and of itself. ↫ Johannes Bechberger There’s also a third entry detailing queue sizing, and a fourth entry going into the removal of redundant synchronisation.

Java 24 released

Oracle, the company owned by a guy who purchased a huge chunk of the Kingdom of Hawaii from the Americans, has released Java 24. I’ll be honest and upfront: I just don’t care very much at all about this, as the only interaction I’ve had with Java over the past, I don’t know, 15 years or so, is either because of Minecraft, or because of my obsession with ancient UNIX workstations where Java programs pop up in the weirdest of places. I know Java is massive and used everywhere, but going through the list of changes and improvements does not spark any joy in me at all, and just makes me want to stick my pinky in an electrical socket to make something interesting happen. If you work with Java, you know all of this stuff already anyway, as you’ve been excitedly trying to impress Nick from accounting with your knowledge of Flexible Constructor Bodies and Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanisms because he’s just so dreamy and you desperately want to ask him out for a hot cup of coffee, but you’re not sure if he’s married or has a boy or girlfriend so you’re just kind of scoping things out a bit too excitedly and now you’re worried you might be coming off as too desperate for his attention. Anyway, that’s how offices work, right? I’ve never worked for anyone but myself and office settings induce a deep sense of existential dread in me, so my knowledge of office work, and Java if we’re honest, may be based a bit too much on ’90s sitcoms and dramas. Whatever, Java 24 is here. Do a happy dance.

Java 22 released

Java 22 ships the final versions of the Foreign Function and Memory API as well as the Unnamed Variables and Patterns API. Plus Java 22 brings region pinning for the G1 garbage collector, statements before super(…) are in preview phase, a class-file API preview, support to launch multi-file source code programs, the latest work on the Java Vector API, Stream gatherers in preview, the second preview for structured concurrency programming, and various other additions. ↫ Michael Larabel at Phoronix You can find the GPL-licensed OpenJDK builds at the OpenJDK website.

Java 21: The Nice, The Meh, and the… Momentous

Every six months, there is a new Java release. Ever so often (currently, every two years), Oracle labels a release as “long term support”, and Java users wonder whether they should upgrade. In theory, other JDK distributors could offer “long term support” for other releases, but it seems everyone is following Oracle’s lead. Should you upgrade? Here are the major features of Java 21. I omit preview and incubator features (which you are surely not going to use in production), JVM internals, highly specialized features such as this one, and deprecations. The answer is yes – you should definitely upgrade.

Java 21 released

Java 21 introduces the notion of sequenced collections, the Z Garbage Collector (ZGC) has been extended to maintain separate generations for young and old objects for improving Java app performance, virtual threads are now out of preview form, and the Windows 32-bit x86 port has been deprecated for removal. Java 21 also brings some new preview features including string templates, the latest iteration on the foreign function and memory API, unnamed classes and instance main methods, scoped values, and structured concurrency. You can find the GPL-licensed OpenJDK builds at the OpenJDK website, and the closed source builds from Oracle are also available.

Java 21 makes me actually like Java again

Java 21 will be released on September 19, 2023, supporting record patterns in switch blocks and expressions. Such syntax is monumental (At least, in Java land). It marks the point where Java could be considered to properly support functional programming patterns in ways similar to Kotlin, Rust, or C#. And it marks the first point where I can say, as a Kotlin developer, that I feel jealous. I’ve got nothing to say about matters such as these, so I’ll just quietly back away and let you all handle it.

The decline and fall of Java on the desktop part 1 (1999-2005)

This is the first in a series of articles about the history of Java on the Desktop, from my perspective as a developer who started working with Java in the late ‘90’s. I’m writing this, partly as a background for why I created jDeploy, a developer-friendly desktop deployment tool for Java. Despite the ominous tone of this article’s title, I believe that Java is a compelling platform for modern desktop applications. Stick around for the whole series to find out why. Isn’t Java still one of the languages every aspiring programmer learns in school?

The 25 greatest Java apps ever written

What follows is a list of the 25 most ingenious and influential Java apps ever written, from Wikipedia Search to the US National Security Agency’s Ghidra. The scope of these applications runs the gamut: space exploration, video games, machine learning, genomics, automotive, cybersecurity, and more. It’s posted by Oracle and thus it makes me feel dirty to link to it, but I guess it’s still an interesting list – albeit with one obvious, huge, giant, inescapable elephant of an mission.

Java’s new Z Garbage Collector is very exciting

Java 11 has recently been feature frozen and contains some really great features, one in particular we’d like to highlight. The release contains a brand new Garbage Collector, ZGC, which is being developed by Oracle that promises very low pause times on multi-terabyte heaps. In this article we'll cover the motivation for a new GC, a technical overview and some of the really exciting possibilities ZGC opens up.

Why would you look at that - I get to use the Java database category.

Sun’s Project Looking Glass debuted 14 years ago

Almost 14 years ago, way back in 2003, Sun Microsystems unveiled Project Looking Glass, a 3D desktop environment written in Java and making extensive use of Java 3D. The demo, by Jonathan Schwartz, always stuck with me over the years, and since YouTube recommended the demo to me today, I figured it'd be interesting to you remind you all of simpler times, when flipping windows around and 3D rendering in Java actually managed to get us excited (something no other project would ever manage to... Wait.).

Project Looking Glass was developed for about three years, and it actually saw a 1.0 release in late 2006. It's one of those random projects exploring what we then thought could be the future of computing, right before the iPhone came onto the scene and changed everything. While nothing came out of Project Looking Glass, Schwartz' demo did teach me the phrase "arbitrarily clever", which I'm unusually attached to.

LWJGL 2.9.0 released

The Lightweight Java Game Library provides a simple API to OpenGL, OpenAL, OpenCL and Game Controllers enabling the production of state of the art games for Windows, Linux and Mac. Version 2.9.0 contains a complete rewrite of the mac backend, support for FreeBSD, new OpenGL/OpenCL extension and bug fixes. The library is used by many high profile games such as Minecraft, Spiral Knights, Revenge of the Titans, Project Zomboid, Starsector, JMonkeyEngine, etc.

RoboVM 0.0.1 released

The first preview release of RoboVM has just been made available. The primary goal of the project is to make it possible to develop native iOS applications in Java that use native iOS Cocoa Touch APIs. The RoboVM compiler translates Java bytecode into ARM or x86 machine code. The core classes (java.lang, java.util, java.io, etc.) are based on Android's runtime classes. RoboVM's compile time tools are GPLv2 licensed while the runtime is released under business-friendly licenses, mostly the Apache License v2.0.

Project Sumatra improves Java performance with OpenCL

"Java is a programming language that allows developers to write once and deploy everywhere - from high-end gaming desktops to smartphones. Its OS-agnostic and widespread nature is one of its strongest selling points, but one area where it can fall flat is performance. Generally, Java applications are not going to perform as well as native applications written for a specific OS. However, thanks to Project Sumatra that performance gap may soon become less of an issue."

Oracle’s Latest Java Moves Draw Industry Ire

Two years hence, Oracle's stewardship of Java continues to raise user and vendor ire, this time due to modularization, licensing, and security concerns. 'Plans for version 8 of Java Platform Standard Edition, which is due next year, call for inclusion of Project Jigsaw to add modular capabilities to Java. But some organizations are concerned with how Oracle's plans might conflict with the OSGi module system already geared to Java. In the licensing arena, Canonical, the maker of Ubuntu Linux, says Oracle is no longer letting Linux distributors redistribute Oracle's own commercial Java, causing difficulties for the company. Meanwhile, security vendor F-Secure views Java as security hindrance.'

Java To Be Removed from Ubuntu, Uninstalled from User Machines

Oracle's Sun Java JDK packages are to be removed from the Ubuntu partner repositories and disabled on users systems. Oracle, in retiring the "Operating System Distributor License for Java," means Canonical no longer have permission to distribute the package. The change will affect Ubuntu 10.04 LTs, Ubuntu 10.10 and 11.04 users only. Users who have the "sun-java-6" package installed on their system will see it removed via a future software update -- the exact date of which is "TBD."

Java Tops for Hackers, Warns Microsoft

Patch up warmly this winter if you're running Java. That's the advice from .NET shop Microsoft, which reckons Oracle's platform is the single biggest target for hackers. Java proved the single most popular target in the 12-month period to the end of June, according to Microsoft's latest Security Intelligence Report has found here Running Java as a Web-browser Plugin is much more dangerous than Flash, and should disable the Java Applet Plugin.