This is the beginning of the redesign of the computing environment we use today. It is a work in progress focusing on new ways to improve the computing experience. If you have any suggestions
or comments please post them below.
By Joseph Monti
— Apr 2003
A new and improved computing environment is something I have been thinking about for some time. It is something that people need to make their desktop experience less intrusive and more productive. In the following body of text I will be describing my vision of the GUI of tomorrow.
What we need to do is completely rethink the way we use computers. The computing environment of today is bloated and overcomplicated, and doesn’t have to be that way. We are using an interface that was created at the dawn of personal computing and is showing its wrinkles. Both the technology and the people behind it have changed in great ways giving us the resources necessary to completely redesign the computing environment.
There are many features or concepts of the desktop environment of today that are outdated and unnecessary and before I begin to discuss the new GUI I must first discuss the concepts that must be forgotten. To many, these concepts are considered necessary and may have trouble imagining using a computer without them.
First is the way we use the file system. To be more specific, I suggest we do not access the file system directly with the exception of system maintenance for advanced users. A great majority of the files contained within current files systems are not used or needed by the user. They are
cluttered with system files and layers of folders that are of no use to the user. To remedy the problem it will be abstracted to fit the environment of the new GUI.
Next is the idea of users creating links (or shortcuts) between files or folders. The biggest issue is what happens when a file that is being linked to is moved or removed? Well, any links to it are broken. To eliminate this problem we must do away with links, at least the way we use them. There is an easier way to reference files which will be described later.
The last idea I will discuss is the idea of saving. Why should you be required to save your work? There is no reason why you would not want changes to be committed to the file system. There are instances where you want to ‘save as’ and change the name, but there are graceful ways around this without having to save. Saving is a barbaric action and must not be a required interaction
of the user. All saving should automatically be done behind the scenes without user intervention.
Now that we know what must be left out of the new GUI we can get on to the design of the new GUI. The desktop I envision is more like a city. At least for me, it is easier to remember landmarks than street names. Buildings are applications, and contained within the buildings are the files that the particular application manages, enforcing the associativity between files and applications.
This replaces the idea of a file system. When you want view or edit a file you find the application with which it is associated, and access the file. There is no need to deal with the many libraries and various files needed by applications, you just access the building that represents the application. One object now represents the sometimes thousands of files needed by applications.
The idea of links (or shortcuts) its replaced by the idea of layers. Layers allow you to group collections of user files (or whole applications). Anybody that works with graphics or mapping knows the importance of layers. The benefit of this is that it gives you the freedom to group related objects in the way(s) that they are used.
Another benefit to this approach is the improved idea of opening and closing applications. The user should not be involved in this process. We can create software to be smart enough to balance the system resources with what the user may be using. In your house, wouldn’t it be nice if you never had to turn on or off a light? Your rooms could sense when you you enter and leave the room and
turn on or off the lights accordingly. This is the same idea. It eliminates a step or two that the user must perform.
Some of the ideas here are in ways already available, but on a per-application basis. But for them to truly be useful they must be integrated into the working environment for the benefit of users and developers. This benefits the user because everything is standard across the applications, and benefits the developers because less work is required on their part.