Thoughts on software and desktop interface design (from a design hater’s perspective)

I previously wrote about website design. Now I’d like to continue my argument and move it to the desktop in stead. I’m going to begin by explaining my motives and approach to computing, continue by pointing out some important problems of most modern desktop environments, give some examples of what is being done about this and finish by very loosely sketching the work flow of an example application.

Computers are all about data. Somehow this has been lost in much of the modern design practices of graphical user interfaces. In stead, they all seem to employ Eben Moglen’s “caveman” principle; you point and you grunt. This type of design is very efficient for some tasks, drawing for example, when you only want to point out a position.

This is one of the main reasons why I have kept as far as possible away from GUI applications. Not because they employ a GUI, there’s really nothing wrong in that, but because they do it poorly. Ridiculously poorly.

Another problem with most modern desktops is all the micro-management necessary to optimize your screen usage. This has become especially important with the advent of the wide screen. As a solution, many desktops either implement work spaces, tiling window management or both. The latter can for example be seen in Apple’s “Active Corners”.

The final fundamental problem of modern desktop environments is one they share with the Web; it is difficult and inflexible to move data between programs. Of course, there’s typically a clipboard with some cut-and-paste function, but it’s often unbuffered (i.e. can only contain only a limited amount of data at a time), and don’t keep the semantics of the transmitted data. For example, say I’d like to tell my music player to transmit my currently playing track data to the letter I’m currently writing.

Of course, this could be done by copying and pasting the data, but that would mean unnecessary plumbing. I wouldn’t be transmitting data, I would be copying a string, switching workspace or program and then pasting it in. What if, say, I wanted a different representation of the track/artist/album data than the music player used?

There are multiple examples of interface designs that try to go beyond the norm. Emacs is one; most Emacs users end up doing a lot of hacks to the way Emacs works. Still, most new modules respect these modifications and fit in nicely (or at least can be convinced to do so). Information can be, and typically is, passed between different Emacs modules and components through function calls and shared data structures. This, of course, is a potential source of errors and would be a nightmare to debug, but it’s a rather good illustration of what I’m talking about.

Another example is the web browser Conkeror, ironically an Emacs-work-alike, which employs rudimentary facilities to move data between programs by allowing external programs to be run on embedded objects or their URL:s. And apparently, the Semantic Web has a sibling project on the desktop called the “Semantic Desktop“. I have heard very little about this though, but it might be something to look forward to.

I’d say that the desktop needs a major overhaul. First of all, the concept of fixed and separate applications should be discarded, and different concepts should be separated. For example, the same text input program could be used to supply both a web browser, an email and a word processor with input data. I hear Plan 9 is doing something similar to this, but its UI is horribly caveman-ish.

An example of how language can be used could be, say, a music library browser driven by an input box where the user enters either an expression (using some syntax) or a simple text string, which is fuzzily matched in the spirit of Emacs’ ido-mode. This box could then be surrounded with context data, such as for example the covers of the matched albums or further search suggestions.

7 thoughts on “Thoughts on software and desktop interface design (from a design hater’s perspective)

  1. Du borde läsa Jef Raskins /The Humane Interface/. Han pratar mycket om att överge Dokumentet och Applikationen i förmån för generella kommandon och en arbetsrymd.

  2. That’s not ironic. (Alanis was right!) Seb, the ideas presented in The Humane Interface taken to their fullest might lead to a very restrictive design. It’s a word processor with some calculation capability. Imaging making comics on a Canon Cat.

    Tuss: I’ve been doing a lot of app sharing mixing mashing and meddling recently, even more since I discovered the wonderful world of xprop. Give it a look!

    As for music players, I wish Muine worked. It has a beautiful UI. On my someday/maybe-list is to port Muine to Vala.

    Lastly, fix your OpenID. I’ve lost so many comments to this black hole and then not having the energy to resubmit them un-authenticated.

  3. I’ve been very happy with my ui experiences lately. I’ve been running dwm in default tiled mode with lots of windows and no ui chrome—surf, emacs (without menubar and toolbar), alchemy, mypaint, evince in presentation mode, comix and totem in hide controls mode, urxvt and plenty of dmenu shell scripts to glue it all together. I use Elegant Brit, Nimbus Sans L and changed my suckless apps’ fonts, sizes and colors to match. I’m in De Stijl paradise. Check it out!

    Sure, every now and then I need to bring up the Gimp (it can open ORA now btw), Blender or a hundred jack apps (I♥seq24) but the tag system and the occasional float can handle it well.

  4. By the way, I’m trying to learn drawing and one of my recent images is this one and I think it’s doing yourself and modern painting software a dis-service by calling it “pointing and grunting”.

  5. Sandra Snan: Gosh, that’s possibly the most beautiful “desktop” I have seen!

    Sure, you’re right about the painting software; as they are emulating a paintbrush (or pencil or…), whereas most other point-and-click-GUIs are actually trying to imitate something similar to pointing. I should have made this distinction more clear.

  6. Concerning OpenID: it’s all black magic to me; I have no idea why it won’t work or what I should do to about it or how to find and report the error. Perharps I should try getting on IRC with the authors or something.

Comments are closed.