Kernighan and Pike were right: Do one thing, and do it well

Extensible programs like Obsidian have achieved a Holy Grail of software architecture by following the mantra “Do One Thing And Do It Well” as outlined by Brian Kernighan and Rob Pike in their seminal paper on program design in the UNIX environment. This concept of chaining together simple programs to create complex behaviors has been successfully implemented in Unix and its descendants. However, the ideal of simple, focused programs does not hold up in the real world, as evidenced by the encrusted nature of popular modern programs like Photoshop and Word. Nevertheless, the Microservices architecture and the use of plugins in apps like Obsidian have shown promise in creating flexible and reliable software. By breaking down complex systems into smaller, specialized components, developers can increase development velocity and decrease the probability of introducing bugs. However, implementing microservices and plugins comes with its own challenges and trade-offs. Ultimately, the key to successful software architecture lies in arranging single-purpose units of code in a way that allows complex behaviors to emerge, much like the fundamental structures found in nature.

To top