What makes a piece of software a “place” vs a “tool” or an “appliance”? I think some notion of limitlessness and nesting are necessary. https://twitter.com/yoshikischmitz/status/1208570011192676353
(To be “inside” of a folder there has to be some meaningful “outside”, implying further outsides, and so on.) https://mobile.twitter.com/rsnous/status/1180153353185062913
And this definition matters to me because appliances are static, but places can be occupied and changed. You can have memories and experiences in them. Things can grow in them. New stuff can emerge. Communities can form.

I want more software to be like that.
A connection brewing in my mind is that the features that make software “placeish” feel similar to the definition of a programming language. From SICP, a language has:

- Primitive Expressions
- Means of Combination
- Means of Abstraction
Certainly when navigating a codebase I have a sense that I’m moving through a place. There are wings containing rooms of different sizes, they each reflect qualities imbued by their occupants, of different ages, with different numbers and sizes of corridors connecting them.
(And how can you combine primitive things if not in some space?)
So then it seems that when we have those three qualities we can create constructs, physical or virtual, that feel spatial to us.

With languages, we can create places.

In fact, Christopher Alexander asserts architecture is inherently linguistic.

(from TTWoB pgs. 186 & 206)
(Alexander also once called on software developers to consider what it would mean to create programs that are imbued with life, in the foreword to Patterns of Software by Richard Gabriel (thanks @meekaale for introducing this to me!: https://mobile.twitter.com/meekaale/status/1200740698347192320 ))
So then, I think, if you're interested in making software that people feel alive in and have great flexibility, it's useful to think of yourself as designing a language(which in turn requires having a broad definition of "language")

Even Twitter has a language:
“How can we compose more of our software in a grammatical way?”

https://twitter.com/geoffreylitt/status/1225085995927793664?s=21 https://twitter.com/geoffreylitt/status/1225085995927793664
Different words to point to this concept. I like environment because it more specifically suggests the presence of organisms/actors within it than "place" does, and also for its ecological connotations. https://twitter.com/andy_matuschak/status/1271554636256690176
You can follow @yoshikischmitz.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: