What Features Would Make a "Better" GUI?
Rudyatek asks: "When it comes to desktop OSs, there has been much talk about 'the end of the desktop', 'reinventing the GUI', etc. Usability has become increasingly important as we battle the ugly UIs of Windows and X11, and watch companies like Red Hat and Ximian try to improve them. But I'm curious if anyone has any clear ideas on what a truly 'better' UI would really be like? As a hobby OS programmer I have a great interest in alternative OS ideas, and this is one that I hear more complaining about than actual ideas. Anyone have ideas?"
The "desktop" metaphor is getting increasingly outdated, but I haven't seen a really good overhaul yet. There are some links at this site, the most interesting of which is David Gelertner's LifeStreams.
Look at the Palm OS gui. The Palm was the first widely used PDA because it's interface is so intuitive and easy to use. Why?
There is no concept of a "running application", nor is there a real concept of files or a file system. You basically just switch between apps, and you never have to worry about exiting, saving, quitting, etc. Furthermore, you are very abstracted from files. Each app knows what bits of data were created with it, and which to let you open.
Now granted, the apps on a PDA are much simpler than those on a desktop machine, but the concept is still good.
Applications are always available and you don't worry about "runnig" or "quitting"
Modern OSes have virtual memory, so there is really no need to worry about apps running and not being used. With slight additions of features like app "sleeping" (disallowing it from using CPU cycles on demand), File->Quit is a thing of the past. Just leave apps running when your first start them (or start common ones at boot time). The Mac OS X Dock fakes this pretty well by combining an app launcher and task bar. It's great, because I always do the same thing to use a particular app, regardless of whether or not it's running.
Removing the "file" metaphor, and the concepts of "saving" a file
By having applications constantly save files, and additionally version them as well, the user really has no need to ever save. I mean, you don't "save" your memo-pad entries or contacts in the palm, because you don't need to. They are simple structures, so versioning isn't needed, but for larger documents, something similar to the VMS file versioning can be used. Furthermore, since you abstract the user from managing files, their task is greatly simplified; you just click on your app, and choose which thing to work on. Since it's always saved, you never need to worry about exiting, or crashing, or anything. Additionally, apps know what files they created and can open, so the user never has to wade through files that aren't relevant to the current application (Mac OS 9 faked this by using the Type/creator codes).
Files, folders/directories, running apps, are a construct the user shouldn't need to be exposed to. That is why the Palm is so simple to use, and browsing in Windows Explorer is such a pain (for the avg. user).
http://www.naildrivin5.com/davec
I want my computer/os/gui to learn from what I do. Do I launch mail at 9am every day? Then mail better be somewhere accesible at that time. Do I then load up a spreadsheet? Have it next in line. Make life easier for me.
On kde-look there is a very nice looking replacement proposal for kicker and the desktop metaphor.
The author proposes a card based metaphor which would allow you to mix and match componants to create your own desktop environment. There is no code yet, just some annotated "screenshots" here and here.
In the discussion there are several people volunteering to help code so this project may actually become reality.