The Nature of Software

Strong Centers

July 9, 2022, 8:01 p.m.

Recap

For those of you who just arrived, this project is about reconciling the work of the recently-deceased architect Christopher Alexander—inventor of pattern languages—with the craft of software development. Patterns were a big hit with us in software, but we didn’t keep up with current events—and by current I mean 26 years ago. You see, Alexander personally renounced patterns. Said they weren’t good enough. He told his audience he was working on something simpler—much simpler, and much more profound. And that’s what we’re exploring here.

This essay explores the second of the fifteen properties from Alexander’s magnum opus, The Nature of Order. If you don’t know what I mean by that, then read the introduction, as well as the first chapter, Levels of Scale.

What is a Center?

If Christopher Alexander’s latter-career methodology has a centre, it’s the center. A center can be understood as a region of space (or spacetime if you like), that is differentiated from its surroundings somehow. A center is identifiable; you should be able to point to it, maybe even name it. A center has thing-ness. It need not, however, have a crisp boundary: centers, according to Alexander, are field-like. This tracks, because they don’t call it the spacetime continuum for nothing.

A center, therefore, is kind of like a “minimum viable thing”: any thing is also a center, and if it’s not a center, then it’s a non-thing. The reason why one would bother introducing a new term center and not just say thing is to call attention, for one, to what I just wrote about the fuzziness of boundaries, but also to further specify that centers are recursive: centers are made of centers, and compose to make up other centers.

Want to read the full issue of The Nature of Software?

Brought to you by Buttondown, the easiest way to start and grow your newsletter.