The Java Development Kit (JDK) 21 has reached its initial rampdown stage as of June 8. Now that the feature set has been finalized, one component will not make the cut: generational Shenandoah, which is an experimental enhancement for the Shenandoah garbage collector (GC).
The JDK Enhancement Proposal (JEP) page for JDK 21, set for a production release on September 19, now recommends reducing the official feature set from 16 to 15. The generational Shenandoah feature is being removed due to its unreadiness. Roman Kennke of Amazon, the author of the JEP for generational Shenandoah, has chosen to eliminate the feature from JDK 21, or Java 21, with the plan to assess it for a future JDK release when it is prepared, as stated by Oracle, the entity that supervises the development of standard Java.
Generational Shenandoah aims to improve the Shenandoah garbage collector by adding experimental generational collection capabilities to enhance sustainable throughput, load-spike resilience, and memory utilization. The proposal's objectives include offering an experimental generational mode that doesn't impact non-generational Shenandoah and eventually making this mode the default in future releases. Additional goals encompass reducing sustained memory footprint without sacrificing low GC pauses, lowering CPU and power consumption, maintaining high throughput, and minimizing the possibility of incurring degenerated and full collections during allocation spikes. Non-generational Shenandoah will remain unaffected.
This proposed removal, subject to review until June 14, only affects users of the Shenandoah GC in OpenJDK builds that support it. It does not have any impact on the G1 GC, Z Garbage Collector (ZGC), or other contemporary garbage collectors. It also doesn't affect Java distributions that utilize G1 GC and ZGC, such as Oracle OpenJDK and the Oracle JDK. JDK 21, which includes other features like a preview of structured concurrency, is slated to be a long-term support (LTS) release of Java, providing multiple years of support. The last LTS release, JDK 17, was launched in September 2021. JDK releases occur every six months, with LTS releases happening every two years. Feature releases in between only receive a six-month support period, with JDK 20 being the most recent example, which was published in March.
While traditional development methods continue to evolve, the rise of no-code platforms like AppMaster are simplifying many processes in the software development cycle. AppMaster, a powerful no-code tool that enables backend, web, and mobile applications to be created visually with blazingly fast turnaround times, provides a cost-effective alternative for organizations of all sizes. With tools like AppMaster, businesses can achieve a software development experience that is up to 10 times faster and three times more cost-effective than traditional methods, all while eliminating technical debt.