operating systems operate you

[i really appreciate this comment on an article from LWN]
The Apple approach is certainly working well for Apple, but as a user you can certainly see the limits of the approach.
In particular, the Apple approach is driven by a singular vision per overall product. In iOS, the singular vision is the single app appliance (not that it only has a single app, but you’re not really expected to try to use multiple apps simultaneously, and certainly not expected to try to make them interact). In OSX, the singular vision is a MacBook Pro with no peripherals, running a big software package (photoshop, spreadsheet…) full-screen and occasionally switching to full-screen Safari or Mail.
The further you get from the singular vision, the worse it works.
Let’s say, for instance, you have a shiny new Mac Pro (one of the $2500+ towers) running Lion, and you’ve hooked it up to two new 27″ screens (which it will do quite nicely). And let’s say you want to use that spiffy new “full-screen mode” their programs have. You get full-screen on the “main” display, and the other one goes blank gray. You can’t do anything with the second monitor.
The use case that Lion was designed for is the guy sitting in Starbucks with his MacBook Pro. It’s designed around a single screen, with other screens being an afterthought. It’s designed around the trackpad, with the mouse being an afterthought. It was designed around a relatively small number of installed apps, all of which are expected to run fullscreen (which, I presume, is why their window management is so primitive. No edge resistance in 2011? Really?). The non-vision parts still work, for the most part, but they’re not as clean. The further you are from the use-case vision, the more you’re on your own.
iOS has similar problems; it’s better than it used to be, but real multitasking is still off the table, the launcher shell is a pretty version of progman.exe from windows 3.1 (now with folders! Oops, but don’t try to nest them. Oh, and don’t try to put more than 16 things in them (or 9, if you aren’t on an ipad), because they don’t scroll…). Notification is still weak, the filesystem is still inaccessible, you need a dongle to use a memory card…
This is a result of Apple focusing on their use case and building the device they think people want. And really, it does seem to be what a lot of people want, or think they want.
The problem with the Apple model, and by extension the Gnome3 model (since Gnome3 seems to be following Apple quite strongly down this rabbit hole) is that it only serves the specific target audience. What it utterly fails to do, what it’s flatly terrible at, is allowing the user to grow and learn.
In recent years the design community has had an absolute hatred of configurability, extensibility and utility. The “ideal” design is one in which there is only one way to do anything, and the novice user can do it preferably with the mouse alone. The plan was that we could give everyone this computer, and anyone could use it.
The trouble with this plan is that it provides no growth path for the user; they can never be anything but a novice because the system doesn’t let them take the training wheels off. It also means it’s much more difficult to adapt the system to unanticipated needs.
The platonic ideal of this design style is Microsoft Bob, and the things that descended from it (Clippy, “wizards”…). Your whole computing experience is on rails, assistants do everything for you, and you can’t do anything your assistants don’t know how (or don’t want) to do.
The Gnome project has been particularly bad about this over the years; one need look no further than Metacity to see that the current “you will use your computer the way we tell you” attitude is endemic, not some new development. As I recall, the current kerfuffle about lack of options in Gnome3 is a replay of Gnome2; when Gnome2 was new, there was a similar storm of complaints from users about options gone missing, and similar condescending “you simply don’t understand my genius” replies from the design team.
The “we must maintain our branding” excuse is new, but it’s merely another justification for the “thou shall not question the holy designers” attitude.
I remain unconvinced that the path Free Software should take is the same path Apple and Microsoft took. Ease of use and ease of learning for beginners is definitely important. Some damage control systems are important as well; preventing novices from burning the house down is clearly desirable.
But where all current “mainstream” desktop systems fall down (and I’m including Gnome and KDE here) is decent support for the steps past novice, the road to mastery.
Consider emacs. When you start using emacs, you can treat it as a simple text editor; open and save files with the menu, only open one file at a time, it supports drag and drop, cut and paste from the menu, and so forth. You can give emacs to a novice and expect them to survive in it, though they may occasionally trip over an advanced feature and get confused.
But emacs grows with you. In my experience, about once a month I learn a new trick in emacs that within six months I can’t live without. There’s a depth, a richness, access to new ways of doing things. Improved ways of doing things. Ways of doing things automatically in an instant that would have taken hours or weeks to do by hand.
We ought to be able to have that in our desktop environments.
There are hints of where to go to make this happen. The example of emacs is particularly instructive; having a completely scriptable system packed with hooks produces a very powerful environment for user mastery.
In window managers, elements of Enlightenment and the SawFish window manager showed some of what could be done.
A particularly important example of the sort of thing we should be doing is (now mostly defunct) Quicksilver for OSX. As much as possible should be made available through dbus, and you should be able to access those services directly through a command interface. I ought, for instance, to be able to bring up a shell and use a simple command to tell firefox to send the image on tab 2 to a new layer in the image I’m editing in gimp.
Perhaps these desktop environments should have a novice mode with training wheels and padded walls, but if we’re going to offer a compelling reason to switch to our platforms, the novice mode must have an off switch. The real strength of the free software community is in our experienced users, our willingness to experiment, and our software’s ability to grow with experience and need. As per the (attribution and exact wording forgotten…) quote, “Unix doesn’t prevent you from doing something stupid because that would also prevent you from doing something clever.”

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: