Domain: phrasewise.com
Stories and comments across the archive that link to phrasewise.com.
Comments · 37
-
Re:You want to know what the ego trip is?
If he had worked with the SeaMonkey team to begin with to change buttons and such, we could both have our way
If..Could.. Not good enough. If you're annoyed by this percieved ego trip, I hope Seamonkey gives you what you want. I would not have Seamonkey discontinued myself, either. More Gecko-based browsers = potentially less cross-browser coding nightmares; if someone uses Firefox or Seamonkey, then they may not be using IE/Win, IE/Mac, or Opera. (nothing personal against Opera).
However am I seriously to believe, for one second, the Mozilla Project would have condescended to take this feedback, had it been offered in a way that would please the likes of you more?
Not sure why I wasn't around to give it a hug, or as you say, jump up and down about usability, but I can't help but think that Mozilla had a good run, At The Time.
Pedants can chip in here, but after the ghastly NS4 release and the various organisational restructuring that ensued, Mozilla was _the_ leet project, in fact I seem to remember back then they were using the Seamonkey word. Except the code was so awful that they had to skip version 5, and when version 6 came out, it offered little that was different, as far as the interface goes, to NS4. The interface is at least as important as the browser working properly and as you rightly point out, nasty remote exploits ideally belong nowhere in any of the Foundation's releases.
So, software engineers and the like will have some warm fuzzy memories about all of those Mozilla releases, and the political significance of what that meant - the re-birth of something shoddy and proprietary (NS4) into something open-source. But there were people like me 'jumping up and down about usability' back then. They weren't listened to, they were dismissed and explained away. I can't help but feel that I as a user am profiting from this ego trip, in the form of a new default browser which pleases me more than IE.
I seriously would love to see someone telling the end-users that Firefox is evil because the lead developer went on an ego trip, and that instead, they should use this, ahem, rather fully-featured alternative called Mozilla (but it's going to be Seamonkey soon..), and that whether they like Firefox or not, really clever people won't be using it because really clever people don't think the ends justified the means. -
Re:Heh, oops...
Well, remember those IE extenstion freewares, such as CruftyBrowser, AwanaBrowser, and MyEyee2
-
Re:Professional quality level softwareNo investigative work or research to prove it, not even a convincing argument to go along. Without any constructive points for improving "the situation", the article is worthless except maybe for some minimal entertainment value.
Did you even read the article? Did you click on any of the links? Specifically, the link to this page?
Gruber's making the argument for a user-oriented development process. Rather than coding the gee-nifty crap down at the bottom and then try to figure out how to slap a UI on top of it, figure out what functions the application should allow the user to accomplish, design the UI, then build the underlying code to enable those tasks.
There's obviously some middle ground to be reached, but I'm amazed that people can disagree that most open-source stuff has crappy UIs.
-
Re:New File Selector - WOO HOO
The best file selector is no file selector at all. Since there is already a file browser such as Evolution (or its equivalent) that should be used, and made quick and easy enough for simple file selection tasks. To open a file, just view its directory and click on it; the application loads automatically and there is no real need for the two-step 'load application then use the Open menu', which dates from a time when computers didn't have a single GUI and there was no means to just open a file directly. To save a file, why not drag it from the application to the directory window. None of that clicking about with 'parent directory' and other nonsense.
Matthew Thomas pointed out better than I could that the separate file-picker is user interface cruft left over from an earlier age. Let's just have one file browser in the desktop and make it good enough to use for everything. -
The file selector is unnecessary
There is no need for two different file managers - one like evolution or kfm and a completely separate 'file picker' used just for Open and Save dialogue boxes. As others have pointed out, they are a prime example of cruft in user interfaces, there because of the limitations of older systems that couldn't manage a multi-tasking desktop.
Personally I think that RISC OS did this the right way. There is a single file manager program ('Filer') which displays windows showing the content of directories. To load a file, double-click on it or drag it onto an application's icon. To save a file, you drag it from the application to the Filer window. This is much more intuitive and also quicker - for example you can have two Filer windows for two directories and load or save files in one or the other without clicking about in the file selector to go up one directory and into another.
This style of drag and drop saving has been implemented in the ROX desktop, but so far the other desktop environments haven't picked up on it, preferring to imitate Windows. -
and now back to Evil Software Patents
the ability to drag a tab outside of the window to make it the first tab of a new window would also be fantastic
Yeah, everybody wants it but Adobe has a patent on it. Or is there uncited prior art? -
Re:Thank goodness for Opera Software
MDI browsing. This is a little better than just tabbed browsing, since you can have windows side by side. It is really convenient to be able to group browser windows together.
MDI is an ugly solution to the incompetence of your window manager, which ought to handle this. An app taking over window management is a usability nightmare. See also mpt on Opera. -
Re:Ok...Hm. Well, personally I've had issues with Opera. The Linux versions have craptastic font support, and its CSS support has issues. You claim on your page that Opera 7 has only 6 "minor" CSS problems. First result of a Google search for Opera 7 CSS bugs gave me a page that listed 32. Whoops.
As for Opera's "clean, intuitive" interface (another claim from your page), you might check out Matthew Thomas' claim that Opera is the only UI worse than Mozilla's.
-
Like Matthew Thomas
Matthew Thomas has been criticising UI aspects in Mozilla.
-
problems with the semantic web
-
Other people who deserve a voice in this.
-
Re:Technical advancement not the issue.
The common answer to this is "Mozilla is not for end users". Bah! There's no point in developing the thing if it ain't for end users. Please read "The 'Mozilla is so for end users' FAQ"
To make the long story short, mozilla.org doesn't want to promote mozilla.org Mozilla builds, because Netscape pays the bill, so they want to direct people to Netscape instead. This is understandable, but it doesn't mean Mozilla-based browsers don't need users or that the Mozilla technologies are not intended to fall into the hand of end users.
So how are Gecko-based browsers going to be successful?
- Chimera is the best OS X browser. If you are using OS X and aren't using it yet, give it a try. (Remember to update the Flash plug-in, though, to avoid a crasher in the version of Flash plug-in that came with the OS.)
- Mozilla and Galeon come by default with Red Hat and Debian. Galeon rocks. If you are still using Netscape 4.x on Linux, it is time to upgrade.
- If you are on a *nix platform that doesn't have Galeon, consider using Mozilla or porting Galeon or Phoenix to your platform.
- But the key to market share is Windows. AOL could do a lot if they just used Gecko in AOL for Windows. What's holding them back? They already use it on OS X and in Compuserve.
-
Article with ideas on how to improve Linux
In his article "When good interfaces go crufty", Matthew Thomas from New Zealand gives some good ideas how interfaces for Linux could be improved, how Linux has the chance to be much more innovative. I found his article very enlightening, because he breaks out of some deeply entrenched tracks of thought.
-
Article with ideas on how to improve Linux
In his article "When good interfaces go crufty", Matthew Thomas from New Zealand gives some good ideas how interfaces for Linux could be improved, how Linux has the chance to be much more innovative. I found his article very enlightening, because he breaks out of some deeply entrenched tracks of thought.
-
opera's ui
see this for well thought out appraisal of opera's ui, particularly vis-a-vis mozilla's ui.
-
Re:Prefetching
Mozilla has matured past the "world is my debugger" stage, at least in this respect
Things aren't kept out of preferences just for "this is Mozilla, you should accept no prefs box for certain tweaks". Some new things are, the feature is in but there's no UI. Some things are in testing phase, so only should be turned on by folks specifically testing that feature.
Many things are kept out so not to clutter the preferences dialog, to make things that should only be touched by folks who know what they're doing can only be touched by folks who know what they're doing. I agree with hiding this in this case, I just think it should default to off, and only people who know how to hack a prefs file (doesn't necessarily mean they understand all the ramifications, but it's a filter of some sort) can do this. It does have bandwidth ramifications, and should be defaulted off.
Check out Matthew Thomas' weblog for UI debates, including several on the bloat of the Prefs box. -
Bugzilla's usability
How to fix Bugzilla
Are these concerns relevant now? -
Re:Good for MozillaI would prefer that the people working on Mozilla work on optimizing it so that it launches faster.
-
Why Free Software Usability Tends To Suck
The author of the article, Matthew Thomas, also wrote two very good pieces
"Why Free Software Usability Tends To Suck"
"Why Free Software Usability Tends To Suck Even More".
They are an eye-opener for any one who has wondered why linux is still not ready for the desktop despite the prescense of so many talented programmers in the Free Software Community
-
Why Free Software Usability Tends To Suck
The author of the article, Matthew Thomas, also wrote two very good pieces
"Why Free Software Usability Tends To Suck"
"Why Free Software Usability Tends To Suck Even More".
They are an eye-opener for any one who has wondered why linux is still not ready for the desktop despite the prescense of so many talented programmers in the Free Software Community
-
"Mozilla's Top Ten Usability Problems" by mptThe 24-year-old student with a 20-year perspective on UI design wrote up "The top ten usability problems in Mozilla" a while back. Consider Item 9: "Validation". That is so a usability problem for Mozilla it's amazing how nothing's being done about it.
Especially since mpt acted as the UI module owner for Mozilla.
A good example of open source design gone bad; where every voice is counted, regardless of whether that voice has any merit to it or not. Like a mirage, lack of ownership makes any ownership look a solution to the problem. Enthusiasm and verbosity belie the lack of expertise.
-
When good interfaces go crufty
In Vernor Vinges sci-fi novel A fire upon the deep, he presents the idea of software archeology. Vinges future has software engineers spending large amounts of time digging through layers of decades-old code in a computer system like layers of dirt and rubbish in real-world archeology to find out how, or why, something works.
So far, in 2002, this problem isnt so bad. We call such electronic garbage cruft, and promise to get rid of it someday. But its not really important right now, we tell ourselves, because computers keep getting faster, and we havent quite got to the point where single programs are too large for highly coordinated teams to understand.
But what if cruft makes its way into the human-computer interface? Then you have problems, because human brains arent getting noticably faster. (At least, not in the time period were concerned with here.) So the more cruft there is in an interface, the more difficult it will be to use.
Unfortunately, over the past 20 years, Ive noticed that cruft has been appearing in computer interfaces. And few people are trying to fix it. I see two main reasons for this.
-
Microsoft and Apple dont want to make their users go through any retraining, at all, for fear of losing market share. So rather than make their interfaces less crufty, they concentrate on making everything look pretty.
- Free Software developers have the ability to start from a relatively cruft-free base, but (as a gratuitously broad generalization) they have no imagination whatsoever. So rather than making their interfaces more usable, they concentrate on copying whatever Microsoft and Apple are doing, cruft and all.
Here are a few examples of interface cruft.
-
In the 1970s and early 80s, transferring documents from a computers memory to permanent storage (such as a floppy disk) was slow. It took many seconds, and you had to wait for the transfer to finish before you could continue your work. So, to avoid disrupting typists, software designers made this transfer a manual task. Every few minutes, you would save your work to permanent storage by entering a particular command.
Trouble is, since the earliest days of personal computers, people have been forgetting to do this, because its not natural. They dont have to save when using a pencil, or a pen, or a paintbrush, or a typewriter, so they forget to save when theyre using a computer. So, when something bad happens, theyve often gone too long without saving, and they lose their work.
Fortunately, technology has improved since the 1970s. We have the power, in todays computers, to pick a sensible name for a document, and to save it to a persons desktop as soon as she begins typing, just like a piece of paper in real life. We also have the ability to save changes to that document every couple of minutes (or, perhaps, every paragraph) without any user intervention.
We have the technology. So why do we still make people save each of their documents, at least once, manually? Cruft.
-
The original Macintosh, which introduced graphical interfaces to the general public, could only run one program at a time. If you wanted to use a second program, or even return to the file manager, the first program needed to be unloaded first. To make things worse, launching programs was slow, often taking tens of seconds.
This presented a problem. What if you had one document open in a program, and you closed that document before opening another one? If the program unloaded itself as soon as the first document was closed, the program would need to be loaded again to open the second document, and that would take too long. But if the program didnt unload itself, you couldnt launch any other program.
So, the Macs designers made unloading a program a manual operation. If you wanted to load a second program, or go back to the file manager, you first chose a menu item called Quit to unload the first program. And if you closed all the windows in a program, it didnt unload by itself it stayed running, usually displaying nothing more than a menu bar, just in case you wanted to open another document in the same program.
Trouble is, the Quit command has always been annoying and confusing people, because its exposing an implementation detail the lack of multitasking in the operating system. It annoys people, because occasionally they choose Quit by accident, losing their careful arrangement of windows, documents, toolboxes, and the like with an instantaneity which is totally disproportionate to how difficult it was to open and arrange them all in the first place. And it confuses people, because a program can be running without any windows being open, so while all open windows may belong to the file manager, which is now always running in the background menus and keyboard shortcuts get sent to the invisible program instead, producing unexpected behavior.
Fortunately, technology has improved since 1984. We have the power, in todays computers, to run more than one program at once, and to load programs in less than five seconds.
We have the technology. So why do we still punish people by including Quit or Exit menu items in programs? Cruft.
-
As I said, the original Macintosh could only run one program at a time. If you wanted to use a second program, or even return to the file manager, the first program needed to be unloaded first.
This presented a problem when opening or saving files. The obvious way to open a document is to launch it (or drag it) from the file manager. And the obvious way to save a document in a particular folder is to drag it to that folder in the file manager. But on the Mac, if another program was already running, you couldnt get to the file manager. What to do? What to do?
So, the Macs designers invented something called a file selection dialog, or filepicker a lobotomized file manager, for opening and saving documents when the main file manager wasnt running. If you wanted to open a document, you chose an Open menu item, and navigated your way through the filepicker to the document you wanted. Similarly, if you wanted to save a document, you chose a Save menu item, entered a name for the document, and navigated your way through the filepicker to the folder you wanted.
Trouble is, this interface has always been awkward to use, because its not consistent with the file manager. If youre in the file manager and you want to make a new folder, you do it one way; if youre in a filepicker and you want to make a new folder, you do it another way. In the file manager, opening two folders in separate windows is easy; in a filepicker, it cant be done.
Fortunately, technology has improved since 1984. We have the power, in todays computers, to run more than one program at once, and to run the file manager all the time. We can open documents from the file manager without quitting all other programs first, and we can save copies of documents (if necessary) by dragging them into folders in the file manager.
We have the technology. So why do we still make people use filepickers at all? Cruft.
-
This last example is particularly nasty, because it shows how interface cruft can be piled up, layer upon layer.
-
In Microsofts MS-DOS operating system, the canonical way of identifying a file was by its pathname: the concatenation of the drive name, the hierarchy of directories, and the filename, something like C:\WINDOWS\SYSTEM\CTL3DV2.DLL. If a program wanted to keep track of a file in a menu of recently-opened documents, for example it used the files pathname. For backward compatibility with MS-DOS, all Microsofts later operating systems, right up to Windows XP, do the same thing.
Trouble is, this system causes a plethora of usability problems in Windows, because filenames are used by humans.
-
What if a human renames a document in the file manager, and later on tries to open it from that menu of recently-opened documents? He gets an error message complaining that the file could not be found.
-
What if he makes a shortcut to a file, moves the original file, and then tries to open the shortcut? He gets an error message, as Windows scurries to find a file which looks vaguely similar to the one the shortcut was supposed to be pointing at.
-
What happens if he opens a file in a word processor, then renames it to a more sensible name in the file manager, and then saves it (automatically or otherwise) in the word processor? He gets another copy of the file with the old name, which he didnt want.
-
What happens if a program installs itself in the wrong place, and our fearless human moves it to the right place? If hes lucky, the program will still work but hell get a steady trickle of error messages, the next time he launches each of the shortcuts to that program, and the next time he opens any document associated with the program.
Fortunately, technology has improved since 1981. We have the power, in todays computers, to use filesystems which store a unique identifier for every file, separate from the pathname such as the file ID in the HFS and HFS+ filesystems, or the inode in most filesystems used with Linux and Unix. In these filesystems, shortcuts and other references to particular files can keep track of these unchanging identifiers, rather than the pathname, so none of those errors will ever happen.
We have the technology. So why does Windows still suffer from all these problems? Cruft.
Lest it seem like Im picking on Microsoft, Windows is not the worst offender here. GNU/Linux applications are arguably worse, because they could be avoiding all these problems (by using inodes), but their programmers so far have been too lazy. At least Windows programmers have an excuse.
-
To see how the next bit of cruft follows from the previous one, we need to look at the mechanics of dragging and dropping. On the Macintosh, when you drag a file from one folder to another, what happens is fairly predictable.
- If the source and the destination are on different storage devices, the item will be copied.
- If the source and destination are on the same storage device, the item will be moved.
- If you want the item to be copied rather than moved in the latter case, you hold down the Option key.
Windows has a similar scheme, for most kinds of files. But as Ive just explained, if you move a program in Windows, every shortcut to that program (and perhaps the program itself) will stop working. So as a workaround for that problem, when you drag a program from one place to another in Windows, Windows makes a shortcut to it instead of moving it and lands in the Interface Hall of Shame as a result.
Naturally, this inconsistency makes people rather confused about exactly what will happen when they drag an item from one place to another. So, rather than fixing the root problem which led to the workaround, Microsoft invented a workaround to the workaround. If you drag an item with the right mouse button, when you drop it youll get a menu of possible actions: move, copy, make a shortcut, or cancel. That way, by spending a couple of extra seconds choosing a menu item, you can be sure of what is going to happen. Unfortunately this earns Microsoft another citation in the Interface Hall of Shame for inventing the right-click-drag, perhaps the least intuitive operation ever conceived in interface design. Say it with me: Cruft.
- It gets worse. Dragging a file with the right mouse button does that fancy what-do-you-want-to-do-now-menu thing. But normally, when you click the right mouse button on something, you want a shortcut menu a menu of common actions to perform on that item. But if pressing the right mouse button might mean the user is dragging a file, it might not mean you want a shortcut menu. What to do, what to do?
So, Windows designers made a slight tweak to the way shortcut menus work. Instead of making them open when the right mouse button goes down, they made them open when the right mouse button comes up. That way, they can tell the difference between a right-click-drag (where the mouse moves) and a right-click-I-want-a-shortcut-menu (where it doesnt).
Trouble is, that makes the behavior of shortcut menus so much worse that they end up being pretty useless as an alternative to the main menus.
-
They take nearly twice as long to use, since you need to release the mouse button before you can see the menu, and click and release a second time to select an item.
-
Theyre inconsistent with every other kind of menu in Windows, which opens as soon as you push down on the mouse button.
-
Once youve pushed the right mouse button down on something which has a menu, there is no way you can get rid of the menu without releasing, clicking the other mouse button, and releasing again. This breaks the basic GUI rule that you can cancel out of something youve pushed down on by dragging away from it, and it slows you down still further.
In short, Windows native shortcut menus are so horrible to use that application developers would be best advised to implement their own shortcut menus which can be used with a single click, and avoid the native shortcut menus completely. Once more, with feeling: Cruft.
-
Meanwhile, we still have the problem that programs on Windows cant be moved around after installation, otherwise things are likely to break. Trouble is, this makes it rather difficult for people to find the programs they want. In theory you can find programs by drilling down into the Program Files folder, but theyre arranged rather uselessly (by vendor, rather than by subject) and if you try to rearrange them for quick access, stuff will break.
So, Windows designers invented something called the Start menu, which contained a Programs submenu for providing access to programs. Instead of containing a few frequently-used programs (like Mac OSs Apple menu did, before OS X), this Programs submenu has the weighty responsibility of providing access to all the useful programs present on the computer.
Naturally, the only practical way of doing this is by using multiple levels of submenus thereby breaking Microsofts own guidelines about how deep submenus should be.
And naturally, rearranging items in this menu is a little bit less obvious than moving around the programs themselves. So, in Windows 98 and later, Microsoft lets you drag and drop items in the menu itself thereby again breaking the general guideline about being able to cancel a click action by dragging away from it.
This Programs menu is the ultimate in cruft. It is an entire system for categorizing programs, on top of a Windows filesystem hierarchy which theoretically exists for exactly the same purpose. Gnome and KDE, on top of a Unix filesystem hierarchy which is even more obtuse than that of Windows, naturally copy this cruft with with great enthusiasm.
-
Following those examples, its necessary to make two disclaimers.
Firstly, if youve used computers for more than six months, and become dulled to the pain, you may well be objecting to one or another of the examples. Hey!, youre saying. Thats not cruft, its useful! And, no doubt, for you that is true. In human-computer interfaces, as in real life, horrible things often have minor benefits to some people. These people manage to avoid, work around, or blame on user stupidity, the large inconvenience which the cruft imposes on the majority of people.
Secondly, there are some software designers who have waged war against cruft. Word Places Yeah Write word processor abolished the need for saving documents. Microsofts Internet Explorer for Windows, while having many interface flaws, sensibly abolished the Exit menu item. The Acorns RISC OS abolished filepickers. The Mac OS uses file IDs to refer to files, avoiding all the problems I described with moving or renaming. And the ROX Desktop eschews the idea of a Start menu, in favor of using the filesystem itself to categorize programs.
However, for the most part, this effort has been piecemeal and on the fringe. So far, there has not been a mainstream computing platform which has seriously attacked the cruft that graphical interfaces have been dragging around since the early 1980s.
So far.
-
-
When good interfaces go crufty
In Vernor Vinges sci-fi novel A fire upon the deep, he presents the idea of software archeology. Vinges future has software engineers spending large amounts of time digging through layers of decades-old code in a computer system like layers of dirt and rubbish in real-world archeology to find out how, or why, something works.
So far, in 2002, this problem isnt so bad. We call such electronic garbage cruft, and promise to get rid of it someday. But its not really important right now, we tell ourselves, because computers keep getting faster, and we havent quite got to the point where single programs are too large for highly coordinated teams to understand.
But what if cruft makes its way into the human-computer interface? Then you have problems, because human brains arent getting noticably faster. (At least, not in the time period were concerned with here.) So the more cruft there is in an interface, the more difficult it will be to use.
Unfortunately, over the past 20 years, Ive noticed that cruft has been appearing in computer interfaces. And few people are trying to fix it. I see two main reasons for this.
-
Microsoft and Apple dont want to make their users go through any retraining, at all, for fear of losing market share. So rather than make their interfaces less crufty, they concentrate on making everything look pretty.
- Free Software developers have the ability to start from a relatively cruft-free base, but (as a gratuitously broad generalization) they have no imagination whatsoever. So rather than making their interfaces more usable, they concentrate on copying whatever Microsoft and Apple are doing, cruft and all.
Here are a few examples of interface cruft.
-
In the 1970s and early 80s, transferring documents from a computers memory to permanent storage (such as a floppy disk) was slow. It took many seconds, and you had to wait for the transfer to finish before you could continue your work. So, to avoid disrupting typists, software designers made this transfer a manual task. Every few minutes, you would save your work to permanent storage by entering a particular command.
Trouble is, since the earliest days of personal computers, people have been forgetting to do this, because its not natural. They dont have to save when using a pencil, or a pen, or a paintbrush, or a typewriter, so they forget to save when theyre using a computer. So, when something bad happens, theyve often gone too long without saving, and they lose their work.
Fortunately, technology has improved since the 1970s. We have the power, in todays computers, to pick a sensible name for a document, and to save it to a persons desktop as soon as she begins typing, just like a piece of paper in real life. We also have the ability to save changes to that document every couple of minutes (or, perhaps, every paragraph) without any user intervention.
We have the technology. So why do we still make people save each of their documents, at least once, manually? Cruft.
-
The original Macintosh, which introduced graphical interfaces to the general public, could only run one program at a time. If you wanted to use a second program, or even return to the file manager, the first program needed to be unloaded first. To make things worse, launching programs was slow, often taking tens of seconds.
This presented a problem. What if you had one document open in a program, and you closed that document before opening another one? If the program unloaded itself as soon as the first document was closed, the program would need to be loaded again to open the second document, and that would take too long. But if the program didnt unload itself, you couldnt launch any other program.
So, the Macs designers made unloading a program a manual operation. If you wanted to load a second program, or go back to the file manager, you first chose a menu item called Quit to unload the first program. And if you closed all the windows in a program, it didnt unload by itself it stayed running, usually displaying nothing more than a menu bar, just in case you wanted to open another document in the same program.
Trouble is, the Quit command has always been annoying and confusing people, because its exposing an implementation detail the lack of multitasking in the operating system. It annoys people, because occasionally they choose Quit by accident, losing their careful arrangement of windows, documents, toolboxes, and the like with an instantaneity which is totally disproportionate to how difficult it was to open and arrange them all in the first place. And it confuses people, because a program can be running without any windows being open, so while all open windows may belong to the file manager, which is now always running in the background menus and keyboard shortcuts get sent to the invisible program instead, producing unexpected behavior.
Fortunately, technology has improved since 1984. We have the power, in todays computers, to run more than one program at once, and to load programs in less than five seconds.
We have the technology. So why do we still punish people by including Quit or Exit menu items in programs? Cruft.
-
As I said, the original Macintosh could only run one program at a time. If you wanted to use a second program, or even return to the file manager, the first program needed to be unloaded first.
This presented a problem when opening or saving files. The obvious way to open a document is to launch it (or drag it) from the file manager. And the obvious way to save a document in a particular folder is to drag it to that folder in the file manager. But on the Mac, if another program was already running, you couldnt get to the file manager. What to do? What to do?
So, the Macs designers invented something called a file selection dialog, or filepicker a lobotomized file manager, for opening and saving documents when the main file manager wasnt running. If you wanted to open a document, you chose an Open menu item, and navigated your way through the filepicker to the document you wanted. Similarly, if you wanted to save a document, you chose a Save menu item, entered a name for the document, and navigated your way through the filepicker to the folder you wanted.
Trouble is, this interface has always been awkward to use, because its not consistent with the file manager. If youre in the file manager and you want to make a new folder, you do it one way; if youre in a filepicker and you want to make a new folder, you do it another way. In the file manager, opening two folders in separate windows is easy; in a filepicker, it cant be done.
Fortunately, technology has improved since 1984. We have the power, in todays computers, to run more than one program at once, and to run the file manager all the time. We can open documents from the file manager without quitting all other programs first, and we can save copies of documents (if necessary) by dragging them into folders in the file manager.
We have the technology. So why do we still make people use filepickers at all? Cruft.
-
This last example is particularly nasty, because it shows how interface cruft can be piled up, layer upon layer.
-
In Microsofts MS-DOS operating system, the canonical way of identifying a file was by its pathname: the concatenation of the drive name, the hierarchy of directories, and the filename, something like C:\WINDOWS\SYSTEM\CTL3DV2.DLL. If a program wanted to keep track of a file in a menu of recently-opened documents, for example it used the files pathname. For backward compatibility with MS-DOS, all Microsofts later operating systems, right up to Windows XP, do the same thing.
Trouble is, this system causes a plethora of usability problems in Windows, because filenames are used by humans.
-
What if a human renames a document in the file manager, and later on tries to open it from that menu of recently-opened documents? He gets an error message complaining that the file could not be found.
-
What if he makes a shortcut to a file, moves the original file, and then tries to open the shortcut? He gets an error message, as Windows scurries to find a file which looks vaguely similar to the one the shortcut was supposed to be pointing at.
-
What happens if he opens a file in a word processor, then renames it to a more sensible name in the file manager, and then saves it (automatically or otherwise) in the word processor? He gets another copy of the file with the old name, which he didnt want.
-
What happens if a program installs itself in the wrong place, and our fearless human moves it to the right place? If hes lucky, the program will still work but hell get a steady trickle of error messages, the next time he launches each of the shortcuts to that program, and the next time he opens any document associated with the program.
Fortunately, technology has improved since 1981. We have the power, in todays computers, to use filesystems which store a unique identifier for every file, separate from the pathname such as the file ID in the HFS and HFS+ filesystems, or the inode in most filesystems used with Linux and Unix. In these filesystems, shortcuts and other references to particular files can keep track of these unchanging identifiers, rather than the pathname, so none of those errors will ever happen.
We have the technology. So why does Windows still suffer from all these problems? Cruft.
Lest it seem like Im picking on Microsoft, Windows is not the worst offender here. GNU/Linux applications are arguably worse, because they could be avoiding all these problems (by using inodes), but their programmers so far have been too lazy. At least Windows programmers have an excuse.
-
To see how the next bit of cruft follows from the previous one, we need to look at the mechanics of dragging and dropping. On the Macintosh, when you drag a file from one folder to another, what happens is fairly predictable.
- If the source and the destination are on different storage devices, the item will be copied.
- If the source and destination are on the same storage device, the item will be moved.
- If you want the item to be copied rather than moved in the latter case, you hold down the Option key.
Windows has a similar scheme, for most kinds of files. But as Ive just explained, if you move a program in Windows, every shortcut to that program (and perhaps the program itself) will stop working. So as a workaround for that problem, when you drag a program from one place to another in Windows, Windows makes a shortcut to it instead of moving it and lands in the Interface Hall of Shame as a result.
Naturally, this inconsistency makes people rather confused about exactly what will happen when they drag an item from one place to another. So, rather than fixing the root problem which led to the workaround, Microsoft invented a workaround to the workaround. If you drag an item with the right mouse button, when you drop it youll get a menu of possible actions: move, copy, make a shortcut, or cancel. That way, by spending a couple of extra seconds choosing a menu item, you can be sure of what is going to happen. Unfortunately this earns Microsoft another citation in the Interface Hall of Shame for inventing the right-click-drag, perhaps the least intuitive operation ever conceived in interface design. Say it with me: Cruft.
- It gets worse. Dragging a file with the right mouse button does that fancy what-do-you-want-to-do-now-menu thing. But normally, when you click the right mouse button on something, you want a shortcut menu a menu of common actions to perform on that item. But if pressing the right mouse button might mean the user is dragging a file, it might not mean you want a shortcut menu. What to do, what to do?
So, Windows designers made a slight tweak to the way shortcut menus work. Instead of making them open when the right mouse button goes down, they made them open when the right mouse button comes up. That way, they can tell the difference between a right-click-drag (where the mouse moves) and a right-click-I-want-a-shortcut-menu (where it doesnt).
Trouble is, that makes the behavior of shortcut menus so much worse that they end up being pretty useless as an alternative to the main menus.
-
They take nearly twice as long to use, since you need to release the mouse button before you can see the menu, and click and release a second time to select an item.
-
Theyre inconsistent with every other kind of menu in Windows, which opens as soon as you push down on the mouse button.
-
Once youve pushed the right mouse button down on something which has a menu, there is no way you can get rid of the menu without releasing, clicking the other mouse button, and releasing again. This breaks the basic GUI rule that you can cancel out of something youve pushed down on by dragging away from it, and it slows you down still further.
In short, Windows native shortcut menus are so horrible to use that application developers would be best advised to implement their own shortcut menus which can be used with a single click, and avoid the native shortcut menus completely. Once more, with feeling: Cruft.
-
Meanwhile, we still have the problem that programs on Windows cant be moved around after installation, otherwise things are likely to break. Trouble is, this makes it rather difficult for people to find the programs they want. In theory you can find programs by drilling down into the Program Files folder, but theyre arranged rather uselessly (by vendor, rather than by subject) and if you try to rearrange them for quick access, stuff will break.
So, Windows designers invented something called the Start menu, which contained a Programs submenu for providing access to programs. Instead of containing a few frequently-used programs (like Mac OSs Apple menu did, before OS X), this Programs submenu has the weighty responsibility of providing access to all the useful programs present on the computer.
Naturally, the only practical way of doing this is by using multiple levels of submenus thereby breaking Microsofts own guidelines about how deep submenus should be.
And naturally, rearranging items in this menu is a little bit less obvious than moving around the programs themselves. So, in Windows 98 and later, Microsoft lets you drag and drop items in the menu itself thereby again breaking the general guideline about being able to cancel a click action by dragging away from it.
This Programs menu is the ultimate in cruft. It is an entire system for categorizing programs, on top of a Windows filesystem hierarchy which theoretically exists for exactly the same purpose. Gnome and KDE, on top of a Unix filesystem hierarchy which is even more obtuse than that of Windows, naturally copy this cruft with with great enthusiasm.
-
Following those examples, its necessary to make two disclaimers.
Firstly, if youve used computers for more than six months, and become dulled to the pain, you may well be objecting to one or another of the examples. Hey!, youre saying. Thats not cruft, its useful! And, no doubt, for you that is true. In human-computer interfaces, as in real life, horrible things often have minor benefits to some people. These people manage to avoid, work around, or blame on user stupidity, the large inconvenience which the cruft imposes on the majority of people.
Secondly, there are some software designers who have waged war against cruft. Word Places Yeah Write word processor abolished the need for saving documents. Microsofts Internet Explorer for Windows, while having many interface flaws, sensibly abolished the Exit menu item. The Acorns RISC OS abolished filepickers. The Mac OS uses file IDs to refer to files, avoiding all the problems I described with moving or renaming. And the ROX Desktop eschews the idea of a Start menu, in favor of using the filesystem itself to categorize programs.
However, for the most part, this effort has been piecemeal and on the fringe. So far, there has not been a mainstream computing platform which has seriously attacked the cruft that graphical interfaces have been dragging around since the early 1980s.
So far.
-
-
When good interfaces go crufty
In Vernor Vinges sci-fi novel A fire upon the deep, he presents the idea of software archeology. Vinges future has software engineers spending large amounts of time digging through layers of decades-old code in a computer system like layers of dirt and rubbish in real-world archeology to find out how, or why, something works.
So far, in 2002, this problem isnt so bad. We call such electronic garbage cruft, and promise to get rid of it someday. But its not really important right now, we tell ourselves, because computers keep getting faster, and we havent quite got to the point where single programs are too large for highly coordinated teams to understand.
But what if cruft makes its way into the human-computer interface? Then you have problems, because human brains arent getting noticably faster. (At least, not in the time period were concerned with here.) So the more cruft there is in an interface, the more difficult it will be to use.
Unfortunately, over the past 20 years, Ive noticed that cruft has been appearing in computer interfaces. And few people are trying to fix it. I see two main reasons for this.
-
Microsoft and Apple dont want to make their users go through any retraining, at all, for fear of losing market share. So rather than make their interfaces less crufty, they concentrate on making everything look pretty.
- Free Software developers have the ability to start from a relatively cruft-free base, but (as a gratuitously broad generalization) they have no imagination whatsoever. So rather than making their interfaces more usable, they concentrate on copying whatever Microsoft and Apple are doing, cruft and all.
Here are a few examples of interface cruft.
-
In the 1970s and early 80s, transferring documents from a computers memory to permanent storage (such as a floppy disk) was slow. It took many seconds, and you had to wait for the transfer to finish before you could continue your work. So, to avoid disrupting typists, software designers made this transfer a manual task. Every few minutes, you would save your work to permanent storage by entering a particular command.
Trouble is, since the earliest days of personal computers, people have been forgetting to do this, because its not natural. They dont have to save when using a pencil, or a pen, or a paintbrush, or a typewriter, so they forget to save when theyre using a computer. So, when something bad happens, theyve often gone too long without saving, and they lose their work.
Fortunately, technology has improved since the 1970s. We have the power, in todays computers, to pick a sensible name for a document, and to save it to a persons desktop as soon as she begins typing, just like a piece of paper in real life. We also have the ability to save changes to that document every couple of minutes (or, perhaps, every paragraph) without any user intervention.
We have the technology. So why do we still make people save each of their documents, at least once, manually? Cruft.
-
The original Macintosh, which introduced graphical interfaces to the general public, could only run one program at a time. If you wanted to use a second program, or even return to the file manager, the first program needed to be unloaded first. To make things worse, launching programs was slow, often taking tens of seconds.
This presented a problem. What if you had one document open in a program, and you closed that document before opening another one? If the program unloaded itself as soon as the first document was closed, the program would need to be loaded again to open the second document, and that would take too long. But if the program didnt unload itself, you couldnt launch any other program.
So, the Macs designers made unloading a program a manual operation. If you wanted to load a second program, or go back to the file manager, you first chose a menu item called Quit to unload the first program. And if you closed all the windows in a program, it didnt unload by itself it stayed running, usually displaying nothing more than a menu bar, just in case you wanted to open another document in the same program.
Trouble is, the Quit command has always been annoying and confusing people, because its exposing an implementation detail the lack of multitasking in the operating system. It annoys people, because occasionally they choose Quit by accident, losing their careful arrangement of windows, documents, toolboxes, and the like with an instantaneity which is totally disproportionate to how difficult it was to open and arrange them all in the first place. And it confuses people, because a program can be running without any windows being open, so while all open windows may belong to the file manager, which is now always running in the background menus and keyboard shortcuts get sent to the invisible program instead, producing unexpected behavior.
Fortunately, technology has improved since 1984. We have the power, in todays computers, to run more than one program at once, and to load programs in less than five seconds.
We have the technology. So why do we still punish people by including Quit or Exit menu items in programs? Cruft.
-
As I said, the original Macintosh could only run one program at a time. If you wanted to use a second program, or even return to the file manager, the first program needed to be unloaded first.
This presented a problem when opening or saving files. The obvious way to open a document is to launch it (or drag it) from the file manager. And the obvious way to save a document in a particular folder is to drag it to that folder in the file manager. But on the Mac, if another program was already running, you couldnt get to the file manager. What to do? What to do?
So, the Macs designers invented something called a file selection dialog, or filepicker a lobotomized file manager, for opening and saving documents when the main file manager wasnt running. If you wanted to open a document, you chose an Open menu item, and navigated your way through the filepicker to the document you wanted. Similarly, if you wanted to save a document, you chose a Save menu item, entered a name for the document, and navigated your way through the filepicker to the folder you wanted.
Trouble is, this interface has always been awkward to use, because its not consistent with the file manager. If youre in the file manager and you want to make a new folder, you do it one way; if youre in a filepicker and you want to make a new folder, you do it another way. In the file manager, opening two folders in separate windows is easy; in a filepicker, it cant be done.
Fortunately, technology has improved since 1984. We have the power, in todays computers, to run more than one program at once, and to run the file manager all the time. We can open documents from the file manager without quitting all other programs first, and we can save copies of documents (if necessary) by dragging them into folders in the file manager.
We have the technology. So why do we still make people use filepickers at all? Cruft.
-
This last example is particularly nasty, because it shows how interface cruft can be piled up, layer upon layer.
-
In Microsofts MS-DOS operating system, the canonical way of identifying a file was by its pathname: the concatenation of the drive name, the hierarchy of directories, and the filename, something like C:\WINDOWS\SYSTEM\CTL3DV2.DLL. If a program wanted to keep track of a file in a menu of recently-opened documents, for example it used the files pathname. For backward compatibility with MS-DOS, all Microsofts later operating systems, right up to Windows XP, do the same thing.
Trouble is, this system causes a plethora of usability problems in Windows, because filenames are used by humans.
-
What if a human renames a document in the file manager, and later on tries to open it from that menu of recently-opened documents? He gets an error message complaining that the file could not be found.
-
What if he makes a shortcut to a file, moves the original file, and then tries to open the shortcut? He gets an error message, as Windows scurries to find a file which looks vaguely similar to the one the shortcut was supposed to be pointing at.
-
What happens if he opens a file in a word processor, then renames it to a more sensible name in the file manager, and then saves it (automatically or otherwise) in the word processor? He gets another copy of the file with the old name, which he didnt want.
-
What happens if a program installs itself in the wrong place, and our fearless human moves it to the right place? If hes lucky, the program will still work but hell get a steady trickle of error messages, the next time he launches each of the shortcuts to that program, and the next time he opens any document associated with the program.
Fortunately, technology has improved since 1981. We have the power, in todays computers, to use filesystems which store a unique identifier for every file, separate from the pathname such as the file ID in the HFS and HFS+ filesystems, or the inode in most filesystems used with Linux and Unix. In these filesystems, shortcuts and other references to particular files can keep track of these unchanging identifiers, rather than the pathname, so none of those errors will ever happen.
We have the technology. So why does Windows still suffer from all these problems? Cruft.
Lest it seem like Im picking on Microsoft, Windows is not the worst offender here. GNU/Linux applications are arguably worse, because they could be avoiding all these problems (by using inodes), but their programmers so far have been too lazy. At least Windows programmers have an excuse.
-
To see how the next bit of cruft follows from the previous one, we need to look at the mechanics of dragging and dropping. On the Macintosh, when you drag a file from one folder to another, what happens is fairly predictable.
- If the source and the destination are on different storage devices, the item will be copied.
- If the source and destination are on the same storage device, the item will be moved.
- If you want the item to be copied rather than moved in the latter case, you hold down the Option key.
Windows has a similar scheme, for most kinds of files. But as Ive just explained, if you move a program in Windows, every shortcut to that program (and perhaps the program itself) will stop working. So as a workaround for that problem, when you drag a program from one place to another in Windows, Windows makes a shortcut to it instead of moving it and lands in the Interface Hall of Shame as a result.
Naturally, this inconsistency makes people rather confused about exactly what will happen when they drag an item from one place to another. So, rather than fixing the root problem which led to the workaround, Microsoft invented a workaround to the workaround. If you drag an item with the right mouse button, when you drop it youll get a menu of possible actions: move, copy, make a shortcut, or cancel. That way, by spending a couple of extra seconds choosing a menu item, you can be sure of what is going to happen. Unfortunately this earns Microsoft another citation in the Interface Hall of Shame for inventing the right-click-drag, perhaps the least intuitive operation ever conceived in interface design. Say it with me: Cruft.
- It gets worse. Dragging a file with the right mouse button does that fancy what-do-you-want-to-do-now-menu thing. But normally, when you click the right mouse button on something, you want a shortcut menu a menu of common actions to perform on that item. But if pressing the right mouse button might mean the user is dragging a file, it might not mean you want a shortcut menu. What to do, what to do?
So, Windows designers made a slight tweak to the way shortcut menus work. Instead of making them open when the right mouse button goes down, they made them open when the right mouse button comes up. That way, they can tell the difference between a right-click-drag (where the mouse moves) and a right-click-I-want-a-shortcut-menu (where it doesnt).
Trouble is, that makes the behavior of shortcut menus so much worse that they end up being pretty useless as an alternative to the main menus.
-
They take nearly twice as long to use, since you need to release the mouse button before you can see the menu, and click and release a second time to select an item.
-
Theyre inconsistent with every other kind of menu in Windows, which opens as soon as you push down on the mouse button.
-
Once youve pushed the right mouse button down on something which has a menu, there is no way you can get rid of the menu without releasing, clicking the other mouse button, and releasing again. This breaks the basic GUI rule that you can cancel out of something youve pushed down on by dragging away from it, and it slows you down still further.
In short, Windows native shortcut menus are so horrible to use that application developers would be best advised to implement their own shortcut menus which can be used with a single click, and avoid the native shortcut menus completely. Once more, with feeling: Cruft.
-
Meanwhile, we still have the problem that programs on Windows cant be moved around after installation, otherwise things are likely to break. Trouble is, this makes it rather difficult for people to find the programs they want. In theory you can find programs by drilling down into the Program Files folder, but theyre arranged rather uselessly (by vendor, rather than by subject) and if you try to rearrange them for quick access, stuff will break.
So, Windows designers invented something called the Start menu, which contained a Programs submenu for providing access to programs. Instead of containing a few frequently-used programs (like Mac OSs Apple menu did, before OS X), this Programs submenu has the weighty responsibility of providing access to all the useful programs present on the computer.
Naturally, the only practical way of doing this is by using multiple levels of submenus thereby breaking Microsofts own guidelines about how deep submenus should be.
And naturally, rearranging items in this menu is a little bit less obvious than moving around the programs themselves. So, in Windows 98 and later, Microsoft lets you drag and drop items in the menu itself thereby again breaking the general guideline about being able to cancel a click action by dragging away from it.
This Programs menu is the ultimate in cruft. It is an entire system for categorizing programs, on top of a Windows filesystem hierarchy which theoretically exists for exactly the same purpose. Gnome and KDE, on top of a Unix filesystem hierarchy which is even more obtuse than that of Windows, naturally copy this cruft with with great enthusiasm.
-
Following those examples, its necessary to make two disclaimers.
Firstly, if youve used computers for more than six months, and become dulled to the pain, you may well be objecting to one or another of the examples. Hey!, youre saying. Thats not cruft, its useful! And, no doubt, for you that is true. In human-computer interfaces, as in real life, horrible things often have minor benefits to some people. These people manage to avoid, work around, or blame on user stupidity, the large inconvenience which the cruft imposes on the majority of people.
Secondly, there are some software designers who have waged war against cruft. Word Places Yeah Write word processor abolished the need for saving documents. Microsofts Internet Explorer for Windows, while having many interface flaws, sensibly abolished the Exit menu item. The Acorns RISC OS abolished filepickers. The Mac OS uses file IDs to refer to files, avoiding all the problems I described with moving or renaming. And the ROX Desktop eschews the idea of a Start menu, in favor of using the filesystem itself to categorize programs.
However, for the most part, this effort has been piecemeal and on the fringe. So far, there has not been a mainstream computing platform which has seriously attacked the cruft that graphical interfaces have been dragging around since the early 1980s.
So far.
-
-
Why Free Software UI tends to suck
Matthew Thomas (who does a lot of UI stuff for Mozilla) has written two really good articles that largely answer your question)
Why free software usability tends to suck
Why free software usability tends to suck even more
To address a few things mentioned in your post:
Wouldn't it be nice if developers in the free software community read things like this and took the criticisms to heart as seriously as if someone had knocked them for not using a free license? That is, the community has some peer pressure for acceptable software: using a free software license
Because Free Software is currently Freedom As A Programmer Envisions It. As the Free Software concept was nutured by Richard M. Stallman, a programmer, this is not surprising. Freedom As An End User Envisions In (also known as The Freedom To Get Stuff Done) has never really been considered by the Free Software community to be a Valid Freedom.
Funny you should mention, I'm currently drawing up a public license that enforces usability and goes after the people who've kept linux so very unusable.
The openness of the community and this system of taboos have arguable produced better software and certainly gotten us closer to a free software world.
I commonly hear this phrase "We've gotten so far on the server, it's only a matter of time before get to the desktop." Unfortunately, this statement makes the assumption that the same abilities, values, and methodologies that lead to success on the server do the same for the desktop. Linux has been doing so well on the server because people in the linux community were really good at doing server stuff. Unfortunately these people were the most absolute worst people you could have ever sent to do desktop stuff. 30 years of anti-newbie RTFM baggage, command-line junkihood, and having a userbase that entirely consists of programmers and sysadmins does not behoove the creation of high quality user interfaces. In contrast, the mac developer community has for 17 years put very strong values on consistancy and non-geeks being able to use the software. That's why they've been able to succeed on the unix desktop in 3 years where linux has failed for the last 7-8.
Could the same pressure potentially lead free software application developers to enforce good GUI design habits as well as good programming habits?
It's already been tried, and has been tried by people with very strong usability/HCI backgrounds. The response they generally get from programmers is "stop whining. If you want to fix something, you should learn how to code". Or sometimes you'll hear "Don't complain about what you get for free". Or "That's what you want, that's not what I want. That's just your opinion."
Or if a usability person criticizes a UI in front of a kernel hacker, the kernel hacker might say "I can't believe that people actually get paid to criticize the work of others" (true story).
When users give feedback like the above that says "hey, your program may be cool, but you aren't following good UI design principles" and this criticism carrys weight similar to telling someone that they should use a free software license
First of all, you have to be pro-active about creating good user interfaces. Users generally do not actively complain about specific application interfaces unless the interfaces are truly, truly, horrible. They will usually passively complain, trying to find execuses to use the program less, or unconsciously creating some workaround, or saying "I hate computers" around the watercooler. You won't get active feedback very often from users, so you need to actively watch them using your UI. So often what makes a UI unbearable is a bunch of little, annoying things that add up to one cumulative bad user experience. To catch those little things, you really have to watch the person using the interfaces. You should also do research ahead of time to learn (before you design the UI) to learn what the most common annoyances are. Unfortunately, most Free Software UI's are cranked out and *then* people try to do active damage control. Much like the world of commercial software, actually.
Another problem with your suggestion is that most of the current userbase for Free Software/OSS are the geeks who've been so clueless about good UI (and some of whom who think that HCI is a load of bull). These people adapt very, very well to badly designed UI's, often priding themselves on doing just that. They often don't take notice of the little, annoying things and are often not confused by ambiguous widget layouts or jargon-laden wording. When you consider these facts, it's not surpising why StarOffice gets such glowing reviews from the geek community. Assuming you manage to find a geek who gives you feedback about the UI, chances are he's not going to a suggestion that jives with all of what we've learned about HCI in the last 20 years. Just because you get feedback doesn't necessarily mean its usable feedback.
Hope I've answered a few of your questions. -
Why Free Software UI tends to suck
Matthew Thomas (who does a lot of UI stuff for Mozilla) has written two really good articles that largely answer your question)
Why free software usability tends to suck
Why free software usability tends to suck even more
To address a few things mentioned in your post:
Wouldn't it be nice if developers in the free software community read things like this and took the criticisms to heart as seriously as if someone had knocked them for not using a free license? That is, the community has some peer pressure for acceptable software: using a free software license
Because Free Software is currently Freedom As A Programmer Envisions It. As the Free Software concept was nutured by Richard M. Stallman, a programmer, this is not surprising. Freedom As An End User Envisions In (also known as The Freedom To Get Stuff Done) has never really been considered by the Free Software community to be a Valid Freedom.
Funny you should mention, I'm currently drawing up a public license that enforces usability and goes after the people who've kept linux so very unusable.
The openness of the community and this system of taboos have arguable produced better software and certainly gotten us closer to a free software world.
I commonly hear this phrase "We've gotten so far on the server, it's only a matter of time before get to the desktop." Unfortunately, this statement makes the assumption that the same abilities, values, and methodologies that lead to success on the server do the same for the desktop. Linux has been doing so well on the server because people in the linux community were really good at doing server stuff. Unfortunately these people were the most absolute worst people you could have ever sent to do desktop stuff. 30 years of anti-newbie RTFM baggage, command-line junkihood, and having a userbase that entirely consists of programmers and sysadmins does not behoove the creation of high quality user interfaces. In contrast, the mac developer community has for 17 years put very strong values on consistancy and non-geeks being able to use the software. That's why they've been able to succeed on the unix desktop in 3 years where linux has failed for the last 7-8.
Could the same pressure potentially lead free software application developers to enforce good GUI design habits as well as good programming habits?
It's already been tried, and has been tried by people with very strong usability/HCI backgrounds. The response they generally get from programmers is "stop whining. If you want to fix something, you should learn how to code". Or sometimes you'll hear "Don't complain about what you get for free". Or "That's what you want, that's not what I want. That's just your opinion."
Or if a usability person criticizes a UI in front of a kernel hacker, the kernel hacker might say "I can't believe that people actually get paid to criticize the work of others" (true story).
When users give feedback like the above that says "hey, your program may be cool, but you aren't following good UI design principles" and this criticism carrys weight similar to telling someone that they should use a free software license
First of all, you have to be pro-active about creating good user interfaces. Users generally do not actively complain about specific application interfaces unless the interfaces are truly, truly, horrible. They will usually passively complain, trying to find execuses to use the program less, or unconsciously creating some workaround, or saying "I hate computers" around the watercooler. You won't get active feedback very often from users, so you need to actively watch them using your UI. So often what makes a UI unbearable is a bunch of little, annoying things that add up to one cumulative bad user experience. To catch those little things, you really have to watch the person using the interfaces. You should also do research ahead of time to learn (before you design the UI) to learn what the most common annoyances are. Unfortunately, most Free Software UI's are cranked out and *then* people try to do active damage control. Much like the world of commercial software, actually.
Another problem with your suggestion is that most of the current userbase for Free Software/OSS are the geeks who've been so clueless about good UI (and some of whom who think that HCI is a load of bull). These people adapt very, very well to badly designed UI's, often priding themselves on doing just that. They often don't take notice of the little, annoying things and are often not confused by ambiguous widget layouts or jargon-laden wording. When you consider these facts, it's not surpising why StarOffice gets such glowing reviews from the geek community. Assuming you manage to find a geek who gives you feedback about the UI, chances are he's not going to a suggestion that jives with all of what we've learned about HCI in the last 20 years. Just because you get feedback doesn't necessarily mean its usable feedback.
Hope I've answered a few of your questions. -
Re:Type ahead find
but the mozilla people have decided that software, the most malleable stuff we can create, should not be adaptable to the user
Not to start a flame war, but there are discussions all over about preferences for this and that, witha hard effort to lessen the amount of thingies stuck in the preferences panel. There's definitely a philophy in some folks that "less is more", pick one way and live with it. Matthew Thomas seems to be an influential GUI dude at Mozilla, you can read some of the debates in his weblog. -
Re:I'm wearing a hat!
Richard Stallman wants GNOME and KDE to share theme definitions, so that a single theme will work both for apps using GTK+ and those using Qt.
I admire the good intentions here - on the surface, it seems like a good idea. But that's exactly the problem: it's consistency on the surface, and nowhere else. Without the visual distinction between GTK+ and Qt, there would no longer be any hint to the user that the two toolkits behave differently. The clipboard works differently, the controls work in subtly different ways, and the layout of controls is different in dialogs and windows.
If those disparities were resolved, then making the toolkits look the same would be a good idea - but then, what point would there be in having multiple toolkits in the first place? Tada, unified desktop environment. Heh. (You can see quite a few of those posting on Slashdot wishing for this outcome.)
If you're aiming to unify GNOME and KDE, the themes are the last thing that should be combined (after everything else is consistent), not the first thing. And if you're not aiming to unify them, making them look the same would make them harder to use, not easier.
- Source
---
Me? I think that MPT is entirely right, it will be confusing, but the complaints arising from that are a good way to get the toolkits to play along nicely, to iron out the differences. I don't mean that there shouldn't be any differences, or any innovation, but there's a lot of ground where there are pointless differences in the toolkits (takes on click some of the tiem, and two clicks other times).
It's about time.
-
Re:Well...
You know it's bad when the mozilla contributors think mozilla isn't that useable. mpt seems to have a ton of valid complaints...
-
Re:The interface *is* a problemI'm sorry, but there's a reason why there are multiple Mozdev projects to build browsers without Mozilla's cumbersome interface, why Dave Hyatt [mozillazine.org] and mpt [phrasewise.com] have savaged the current interface.
Here is his list of usability problems with Mozilla From what I recall, the main criticisms of MPT boiled down to "I don't like it". For instance, he makes a big deal of the fact that the Home link is on the Bookmarks toolbar, rather than the main toolbar. This immediately leads of course to flamewars between people who believe it "belongs with the reload button" or people who thinks it makes more sense to have it with your other links. This is hardly a usability issue (remember neither Hyatt or MPT have any usability training at all - no disrespect to them, but it's true). It's just personal preference.
He talks about speed as well - that's hardly as much of a problem as it was. Especially on Windows, Mozilla feels just as snappy as IE (no, really, and I have a PIII/500).
Text editing bugs : these are bugs, not usability problems.
Message Display: he doesn't like the fact that headers are in their own section. Personally I don't mind this at all, but clearly he feels otherwise.
The list goes on and on. Some of his points are good. Many are simply pet peeves on his part. This is often the problem with "usability", it's a very vague concept and the science of usability is still in its infancy. Therefore a "usability" review often degenerates into a case of the UI reviewer picking on things they don't like. For instance, the "I don't think this feature is useful, so it's preferences bloat". There is a grain of truth to this sometimes, but often it just ends up pissing off the people who worked on something only to be told it's "unusable" without any scientific backing for this assertion at all. I've had some dialog boxes of mine put through an UI review. Some of the points made were good, but some were for instance "There shouldn't be a horizontal line there, it looks unprofessional" which is not usability review, it's just irritating.
I have yet to find any major problems with the Mozilla UI - where I define major as being, I notice a big usability problem and get annoyed because of it. Saying, I can't drag toolbars around is valid, but that'd merely a feature request rather than a statement about the underlying design of the product.
Oh and finally, for those who like to bash XUL, remember one thing: if it wasn't for that, Mozilla probably wouldn't be cross platform, and as a result, would only exist on Windows.
-
The interface *is* a problem
The major detractor was the user interface, since it didn't feel like a Windows application. This was probably due to a poor understanding by the authors of XUL.
Uh, why can't the problem just be that Mozilla's user interface is not very good? I'm sorry, but there's a reason why there are multiple Mozdev projects to build browsers without Mozilla's cumbersome interface, why Dave Hyatt and mpt have savaged the current interface.
Why can't some people accept the fact that Mozilla's UI needs a lot of work?
-
Mozilla is not ready for 1.0
In my opinion, Mozilla is not ready for distribution. Not for desktop users, or AOL converts, anyway. There are so many important usability issues with Mozilla that it will just confuse the end users, causing them to call up Technical Support for AOL asking them how to switch back to IE. Which, isn't good. Mozilla needs to make a good impression on it's new users, which I'm pretty sure won't work with the 1.0 release. Maybe 2.0.
The main features that you can use to make IE users drool are the Anti-Pop up feature, and the tabbed interface feature. Sucks that the Anti-Pop up feature is hidden within the horriable UI of the Mozilla Prefrences (which, in my opinion, needs a complete revamp - Jakob Nielsen style).
Everyone keeps glorifying the fact that it will be used on all AOL users soon. But, I don't understand this. I haven't really used AOL for a long time, maybe it's changed... but, before you couldn't tell what browser you were using. It's just built into the system, right? How will they even know if they're using IE, Opera, Netscape or Mozilla? Does it matter to them? And if it has changed, and if the usability problems are so bad... they will probably do what I did, and minimize the AOL portal and power up IE.
If I were AOL, I'd ask Mozilla to take the Usability issues into consideration before replacing IE. Or perhaps construct some wizard to change from the IE version to Mozilla. -
Mozilla is not ready for 1.0
In my opinion, Mozilla is not ready for distribution. Not for desktop users, or AOL converts, anyway. There are so many important usability issues with Mozilla that it will just confuse the end users, causing them to call up Technical Support for AOL asking them how to switch back to IE. Which, isn't good. Mozilla needs to make a good impression on it's new users, which I'm pretty sure won't work with the 1.0 release. Maybe 2.0.
The main features that you can use to make IE users drool are the Anti-Pop up feature, and the tabbed interface feature. Sucks that the Anti-Pop up feature is hidden within the horriable UI of the Mozilla Prefrences (which, in my opinion, needs a complete revamp - Jakob Nielsen style).
Everyone keeps glorifying the fact that it will be used on all AOL users soon. But, I don't understand this. I haven't really used AOL for a long time, maybe it's changed... but, before you couldn't tell what browser you were using. It's just built into the system, right? How will they even know if they're using IE, Opera, Netscape or Mozilla? Does it matter to them? And if it has changed, and if the usability problems are so bad... they will probably do what I did, and minimize the AOL portal and power up IE.
If I were AOL, I'd ask Mozilla to take the Usability issues into consideration before replacing IE. Or perhaps construct some wizard to change from the IE version to Mozilla. -
Answering one's own questions is lame.
Despite a general disdain for replying to my own post, here's a nifty little list of Why Free Software Usability Tends to Suck that I just noticed. In my experience, numbers 2 and 5, at least, are true.
Disclaimer: I've found the Apache interface on Windows to be far less irritating than IIS. -
Gnome vs. Usability
On OsNews, I found a link to this really great weblog entry written by someone who does some usability stuff for Mozilla. He does a very good job of describing the current usability situation of the Free Software, and why this current situation sucks currently sucks.
-
Some interesting weblogs by mozilla developers
Check out mpt and hyatt's viewpoints on current and future trends in mozilla development. Some very interesting views there, I think Dave Hyatt's call for hundreds of different browsers to suit different people should be a call to action! Look at how well galeon has done - as long as they all use the gecko engine, we'll all be richer for having different browsers for different occasions.
-
Re: Get out and help mozilla yourself!What a great way to pump up the votes for your favorite bugs or RFEs! I wish I'd thought of it first. Well, here are some of my favorites:
Browser
- 17048 [RFE] Roaming access - keep bookmarks/cookies/history/etc in a central repository
- 17917 [RFE] Add "smart" roaming bookmarks (etc.) with sync capabilities
- 18043 [RFE] Allow bookmarks to reside remotely on an arbitrary user-defined host
- 18808 [RFE] New windows/tabs should inherit current page, back button/go menu history
- 41888 [RFE] Quickfile: 'File' bookmarks to cascading submenus, to file in folders (on the fly)
- 57805 front end for remapping keyboard shortcuts (user-defined keys)
- 78072 Mozilla should re-read bookmarks.html if it has been changed by another process
- 102130 RFE: Ability to "snapshot" all TABs in a window as bookmark [bookmark groups]
- 103843 New windows created by javascript and html should appear as tabs
- 126685 Mozilla should have a Full-screen mode (all platforms)
MailNews- 22687 [RFE] PGP Plugin
Unfortunately, voting won't get stuff done any faster. Most of the moz community is pretty aware of the feature requests. A lot of time is being chewed up with stability, performance and bug fix work, as well as sorting and triaging bugs.
Hit the link in my sig, and find out how you can do more than just vote, by helping with QA, working in the bug database, tweaking the front end code (mostly scripts - fairly easy) and hacking the back end code.
While I'm at it, I hope mpt won't hate me for mentioning his The top ten usability problems in Mozilla. Don't get me wrong, I love moz, but that list is a great summary of some important work left to be done (thought it's a bit out of date - there is now a fullscreen on win32, and there have been a lot of textedit bug fixes).
Christopher - 17048 [RFE] Roaming access - keep bookmarks/cookies/history/etc in a central repository