Update: I have now posted a new (printable) version of the PDF with all DRM turned off. Note that it is located at a new URL.
Here it is [PDF]!
As you read the interview, I want to suggest that you think about the following words from Patterns of Software: Tales from the Software Community (which I quoted once before when discussing pattern languages and learning objects):
There is, I think, a better goal [for software development], to which I want to draw your attention. It’s a characteristic that you’ve perhaps not thought of and which perhaps should have some influence over the design of programming languages and certainly software methodology. It is habitability.
Habitability is the characteristic of source code that enables programmers, coders, bug-fixers, and people coming to the code later in life to understand its construction and intentions and to change it comfortably and confidently….
Habitability makes a place livable, like home. And this is what we want in software–that developers feel at home, can place their hands on any item without having to think deeply about where it is….
Buldings like the Superdome lack habitability. In this instance people inhabit the building, but only for very short periods of time, and for very special occasions–and such buildings are not easily altered. The Superdome is a static building, and therefore it can stand as a monument, being little else.
A modern skyscraper, to take another example, has a fixed inflexible interior, which is secondary to the designed beauty of the interior. Little attention is paid to the natural light, and often the interiors are constructed as “flexible office space,” which means cubicles. The flexibility is for management to set up offices for the company, not for the inhabitants–the employees–to tailor their own space. When you run out of space in the skyscraper, you build another; you don’t modify the existing one or add to it.
Contrast this with the New England farmhouse. It starts as a small home with a barn out back. As the family grows and the needs of the farm grow, a back room is added to the house, then a canning room, then a room for grandma; stables are added to the barn, then a wing for milking more cows. Finally the house and barn are connected because it is too difficult to get from the house to the barn in a blizzard. The result is rambling, but each part is well-suited to its needs, each part fits well with the others, and the result is beautiful because it is a living structure with living people inside. The inhabitants are able to modify their environment because each part is built according to familiar patterns of design, use, and construction and because those patterns contain the seeds for piecemeal growth.
I think this should be the goal for computer science practice. Most programming languages are excellent for building the program that is a monument to design ingenuity–pleasingly efficient, precise, and clear–but people don’t build programs like that. Programs live and grow, and their inhabitants–the programmers–need to work with that program the way the farmer works with the homestead.
JotSpot lets you work with your programs the way the farmer works with his homestead. And it makes it possible for anybody–not just trained, professional programmers–to become homesteaders.