ByteCode.News has some pretty fundamental updates on the way behind the scenes, to make maintenance and updates a lot easier than they were. What's running right now is "old code" but this will open up the process for a better future for the codebase.
Primate, an opinionated web framework primarily written in Typescript but with support for many languages, has reached 0.37, with added support for migrations, a greater emphasis on developer correctness and ease of use. It's worth a hard look for services.
DoytoQuery's author published a performance comparison against a number of data access frameworks, and it came out well - which isn't surprising, given that its author wrote the framework. They're deservedly proud of their work, and DoytoQuery has some interesting concepts in how it works, and may be worth further investigation, although there's a documentation gap and, as with most data access frameworks, an impedance mismatch.
A writing community survey asked "do you use AI?" — which sounds simple until you realize Grammarly is AI, your search engine is AI, and your spellchecker might qualify too. So: how would you actually avoid AI if you wanted to? And is there any good reason to try?
Oracle laid off roughly 30,000 people, including Sharat Chander and others important to the Java ecosystem. Layoffs are never fun to endure or watch, but it's worth asking: how many of us have actually paid Oracle - or Sun before them - anything? If we haven't bought anything, should we expect a voice in corporate decisions? And what does this mean for the platform work that actually matters?
From a health podcast, a guest ran into a situation where Claude - being used as an AI writing assistant - *offered to author content itself*, and the content is not only pretty good, but offers a chance for insight into how the entire modeling construct works.
OpenJDK leet koda Hanz Franz MacNamaramara told ByteCode.News today that the new structured concurrency implementation in the JVM was being rewritten in Python, using the most current AI modeling available.
Junior programmers mess up paradigms because they think they're more experienced than they actually are. They end up blaming the system for not working the way they think it should. I trusted the wrong thing, just like a junior programmer: I assumed my tests were wrong, my results were wrong, that I was wrong, and I was - but the error was in the location of the problem.
Yury Selivanov recently released lat.md, a knowledge graph for your codebase, stored as user-editable markdown. The tool itself sounds useful enough, but checking it out and working out what it provides for your code was more useful than the tool's existence itself: effective agent management means going through an onboarding process.
Miasma is a new project in Rust that creates a maze of twisty passages, all alike, for AI scrapers. It's got documentation to protect "good" scrapers, and creates nonsense for "bad" scrapers, but the problem isn't as simple as "punish AI for existing."
You've probably never thought about why your IDE's default theme uses the colors it does, or why every hospital, factory, and control room built between 1944 and 1980 looked the same. Beth Mathews' piece on Faber Birren answers the second question - and the answer has more to say about developer tooling than you might expect.
Two recent articles tackle JSON querying performance from opposite ends: one applies automata theory to eliminate interpretation overhead at query time, the other kills a $500K/year language-boundary tax by rewriting a JavaScript reference implementation in Go. The methodologies are different; the lesson is the same.
Piotr Minkowski's new article on Spring Kafka offset behavior ("Deep Dive into Kafka Offset Commit with Spring Boot") goes into how Spring's Kafka reader commits read offsets: it treats the read operation as a committable transaction, which means your code needs to be aware of the offset write semantics to make sure you don't lose messages. Kafka is powerful precisely because it's not a simple queue - messages can be replayed via offset manipulation - but that same model means offset commit semantics matter in ways they never would with a fire-and-forget message broker.
Andros Fenollosa had never built a RAG system before he was handed a 1TB corpus of proprietary engineering documents and told to make it queryable in natural language - locally, with no external APIs, a problem many users of AI would like to solve for themselves. His writeup is an honest record of what broke and why. No complete recipe for RAG exists yet, but practitioner records like this one are how the field is actually being built.
diffnav gives git a syntax-highlighted display of changes in a navigable filetree, as a natural extension of git-delta. Very nicely done and potentially very useful if you're using git from the command line.
Mirko Caserta has released Bruce 2.0, a library that wraps JCA with a clean API. Bruce takes the agony of all the nuts and bolts of security and, well, fixes it. Security libraries earn trust slowly and should - this is not the domain where "looks good to me" is sufficient due diligence, but the reduced API surface might be a good thing for the normative case.
EclipseLink 5.0.0 has been released. EclipseLink is the reference implementation for Jakarta Persistence, and is the standard implementation for many application servers; this release updates some really useful features, like JPQL updates and outdating some APIs that need to be sunset.
The software industry has a short memory. Every generation of tooling has made the same promise: let the machine handle implementation so humans can focus on the problem, in mostly disappointing ways. Now LLMs are making the same pitch, and the instinct is to either panic or sneer. Both responses miss the point. What changed isn't the promise - it's how much of it is actually being kept. The question worth asking isn't whether to adopt, but how to do it without hollowing out the understanding that makes the tools useful in the first place.
The OpenJDK team has released Java 26 - a non-LTS release, but one that supports some important language and API updates, along with some potentially useful ahead-of-time updates for garbage collection and runtime caching. Language updates include progress towards making final mean final - at last - and adding HTTP3 and QUIC support.