Java stripped out the SecurityManager and offered nothing in its place. Peter Firmstone's answer: fork Apache River and OpenJDK to bring back both JINI and JVM-level authorization. Laudable, even necessary - and a very hard sell, because it runs only on his JDK. It's like a post-mortem for JINI while it's still trying to breathe.
A Reddit user on r/SaaS is looking forward to the consulting rates he'll command once the wave of projects trying to dig out from under AI slop hits. He's not wrong, but he's dated the pattern to 2010 offshoring when it's older than that, and the lesson never sticks: coding was never typing.
Christian Rackerseder argues that the real axis for testing decisions isn't integration versus end-to-end, it's control: whether a team can make a dependency predictable enough for a given test and actually act when it fails.
Roseau, a new breaking-change detector for Java libraries, compares your code against your last released baseline and fails the build when the API contract breaks. JUnit already uses it. The reflex says the compiler and tests cover this, but if that were the case, updates would be easier than they are.
Sven Reinck wants dependency diagrams that nudge you toward clean architecture by looking wrong when the code is wrong. The instinct is sound, the history is unkind, and the difference between expressing complexity and measuring it is where the whole idea lives or dies.
Bun was ported from Zig to Rust by an LLM and passed nearly all its tests - while shipping more than ten thousand unsafe blocks. Memory safety is the main reason you'd pick Rust. So what did the rewrite actually accomplish?
GraphCompose is an MIT-licensed Java DSL for generating PDFs from a semantic document model, with themed templates for CVs, invoices, proposals, and reports built in.The 1.6.4 release adds clip-path shape containers, advanced tables, and two new business templates.
Christian Ekrem's 'The Tacit Dimension' carries Polanyi's 'we can know more than we can tell' into software engineering. He's right that experience works that way. Knowledge doesn't, and the essay never separates the two.
The OpenLiberty project has released OpenLiberty 26.0.0.5, with official support for Jakarta EE 11 across Core, Web, and Platform profiles, and support for Spring Boot 4 JAR files as opposed to WAR files. Jakarta EE 11 adds one important specification: Jakarta Data.
The MetBeans IDE has been updated: NetBeans 30 has been released. This is a regular quarterly update, and includes some useful support for Java 26 and some enterprise features, but is mostly an incremental change.
This is a working example of using red/green testing to fix a bug - one that starts in the issue description and lives in the code. You can fix the issue, but the bug remains because it's part of an unexamined specification. Testing - and caring - are the fix.
Github user asmo0dey has created an application that provides live audience polling for slidev presentations, using docker, Spring, vue, and either PostgreSQL or H2. It's got a lot of benefit for presentations, of course, but it also looks designed well.
Kirk Pepperdine has released gcsee-jma, a GC analysis tool for Java. Kirk's been a leader in performance analysis for Java for decades, and a tool from his work is welcomed. It's got excellent, clear, fast features, and looks to be incredibly useful.
Christian Rackerseder makes the case that developer experience is a performance feature.
The stronger version of his claim is that developer experience is an epistemic feature.
Good performance is just one of the things that falls out when your team can finally see what it has been shipping.
David M. Lloyd has another piece on modern reflection, this time on VarHandle - and as usual, it's highly informative. It replaces a lot of Unsafe usage, and demonstrates quite a bit of atomic access fundamentals as well, and it opens up offheap access, too.
AI code is not the enemy. Ideas used to be valued against the weeks we'd spend building them, and most got shelved before we ever found out if they were any good. Now we get to find out in an afternoon.
Rasmus Ros wrote "From Stringly to Strongly Typed," an article describing a Kotlin library that solves one half of typed schema access: how to read the data. But data isn't just accessible; it's related to other data, and that half he's deferring to a future post. The deferred half is well-trodden ground, and the reasons we don't tread it are worth knowing.
Alexander Hanff has documented two AI-vendor stealth installs in two weeks: Claude Desktop registering Native Messaging bridges across seven Chromium browsers, and Chrome writing 4GB of Gemini Nano weights to disk on every eligible device.
Simon Willison wrote up a summary of Zig's policy on LLM contribution this morning, suggesting that Zig can afford it because it has PR oversupply and downstream users wealthy enough to fork the project at need. Yet: most communities adopting the same policy don't share those conditions.
Jordan Lord lays out three constraints he applies before building anything: a one-page description that survives without padding, a piece of core tech that can outlive the product, and a single defining constraint that shapes the user experience. Scope, leverage, and identity - one filter each. Great stuff.