<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Java on David Parry</title>
    <link>https://davidparry.com/tags/java/</link>
    <description>Recent content in Java on David Parry</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 28 Aug 2026 11:00:00 -0500</lastBuildDate>
    <atom:link href="https://davidparry.com/tags/java/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>📚 Open Source Wrote the Textbooks AI Learned From</title>
      <link>https://davidparry.com/blog/2026/08/28/open-source-wrote-the-textbooks-ai-learned-from/</link>
      <pubDate>Fri, 28 Aug 2026 11:00:00 -0500</pubDate>
      <guid>https://davidparry.com/blog/2026/08/28/open-source-wrote-the-textbooks-ai-learned-from/</guid>
      <description>&lt;img src=&#34;https://davidparry.com/images/open-source-wrote-the-textbooks-ai-learned-from-linkedin.jpg&#34; alt=&#34;Open source code as textbooks: glowing manuals of source and pull requests feeding a neural lattice&#34; style=&#34;display: block; margin: 0 auto; width: 70%; max-width: 560px;&#34; /&gt;&#xA;&lt;p&gt;&lt;strong&gt;We owe the open source community more than we usually credit for how good AI has gotten at writing software.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a theory that matters more as we move from asking LLMs to generate snippets to asking agents to build real systems:&lt;/p&gt;&#xA;&lt;p&gt;An LLM didn&amp;rsquo;t independently discover what good software architecture looks like. It learned patterns from an enormous body of code written, reviewed, refactored, tested, documented, and maintained by developers over decades. Which means the quality of those examples matters.&lt;/p&gt;</description>
      <content:encoded>&lt;img src=&#34;https://davidparry.com/images/open-source-wrote-the-textbooks-ai-learned-from-linkedin.jpg&#34; alt=&#34;Open source code as textbooks: glowing manuals of source and pull requests feeding a neural lattice&#34; style=&#34;display: block; margin: 0 auto; width: 70%; max-width: 560px;&#34; /&gt;&#xA;&lt;p&gt;&lt;strong&gt;We owe the open source community more than we usually credit for how good AI has gotten at writing software.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a theory that matters more as we move from asking LLMs to generate snippets to asking agents to build real systems:&lt;/p&gt;&#xA;&lt;p&gt;An LLM didn&amp;rsquo;t independently discover what good software architecture looks like. It learned patterns from an enormous body of code written, reviewed, refactored, tested, documented, and maintained by developers over decades. Which means the quality of those examples matters.&lt;/p&gt;&#xA;&lt;h2 id=&#34;better-code-in-better-code-out&#34;&gt;Better Code In, Better Code Out&lt;/h2&gt;&#xA;&lt;p&gt;Research backs this up. &lt;a href=&#34;https://arxiv.org/abs/2503.11402&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;One study&lt;/a&gt;&#xA; found that removing low-quality code from training data cut quality problems in the model&amp;rsquo;s output significantly, without hurting functional correctness. Better code in, better code out.&lt;/p&gt;&#xA;&lt;p&gt;That makes me wonder whether mature enterprise ecosystems have an underappreciated advantage in the agentic era.&lt;/p&gt;&#xA;&lt;h2 id=&#34;javas-quiet-advantage&#34;&gt;Java&amp;rsquo;s Quiet Advantage&lt;/h2&gt;&#xA;&lt;p&gt;Take Java. Decades of professionally maintained open source projects have reinforced patterns around interfaces, dependency injection, domain boundaries, testing, error handling, package structure, API design, and backwards compatibility. The language then adds another layer of constraint through static typing and compilation.&lt;/p&gt;&#xA;&lt;p&gt;Those constraints matter to AI too. &lt;a href=&#34;https://arxiv.org/abs/2504.09246&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Type-constrained decoding&lt;/a&gt;&#xA; has been shown to cut compilation errors by more than half. Giving coding agents &lt;a href=&#34;https://arxiv.org/abs/2601.12146&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;compiler feedback&lt;/a&gt;&#xA; has produced similarly dramatic jumps in how often they generate valid code.&lt;/p&gt;&#xA;&lt;h2 id=&#34;not-java-versus-python&#34;&gt;Not Java Versus Python&lt;/h2&gt;&#xA;&lt;p&gt;This isn&amp;rsquo;t &amp;ldquo;Java good, Python bad.&amp;rdquo; Python is one of the richest languages in current training data and performs extremely well on code-generation benchmarks.&lt;/p&gt;&#xA;&lt;p&gt;My hypothesis is narrower: the more a language and its ecosystem encode decades of professional engineering constraints, conventions, and high-quality examples, the more structure an LLM has to imitate — and the more we can mechanically verify what it produces.&lt;/p&gt;&#xA;&lt;p&gt;That starts to matter a lot more once the goal stops being &amp;ldquo;generate a function that passes a test&amp;rdquo; and becomes &amp;ldquo;build software another team can safely operate, modify, and maintain for the next twenty years.&amp;rdquo;&lt;/p&gt;&#xA;&lt;h2 id=&#34;they-wrote-the-textbooks&#34;&gt;They Wrote the Textbooks&lt;/h2&gt;&#xA;&lt;p&gt;Which means every developer who spent years maintaining Apache projects, Spring libraries, compilers, frameworks, and testing tools contributed something bigger than they probably realized. They didn&amp;rsquo;t just build software for us. They helped write the textbooks our machines learned from.&lt;/p&gt;&#xA;&lt;p&gt;So next time you&amp;rsquo;re working in a scripting language that never had to earn its keep in the enterprise — never got dragged through code review, backwards-compatibility guarantees, and a decade of production incidents — and you&amp;rsquo;re wondering why your agent keeps producing code nobody can maintain, that might be your answer. Try one of the languages the open source community spent decades hardening for exactly that job.&lt;/p&gt;&#xA;&lt;p&gt;And thank your contributors while you&amp;rsquo;re at it.&lt;/p&gt;&#xA;</content:encoded>
    </item>
    <item>
      <title>☕ Java at Thirty: Still One of the Strongest Bets in the Enterprise</title>
      <link>https://davidparry.com/blog/2026/07/18/java-at-thirty-still-one-of-the-strongest-bets-in-the-enterprise/</link>
      <pubDate>Sat, 18 Jul 2026 11:00:00 -0500</pubDate>
      <guid>https://davidparry.com/blog/2026/07/18/java-at-thirty-still-one-of-the-strongest-bets-in-the-enterprise/</guid>
      <description>&lt;p&gt;Three decades after its release, Java is still solving the problems that matter most to enterprise software. That staying power is easy to dismiss as inertia. I don&amp;rsquo;t think it is. I think it&amp;rsquo;s the predictable result of a platform that optimized for the things large organizations actually care about — and kept investing in them long after the hype cycle moved on.&lt;/p&gt;&#xA;&lt;p&gt;Let me be careful about the claim I&amp;rsquo;m making, though.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Three decades after its release, Java is still solving the problems that matter most to enterprise software. That staying power is easy to dismiss as inertia. I don&amp;rsquo;t think it is. I think it&amp;rsquo;s the predictable result of a platform that optimized for the things large organizations actually care about — and kept investing in them long after the hype cycle moved on.&lt;/p&gt;&#xA;&lt;p&gt;Let me be careful about the claim I&amp;rsquo;m making, though.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-honest-version-of-the-claim&#34;&gt;The honest version of the claim&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;m not going to tell you Java is &lt;em&gt;the optimal language&lt;/em&gt;. That&amp;rsquo;s an opinion dressed up as a fact, and it falls apart the moment you change the context — Java is not my first reach for a data-science notebook, a systems kernel, or a quick shell script.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the claim I&amp;rsquo;ll actually defend: &lt;strong&gt;Java remains one of the strongest choices for enterprise software where long-term maintainability, stability, and operational reliability are the dominant concerns.&lt;/strong&gt; That&amp;rsquo;s a narrower statement, and it&amp;rsquo;s a stronger one, because it names the conditions under which it&amp;rsquo;s true.&lt;/p&gt;&#xA;&lt;p&gt;For most organizations, success is rarely about using the newest language. It&amp;rsquo;s about delivering reliable systems, controlling operational risk, hiring engineers at scale, and maintaining software for a decade or more. Judge Java against &lt;em&gt;those&lt;/em&gt; goals and its longevity stops looking like nostalgia and starts looking like fit.&lt;/p&gt;&#xA;&lt;h3 id=&#34;backward-compatibility-is-a-feature-not-a-limitation&#34;&gt;Backward compatibility is a feature, not a limitation&lt;/h3&gt;&#xA;&lt;p&gt;The thing developers complain about — Java&amp;rsquo;s conservatism — is exactly what enterprises are buying.&lt;/p&gt;&#xA;&lt;p&gt;Code written years ago still compiles and runs. Upgrades are usually boring, and boring is the point. When a platform breaks compatibility casually, every upgrade becomes a migration project, and migration projects are where budgets and timelines go to die. Java&amp;rsquo;s discipline here means a large codebase can move forward without being rewritten, and that compounds over the lifespan of a system.&lt;/p&gt;&#xA;&lt;h3 id=&#34;predictable-releases-you-can-plan-around&#34;&gt;Predictable releases you can plan around&lt;/h3&gt;&#xA;&lt;p&gt;Since the six-month release cadence and the Long-Term Support (LTS) model, Java gives organizations something they can actually build a roadmap on. LTS releases give you a stable target with years of support; the interim releases let the language keep evolving without forcing everyone onto the treadmill. You choose your pace. For a business planning multi-year investments, predictability like that is worth more than raw novelty.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-platform-is-still-being-invested-in&#34;&gt;The platform is still being invested in&lt;/h3&gt;&#xA;&lt;p&gt;Java isn&amp;rsquo;t coasting. Recent years have brought genuinely significant work to the platform — virtual threads reshaping how the JVM handles concurrency at scale, ongoing improvements to startup time and memory footprint, pattern matching and records modernizing the language itself, and continued GC advances. This is a thirty-year-old platform still receiving serious, well-funded engineering. That matters when you&amp;rsquo;re betting a decade of software on it.&lt;/p&gt;&#xA;&lt;h3 id=&#34;a-mature-ecosystem-and-a-deep-talent-pool&#34;&gt;A mature ecosystem and a deep talent pool&lt;/h3&gt;&#xA;&lt;p&gt;Two of the most underrated enterprise concerns are &amp;ldquo;what do I build on?&amp;rdquo; and &amp;ldquo;who will maintain it?&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;On the first, the JVM ecosystem is vast and battle-tested — Spring and Spring Boot alone cover an enormous surface of what enterprises need, with libraries, tooling, observability, and integration patterns refined over many years of production use.&lt;/p&gt;&#xA;&lt;p&gt;On the second, the Java talent pool is one of the largest in the industry. You can hire for it, you can staff teams at scale, and you can find engineers who&amp;rsquo;ve operated Java systems in production for years. That&amp;rsquo;s not a glamorous advantage, but it&amp;rsquo;s a decisive one when you&amp;rsquo;re maintaining critical systems over a long horizon.&lt;/p&gt;&#xA;&lt;h3 id=&#34;operational-reliability-is-where-it-earns-its-keep&#34;&gt;Operational reliability is where it earns its keep&lt;/h3&gt;&#xA;&lt;p&gt;None of the above would matter if the runtime fell over under load. It doesn&amp;rsquo;t. The JVM&amp;rsquo;s observability, profiling, and tuning story is deep, and the operational patterns for running Java in production are extremely well understood. When something goes wrong at 2 a.m., &amp;ldquo;well understood&amp;rdquo; is exactly the property you want.&lt;/p&gt;&#xA;&lt;h3 id=&#34;where-java-isnt-the-answer&#34;&gt;Where Java isn&amp;rsquo;t the answer&lt;/h3&gt;&#xA;&lt;p&gt;Being honest about the boundaries is what makes the rest credible. If your problem is a small script, a latency-critical systems component, data science and ML research, or a lean startup optimizing for the fastest possible time-to-first-feature, Java is often not the best tool — and you should reach for something that fits. The claim is about a &lt;em&gt;context&lt;/em&gt;, not a coronation.&lt;/p&gt;&#xA;&lt;h3 id=&#34;why-this-is-on-my-mind&#34;&gt;Why this is on my mind&lt;/h3&gt;&#xA;&lt;p&gt;I spend most of my time now building agentic systems on the JVM, and this is precisely why. The interesting, fast-moving part — the reasoning, the model calls, the orchestration — sits on top of a platform I can trust to still be maintainable, staffable, and operable years from now. New capability on a stable foundation is a good trade. It lets me chase what&amp;rsquo;s genuinely new without gambling the boring, load-bearing parts of the system.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-takeaway&#34;&gt;The takeaway&lt;/h3&gt;&#xA;&lt;p&gt;Thirty years in, Java&amp;rsquo;s relevance isn&amp;rsquo;t an accident and it isn&amp;rsquo;t sentiment. It&amp;rsquo;s the payoff of a platform that consistently optimized for maintainability, stability, backward compatibility, predictable evolution, a deep ecosystem, and a large talent pool — the exact concerns that dominate enterprise software.&lt;/p&gt;&#xA;&lt;p&gt;That doesn&amp;rsquo;t make it the best language for everything. It makes it one of the strongest bets you can place when you need systems to run, and keep running, for a very long time.&lt;/p&gt;&#xA;</content:encoded>
    </item>
  </channel>
</rss>
