JavaScript (No, Not That One): Modern Automation with Java
Table of Contents The Scripting DilemmaThe Death of Manual CompilationSingle-File ExecutionMulti-File SupportWhy so much ceremony?The Java EvolutionEasier console interactionJava as a Native Script: Shebang SupportAdvanced Automation with JBangWhat is JBang?Dependency ManagementAwesome FeaturesElevating Your Scripts: CLI Richness with PicocliPro-Grade ToolsZero-Code CLI ...
-
How is Leyden improving Java Performance? Part 1 of 3
Table of Contents A Brief History of Java PerformanceWhy Java takes time to reach peak performanceHousekeeping considered harmfulLeyden Project ‘premain’ ExperimentTraining and Production Runs In this series of 3 blog posts we will explain how OpenJDK project Leyden is helping …
-
Java 26: What’s New?
Table of Contents JEP 500: Prepare to Make Final Mean FinalJEP 504: Remove the Applet APIJEP 516: Ahead-of-Time Object Caching with Any GCJEP 517: HTTP/3 for the HTTP Client APIJEP 522: G1 GC: Improve Throughput by Reducing SynchronizationUUIDv7 supportFeatures coming …
-
Gotta Code ‘Em All: How Java Evolved Beyond Verbosity – Celebrating 30 Years of Pokémon
Table of Contents Java 25 – Compact Source Files and Instance Main Methods (JEP 512)Java 25 – Flexible Constructor Bodies (JEP 513)30 Years of Pokémon. Decades of Java Evolution.LinksLinks Happy 30th Anniversary to Pokémon! 🎉 February 27, 2026 marks exactly …
-
Project Panama for Newbies (Part 2)
Welcome to Part 2 of this series, in which we will look at C language’s concept of pointers and structs.
Later on in this article, we will use Panama to mimic these concepts.
The goal is to call C function signatures that are often defined to accept pointers and structs.
-
Project Panama for Newbies (Part 1)
In this series of articles, we will explore the APIs from OpenJDK’s Project Panama.
My intent is to show you how to be proficient in using the Foreign Linker APIs (module ‘jdk.incubator.foreign’) as it relates to Java interoperability with native code.
While this article is for newbies, I assume you know the basics of the Java language, a little bash scripting, and a familiarity with C programming concepts. If you are new to C language don’t worry I will go over the concepts later.
-
Java 25: What’s New?
Table of Contents JEP 470: PEM Encodings of Cryptographic Objects (Preview)JEP 502: Stable Values (Preview)JEP 503: Remove the 32-bit x86 Port509: JFR CPU-Time Profiling (Experimental)514: Ahead-of-Time Command-Line Ergonomics515: Ahead-of-Time Method Profiling518: JFR Cooperative Sampling520: JFR Method Timing & TracingFeatures coming …
-
The Visitor Pattern – ‘Revisited’ using Data Oriented Programming techniques
Java Language improvements culminating in java 21 obviate the need for the verbose visitor pattern as we know it, instead elevating it into a first class language feature.
-
Async file IO with Java and io_uring
Table of Contents What is PanamaManaging memoryMaking calls up and downWhat is io_uringSingle read with Java and UringPerformance improvementsTurning pinning into yieldingBringing It All Together When I first started exploring Virtual Threads in Java, I wanted to understand everything about …
-
Java 24 : What’s New?
Table of Contents JEP 404: Generational Shenandoah (Experimental)JEP 450: Compact Object Headers (Experimental)JEP 472: Prepare to Restrict the Use of JNIJEP 475: Late Barrier Expansion for G1JEP 478: Key Derivation Function API (Preview)JEP 479: Remove the Windows 32-bit x86 PortJEP …
-
Foojay Podcast #63: How do we keep our Java applications up to date and secure?
Table of Contents Last month, I published a Foojay article about the risks in systems that are stuck on old or outdated Java versions and got a lot of feedback from developers. Most of them want to move on but …