{"id":206422,"date":"2025-12-29T09:00:15","date_gmt":"2025-12-29T09:00:15","guid":{"rendered":"https:\/\/www.newsbeep.com\/nz\/206422\/"},"modified":"2025-12-29T09:00:15","modified_gmt":"2025-12-29T09:00:15","slug":"martin-fowler-on-preparing-for-ais-nondeterministic-computing","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/nz\/206422\/","title":{"rendered":"Martin Fowler on Preparing for AI&#8217;s Nondeterministic Computing"},"content":{"rendered":"<p><a href=\"https:\/\/www.martinfowler.com\/\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">Martin Fowler<\/a>, Thoughtworks chief scientist and long-time expert on object-oriented programming, views AI as the biggest shift in programming he has seen in his entire career.<\/p>\n<p>In an interview on the <a href=\"https:\/\/www.youtube.com\/@pragmaticengineer\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">Pragmatic Engineer<\/a> podcast, hosted by <a href=\"https:\/\/www.linkedin.com\/in\/gergelyorosz\/\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">Gergely Orosz<\/a>, Fowler admitted about AI that, \u201cWe\u2019re still learning how to do this.\u201d<\/p>\n<p>The closest parallel for the industry would be the shift away from assembly language.<\/p>\n<p>Assembly language was tedious to write, as much of the work involved moving memory values across registers. That\u2019s why the move to higher-level programming languages (such as <a href=\"https:\/\/thenewstack.io\/20-years-in-the-making-gnucobol-is-ready-for-industry\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">COBOL<\/a> and <a href=\"https:\/\/thenewstack.io\/how-john-backus-fortran-beat-machine-codes-priesthood\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">Fortran<\/a>) was such a blessing for programmers.<\/p>\n<p>\u201cAt least in a relatively poor, high-level language like Fortran, I can write things like conditional statements and loops,\u201d Fowler said.<\/p>\n<p>These new languages were a higher level of abstraction than the hardware itself.<\/p>\n<p>With large language models (LLMs), it\u2019s a \u201csimilar degree of mindshift,\u201d he said.<\/p>\n<p>Deterministic vs. Nondeterministic Computing<\/p>\n<p>But it is not that LLMs are another abstraction, but that they are a different type of computing altogether.<\/p>\n<p>Namely, LLMs are a form of nondeterministic computing, which has different characteristics than everything we consider as \u201ccomputing\u201d today, which is deterministic computing.<\/p>\n<p>Deterministic computing is strictly binary. A calculation is either correct or it is wrong. If it is incorrect, we can debug the code to see where it went wrong.<\/p>\n<p>Nondeterministic computing is fuzzier. An LLM may produce one answer at one point, and another entirely different answer another time. The answers it builds rely on <a href=\"https:\/\/thenewstack.io\/how-to-generate-ai-from-a-database-bruce-momjian\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">statistical reasoning<\/a>, a set of probabilities built on top of binary math, but not as foolproof.<\/p>\n<p>It completely changes how you have to think about computing, he said.<\/p>\n<p>Where AI Is Working<\/p>\n<p><a href=\"https:\/\/www.thoughtworks.com\/about-us\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">Thoughtworks<\/a> is a technology-driven consulting company, and so it has been keeping an eye on how AI has been used successfully.<\/p>\n<p>One use case, according to Fowler, has been for quickly knocking up prototypes, thanks in part to the emergence of <a href=\"https:\/\/thenewstack.io\/why-there-might-be-something-to-vibe-coding-after-all\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">vibe coding<\/a>. Here you can explore an idea \u201cmuch more rapidly\u201d than you could before.<\/p>\n<p>But the real killer app has been using AI to help <a href=\"https:\/\/thenewstack.io\/agent-infused-mongodb-tackles-application-modernization\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">understand legacy systems<\/a>. On the company\u2019s most recent <a href=\"https:\/\/www.thoughtworks.com\/en-us\/radar\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">annual Radar report<\/a> (#33) of emerging technologies, using generative AI (GenAI) to modernize legacy systems was the single AI technology that got the company\u2019s highest \u201cAdopt\u201d rating.<\/p>\n<p>For its customers trying to modernize old systems, Thoughtworks has created a routine that basically semantically analyzes the codebase, putting the results in a <a href=\"https:\/\/thenewstack.io\/common-uses-cases-for-graph-databases\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">graph database<\/a>, which can then be interrogated with a <a href=\"https:\/\/thenewstack.io\/vector-processing-understand-this-new-revolution-in-search\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">Retrieval-Augmented Generation (RAG) process<\/a> to understand how the application runs.<\/p>\n<p>\u201cIf you are doing any work on legacy systems, you should be using LLMs in some way to help you,\u201d Fowler said.<\/p>\n<p>Harder Problems for AI<\/p>\n<p>But while LLMs can help us understand legacy code, whether they can modify that code in a safe way is another question.<\/p>\n<p>Higher-level programming remains dodgy with LLMs, however. Here you have to break AI work into very thin \u201cslices,\u201d and review everything very closely, he said.<\/p>\n<p>\u201cYou\u2019ve got to treat every slice as a [pull request] from a rather dodgy collaborator who\u2019s very productive in the lines-of-code sense of productivity, but you know you can\u2019t trust a thing that they\u2019re doing,\u201d Fowler said.<\/p>\n<p>Nonetheless, using AI in this way can save developers time, though maybe not as much time as the <a href=\"https:\/\/thenewstack.io\/ai-coding-tools-in-2025-welcome-to-the-agentic-cli-era\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">advocates have been claiming<\/a>.<\/p>\n<p>In particular, he advised us to \u201ccome up with a more rigorous way\u201d of speaking to the LLMs, in order <a href=\"https:\/\/thenewstack.io\/ignore-prior-instructions-ai-still-befuddled-by-basic-reasoning\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">to get better results<\/a>. <a href=\"https:\/\/thenewstack.io\/celebrating-20-years-of-domain-driven-design-ddd-and-eip\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">Domain-driven design<\/a> (DDD) and <a href=\"https:\/\/thenewstack.io\/rethinking-data-integrity-why-domain-driven-design-is-crucial\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">domain-specific languages<\/a> may offer a way forward.<\/p>\n<p>AI\u2019s Similarities To Mechanical Engineering<\/p>\n<p>The practice of structural engineering can also be helpful in better gauging where to use AI, Fowler pointed out.<\/p>\n<p>\u201cMy wife\u2019s a structural engineer. She always thinks in terms of the tolerances: \u2018How much extra stuff do I have to do beyond what the math tells me because I need it for tolerances?&#8217;\u201d Fowler said.<\/p>\n<p>Just as we know how much weight a concrete bridge can take, so too should LLMs come with metrics describing the levels of precision they can support.<\/p>\n<p>\u201cWhat are the tolerances of nondeterminism that we have to deal with?\u201d he asked. Knowing this, software developers will know where \u201cnot to skate too close to the edge.\u201d<\/p>\n<p>One book Fowler recommended to software developers to help think about nondeterminism is <a href=\"https:\/\/www.goodreads.com\/book\/show\/11468377-thinking-fast-and-slow\" class=\"ext-link\" rel=\"external  nofollow noopener\" onclick=\"this.target=&#039;_blank&#039;;\" target=\"_blank\">\u201cThinking, Fast and Slow,\u201d<\/a> by Daniel Kahneman.<\/p>\n<p>\u201cHe does a really good job of trying to give you an intuition about numbers, and spotting some of the many mistakes and fallacies we make when we\u2019re thinking in terms of probability and statistics,\u201d Fowler said.<\/p>\n<p>As always, Fowler is an eloquent speaker, and had some insights across a variety of subjects in this interview, including refactoring, agile processes, LLMs in the enterprise, patterns of enterprise application, and, of course, every object-oriented programmer\u2019s favorite language, <a href=\"https:\/\/thenewstack.io\/the-big-impact-of-smalltalk-a-50th-anniversary-retrospective\/\" class=\"local-link\" rel=\"nofollow noopener\" target=\"_blank\">Smalltalk<\/a>.<\/p>\n<p>Enjoy the entire talk here:<\/p>\n<p>\t<a class=\"row youtube-subscribe-block\" href=\"https:\/\/youtube.com\/thenewstack?sub_confirmation=1\" target=\"_blank\" rel=\"nofollow noopener\"><\/p>\n<p>\n\t\t\t\tYOUTUBE.COM\/THENEWSTACK\n\t\t\t<\/p>\n<p>\n\t\t\t\tTech moves fast, don&#8217;t miss an episode. Subscribe to our YouTube<br \/>\n\t\t\t\tchannel to stream all our podcasts, interviews, demos, and more.\n\t\t\t<\/p>\n<p>\t\t\t\tSUBSCRIBE<\/p>\n<p>\t<\/a><\/p>\n<p>    Group<br \/>\n    Created with Sketch.<\/p>\n<p>\t\t<a href=\"https:\/\/thenewstack.io\/author\/joab\/\" class=\"author-more-link\" rel=\"nofollow noopener\" target=\"_blank\"><\/p>\n<p>\t\t\t\t\t<img decoding=\"async\" class=\"post-author-avatar\" src=\"https:\/\/www.newsbeep.com\/nz\/wp-content\/uploads\/2025\/09\/327440bd-joab-jackson_avatar_1495152980.-600x600.jpeg\"\/><\/p>\n<p>\n\t\t\t\t\t\t\tJoab Jackson is a senior editor for The New Stack, covering cloud native computing and system operations. He has reported on IT infrastructure and development for over 30 years, including stints at IDG and Government Computer News. Before that, he&#8230;\t\t\t\t\t\t<\/p>\n<p>\t\t\t\t\t\tRead more from Joab Jackson\t\t\t\t\t\t<\/p>\n<p>\t\t<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"Martin Fowler, Thoughtworks chief scientist and long-time expert on object-oriented programming, views AI as the biggest shift in&hellip;\n","protected":false},"author":2,"featured_media":206423,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[365,363,364,111,139,69,145],"class_list":["post-206422","post","type-post","status-publish","format-standard","has-post-thumbnail","category-artificial-intelligence","tag-ai","tag-artificial-intelligence","tag-artificialintelligence","tag-new-zealand","tag-newzealand","tag-nz","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/posts\/206422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/comments?post=206422"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/posts\/206422\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/media\/206423"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/media?parent=206422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/categories?post=206422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/nz\/wp-json\/wp\/v2\/tags?post=206422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}