Plasma/TheWaysOfThePlasma

From KDE Community Wiki

Note

This document is fairly old at this point and hasn't kept pace with the Plasma development explosion, but contains several points of interest still.


The Ways of the Plasma

First Commandment of User Interface design: I'm the computer, your platform. Thou shall have no other platforms before me. Not even Especially not the shiny, web2.0 ones.


Plasma puts the human back in control. For decades we have operated our computers in basically the same way, because the interfaces through which we interact with digital machines have not changed. The enormous performance improvements we have seen, mainly meant faster execution times and overall shinier surfaces. But the general principles of interaction have not evolved. We still have to break down our work into steps that a computer can understand. Plasma is going to change that, by providing humans with an environment that fits their way of working like a glove (or a hat, or a coat, or a pair of jeans, if they so desire)


Foundation

Plasma is a project with a solid foundation in the open source movement. For years open source communities have changed the way we think of software development and they are constantly challenging our expectations of what is possible through free and open collaboration of dedicated individuals. Today large parts of the technological infrastructure driving the civilized world are relying on open source software and life there would simply break down without it.

In the near future the open source collaboration model is also about to change the corporate landscape as businesses around the world, spurred by the current success of open collaboration in the realm of the web2.0, are realizing the potential of giving employees, as well as customers, a more active role across various communication channels.

As a subproject of one of the largest open source projects to date, Plasma is well aware of that cultural heritage and builds on that, adding at least two new aspects:

Traditionally the strong point of open source projects has been their exemplary treatment of humans as collaborators in the process of creating software. But open source projects, just as closed source projects, lacked an understanding of putting the human also into the center of their design considerations. User centered design is a fairly new topic in the field of software engineering and Plasma is one of only a few projects to truly use it as a guiding principle to create better software.

Doing so is also a bold experiment, since the open source development model lends itself perfectly to incremental improvements, but will first have to prove itself suitable also for genuine innovation, where not the competition but one's own imagination is the only guiding light.

Venturing something like this usually requires a shared vision among large parts of the involved parties. This document is intended to serve as a central scaffolding around which the necessary discussions for this shared vision can be had.

What the user is actually doing

An interesting exercise to understand what user centered design is all about, is imagining oneself as an interface designer for an automobile's interior. Today every part of a driver's cockpit is, or could be, activated electronically; not just navigation systems or car stereos, also steering, braking and shifting can be done "by wire". This would potentially allow designers to create an in-car experience any way they pleased. Yet, designers hold off, because they understand, that they can not interfere with what the user is actually doing: driving a car. Regrettably such modesty is seldom to be seen in designers of computer user interfaces. Granted, their failure may not be as fatal as failure in interface design for automobiles would be, but survival of the user is hardly a measure of good user interface design. A clear notion of what the user is actually trying to achieve is of paramount importance to start a user centered design process.

While the look of computer user interfaces has changed a lot in past decades, the interfaces have hardly become better. The reason for that seems to be, that the undeniably ingenious ideas of former generations of software engineers have been "improved" without a proper understanding of their ingenuity; windows, icons, panels or files come to mind. Although they were good solutions in their time, no user needs these; but every computer user still needs solutions to the problems that they solved. Plasma is unique in its effort to not simply create fancier icons, panels and system trays, but to understand the problems icons solved for the user and create new and modern solutions to these problems.

Icons

In earlier user interfaces it was not always possible to directly interact with content. For different kinds of content different sets of functionality had to be loaded to provide suitable means of interaction, think text processing or image manipulation. So due to limited resources at that time it seemed more economical to not have all functionality loaded at all times and have some interactions be executed on representations of the actual content, instead of on the content itself.

Initially those representations were just text based, namely the file name of the file containing the relevant content. This brought with it the problem that all content was suddenly "the same". Imagine looking at ten pictures: it is instantly obvious which content is which, but looking at a list of the ten file names of these pictures, takes considerably more cognitive effort to discern the pictures. This remains true, even when not all pictures are named "IMG_#####.JPG", but have descriptive names.

So to help users to better get along with just representations of their content, icons were introduced. With icons it was possible to create a richer and more visual experience for the user.

As systems became more and more powerful, it was possible to play with the icon-metaphor to enhance user interfaces even more. Different kinds of icons could be used to represent different kinds of content, so the user's facility to discern content at a glimpse was restored; at least partially, since obviously content of the same kind still had to be identified by means of a file name.

Today systems are so powerful that it is possible to use an actual rendering of the content as an icon. So obviously one would think that representations of content could now be superseded by real content, at least in many places of an user interface. Real content allows for a much richer and immediate user experience and is more expressive than its representations, textual or iconic, could be.

Yet, in most user interfaces content is still represented as icons along with a file name. This puts an unnecessary cognitive strain on the user. Perhaps plasma can provide means to remedy this situation.

As others have so aptly put it: Let content be content; or as humorous natures might say: I am your content, thou shall not make for yourself an idol.

Recent Documents

Another example of a fine idea drowned in current user interface misconceptions is the "Recent documents" menu. Giving users quick access to all the projects they are currently working on, is an excellent idea. But in the current user interface landscape, this idea was bound to fail. It is near impossible to represent the notion of a project in terms of what is currently available: files and applications.

The only remedy, when leaving all the other user interface concepts untouched, is to give in and embed the "Recent documents" idea inside every single application as an application specific "Recently opened" menu.

This works to a certain extent, but that way the user has to memorize his projects in terms of applications (, which violates the First Commandment: it renders the computer as a platform virtually useless, since the user has to use the text processing platform, to compose a letter or a paper or has to use the graphics editing platform to touch up photographs. While the underlying platform remains completely unaware of the projects the user is indulging in).

Funnily everything in the realm of digital machines is based on "ones" and "zeros" and to tap into the power of digital machines to process ones and zeros, abstractions have been devised, to make it easier for humans to handle ones and zeros. But sadly those abstractions stopped short of the abstractions that are actually needed to build user interfaces that don't get in the user's way.

In this regard current developments, of users "living on the internet" instead of on their desktops, might actually be beneficial. The notion of a file might soon be supplanted as bookmarks, text documents and photo collections are no longer file based but are accessed through specialized APIs. This current trend of vanishing files in user interfaces could be cleverly exploited by plasma, to adopt more usable user interface primitives, that help users get their work done.

Applications

Applications have been a really great part of user interfaces. In a command line environment a user could install new applications and thereby extend the functionality of the whole system. Imagine for example the sort(1) command, after a user installs it, he has, by means of a universal IPC mechanism, sorting functionality throughout his system.

With the advent of graphical user interfaces applications have been "stuffed" inside windows and despite the many advantages of this new approach, a lot of great features have been lost.

Today the system itself remains pretty useless, no matter how many applications are installed. It's applications instead, that offer functionality and usefulness to the user. But they don't add to the system as a whole. This increasingly becomes a problem as digitalization progresses. The feature set that even an inexperienced user uses to work, for example, with digital photographs is enormous and all this functionality has to be bundled with the application. This leads to functionality duplication among applications, which is a source of confusion for the user and system bloat.

But probably the most severe drawback is, that content becomes bound to applications and is not free for users to use on their systems. Of course a "JPEG" image can appear in many places across the system and in various applications: in a picture viewer, an image manipulation program or a desktop background chooser, but the interactions a user can have with this content are limited to specific applications. Although generally limitations are not a bad thing, since they could be applied strategically, the way current graphical user interfaces impose limitations on the way users interact with their content is a sign of fundamentally wrong design.

Windows

Related to how applications are used on today's desktops are surely windows. The basic role of windows in user interfaces is, to visually bundle functionality together to allow interaction with multitasking environments.

The problems associated with windows are probably the easiest to cope with, since they will dissolve almost on their own, when the whole concept of multitasking has to be rethought with multi-touch and especially multi-user input lurking just around the corner.

The best feature of windows is perhaps, that they make the common mantra: "Think outside the box!" almost tangible.

System tray

The usefulness of a system tray is also closely related to the problems we have in today's windowing environments.

The very rigid form of displaying information along with the possible interactions, that windows afford, is hardly suited to all information visualization needs on a users system. Some pieces of information are just of marginal importance, yet current windowing environments dictate either full representation or no representation at all.

Windows can of course be of different size, but their scalability applies not to the information displayed, but to the viewport, making the scale operation rather useless in many cases.

A system tray brings some limited form of semantic ZUI to the game. It essentially introduces a third form of representation. Besides a minimized application and an application running in a full window, the application can also be reduced to its system tray icon. There it can display various forms of status information or tooltips and also present a specialized set of interactions.

It is actually a promising idea, but it blatantly shows how its designers tried to just improve the current system, instead of searching for solutions that solve the real problem in terms of what the user is actually doing.

How plasma can solve real problems

In the following we will sketch out a handful of usage scenarios, that take into consideration the troubles outlined so far.

These are ideas, that may or may not be implemented through Plasma in the future. Their sole purpose is to show how an unimpeded view on user interface design may yield interesting and new concepts for interaction of humans with computers.

Doing research

Imagine a young student of mathematics, call her Maria, who's researching a topic for a presentation for one of her seminars.

She's starting her work by opening the lid of her laptop computer and her system wakes to a mind map of all her digital life. Instead of looking at a regular computer desktop cluttered with a panel and an oftentimes wild assortment of icons, symbolizing various things, ranging from applications to hardware, to files, she's presented with her work as she sees it. There are "University", Hobbies" and "Private" prominently standing out on her desktop as the main topics in her life.

Instead of clicking through a start menu full of applications, Maria is navigating through her work as she visualizes it. Related to "University" there are the entries for all her seminars, with her current ones being larger than past ones. And then there's a "Logic Theory" node in her mind map. This represents the seminar she's doing the research for. Maria creates a child node there, representing the task of researching for her presentation. She names it "presentation on modal logic" and if she wants to, she can also give a short summary for her new node.

When Maria zooms in on that newly created node, she sees a project management view of the task. Its name and her short summary are there, but additionally she can also set a due date, give a priority or can select a number of collaborators from her address book: her supervisor and probably other students, who work together with her. This project management view is customizable. Maria can finetune the level of control she can exert for managing the node "modal logic". She can even download new types of nodes directly from the internet. If she needs an integrated Gantt chart for a larger project, she will find node types that provide that, as well as nodes, that are very basic or ones so specific that they are shared only among the pupils in one class (think of a "herbarium" node on an educational computer for school kids).

At this zoom level Maria can also choose what kind of task "modal logic" is. This most closely corresponds to what current computer users do, when they navigate through a start menu and select the application that they see most fit to complete a specific task. Maria's selection at this level determines how the next zoom level will look like and what tools she has at her disposal.

Maria chooses "Research project (department of Mathematics)" as the type of the "modal logic" task, so when she zooms in yet again, she finds a workspace perfectly suited to her research project. The type "Research project (department of Mathematics)" is provided by her department at the university. Other types can again be downloaded from the internet and of course be created by users themselves. A generic "research project" might perhaps start a note taking application and a web browser showing results for a search for "modal logic", but the full power of Plasma was harnessed when Maria's department created a special project type. A project type corresponds to a combination of what computer users today may know as sessions, profiles and templates.

At this third zoom level Maria has a note taking application at her disposal. For her text research she uses a generic template, but if she worked at a chemistry lab, for example, her department could have included special templates for her note taking application to jot down chemical formulas. Maria has also an applet on her desktop that plugs directly into her universities library. It uses Maria's address book to get the link to one of her identity providers, in this case: her university; this way Maria is authenticated for many online services her university offers, one of them being the library. Maria can search for books and even order them directly from this little applet, without having to start a web browser.

Another applet lets Maria collect bookmarks. If she also uses digital resources for her research, she can collect those in a little tray, that can be seen as a bookmark manager. It is already preloaded with links to her departments homepage or regulations for what is expected from her for a presentation. In short everything digital, that is related to the task at hand, is part of Maria's workspace. In honour of the many brave Plasma developers Maria also has an abundance of clocks on her desktop.

At the end of the day Maria still thinks that geeks are kind of funny, but she's glad that they finally start to create usable software.

Writing an article

Imagine Carlos, he's a journalist and professional writer. In his free time he also writes for open source projects.

When he returns to his computer to finish an article, "The ways of the plasma", he zooms in on that task. "Zooming in" in this context could just describe the mental process of focusing on his work, but of course his desktop environment might also visualize this, as described in the scenario above. Note that this scenario builds on the previous one, although both will also work independently from each other.

Carlos has everything he needs to write this article in reach. The document he is working on is in front of him, his reference material is at hand and he has all relevant communication channels open. In this case the channels are the project's mailing-list and its IRC channel. For other projects Carlos also likes to use instant messaging or keep relevant blogs and micro-blogs handy.

His desktop experience is very life-like and immediate. He has all the necessary tools and interactions at (or in) his fingertips and he also has no additional, superfluous tools to deal with. No computer administrative debris to distract him from his work.

He goes over his last paragraph again to incorporate some stylistic improvements, he mulled over during lunch earlier today. Then he starts with a new section.

To refresh his memory and get into the right mood for this part, he wants to reread a chapter in one of his reference books first. Since everything he needs is part of his workspace, he merely has to grab the document and drag it into the center of his screen. By doing so, the document is oriented towards him and enlarged. This is very useful; since documents on the margin of the screen are usually less important at the moment, they are usually smaller in size and also arbitrarily rotated to visually underscore their marginal importance to the user and to get them out of the way.

When Carlos, on the other hand, drags an object into the center of his screen, his desktop automatically supports him by enlarging and orienting the object for a better glimpse at it. If a user however, like Carlos right now, wants to read a document more thoroughly, he will have to manually bring it into a comfortable position.

Carlos uses a touchscreen computer, so this is quite literally a no-brainer for him, he just uses the usual gestures to effortlessly arrange the reference book the way he wants to. Before Carlos got his new multi-touch enabled tablet-PC some weeks ago, he didn't use these features much and worked in a much more conservative fashion. But he is already hooked to the new possibilities and feels so much more productive. When he is done reading, he scales the document down and flicks it to the edge of the screen again.

Now that he's in the mood, he starts writing. To not be distracted now, Carlos uses what must be his favorite feature. Where other desktop environments use dark backdrops to temporarily promote the useless parts of the desktop to the front, Carlos uses the backdrop to demote those parts. His document is scaled to a large, eye-friendly size and the rest of his desktop is darkened, so that there is absolutely nothing that could distract Carlos from what he is doing at that moment.

This is of course not merely a visual gimmick. Carlos does not tell his system to darken his desktop. Carlos tells his system, what he is actually doing: he wants to concentrate on a specific task and be immersed in it. Visually this means, that his system darkens his desktop. But it also means, his presence on instant messaging networks is altered appropriately or notifications are turned off.

Carlos writes like this for a while, until he hears his wife come home downstairs. He returns to his regular desktop view and goes down to greet her. They quickly discuss, what they'll cook for dinner, then Carlos returns to his desk, while his wife attends to some other activities. He prepares his document to be put aside once more. He'll surely finish it off this coming weekend.

Since he had a pretty clear picture of the ending of the current section in his head already, he tries to keep as much of it as possible on sticky notes, so he can touch the ground running next weekend.

As he's done with "The ways of the plasma", he zooms out of it and into his hobbies section, where he likes to keep recipes. He looks up "vegetarian lasagna" to refresh his memory and get some inspiration. He could send the recipe down to his media center in the living room, to have it displayed on the large TV set while they are cooking, but his geek days are over.

When Carlos is cooking with his wife, he is cooking with his wife.

to be continued ...