GUIs for Everyone
An anonymous submitter writes: "A former Microsoft and Creative Labs interface designer has an interesting diatribe on the approach of Linux GUIs on the desktop. Thomas Krul has three Microsoft patents for human factors research into digital interfaces and graphic software functionality. Probably most known for the interface work he had done on Softimage DS and its web site. Though not a technical read, it does provide an interesting note on the approach for Linux on the desktop." And headless_ringmaster notes that Jef Raskin, the guy who designed the first Macintosh and author of The Humane Interface, has a SourceForge project putting his ideas into action.
It seems to me that the GUI's available (including KDE) favor substance over style. To make significant inroads to the desktop market, that needs to change. People love flashy things!
Curb CO2 emissions: Kill yourself today!
I don't put a lot of stock into articles like these because the way I use my computer is so vastly different from others that most people couldn't even sit down and use my computer if they wanted to.
No, that's not "bragging" or me feeling "31337". It's just a fact that over the period of eight years of using UNIX, I've gotten things reduced to the minimum amount of stuff I need with the exact customizations I want.
My desktop has nothing but an xclock (yes, the real xclock in digital mode). My Emacs has no toolbars or scrollbars. All fvwm does for me is decorate my windows and give me a root menu. zsh is finely tuned for my daily tasks with all kinds of aliases.
And that's the thing... UNIX has always given me the capabilities to make my user interface work exactly like I want. This is something most other OSes just haven't given me. If you use Windows, you get a one-size-fits-all interface that assumes you do a particular set of common tasks. For many people, that's exactly what they want, because they do very similar tasks. But for me, I spend my days using a large number of xterms, Emacs, and Mozilla. I need nothing else, I want nothing else. Just give me screen real estate, UNIX, and I'll customize it to my precise needs.
I'd be great if Windows would give you those kinds of capabilities. I find myself frustrated every time I use it. Mostly because it's not what I'm used to, but partially because I can't change the way it works when I disagree with what the human-computer interaction, GUI-gurus have dictated everyone needs.
To make significant inroads into the desktop market, we need to learn how to make it so substance and style don't conflict, so we can have *both* at the same time.
The living have better things to do than to continue hating the dead.
Oh my god, Creative Labs produce software with some of the worst interfaces i've ever seen!
no sig.
"It's all about Pleasure."
"I used to derive pleasure when using my Apple, Amiga and sgi because they had a unique personality through various touches and tools that made the interface more cognicent of my existence. Windows completely lacks that interface. It's dumb and arrogant. It's heartless and ultimately disposable."
I don't know about other Linux users, but I do get pleasure in having a desktop with several windows that can all be doing something. I find typing enjoyable and flexible. I can write small scripts to automate some tasks or make some jobs more efficient. I like grep. Compare this to the mouse. The mouse is boring, and very one-dimensional. Without the OS, or a software package, the mouse is pretty useless. That is why there are so many menus (right-click) associated with the mouse. Typing can be melodic, but that click-click-click of the mouse about drives me nuts.
I think what the author is missing is that he thinks the user interface needs to be a GUI. No, that is what Windows offered, and they have pretty much taken it as far as it can go. I am not a Mac person, but I am guessing that the GUI there has gone about as far as it can go too. It's about going back to the basics, back to the keyboard.
Unless of course, someone can figure out a 3D UI like they have in the movies. But that always seems REALLY annoying.
My beliefs do not require that you agree with them.
I think the biggest failing behind Windows (and by implication the Mac that it so blatently stole from) was that it hid the Command Line Interface (or shell if you prefer)
GUIs are well-suited for simple tasks, and are good for the important-task-infrequently-used items, but for items of moderate complexity, nothing beats dropping into a shell.
But by hiding the shell (and making it clunky, as per Windows and DOS) or by removing it entirely (Mac) there is now a huge class of computer users who expect *everything* on the computer to be availible via GUI widgets. The concept of communicating with the computer via a type of language is completely and utterly foreign to them, and is viewed with fear and distrust.
But to ignore the shell is to ignore the greater part of the power of the machine!
It's like all the books in the world were suddenly converted into comic books, and all literature was abandoned. Not that there's anything wrong with a comic book, but they don't deal well with Shakespere or Gibbon.
Celebrate the shell! Bring back the CLI!
DG
Want to learn about race cars? Read my Book
If you want to make progress in this area, the way to do it is to set up a proper human interface evaluation. You need a quiet room, a camcorder or two, a Wal-Mart Linux box in its carton, and a half dozen or so people representative of the customer population. You put them in the room, start the camcorders, and give them a list of tasks, like "Unpack and set up the machine, connect to the Internet, compose an E-mail, and mail it to this address".
When you play back the tapes, you log everything that slowed the users down or, worse, stopped them. Then you make your developers fix all those problems. Repeat until the initial user experience is comparable to that of a new game console user.
Apple came up with what I believe to be the best human-computer interface idea in a long time during the late mid-90s. It was called OpenDoc, and the idea is that what matters to people using a computer is the data, rather than the applications. A document was a collection of elements of different types, and there were tools for editing different types of data.
For example, you might be putting together a presentation with some textual information, some graphical images, a chart and some sound clips. When you click on the text, your menus and commands change to those of the text tool you've chosen. When you click on a chart, your menus and commands change to those of the chart tool you've chosen. Word would be the equivalent of a text tool that does outlining and such, combined with some other small tools that work with graphics and such. Say you didn't like the graphics tool that came bundled with Word? No sweat, just tell the computer to use a different one instead.
This would have maximized competition, as well as making computers much more sensible, in my opinion. It got killed, and I'm not sure why, but I'd sure like to see it get revived.
-- Two men say they're Jesus. One of them must be wrong. - Dire Straits
The business and educational markets - where no one except the IT schlep really worries about setting up hardware and installing drivers - is more important and more dynamic than the home "where's the ANY key" market, and will lead it. (Besides, most home users don't get gray boxes, they get hardware support from a name-brand vendor like Dell). A lot of computer hobbyists - yes, that's you - make a mistake about extrapolating their own relationships with technology onto everyone else.
...it's with the input devices. As long as we are still using mice as the primary input devices for our GUIs, we're going to be stuck with the usual descriptive buttons.
Not that buttons are a bad thing, does anyone here want to dial a phone number using a rotary dialer?
How about inputting your account # by lining up numbers a'la a bicycle lock mechanism?
There are only so many ways you can create a GUI as long as the user has to point at the screen and click on something.
new ideas for input devices:
How about gloves that allow you to manipulate the desktop? Want a file? Open up the drawer and get the file. Want to read it? Hold it up as if you were reading it. Yeah, yeah I know..old 80's movie cliche about how computers will work in the future.
Maybe the future of the GUI is that it isn't tied to a central information store. I can already enter my address book into my Palm Pilot and interact with that. If I want to watch a movie I have a TV. If I want to listen to music I have a stereo.
Maybe the role of the computer desktop should change from "tool" to "information storage and coordination". If I want to watch a movie, rather than opening up Windows media player or Quicktime, I turn on my TV, it connects to my computer and the computer plays the movie through my TV. Same with music.
Maybe the future of the desktop is extinction?
"For a successful technology, honesty must take precedence over public relations for nature cannot be fooled." -Feynman
Sorry, I don't mean to be mean or anything, but you are the exact reason why this approach should not be taken for the mass market. But I agree with you, for my own preferences.
But here is the deal - the mass market needs to be the same, or very similar. Think about TVs, VCRs, etc. They all have the same basic functions. On, off, channel up, channel down, vol up, vol down, play, pause, stop, fwd, rwd, etc. Everyone needs to have similar interfaces. Can you imagine being on the support line of a company that allowed you to configure the interface however you wanted it? Nightmare. It is a nightmare now, when all the interfaces are the same, but at least there is a common starting point. (Go to Start->Settings->...)
Most people don't want to configure that stuff, they just want something that works. I am stepping out of my techie shoes here, because MOST computer users don't care about all that crap. They don't mind that Microsoft makes all the decisions about this or that - as long as it works. I like Linux because it gives me the choice of what I want to use. I like trying out Mozilla, Opera, Konqueror, etc. My family doesn't understand why they would want to use anything other than what they are used to using. I recently got them off of Netscape 4.72 and put them on Opera. I still field phone calls and emails about various things, and get the inevitable "It didn't used to do that".
Microsoft knows what the average shmoe wants, they want things handed to them. They want to be spoon fed because they don't understand these scary computer thingys.
But I think that time could be changing. I have been playing with computers since high school back in the early 80's. I like computers. Kids growing up with computers are taking to them. The time is going to pass where people are scared of them, just like the fear of electricity, telephone, and automobiles passed. The new generation of computer users are going to be the ones who are not aware that computers didn't even exist at some point in time. (just like it is hard for me to imagine a time when telephones or cars didn't exist). They are going to be the ones who decide what direction the personal computer goes. They are the ones who are going to be saying "I remember my first computer, a Pentium 4 with 512MB of memory" instead of "back when I was growing up, we didn't have computers".
But until that time, whatever appeals to the unwashed masses will rule the desktop.
My beliefs do not require that you agree with them.
This would have maximized competition, as well as making computers much more sensible, in my opinion. It got killed, and I'm not sure why, but I'd sure like to see it get revived.
I did a lot of research on OpenDoc around the time it was taking off, and worked closely with one of the companies that was doing tons of development for it. They bet the farm on OpenDoc and lost big when it tanked.
For those who don't remember it, the whole affair was based on a couple of core concepts:
(1) Big, monolithic applications suck. They never provide the perfect set of features for a given user, they're overkill for everyone, and they tilt the market in favor of huge companies with massive feature lists, punishing smaller companies that make focused products.
(2) Users don't care about applications: they care about documents and tasks. As long as the user's "favorite" tool works and lets them manipulate the same data as any other tool, the user will be happy.
(3) Creating solutions out of many tiny components instead of monolithic applications will result in a larger, richer software market.
Although it all looks good on paper, it didn't play out. In my opinion, it failed for the following reasons:
(1) may be true, but tracking down two or three dozen text manipulation components to build your 'pefect word processor' isn't much better than biting the bullet and buying MS Word. In fact, most Opendoc demos were really monolithic apps with a few custom components 'plugged in' to provide simple image editing, or graphing. It was the only way to provide a workable UI for users in the soup of 'universal data.' At that point, the 'revolutionary paradigm' is nothing more than a meta plug-in format.
(2) Users may care about tasks and documents more than applications. This point is actually the best one, but Opendoc's soup of "container apps," "editor components" and "read-only components" for distribution made building that 'perfect mix of features' more difficult for a user than just buying a monolithic app. Want to send a document to a friend? Unless they have the very same mix of components, you'll need to imbed them in the document. Watch that letter to grandma swell to a meg or so...
(3) Building software out of discrete parts was supposed to make everything cheaper for uesrs, and provide more opportunities for developers. Someone has to pay, though. Even if a user only has to pay $15 or $20 for each component of his perfect word processing solution, the aggregate cost is likely to be higher than a monolithic solution. Apple talked about companies selling 'pre-packaged' collections of OpenDoc parts as readymade solutions and making a profit on the integration work, but this is no better, in the long run, than monolithic apps with hooks for other programs to integrate with.
In addition, it would require complete re-writes of existing monolithic applications with no benefit to the companies save additional competition. Since it was a Mac-only technology, it would have made porting software nigh impossible as well.
Mind you, I never actually DEVELOPED OpenDoc software. I used OpenDoc software o nmy own maching for almost six months, and I spent quite a bit of time talking to developers who were willing to bet the farm on the idea. I'm still sad that Apple didn't succeed -- the problems they wanted to solve wree real ones, but the solution died under its own weight. There was no real value proposition for end users or software companies.
Apple eventually realized this, and axed it.
--the verb
It involves a keyboard and a piece of paper.
I'm being serious.
Want to write something? Pull out a Bluetooth keyboard, and an 8.5 x 11 touch-screen OLED, what I like to call "Bluetooth paper". Start typing on the Bluetooth keyboard, and watch your text appear right on the paper, with quality as good as a laser printer. Or you can dictate it. Or you can handwrite it. It's completely up to you.
Want to check your email? Press a key sequence, or say "email", or write "email", and your email is shown right on the paper. Flip the paper over to see the second page, flip it over again in the same direction to see the next page, flip it in the other direction to go back.
Want to print something? Put the paper near a printer, press a button on the printer, and whatever's on the Bluetooth paper will be printed out on the real paper; a permanent copy.
Want to surf the web? Type in, or handwrite, the URL; the page will load up, viewable on the paper. If you've got another sheet, it can split itself, showing content on one page, and navigation on the other. Touch a link, and it opens up.
Now, tell me you wouldn't want to use an interface like that. The OLEDs and keyboards (of course) are in production today, even if the paper's a bit expensive. All you'd need is a device that would intermediate, that would accept input from whatever source and broadcast the raw pixel data back to the paper. It could be in a hub-like box, in a cellphone, even in a wristband. Anything.
To make it work optimally, you'd need the Bluetooth paper to be a touchscreen. That's not possible yet, but it will be soon; until then, you could use a wireless Bluetooth "remote control", or trackball. Also, you'd need to embed a Bluetooth chip in the OLED; again, if it's not possible today, it will be by this time in 2003.
Revolutionary? Not quite. It's simply making computers more natural. And until what I describe is widely available, we need to make existing computers work more like that. One wonders, why aren't all current desktops running WinCE or Symbian? Both of those OSes are powerful enough to run productivity and email apps, and WinCE is powerful enough to run games, too (if the Dreamcast could use it, so can desktops). Imagine if someone could press the power button on their PC, and have a list of applications come up *instantly*, because the OS is installed in ROM! It might mean multitasking isn't as powerful as it is now, but no users use multitasking anyway; just us geeks, and our boxen are not desktops, but workstations.
So, in the short term, what should we do? Extend the LinuxBIOS project to be a full-featured OS with a Palm-style interface, that can load applications off a hard drive, but caches the most frequently used apps (browser, email, word processor) on flash for fast access. Obviously, X is completely out of the picture; really, gtkfb should be appropriate. Start shipping 64MB flash cards, in USB2, FireWire, and IDE versions, with LinuxBIOS, some GTK launcher applet, Galeon, Balsa, and AbiWord preinstalled; you could charge, say, $150 for the initial device, $20 for future upgrades on CD-ROM (or free download). And make very liberal use of AutoPlay for the CD-ROMs; for example, if someone wanted to play Alpha Centauri, all they need to do is pop in the game, click Install, and *everything* happens for them; in the future, all they need to do is pop in the CD-ROM and it loads. For system upgrades, you pop in the CD, wait for a dialog that says "OK" and ejects the CD, take the disc out, and watch it restart itself.
And better still, we could ship a computer, with a custom mobo (or at least, a mobo with a custom BIOS), that has the whole thing built-in to the computer; so it's even faster than IDE, in fact instantaneous. And that computer could be quite small and cheap. Why? Base it on VIA's VPSD Mini-ITX mobo. Smaller than FlexATX, it clocks in at 17 square centimeters - quite possibly, the world's smallest x86 mobo. It has an embedded processor, and sells for $125 from PriceWatch (including shipping). About the only thing it doesn't have onboard is RAM. You could sell one of these things for cheaper than a Dell, and that's including a 15" flat-panel monitor! As long as it had game support, I imagine lots of people would buy it.
The problem with all the other devices that were like this was that they didn't run standard apps. This box, being a real PC, would run standard apps; it could run most any console or GTK program, even if it required a recompile. The killer app, though, would be games. Sell the box in two editions; regular, and gamer's edition. The game one comes with a GeForce 4 Ti (or the latest card at the time), VGA-to-RCA converter cable, and no monitor.
Sounds like a console? So it is; essentially the Linux version of Xbox. But it can also be used as a regular computer; considering that, it wouldn't cost very much at all, and importantly, neither would the games. No subsidised loss-leaders here.
So, enough of my rambling. Between all these ideas, we should be able to do *something*. So why aren't we?