The Architecture of Computer Programming

Code must run, as buildings must stand, without crumbling, but how that happens is a matter of elegance, even beauty.

A constructive scene of buildings in different architectural styles is being assembled from digital bits.
Ian Wenstrand

In Montreuil, on the eastern edge of Paris, a maze of old stone walls is all that remains of a lost peach orchard. In the 17th century, horticulturists trained peach trees to grow flat against these murs a pêches; the sun’s heat, captured by day and held in the plastered walls overnight, kept the fruit from freezing, creating a balmy, even Mediterranean, microclimate.

It’s a simple system, with an elegant inner symmetry. Murs a pêches have what the British architect Christopher Alexander famously called “the quality without a name.” As he described it in his influential 1979 book, The Timeless Way of Building:

The tree, carefully tied to grow flat against the wall; warming the bricks; the peaches growing in the sun; the wild grass growing around the roots of the tree, in the angle where the earth and roots and wall all meet. This quality is the most fundamental quality there is in anything.

Alexander spent his career seeking out this quality — in buildings, cities, and, eventually, code.

*

In 1996, Alexander was invited to give a keynote address to an audience of object-oriented computer programmers in San Jose. It might seem an odd pairing, but dog-eared copies of The Timeless Way of Building and Alexander’s 1977 book A Pattern Language were a common sight at computer conferences, and the programmer Ward Cunningham even cited A Pattern Language as a direct influence on the design of the object-oriented language Smalltalk, and, later, on the creation of the Wiki.

A Pattern Language is a design manual for creating rooms, buildings, and cities with that timeless peach-wall quality. Although difficult to describe, Alexander believed it was a reproducible phenomenon. He spent years studying the world’s most habitable places — Italian piazzas, Grecian hill villages, Japanese temples, and English country towns — in order to distill their shared attributes into generalized solutions he called “patterns.” As he explains in a much-quoted passage, “each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.” A good house might incorporate Pattern #159, “light on two sides of every room,” and Pattern #139, “Farmhouse Kitchen.”

Programmers who read Alexander saw something code-like in this generative, yet orderly vision of reality. Many were inspired to compile their own design patterns, creating a vocabulary of software templates that could be applied across different situations to solve problems. As the architectural historian Molly Wright Steenson writes, programmers love Alexander because “patterns look simple but they do complicated work in managing and codifying knowledge.” So although they dealt in bits rather than bricks, Alexander’s audience in San Jose hung on his every word — he was, in a sense, one of them.

Programming, like architecture, is both art and science. Code must run, as buildings must stand, without crumbling, but how that happens is a matter of elegance, even beauty. Alexander wrote about things which make us feel more whole in their presence — like the peach growing against the wall. In San Jose, he referred to that quality as “living structure.” 

Living structure is the natural order of life lived at human-scale. A compost heap has living structure. So does a good bus system, or a small public square. One can feel it in the difference between a lovely old building and a sterile new development; one is built by its inhabitants, and the other is designed by architects. “When a place is lifeless or unreal, there is almost always a mastermind behind it,” Alexander writes. “It is so filled with the will of the maker that there is no room for its own nature.” On the other hand, things with living structure feel right; they are whole, beautiful, and harmonious.

Alexander’s writing was controversial in its own field — after all, it implied that architects, motivated by economic considerations, simply failed to make spaces worth living in — but it was hugely influential in the growing world of software. By the time Alexander gave his keynote address at OOPSLA, the object-oriented programming conference, his ideas had already inspired a bestselling software engineering textbook, Design Patterns, and sparked a revolution in programming thought. Of course, Alexander didn’t know the first thing about code. At OOPSLA, he addressed the “computer people” with a certain baffled amusement. “This is a pretty strange situation I find myself in,” he said, leaning against the podium, tie askew. “I’m addressing a room full of people, a whole football field full of people. I don’t know hardly anything about what all of you do.” 

Still, he intuitively understood the power assembled in that room, which dwarfed his own. A few thousand buildings had been built using his ideas — what good was that, he mused, when the earth was sinking under the weight of strip malls, parking lots, conference rooms, and other soulless dross? Architects alone could never save the world from all this dead weight, but software might have a chance. That is, if the software itself was good. If it had living structure. If it was designed from the ground up by its inhabitants, like an old building, rather than from the top-down, like a mall. 

And so Alexander ended his presentation to the programmers with an urgent plea. “I hope that all of you, as members of a great profession of the future, will decide to help me, and to help yourselves,” he said. Clearly they understood A Pattern Language’s architectural instructions as a model for how to build software, but he wasn’t certain they’d internalized his book’s moral lessons. As he told them, software has a responsibility to heal the planet and enrich human life. “Computers play a fundamental role in making the world — and above all the built structure of the world — alive, humane, ecologically profound, and with a deep living structure,” he said. He begged his audience to do what architects, developers, and construction people seemed unable, or unwilling, to do: build a world worth living in. 

*

For all the commonalities between architecture and programming, certain things don’t track neatly. For one, the question of who inhabits code. Alexander felt that houses should be designed and built by the people who would live in them. But who “lives” in a program — is it the programmer, pulling all-nighters as they write, repair, and debug? Or is it the end user, applying that code to everything from word processing to traveling virtual worlds? Speaking to to the programmers in San Jose, Alexander seemed to imply that code with living structure would, by default, manifest more living structure in the material world. But we are surrounded with elegant code that does harm, that makes the world uglier and more hostile: programmatic advertising, or the outrage-amplifying algorithms of social media.

Maybe it’s just that there are different ways to inhabit a place. Maybe the coder is like a ghost in the house, opening faucets and flickering the lights when the user isn’t looking. Or maybe living structure can be something cobbled together by the user from leftover materials — at odds, even, with the house itself. In a recent piece for Pioneer Works, the artist and game designer Everest Pipkin described creating rogue worlds inside of Roblox, one of the biggest games in the world. “To stand in these places is to stand in a place where desire was met. Where for a moment, something that was yours was carved out of the ugly body of online corporate games culture,” they wrote. “Like building a fort in the woods between the highway and the mall.”

A Pattern Language is a book about architecture that’s irrevocably entangled in the history of code. Pattern libraries and repositories are a fundamental part of building software, and countless patterns have been catalogued for use in interaction design, interface design, video game design, and even blockchain-based applications. But the soul of Alexander’s work — his lifelong search to define and reproduce the “quality without a name,” to cultivate wholeness and beauty — is less often cited. As Pipkin implies, it’s up to the users now.

*

A few years ago, I was invited to participate in the Decentralized Web Summit in San Francisco. In workshops and panels with names like “Distributed Gardens,” “Internet as a City,” and “Distributed Web of Care” — Alexander would have been proud — it seemed everyone was either quite old or very young. Attendance seemed to be split between early Web pioneers and graduate students. The former had retained their idealism, or reclaimed it. The latter hoped to solve for whatever mistakes their forebears made. I felt the intervening generation’s absence like a crater.

Also there was my friend Charles Broskoski, the co-founder of Are.na, a small social network that describes itself as a “platform for connecting ideas and building knowledge.” Charles cites Pattern #61, “Small Public Squares,” as a model for Are.na, which is, in my experience, one of the rare platforms with living structure. Users build “channels” on different themes, interlinking them into distributed concept maps. A PDF of A Pattern Language, for example, sits in multiple channels simultaneously, informing research into digital public spaces, games, world-building, and language itself. When I make a conscious effort to spend time on Are.na, observing what others build, I find myself attuned to qualities that Alexander might have championed: aliveness, wholeness, connection. It’s on Are.na that I discovered the murs a pêches, in a channel called “Courtyards Are Best.”

We talk a lot about how platforms like Facebook, Twitter, and Instagram corrupt our ability to focus, think critically, or connect with others. But Are.na is an example, to me, of the way a small, conscientiously-designed platform can do the opposite. Tending to my own channels is like building a home piecemeal, as I inhabit it: the process unfolds over time and changes my relation to the outside world. “The goal is not self-improvement,” a footer on the Are.na homepage reads. “The goal is engaging more deeply with the World.”

This success is a consequence of scale — a virtual village of a few hundred thousand is more convivial than a development designed for a “community” of billions — and affinity. Are.na’s designers are interested in the same kinds of things as Are.na’s users, which softens the boundary between architect and inhabitant. This is the best we can hope for, I think, on the current Web. Of course, the Web is changing, and rapidly. A new generation of builders is experimenting with collective governance and co-creation on the blockchain. Decentralized autonomous organizations (DAOs) are giving communities of people the opportunity to build their own houses, to divest power and profit from architects and their sterile developments. Certainly there is dross here, too, but I believe many people are seeking that same living structure, perhaps by another name. 

*

Montreuil was sliced in half by the construction of Paris’s main highway, the boulevard Périphérique, in the 1960s. The crumbling stone orchards were preserved as  a reminder of the city’s horticultural heritage. But preservationists, volunteers, and horticulturalists are reclaiming the plots, one by one. In the spring, wildflowers dot the tall grasses between the last murs a pêches. Living structure is delicate, and easily lost. Fortunately, with a little care, it grows back.

Follow The Reboot

Join a growing community that’s examining the state of the internet and exploring its future. Subscribe to our newsletter.

A constructive scene of buildings in different architectural styles is being assembled from digital bits.

Artwork By

Ian Wenstrand

Contact Us

Have an idea for a story or illustration? Interested in discussing partnerships? We want to hear from you. Send us a note at info(at)thereboot(dot)com.

Recommended Reading