Recently there was a decision in the Java world that left a lot of people unhappy. The OpenJDK maintainers decided they will not accept contributions of AI-generated code. Before we react to it, let’s understand what’s actually going on.
When you work on an open source project at the scale of Java, the companies behind it have to pay attention to things most of us never deal with. The maintainers published a document explaining the decision, and it lays out the reasoning in reasonable detail. There are ten items in there. I won’t go through all of them, but a few are worth talking about.
Reviewing code written by AI
One of them is almost obvious, and it’s the point a lot of people have been raising: our human capacity to review code generated by AI. You also hear the follow-up everywhere, the idea of asking the AI to review the code the AI just wrote. Not gonna happen for OpenJDK, at least at this moment…
The intellectual property question
There’s another point in the document, and this is the one most of us never have to think about: intellectual property.
When you write code, you own the intellectual property of that code. When you contribute it to OpenJDK, the agreement you sign when you contribute hands that intellectual property over to Oracle. It has always worked that way. If you don’t want that, you don’t contribute, and that’s perfectly fine. The moment you contribute, you give it up.
Now the harder question: when the code was generated by an AI, whose intellectual property is it? The document raises exactly this. It opens the door to litigation, to legal disputes. I worked at Oracle, and people like to joke that Oracle is basically a large law firm. They know how to deal with this kind of thing. So that is one of the reasons behind the decision.
Using AI versus submitting AI-generated code
Here’s a distinction the document makes, and it matters: people are not forbidden from using AI while working on their contributions to Java. What they cannot do is submit code that was generated by AI.
And the question that probably comes to mind: how would they even know? I could generate my code with AI and simply not mark the commit as co-authored by an AI assistant.
So what did they do? They put it in the reviewer’s hands. The reviewer has full autonomy to look at your code, and if they suspect it was generated by AI, they reject your pull request, or whatever the contribution happens to be. The document says this is provisional, in place until they have a reliable process that can handle it properly.
The part that matters most
And here’s the part I find most important in all of this for the Java world.
Java has always been a production technology. Bruno Souza, the JavaMan, makes this point. The people behind Java have never been in a hurry to push anything into production, into a release, into a distribution. And I think that is exactly the right instinct.
Why? We’re talking about a technology that, just in the Fortune 500, moves something like $18 trillion a year. It’s a trillion-dollar market, with critical systems running in production all over the world, at global scale, and code that has been built on top of it for thirty years. So this is not something they will change on a whim, chasing the trend with a “you only live once” mindset. They don’t operate that way. They never have. And from what I’m seeing, this is not the moment they will start.