Share
Embed
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
Talk I gave at Monktoberfest 2026; video to come!
Bryan Cantrill
October 02, 2026
Transcript
49 slides
-
Abstraction • The essence of software systems is the creation
of abstraction • Abstractions allow us to build software systems that do sophisticated things; they are the shoulders we stand upon – and provide to others • Abstractions are qualitative; good ones allow us to hide gory implementation details – to build castles atop them and tunnels beneath • Bad ones, however, leak: instead of sealing implementation details, they seep them – yielding systems that are unwieldy and brittle • In the 1980s, one particular aspect of abstraction was top of mind… OXIDE -
Abstraction and reusability (1987) Bertrand Meyer, Reusability: The Case for
Object-Oriented Design (IEEE Software, 1987) OXIDE -
Abstraction and reusability (1987) Bertrand Meyer, Reusability: The Case for
Object-Oriented Design (IEEE Software, 1987) OXIDE -
Abstraction and “reuse in practice” (1987) Bertrand Meyer, Reusability: The
Case for Object-Oriented Design (IEEE Software, 1987) OXIDE -
The asylum where they raised me (1993) Brown University Department
of Computer Science, conduit! (Fall 1993) OXIDE -
The asylum where they raised me (1993) Brown University Department
of Computer Science, conduit! (Fall 1993) OXIDE -
The asylum where they raised me (1993) Brown University Department
of Computer Science, conduit! (Fall 1993) OXIDE -
Abstraction and complexity • When abstractions leak, are absent, or
became unnecessarily entangled with one another, we have complexity • Fred Brooks famously called this accidental complexity, differentiating it from the essential complexity endemic to a particular problem • Complexity doesn’t merely accrue, however – it can explode… • Uncontained accidental complexity in one component can become essential complexity in something that must interact with it! OXIDE -
Taxonomizing complexity Engineered Complex Simple Emergent OXIDE The Complexity of
Simplicity (TalosCon 2025) -
Abstraction and complexity Engineered Constructed Complex Simple Emergent OXIDE The
Complexity of Simplicity (TalosCon 2025) -
Abstraction and complexity Engineered Constructed Complex Simple Rebellious Emergent OXIDE
The Complexity of Simplicity (TalosCon 2025) -
Abstraction and complexity Engineered Constructed Complex Simple Accreted Rebellious Emergent
OXIDE The Complexity of Simplicity (TalosCon 2025) -
Abstraction and complexity Engineered Constructed Revolutionary Complex Simple Accreted Rebellious
Emergent OXIDE The Complexity of Simplicity (TalosCon 2025) -
Revolution (1995) James Gosling and Henry McGilton, The Java Language
Environment (1995) OXIDE -
“Object oriented from the ground up” (1995) James Gosling and
Henry McGilton, The Java Language Environment (1995) OXIDE -
Java revolution (late 1990s) • Java and object-oriented programming became
synonymous with one another – and joined to form a single (suffocating!) dogma • Java was shoved everywhere: web applets, desktop applications, office suites, network computers (!), operating systems (!!), microprocessors (!!!) • These broadly died under their own weight – but Java saw real traction in the commercial, server-side applications of the enterprise… OXIDE -
Java accretion and rebellion (early 2000s) • J2EE begat a
Cambrian explosion of abstraction: EJB, JSP, JDBC, JNDI, RMI, RMI-IIOP, JMX, JAXP, JAX-RPC, SAAJ • However revolutionary Java had been at birth, through the late 1990s J2EE was clearly constructed – and by the early 2000s, accreted • Java had rebellions with it, e.g. Spring (“a fresh start after the ‘winter’ of J2EE”) – but the hegemony of Java was cracking under the sheer weight of the complexity • The time was right for a larger rebellion… OXIDE -
“Look at all the things I’m not doing” (2005) David
Heinemeier Hansson, Ruby on Rails demo (2005) OXIDE -
Execution in the Kingdom of Nouns (2006) Steve Yegge, Execution
in the Kingdom of Nouns (2006) OXIDE -
Execution in the Kingdom of Nouns (2006) Steve Yegge, Execution
in the Kingdom of Nouns (2006) OXIDE -
Execution in the Kingdom of Nouns (2006) Steve Yegge, Execution
in the Kingdom of Nouns (2006) OXIDE -
Execution in the Kingdom of Nouns (2006) Steve Yegge, Execution
in the Kingdom of Nouns (2006) OXIDE -
Reflecting on Java • Java cleary was an important and
successful technology… • …but its efficacy was ultimately limited by its dogma and its complexity • These are not unrelated! • Ultimately, the elimination of the Java monoculture was healthy – and the 2010s saw several different revolutions in software systems OXIDE -
Software factories • The metaphor of a “software factory” has
been drifting around in software since the late 1960s, its use ebbing and flowing with broader trends • With the rise of LLMs to assist in software development – and then especially the rise of agentic coding workflows in late 2024 – the temptation to anthropomorphize LLMs as labor became too great… • The metaphor of a software factory is being seized upon with little knowledge or appreciation of manufacturing! • A software factory is effectively all engineering change orders! OXIDE -
Gas Town Steve Yegge, BAGS and the Creator Economy (January
14, 2026) OXIDE -
Gas Town Steve Yegge, BAGS and the Creator Economy (January
14, 2026) OXIDE -
Gas Town Steve Yegge, BAGS and the Creator Economy (January
14, 2026) OXIDE -
Gas Town burns down Steve Yegge, The Shape of Things
to Come (August, 2026) OXIDE -
The virtue of laziness • Our need to comprehend and
compose systems drives us towards developing simple, powerful abstractions • This is our drive to cognitive efficiency in a system – what Larry Wall famously called the programmer virtue of laziness • LLMs lack the virtue of laziness – they are biased to the complex • Moreover, their limited context makes them tautologically emergent… OXIDE -
Execution in the Kingdom of Agents Engineered Constructed Revolutionary Complex
Simple Accreted Rebellious Emergent OXIDE -
Abstractions and complexity in the LLM age • Complexity has
always been the enemy of systems – and it is simple to make the system complicated! • LLMs are extraordinarily powerful – but they are a tool • If we leave LLMs to their own devices, we risk systems that collapse under the weight of their accreted complexity • To make effective use of LLMs, our (human!) abstractions are more important than ever – and the code very much still matters! OXIDE -
Further reading and listening • Rich Hickey’s classic 2011 talk,
Simple Made Easy • Fred Brooks’s timeless 1986 essay, No Silver Bullet – Essence and Accident in Software Engineering • Michi Henning’s outstanding retrospective, The Rise and Fall of CORBA • Oxide and Friends, No Silver Bullet and Engineering Rigor in the LLM Age • RFD 576 Using LLMs at Oxide OXIDE