Skip to content

Latest commit

 

History

History
207 lines (151 loc) · 13.5 KB

File metadata and controls

207 lines (151 loc) · 13.5 KB

Why

People are becoming increasingly aware that the way they interact with software is not enjoyable, healthy, or sustainable.

We use our phones every waking hour of our days, even when it impacts our sleep. Our devices distract us even when they're turned off, burning through our precious cognitive resources. We shudder at the thought of having to pay to access websites, but the alternative—internet advertising—is so odious that 31% of Americans have installed ad blockers.

The inner workings of software are often proprietary and veiled in mystery. Companies don't want their secret recipes stolen, nor do they want their users to know what's in the sausage. As a result, people don't understand the influence that software algorithms have on their consumption of information. This lack of transparency and individual agency puts people at the mercy of software companies, and they often complain bitterly when software they depend on changes. When Facebook updated their UI design in 2008, millions of people formed Facebook groups to protest "New Facebook". They seemed to feel that some vital element of their nascent online community had been lost in the shuffle.

The malaise is not restricted to end-users. Even software developers are overwhelmed by the endless churn of new tools that they feel they must master to be professionals in their field.

The crux of all these issues is this:

People feel anxious when they are using software, because they know deep down that they do not and cannot really control it, but at the same time they are irrevocably dependent on it.

They know it will hurt them, but it is emotionally, socially, and perhaps economically impossible to give it up.

Software has made addicts of us all.

And yet we are so beset by images of the wonders of technological progress, and convinced by rational arguments of the inevitability of these types of systems, that we find these issues difficult, perhaps even embarrassing, to talk about in public.

We are, however, fortunate in one thing: we are not the first to face these problems.

The centralization of power, and the forced dependency on centralized power; the loss of community and individual control, and the complacent acceptance of the situation by the surrounding culture—all of this has happened before.

This was the state of architecture in 20th century America.

In the 1970s, architect Christopher Alexander published a two-volume manifesto for a new philosophy of architecture. The first volume, The Timeless Way of Building, describes the fundamental process by which the texture of a city or town can arise from countless individual acts of construction and repair. The second volume, A Pattern Language, is a comprehensive instruction manual for one particular version of that process.

The thesis of Alexander's work is simple, a truism almost—but one that architects of the era seemed to be unaware of. It is this:

Our surroundings have profound effects on our wellbeing.

Alexander cites many examples in A Pattern Language.

  • Tall apartment buildings prevent their inhabitants from casually going out or seeing what is going on in the street, leading to significant increases in mental illness. (A Pattern Language p. 115).
  • Rooms with natural light only on one side make it harder to perceive subtle facial expressions due to glare from the window. (p. 748)
  • Local roads that function as shortcuts attract through-traffic and become unpleasant and unsafe. (p. 261)

When spaces are discordant with the physical, social, and psychological needs of their inhabitants, they feel artificial, mechanical, deathlike.

Vast parking lots, impersonal apartment blocks, litter-strewn streets with traffic zooming past: people avoid such spaces, if they can. They don't maintain or care for them. And their peace of mind is eroded a little each time they are forced into contact with them.

To say that these spaces are deathlike is no mere metaphor. They are literally self-destroying.

The spaces and the people each take from the other more than they give. Neither one gives sustenance to the other, and so gradually the whole system destroys itself. Such systems can only be kept going at great expense or through legal coercion.

But it does not have to be this way.

Though inhuman, ugly buildings and cities are now the norm, each of us can (I hope) recall places that are different: places that are beautiful, where we feel at ease, free to be ourselves, connected to the people around us. Places where we look around and smile, where we are serene, where we become voluble and magnanimous and stoic and wistful.

These places are alive. They are constantly changing, yet they seem eternal, as if they could happily go on existing forever without losing their essential selves. Because we love them, we take care of them. We do not wish for their destruction. The places, and the people in them, thus sustain each other, and so the whole system becomes self-maintaining.

Alexander claims that places like this share a startlingly simple property: they were made, not by the execution of some master plan, but by many small acts of creation by the people who live and work there.

The places we cherish are not the output of a design-upfront, build-it-once, demolish-after-twenty-years process, but the result of a constant flow of tiny acts of repair and renewal.

One might at first assume that the result of so many small, independent acts would be chaos—a cacophony of conflicting design concepts that work at cross purposes and ultimately negate each other. But that doesn't happen. Instead of chaos, we get order. Exactly why we get order is the question Alexander seeks to answer.

For order to arise organically like this, the individual builders must be drawing their ideas from some common source.

Though there is no overarching design, the various pieces all have something in common that allows them to harmonize with each other and with the whole system. That means that the people who made those pieces must have shared something as well. But what is that mysterious something?

Alexander calls the design elements that are shared by a community patterns.

Patterns are not plans or cookie-cutter components. They are more abstract than that. They describe the relationships between elements (which may themselves be patterns) that solve a particular problem.

For example, the architectural pattern Window Place tells you where to place furniture in a room.

When people enter a room they likely want to sit down, but they also tend to seek natural light. If there is nowhere for them to sit near a window, the tension between these two forces makes people avoid that room, and it becomes a dead space. But if you create a definite place for people to be comfortable near a window, they will use it and take care of it. Then the room may live.

Yet a single isolated pattern, however good, is not enough to give a place life.

In order to be effective, a pattern must be sustained by many other smaller patterns working in concert.

You know intuitively that a small window high up on a wall can never create an effective Window Place. A window that looks onto a blank wall or a parking lot is no better. A window that is a single large pane of glass makes people near it feel exposed and uncomfortable, so it also will make a bad Window Place.

The patterns Low Sill, Windows Overlooking Life, and Small Panes address each of these concerns. When all of the patterns in a space are working together, we feel at ease. The interactions between the patterns are so intricate and subtle that we may not even be able to identify what we like about the place—we only know that we like it.

The most special and subtle of these places have the character of poems: the patterns in them are densely packed, overlapping, startlingly new and yet familiar.

These relationships among patterns have the structure of a language.

If patterns are like words, a pattern language is like the grammar that tells us how to put the words together into useful, meaningful sentences. Patterns are defined in terms of other patterns, and perhaps in terms of archetypes and examples. Humans seem to have the same uncanny knack for pattern languages that they do for spoken languages: a fluent "speaker" can use the pattern language even if they can't formally describe the grammar.

This, then, is the answer to the mystery of how architecture can unfold organically from a thousand independent acts: the builders all share a pattern language.

The fact that patterns are abstract allows endless variety; the fact that they precisely target specific problems ensures their effectiveness; the fact that they form a language creates the fractal self-consistency that characterizes the places that we love.

At its roots the pattern language is connected to ordinary language, and serves the same purposes: cultural transmission and differentiation. Yet it is different from ordinary language in one important way: it does not just describe the world, it acts upon it.

A pattern language is the means by which a shared world-concept can be made manifest.

Alexander's works are often cited as being concerned with architecture, but I think that's underselling them. They describe nothing less than a comprehensive vision for human civilization. They are an instruction manual for creating a more beautiful, more humane world.

But the advent of personal computers has changed the set of activities and interactions that pattern languages must account for.

Alexander did his work on patterns in the 1970s. At the time, Unix was just being born. Personal computers didn't yet exist. Alexander's language says nothing about how we might begin to integrate computers into the patterns of space and activity that shape our lives.

We must account for the effects of computers if our pattern languages are to be whole.

Anecdotally, the language people use when talking about software hints that they conceive of it as an extension of physical space. People speak of being "on a webpage" or going "to a site"—though of course it would be more accurate to say the site's data comes to them. The cursor and the viewport are extensions of the ego: "scroll down" still means "look further down the page", despite Apple's efforts to foist inverted scrolling conventions on us all.

Yet even if we did not think of computer systems as a new type of space, we would have to account for them in our pattern languages, because computers have physical and societal effects that extend beyond the screen and which we have yet to grapple with. Our failure to integrate computers into our society in sustainable ways has already caused disastrous damage.

Data breaches, security vulnerabilities, deliberate manipulation of users by software vendors, and misuse of private information are so commonplace that I don't even need to give examples of them here. No matter when you're reading this, you'll no doubt be able to recall a few examples from the last month or so.

We cannot look for single "root causes" of failure to address these issues. The problems are systemic, and the solutions must be holistic.

What we need now is an extended pattern language that accounts for computer systems.

Such a pattern language will constitute an instruction manual for creating a society where:

  • Computer systems support and sustain the non-computational patterns of society.
  • Personal computers enhance physical space and activity.
  • The economic gains of improved communication and computation are equitably distributed.
  • People have the means to shape and adapt their own software, just as they adapt their own physical space.
  • Self-consistency and local symmetries arise at every level, even as infinite variety unfolds, by the simple fact that the pattern language is shared.

The result of all of this will be a society with the character of nature: exuberant, diverse, no two places alike—yet unified, whole, and self-sustaining.