Results: 1
-
The Complexity of Simplicity
2025-11-14 14:10
Absolutely fantastic keynote tech talk given by Bryan Cantrill at TalosCon 2025 on simplicity in programming.
Abstraction
The essence of software systems is the creation of abstraction. They allow us to build software systems that do sophisticated things. They are the shoulders we stand on and provide to others. Abstractions are qualitative. The good ones allow us to hide gory implementation details in order to build "castles atop them and tunnels beneath".[^cantrill2025] The bad ones leak, seeping implementation details instead of sealing them, yielding systems that are unwieldy and brittle.
One of the primary roles of any software or computer science engineering education is imparting the humility that anything works at all.[^cantrill2025]
Complexity
Complexity blossoms in bad or non-existent abstractions. Fred Brooks famously called this accidental complexity in his essay No Silver Bullet. (Where are my notes from this when I read it? #thread #wip) This is differentiated from the essential complexity endemic to a particular problem. Complexity can explode. Accidental complexity in one component can become the essential complexity in something that must interact with it! Complexity doesn't merely accrue.