A while back I wrote about minimalism in code. Lately, I’ve been thinking about that topic again, but not just as it applies to programming. As I mentioned in my most recent post, my relationship with technology is becoming more turbulent with every year I work in the field, and I attribute a good deal of that to frustration with needless, harmful complexity.
Simplicity in Hardware and in Software
Trust comes, in part, from simplicity. When something is simple, it’s possible to understand it in fullness. When you understand a thing, you can trust it. Simplicity and modern computing are at conceptual odds, however.
The hardware that composes the average desktop computer is enormously complex, and in itself contains elaborate software systems. Most hardware vendors don’t even aim for simplicity at a surface level. Apple hardware may have a minimalist patina, but it’s no less complex under the hood than, say, ugly, complicated-looking Dell hardware.
A step above hardware, operating system software is no less complex. Plan 9 was arguably the only desktop operating system to ever properly embody minimalist design principles, taking the UNIX philosophy of simple, reusable components even further and rallying around the filesystem metaphor to accomplish many goals. Windows Vista is the accumulation of millions of lines of code and two decades of legacy software support. Linux, as both a kernel and a distributed operating system, is a chaotic amalgam; just look at the GNU/Linux Distro Timeline or read about the history of the kernel. Mac OS X is an intricate fusion of UNIX-world and proprietary technologies; the leading text on the system’s internals is 1680 pages.
Atop the operating system is the software we use day-to-day. Arguing that user-facing software is complex practically requires no evidence; the travails of personal computing have long since graduated from truism to sad joke. The current trend of web applications is trading one set of complexities (developing, distributing, and updating desktop software) for another (scaling, multi-browser support, synchronization, data portability, offline access). Even the decision about whether or not to use a desktop or web application for a given goal adds complexity to the average user’s computing day.
From applications down to microchips, it should be uncontroversial to say that personal computers are monuments to complexity.
Mobile phones are our best hope for a renewed focus on simplicity in technology. More so than general purpose computers, mobile devices are good candidates for the application of minimalist design principles because their set of user goals is finite, or at least more easily quantified.
At the high end of the mobile market, engineering simplicity is being tossed out for the shortest path to more feature-rich devices. Thus the rise of phones that are tiny computers, powered by full-fledged operating systems from the list above: Windows Mobile, various flavors of Linux, Mac OS X in your pocket. The manufacturers of these devices seek to leverage existing development platforms and developer communities as well as existing code bases. While such reuse is pragmatic from a business perspective, these mobile devices inherit all the troubles of their desktop counterparts.
The majority of the world, however, doesn’t use the “smartphones” that are increasingly dominating the US market. Most of the world uses cheap, durable Nokia phones with a very limited set of functionality. Though I strongly believe that those outside of the first world should be afforded the same technical opportunities, in some parochial sense I look forward to the impact of a generation of global consumers whose concept of computing has nothing to do with a convoluted desktop metaphor.
I’m increasingly looking for ways to simplify my relationship with technology. My frustrations with the iPhone led me to question whether Apple products were still my best bet for a rewardingly minimal experience, and what alternatives are available. As I’ve said before, I want tools I can trust, and I implicitly trust simple tools more.
On the software side, I’m intrigued by the purported simplicity of tiling window managers like wmii, and a general computing minimalist approach that encourages the use of small, simple programs that cooperate through dead-simple standards like files of ASCII text. I’m ultimately unconvinced, however, that using such tools on a complex, notoriously fiddly operating system like Linux would be a marked improvement. Again, one set of complexities (OS X’s too-rich graphical environment) is traded for another (the seemingly endless configuration necessary to run Linux as a desktop operating system).
On the hardware side, I have yet to see hardware that is either less complex in its engineering or industrial design than Apple’s. The ThinkPad is arguably the only other personal computing product still in production with a rich history of product design, and the design choices in the current ThinkPad product line hardly suggest simplicity: exaggerated bezels, input devices with multiple and potentially conflicting human interfaces, an excess of iconography, unnecessary single-purpose displays of device activity. Other PC manufacturers occasionally produce hardware that doesn’t visually offend, but that’s about as much as can be said when it comes to the world of metal and plastic.
Lastly, I looked for simple mobile phones. The Motophone was an intriguing experiment in radical simplicity, but a failed one from both an end-user and a sales perspective. My mobile carrier, AT&T, currently offers a single phone for which simplicity is an advertised feature: the Pantech Breeze. Having owned a number of mobiles over the years, it’s difficult for me to see in what way the Breeze is more or less simple than most any other low/mid-range phone. Its interface looks remarkably that of the Sony Ericsson T616, the best phone I’ve ever owned (but not a particularly simple one). For all the iPhone’s complexity and resulting instability, it has the most simple, usable user experience of any phone on the US market. It’s worth noting that it’s actually not possible to walk into an AT&T Wireless store and purchase the same stripped-down Nokia that most of the world uses.
Having surveyed the landscape, I’m reasonably convinced that I’m better off staying with Apple products if I value simplicity and some degree of minimalism. I remain unsatisfied with particular design choices that Apple makes, but at the end of the day I respect their commitment to a unified hardware and software platform that eschews the complexity of supporting a universe of hardware and software that other operating systems contend with. What Apple does is not strictly minimalist, but it’s closer than anyone else gets.
An intellectual focus on simplicity, minimalism, and constraints is something I’ve found valuable. These concepts provide a useful lens through which to make engineering and design decisions, and perhaps consumer decisions as well. Consider the trust to be gained from judicious application of minimalist principles, and the joy that can be derived from that trust.