The Stack Overflow Podcast

Java’s age is its AI superpower

· Summarized

Share this episode
Anyone with this link can open it.
Share Link
Start at 0:00

Key takeaways

  • Java’s long history gives agents abundant training data while its typing, specifications, JVM, tooling, and enterprise frameworks provide guardrails for generating and operating code.
  • The hardest agentic Java problems usually come from legacy history—undocumented intent, large codebases, missing tests, and customer-specific exceptions—not from the Java language itself.
  • For established or regulated systems, Markus recommends precision engineering with visible, guided steps rather than unattended vibe coding and a daunting final diff review.
  • Enterprise modernization should combine runtime upgrades with tools such as OpenRewrite and agentic workflows so teams can adopt more idiomatic code instead of merely paying to stay supported.
  • Harnesses and workflows matter as much as or more than model choice because they ground agents in current documentation, enforce vulnerability and testing procedures, and constrain the scope of changes.

Summary

Java’s long history supplies training data and guardrails

Markus Eisele explains that Java’s age helps agentic development in two ways. First, Java has been open source through OpenJDK for essentially its entire history, and its long use solving enterprise problems means large language models contain abundant Java examples. Second, Java is strongly typed, structurally consistent, and governed by recognizable language constructs, making generated code easier for agents to produce reliably. Ryan asks whether Java’s history creates guardrails; Markus says the language, JVM, tooling, and frameworks such as Spring and Quarkus provide a proven, scalable platform.

Legacy Java is manageable, but history creates the real difficulty

Ryan asks whether old Java paradigms or long release cycles cause agents to generate outdated code. Markus says he rarely sees that when engineers use context engineering and proper grounding, although historical examples in the training data can include non-idiomatic practices. The bigger problem is not Java itself but legacy systems: projects may be older than their youngest intern, contain ten years of source code, lack current documentation, and include undocumented customer-specific exceptions whose original experts have left. Agents can investigate these systems, but doing so consumes tokens and can produce unstable results.

Why vibe coding is risky for established enterprise systems

Markus contrasts brute-force agent loops and vibe coding with what he calls precision engineering. He recalls dropping TypeScript and Tailwind CSS into an agent and receiving an impressive website without understanding how it was built, then asks whether anyone would want a bank developed that way. For regulated or established applications, he prefers surgical changes whose effects can be audited, tested, and explained. He also rejects the idea that the human merely reviews an agent’s final output: the human should observe the steps, guide the workflow, and remain in control throughout.

Modernization should rewrite code, not merely bump the runtime

Ryan asks whether Java’s historically large, infrequent releases left behind disjointed code. Markus says modernization has levels: a customer can simply move to a newer runtime while retaining old constructs, or adopt newer idioms as part of the upgrade. Because enterprise testing is expensive and legacy applications often lack automated tests, many organizations only bump the version to address support and CVE costs. Markus points to OpenRewrite and IBM Bob’s Java modernization workflow as a way to combine static code rewriting with agentic assistance, reducing code and capturing the benefits of newer Java features.

Specifications, frameworks, and harnesses keep agents grounded

Markus argues that Java specifications give agents a shared domain vocabulary: concepts such as CDI beans and annotations have consistent meanings across implementations, including MicroProfile and Jakarta EE. Quarkus adds an agent-oriented layer through its Quarkus Agent MCP project, which exposes a development-mode application, documentation search, controls, and packaged skills through an MCP server. He says current information and live project access matter because fast-moving frameworks can outpace model training. Markus considers the agent harness more important than the model because it shapes context, exposes tool calls, and determines transparency and control.

Workflows enforce security, testing, and smaller diffs

Markus says reliable agentic development depends on packaged workflows rather than hoping a prompt or skill will do everything. Bob’s vulnerability workflow consults the CVE database, compares findings against the source, and reports vulnerabilities instead of merely asking an LLM for an opinion. Its JUnit workflow assesses existing tests, proposes an editable testing strategy, can add coverage, and estimates migration effort; some steps run locally without model round trips. Markus’s own process starts with a specification emphasizing nonfunctional requirements, then scaffolding, stability, and architectural guidance. Repository guardrails catch secret leaks, while Bob personas such as a “Grumpy German” help limit blast radius and produce reviewable diffs.

Sponsors

  • IBM · IBM sponsored the episode’s discussion of why Java is well suited to the agentic enterprise. Markus Eisele also discussed IBM Bob, the coding agent’s Java modernization workflows, vulnerability scanning, testing support, and controlled development workflows. He directed listeners to Bob to try it.

Show notes

SPONSORED BY IBM

Ryan welcomes Markus Eisele to the program to talk about why your coding agent should be writing Java. They talk about why the long history of Java both makes for a stable language and a source of training data for AI. On top of that, they discuss how agentic Java excels by working with powerful partners: a massive ecosystem of Java libraries and agentic harnesses. 

Try out Bob, IBM’s coding agent that Markus talked about in the episode. 

Connect with Markus on 

Congrats to Populist badge winner, Alex K, whose answer to ffmpeg usage to encode a video to H264 codec format outshined the accepted answer.



See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

Follow this show on AudioBrevity and new episodes get summarized for you. Create a free account

Couldn't load the audio. A blocker may be stopping the show's tracking links. Open the file