Skip navigation.

Blog

Skip the blog side panel.

On 23rd of April 2015, Mihai Șucan passed away due to metastatic cancer caused by RDEB.

My name is Mihai and I work on the Firefox developer tools. When it comes to web development, I like both server-side and client-side work. I am mainly interested in web browsers, web standards and related technologies.

Computers are too abstract

Recently I had the chance to observe how someone learns to use a computer, without having any prior experience. She doesn't even have experience with using mobile phones or any technology - except TV remote controls.

Since she has no experience with computers I gave her a Linux-based system to learn with: Ubuntu 7.10. This is a vanilla installation, in Romanian language (she knows only Romanian). The Web browser of choice is Opera with an unofficial Romanian translation, obviously.

For experienced computer users the whole WIMP metaphor of today's GUIs might seem very easy, but it's not for newcomers. For example, the windows concept is too abstract: she doesn't know when a window has focus. That's even after explaining to her when a window is focused and when not, several times. She once believed the window is the title bar itself.

Focusing windows, text fields and various interface elements is not intuitive at all. It's hard to know where the text you type will show - in which field, in which window. Generally, she moved the pointer on top of the field she wanted to write to - without caring if the window was active, or if the field was active. Moving the pointer on top the field was her intuitive solution to the problem: "I want to write here". She quickly forgot that a field is focused if she sees a blinking cursor in the given field. As such, when she remembers about the field focus, she always clicks the field, just to be sure it's focused.

Her attention span is very problematic. If a dialog or a notification pops-up, she won't notice it at all. If you tell her something new showed-up on screen, she believes it was always there, or ... she asks "when did it show up?". Computers, and technology in general, make us multi-task a lot, they force us to be always alert to any change on screen. When you use computers, you can't focus on one issue at a time as good as people normally do. Not to mention the fact she didn't have automatic system updates poping up, antivirus updates, dreadful Java updates and tons of annoying Windows-only crap. That would make computers a lot harder to use.

I did not yet explain her the differences between lots of interface widgets and concepts. It's too hard to keep up with the tons of concepts and interface widgets, how each work. She eventually needs to learn the difference between combo-boxes, radio buttons, menus, icons, buttons, task bar buttons (and the association with the "windows" concept), notification tray and the associated icons of running applications, tab bars, scroll bars, and multiple desktops (workspaces).

A special note about workspaces: among the first things she did, was to switch to a different workspace without knowing what happened. She was very confused: "where did my windows go? I closed them all?". I immediately disabled workspaces.

The whole mouse concept is also hard. She doesn't know when to click, double-click, triple-click, middle click, right click and drag. It's confusing to be required to hold the button down for longer or shorter periods of time. She believes all three buttons do the same thing. I believe mice have too many buttons. This is one reason I agree with Apple's one-button mouse. There's something she learned really quick: the mouse wheel is easy and intuitive - just spin the wheel to scroll the Web page.

The keyboard is generally intuitive, but she always keeps the buttons pressed for a longer time than necessary (thus she gets duplicated keys). I could configure keyboard delays to be longer, so she would not be affected by the issue, but still, the defaults should probably more suited to beginners. Additionally, the concept of modifier keys, like Control, Alternate, Logo, Caps Lock, Shift, Scroll Lock and Number Lock are, again, counter-intuitive. I haven't yet explained her keyboard shortcuts.

About scroll bars I can say people see a photo, and they want to move it to the left. To do so, they press the left key to scroll/move the image to the left. Actually, with scroll bars you have to press the right key to the see right side of the image. While I understand both expectations, I do believe computer user interfaces should follow the "default thinking". Why not reverse scroll bars? They would work as people expect naturally. I saw this is expected by other people as well, people who don't use computers, not only her.

Menus are annoying because they show up out of "nowhere" and they disappear too soon. She's always confused when using menus. People do not expect, intuitively, that things change on screen based on the mouse position. Another issue with menus, but more with linguistics is best explained by an example: in Opera, I told her "go to Bookmarks menu" which she did, "then Bookmark page". Her reply was: "how to bookmark the page?". This linguistic issue is amusing: she just had to click the menu item "bookmark page" - easy, but it wasn't obvious. This problem happens quite often.

Context-based hovers pose an important problem. It's not intuitive to move your mouse on top of something, for context information. This even disturbs her usual computer usage. She doesn't care where she leaves the mouse. For example, in Opera she sometimes leaves the mouse on top of a tab title. After a second or two, the tab thumbnail shows up, which begs the question "what happened?". She is no longer able to read the Web page. The problem with hovers is even greater when they provide options, like Web-based hover menus. I know our Web site exhibits this very issue, but ... we have to live with that decision for now. :)

Tool tips for context-based information are more like a hack for forcing the user to read/see what the author wanted. Newcomers don't expect to get any help by moving the mouse on top of an option, nor do they want it. I believe users would benefit a lot more from a general approach, easy to use, for getting help in any moment - something like man on Unix systems (in CLIs).

Having accounts for Web mail, instant messaging, and for every service is quite confusing. She would expect she has only one account which allows her to boot the system, and get every service working, automatically.

I would add that the whole concept of having different applications for different purposes started manually, is not very intuitive. Finding a good and intuitive reason for a newcomer as to why you must start Pidgin for instant messaging, or Opera for Web browsing, is not really easy. Users expect the computer "does" the things they want - not applications running in an OS. When she clicks on the Opera icon she doesn't see the Opera window instantly, as such she clicks it several times more. This can seem amusing, but ... actually, why does everything have to startup? It would be interesting if we could have a reachitectured OS which would provide every application/functionality instantly. People like the fact their TV doesn't have to boot, it doesn't have to prebuffer streaming data, nothing. They just work.™ Having more than one media player, more than one Web browser, and in general more applications for the same purpose, complicates everything a lot more. While I believe choice is good, I also believe choice should be available to those informed, not forced onto everybody, from day one. This is where I agree with Ubuntu, Mac OS X and Windows: they do not initially provide tons of options - you just go ahead and use the system. Unfortunately, Microsoft and Apple try to limit the choices for experts, unlike Ubuntu.

From the perspective of a newcomer, the separation between Web applications and software applications is confusing, again. Even computer users who are not experts today, mistake Meebo as being a software application. In the minds of average Joe computer users, the two concepts are fuzzy. People don't know Web sites/applications do not have the same priviledges as, say, Pidgin. A new system which would allow a complete merger between software and Web applications would help newcomers. Fortunately, this is already happening.

I was very tempted to teach the newcomer how to use computers in Ubuntu's virtual terminal, only with the command line. She wouldn't have to learn so many things. She wouldn't have to focus on so many things which do not matter. She would be able to play music, videos, chat and browse the Web with greater ease once she learns the commands. This is what I like about the CLI: the system is multi-tasking, yet it does allow you focus on one application at a time. You always know where your text shows up when you type. People like to know where to look, to focus, all the time. GUIs are too dynamic with respect to "where should I look now?". In CLI mode, you just follow the "dialog" with the machine.

There's one thing I didn't expect: she was able to navigate Web pages a lot easier than she could use the OS. She didn't need any training, apart from "you click on links, on images, on texts which are underlined, usually they are blue". Yet, things got worse once she stumbled on Web sites with menus, or with "complex" actions. Web pages which use the anchor target=_blank attribute value break the back button - which is very annoying actually.

The OLPC project aims to improve user interfaces, among other things. I like about this project that the Sugar interface is about activities, not applications. Automatic updates and installations are a lot simpler. The user focuses only on one application/activity at a time, with no overlapping windows.

Newer interface concepts like Sugar and the ZUI want to give focus to a single application, a single activity, without giving up any multi-tasking capabilities. The user should be given the power to be uninterrupted, to focus on any single task.

One idea I have for an user interface would be to present the user all windows full screen, no toolbars, no menus, no desktop. Imagine your word processor showing only the rulers, scroll bars and your document. The OS provides only a command line, always visible at the bottom of the screen when you press a certain key to toggle it on/off. When it's on, you always write a command you want, with automatic complete, as good as possible. The command line would allow for system commands (such as switch to another window, "play song", "do whatever", "set whatever", etc), and application-specific commands. Say you are in a word processor, you can use the command "save". With this approach, the command line could become internationalized, available in multiple languages - making it a lot easier for newcomers. APIs would allow any developer to build software and Web applications which hook into the command line.

This system would allow the user to do as much as possible in a single way. Multiple ways to do the same should be allowed for those interested, for "experts". Newcomers should be able to learn something as simple and intuitive as the keyboard and a simpler pointing device than the mouse. Let the user be able type "play song song-name", "open www.google.com", "search ...". Something like an universal command line which is context aware in GUIs as well. A command line which allows users to build better habits, without any notifications, without any task bar, without multiple windows. Allow the user to manually check for notifications from the command line, allow the user to switch to other tasks instantly - don't require application startup. Users don't have to start Opera to open a page. Just "open www.google.com". Allow users to define which application is associated. Users would focus much better on their work.

The Enso Launcher is a promising free product which tries to be an universal command line, bridging GUIs with CLI. I would wish such efforts would be brought onto Linux, in a unified desktop environment. Currently, Enso Launcher and similar applications are awesome "toys" - however they are not yet The System itself.

The new Microsoft Office 2007 package is a bold release by Microsoft - I was glad to see such big changes. While some people blame the GUI choices, and others blame the changes are too drastic, I like it - they did something. They gave up stagnation, to try new things. Based on my experience with Word I can say I like to use it a lot more than previous versions, and yes, I discover new features a lot quicker.

In spite of all the efforts of the Office team I was disappointed by only one major flaw: they did not add a quick search field in Word, always visible, at the top of window (maybe on the right would be best). This "quick search" field would be brilliant if they would allow users to: search for all the help, and apply any of the available commands. For example allow me to type "help file formats", "save", "save as new.docx", "open old.docx", "insert image", "bold", "go to page 10", "insert equation" and a lot more. No matter what, no matter how brilliant people are, they will not be able to squeeze tons of options into an easy-to-use GUI, and easy-to-learn GUI. You are always thrown back to the command-line, or to a perfect Voice recognition system (which doesn't exist yet).

Some say Vim is too hard to use compared to any other editor. I dare to say it's easier to use compared to today's modern IDEs, simply because you do not have to learn tons of concepts which are completely unrelated to the given task: file editing. If you take a complete computer beginner, I'm certain he would learn how to use Vim faster, when compared to any IDE. Before you can teach anyone how to use the modern editor itself, you have to teach the person all the GUI concepts. In Vim you can just go ahead and explain how to do basic editing, then allow him/her to discover new capabilities. Vim has tons of options and features - the same goes for IDEs, but Vim looks very simple.

It's like with kids: parents don't explain to kids everything on the first day they ask something. Who in his/her right mind would explain in details why the sky is blue? Or... the usual question: where do kids come from? :) You allow them to evolve, to grow up, to understand, to find the answers themselves.

With this being said, I look forward to new interface metaphors, new ways to interact with computers and technology in general.