There’s Always An Interface

8 December 2004 at 21.16 • in General

I’ve never been able to get into Neal Stephenson’s fiction, but I’m delighted by his extended geek essay In The Beginning Was The Command Line (also in print form). Some of the specifics are a little dated, these few years after the Microsoft antitrust trial (and the passing of Be Inc.), but Stephenson’s larger ideas are still thought-provoking. And thanks to his writing skill, those Big Ideas are delivered in a clear and entertaining style.

I have to take exception to one of those ideas, though. Stephenson describes GUIs as “a new semiotic layer between people and machines” and contrasts that with the purported directness of the command line, saying “People who use [GUIs] have abdicated the responsibility, and surrendered the power, of sending bits directly to the chip that’s doing the arithmetic…” (p. 61).

But people surrendered that power a long time ago. The command line may be more “direct” in the sense that there is less code running with the job of interpreting the user’s intentions, but the command line is itself a “semiotic layer” that lies atop a pile of lower layers. Sure, GUIs are layered on top of a command-line interface in most modern OSes, but that’s only because GUIs are newer on the scene. The point is, both GUIs and command lines are interfaces to the computer, and both are well removed from “sending bits directly”.

The problem with GUIs isn’t the layering, it’s the lousy conceptual design. As Stephenson points out on the very next page of his book, the so-called “desktop metaphor” is actually a jumble of conflicting metaphors, and almost nothing in a GUI behaves anything like its real-world namesake. This mess has caused Ted Nelson to throw up his hands and suggest that we give up on the idea of metaphor as organizing principle; I don’t think I’d go that far, but I do know that the desktop metaphor is in serious need of an overhaul, and probably needs to be replaced entirely. We don’t need to chuck the idea of graphical interaction, we just need to design–and implement–better interfaces.

Subtext

7 December 2004 at 22.44 • in General

Subtext is a programming language Jonathan Edwards is developing, with a screencast demo and a strongly worded manifesto (e.g. “Programming is at a dead-end. The only way things will get better is with a complete revolution.”).

I could quibble with the particulars, but mainly I’m heartened to see somebody trying to leap the boundaries and do something different, especially in the service of usability. We need a usability revolution–heck, we probably need several–and the more people rocking the boat, the better.

(Hat tip: an anonymous comment on Patrick Logan’s blog.)

An Informal Formalism

6 December 2004 at 22.54 • in General

Dominic Fox points out (on LtU) that relational databases and RDF share an important trait in common: both require someone to create a formal model of the data to be represented. (In a relational database, that model is a schema; in RDF, it’s an ontology.) After that model is created, you then have to translate your data into that formal representation.

Contrast that with Google–its basic search is about as informal as it gets. You just enter a few keywords, and get back a list of results. Sure, it’s not guaranteed to be right, but it’s faster to scan a list of five or ten results than to take the time to translate your keywords into some more-rigorously-specified formal query language.

But there is a simple formalism under the hood in a Google search: PageRank. Google takes advantage of the intrinsic structure of HTML pages to literally bring order to the mass of data. Notice, though, that Google didn’t invent a new formalism and ask everybody to use it–instead, they took advantage of the existing structure of the Web.

So what does this imply for the item-tag model of Trifle? Tags are a formalism, true, but a very loosely structured one. There’s no requirement for a schema or an ontology to be worked out in advance, and people are free to use tags as strictly or as sloppily as they like. What’s more, existing metadata (e.g. the creation time of a file) can easily be reflected into tag information, honoring the lesson of Google by using existing structure.

The Discipline of Blogging

6 December 2004 at 01.30 • in General

It’s time for me to get back in the swing of blogging. It’s still a discipline for me, still something I have to make myself do–though when I’m actually doing it, I enjoy it.

I blog in order to get myself to think about what my opinions actually are and then to express them. I want to work out my thoughts in writing, so that I can know just what I think. I also want to counter my natural tendency to walk through life as a spectator, watching what’s going on around me but not reacting to it, not speaking up.

I wonder: how focused should this blog be? Should it be exclusively about computers and programming, or should it reflect a broader swath of my life? I originally intended the former, but then I found myself posting about stuff like NaNoWriMo. I think, though, that programming will remain the focus, with other stuff popping up only occasionally.