![Programming Programming](http://a.fsdn.com/sd/topics/programming_64.png)
![IT IT](http://a.fsdn.com/sd/topics/it_64.png)
![Technology Technology](http://a.fsdn.com/sd/topics/technology_64.png)
What Is Important In A User Interface? 487
fosh asks: "Out of some discussions going on in response to the Gnome-Microsoft connection I have come to ask myself, (and the Slashdot community) the following question: What is really necessary in a User interface? What is the set of elements that is required, what are the elements that make the user's experience better? What are the inherent problems with MacOS, Windows, Gnome, KDE? Why are computers still hard to use for people like my mother, and how can we make this better?" Of course, the words "user interfaces" usually means "visual user interface." Voice recognition has come a long way in 10 years, and in another 10, we'll probably be able to talk to our machines in plain...well...anything! When this happens, will these ideas still hold merit?
Re:two words... (Score:2)
And when I say "set up" I mean drivers and everything working properly.
Scripting isn't just for power users (Score:2)
It's a matter of making it easy to extend a program. When it's easy to share those extensions, you make the program better and easier and allow it to evolve.
--
Re:Choice of interface (Score:2)
I think what is needed goes well beyond simple "themes." Entirely different kinds of interfaces should be possible. Simlar to switching from the GUI to the CLI on a Unix/Linux system. Each of these UIs may be themeable in some way or to some extent as well.
I don't think switching UIs is too advanced of a concept for people to grasp. Its like using a different tool for a task. If they are presented with an option, they will have the ability to decide which interface they like. As long as it is easy to switch between the different interfaces, there shouldn't be any real confusion. It will probably increase the complexity of support, but that can be dealt with. It's just another fork to take when the helpdesk people try to figure out what to do about your problem/question.
Ah yes, Microsoft FUD (Score:2)
Different window manager are one of the weak points of unices, which is very much different from the lies you are trying to spread.
How is having options a weakness? People are free to use the wm that makes sense to them. There are some that look nearly exactly like Windows and use all the same terminology and metaphors. There are others that are very different and satisfy different types of users. There is no weakness in having options available. If I'm an OEM, then I'll use the wm that I think my users want. If they don't know what they want, then I'll ask them what OS they have experience with and I'll give them the wm that most closely matches that OS. If they have no experience, then maybe I'll give them the wm that is easiest to learn, or that is the most like Windows if Windows is still the dominant OS. The fact that there are options is not a weakness, it's one of the things that makes Linux better.
Re:Ah yes, Microsoft FUD (Score:2)
Oops, I meant to say one of its weakness when it comes to UNIX becoming mainstream as a desktop standard.
Even as far as becoming a mainstream standard, multiple window manager options is still not a weakness. Perhaps a lack of a consistent default interface could be considered a weakness (and is considered one by many), but having options available is never a weakness for an OS. I, personally, don't think that a lack of an official WM for Linux is a weakness. OEMs will figure out what their customers want and give it to them. If they want a wm that looks like Windows, then that's what they'll get. If they want something else, they can have that too. If the customer is a company and doesn't want multiple window managers on their machines, then the OEM will just make sure that only the wm that the customer selected is loaded. It really makes sense to handle things this way. It gives OEMs the maximum flexibility to serve their customers and to differentiate themselves, while at the same time, it gives customers a choice in how they will use their computers.
If it's done right, you could easily switch from that baffling UI to one that you understand and can use.
UI Aspirations Limited by Linux? (Score:2)
Linux isn't likely to help much, because as a Unix derivative, it is a programmer-centric system that clearly delineates individual exectuables from the rest of the system. Great for folks who know and love programming, especially C and Perl, lousy for people trying to interact with data in a logical, consistent and sophisticated manner.
The largest enemy of a good interface are proprietary data formats. It requires you to operate an application rather than edit data. Tools are tools, and should be applicable to any given set of data depending on what you want to do with it. The single largest obstacle to effectively managing data from a user-centric perspective is modality. You are in a text editing mode...save, quit, open up gimp, import the text and now you are in a graphics editing mode, so you can flow the text into a pretty png. If you screw up, begin all over again. In an ideal interface, the user could not distinguish between an application, like gimp, and a set of tools available to her regardless of what else she's doing with the system.
An ideal interface can recognize what data is, and offer you the proper tools to work with it. Here's an example from the mac: highlight http://slashdot.org. You can drag the highlighted text to the desktop, where it becomes a URL icon. You can change the name of the URL file you just created: call it "News For Nerds". Double click on it, and the browser of your choice opens up and takes you to slashdot. Drag the icon into a text editing window, and it pastes in http://slashdot.org wherever the cursor is. The Mac groks data and how it's used. So should any modern OS: a dot-three extension is a sad and sorry substitute: like nailing two sheets of plywood to the top of your car and calling it a Concorde jet. Linux, and other Unices, don't implement this, because they assume that anything that isn't an executable is text. They can't grok data, and rely on the user or an application to tell them what to do in all instances.
I don't know if we can fix this in Linux without a deep and honest appraisal of the limitations inherent to Unix-like systems. Perhaps the best we can hope for is a poor copy of the Windows GUI, considering the tools we have to work with.
SoupIsGood Food
Familiarity is all (Score:2)
Case in point: Emacs. Certainly harder to use than Wordpad, Word, or Notepad. Is it more efficient? (Minus formatting.) Hell, yes. Once you've put the time in to learn something like emacs, you can very simply open another window, display two buffers on the new window, open a file on the second one and switch to it: cx-5-2, cx-2, cx-o, cx-bn
I, personally think it's a shame that EVERYONE is aiming for easy to learn. Once you've learned a program, you're stuck with the interface you learned it on. Why not become familiar with something efficient?
Two words: Brenda Laurel (Score:2)
Re:Easy question (Score:2)
A UI for those FedEx package tacking/customer signature tablets is completely different from the UI for a Boeing 777 Jumbo Jet. Yet both are interfaces to computer systems.
I can't imagine that computers as we know them today will be around much longer than another 20 years or so. Sure, there will probably always be a need for the developers and hackers to get right into a system and program it, but for the average user, the computer needs to become more of an assistant than a tool.
The term 'Intelligent Agent' has really been watered down in the past few years, but I still see that as the way UIs are going to go. The intelligence of the system is going to be far more important then wether you use a keyborad, mouse, voice recognition or telepathy to communicate with the system.
Most developers and hackers today don't delve into dip switches and machine code anymore, but they sure did 25 year ago. 25 year from now a developer or hacker might not ever touch a keyboard. Who knows? It's fun to speculate, but until it happens, no-one knows what it's going to be like.
As for how a general-purpose PC interface could be improved upon today, well, my bets are on MacOS X as being pretty much the best thing since NeXTstep 2.1
Re:Easy question (Score:2)
But at the same time, you should be able to use it without the mouse.
The mouse causes me the most pain in my arm and hand; mice seem to miss-behave more than keyboards, and mice are a lot slower for most tasks than keyboards. On top of that, other people do crazy things with their mouse settings (more frequently than re-mapping keyboards), such as switching buttons, making single-clicks act double-clicks, changing the acceleration, etc.
Re:You've got it backwards (Score:2)
So I guess you want to limit your potential marketshare. I can't see companies like Red Hat listening to you - they will continue to try and push the Linux GUIs in the opposite direction to the one you want.
Re:Key Combinations..... (Score:2)
Re:One feature is necesary (Score:2)
A CLI for power users.
Open formats (XML, Java, Apache, TCP/IP, etc) underneath it all.... heck, even Open Source?
Sounds like Apple's plan for Mac OS X.
Are we beginning to get the idea that perhaps Apple does Get It?
Apple's long history of GUI development has given them a unique perspective on the new computer user. After all, they wanted to develop computers "For the Rest of Us.." and some of the features of the Mac OS that frustrate power users are exactly the features that enable newbies.
Apple may just be the one company capable of making *NIX palatable to the masses. Eazel may improve the top level of Linux with their work, but as someone noted above, consistency is a major problem with Linux (look at all the config formats, at the distribution layouts,
I hope Apple can pull it off, I really do. A successful Mac OS X will in one stroke create an OS that is powerful enough for the most powerful user yet easy enough for the newbie, and do a great service at legitimizing bringing the core of one's business into Open Source with Darwin.
:)
The most important element in a GUI has to be... (Score:2)
------------
a funny comment: 1 karma
an insightful comment: 1 karma
a good old-fashioned flame: priceless
Re:multitasking... (Score:2)
UI for Programmers -- online book (Score:2)
UI doesn't necessarily mean GUI (Score:2)
GNU utilities are extremely consistent. For instance, if you want help on something, type in command --help or command -h. Almost every command line option has two forms, long and short. Someone who learns how to use a basic GNU setup can easily switch to almost any new GNU program. Consistent and well designed, despite the lack of a GUI.
Also, this idea that GNOME and KDE are Windows wannabes. Windows isn't the beginning and ending in GUIs. Windows looks like Macintosh. Mac looks like the Xerox Star. They all use WIMP (Windows Icons Menus Pointers) so they all kinda look alike. The concept is public domain. But, GNOME at least (I don't really use KDE so I can't talk about it) goes beyond Windows in a number of fashions. Better theming, better adherence to Fitt's Law, all of the panel applets, use of XML for application configuration (as compared to the nasty registry), a cross-platform, network aware component system, etc. Sure, the aim is similar and the methods of attack are similar, but GNOME is designed by the users of the system, as compared to Window's method of "take what we give you".
-Dave
Re:MS?? (Score:2)
ToiletDuk (58% Slashdot Pure)
Re:One feature is necesary (Score:2)
Actually, I think you're missing the point. Experts are users too. For experts, a user interface should probably include scripting. Even newbies eventually get to the point where they would like to automate some tasks. The "Startup folder" idea is an extremely simplified type of automation.
And your assertion that "one of the most basic needs for a good good user interface is for a user to immediately be able to identify the first step they need to take to perform a desired task" doesn't always hold true. Compare Notepad to vi. Notepad meets your criteria. Does it have a better UI though? You'll probably argue that it does, but many will argue that it doesn't. The thing is, the better UI depends on the person. If you edit a text file once every couple of weeks, notepad is probably great. It gets the job done, and you can figure out where stuff is. But if you edit text files all day long every day, vi is probably better. Sure, it's got a steep learning curve, but it's worth it for those that need to edit text a lot.
It really comes down to whether you need a basic "I just need to do this simple job" UI, or an industrial strength UI. You simply can't make a simple UI for certain tasks, because these tasks are inherently complex. An F16 has a more complicated UI than a VW beetle, and for good reason. It does a lot more.
Of course, in the world of software, we're not restricted to static fixed UI's. Some programs are starting to offer both an easy UI and a powerful but complex UI in the same package. VIM [vim.org] is one example. The graphical version of VIM has menus and supports "point-and-click" operation. While in insert mode, it behaves quite a bit like an improved Notepad. But it's still got all of the normal vi features (and then some...). You can make mappings, and write scripts to do common tasks. You can even get it to behave almost identical to the original "plain ol' vi" if you like. The one big problem with VIM for newbies is that it starts up in "normal" mode (aka command mode, or "beep" mode).
a big "click here to begin" arrow (Score:2)
Um, screensavers, cool wallpaper, CD player - Uh, I guess that's it!
I agree completely with your agreement (Score:2)
Re:One feature is necesary (Score:2)
Imagine, for example, if the only way to copy a file was via drag and drop. Even Windows isn't so stupid to restrict the user that way, but they put comparable restrictions around so much of their OS. They certainly don't make it easy to change things.
What the interface needs... (Score:2)
After I noticed this, I went to help my mother who uses win 95, and I noticed the same thing. She is having trouble clicking on the proper icons, you hear the familar complaint "But I did not tell it to do that!" Which, before I noticed the motor control thing, used to make me angry because a computer just does not "go ahead and do things". You need to tell it to do something.
The problem that the older generation (and non computer savvy people) are facing is that they cannot communicate with the interface, either because they cannot understand it, or because their fine motor skills are gone and they end up clicking on the wrong icon, or double-clicking when they are trying to single click.
I still think that the interface of a computer needs a palm-style interface. It needs to be made really simple. I watch people wrestle with Windows Explorer all the time, but everyone I have handed my Palm to has understood the interface very quickly (my mother included).
I think that double-clicking needs to go, and right on the desktop should be the following icons:
INTERNET
EMAIL
WORD PROCESSOR
GAMES
SCANNER
INTERNET CHAT
Thats about all that the newbies need. They do NOT need a "AOL" "MSN" etc folder on their desktop that will never get clicked, and just consume precious desktop space. They need to be able to navigate their most used programs (see above list) in just seconds. Move mouse over icon - Click - Done.
Now, you could argue that you could modify the interface, or that many interfaces currently DO this already. Well, Windows does not. Not right out of the box it doesn't, and due to antitrust rulings they CAN'T include some of the above.
Sure, a computer guru can modify the interface for someone so that it conforms to the above... But note that someone else who knows how must do this for these people.
So what an intuitive interface needs is NOT more buttons apps and "innovation". There is just too much "innovation" going on. Things need to be removed from the interface.
As per voice control? A good idea, its not ready yet, but its a very very good idea.
Why computers are hard to use (Score:2)
"Computers are often used to do things that are irrelevant or detrimental to true productivity, such as purely share-shifting marketing or excess report generation.
And when computer applications are intended to increase worker or process efficiency, they often don't help.
But also it has proved so much harder to make computers do serious work that they have been diverted to easier but more frivolous employment.
The author advocates a deep analysis of 'user centred design".
Probably... (Score:2)
To me the perfect computer would be one that I could customize entirely for my needs and wants. Sure you 3l337 hax0rs think everyone who doesn't enjoy writing in assembler an idiot, some of us just have better things to do. A good UI offers the user anything they want in any form they want to see it in. Regardless of the internal plumbing a system should recognize all files as MIME types and are opened by modules that run inside the main interface, much like a web browser. The user shouldn't even have to know a plug-in (modules whatever) is being used, the file ought to just open for the user to view and/or edit it. Besides that a UI should be nearly infinitely customizable with several default settings for different types of users. This also means all programs should have ascii configuration files so they can be edited on the most raw of levels if you're interested in doing so. Large intuitive icons for new users and minimalist icons for people like me who want less overhead. As for the interface, all interfaces across all applications should be alike, if they can be themed thats great but they need to all work in the same fashion. This goes for visual apps and CLI ones, it is a waste of time to learn 20 different interfaces. If you want everything like pico you can have it so or everything like vi, as long as it's uniform. And that is that.
Most important (Score:2)
Keyboard shortcuts to access all, or at least the vast majority of, functions. Along with this, the defaults should be pre-set to what people are most accustomed to, like the standard shortcuts for open, cut, paste, etc. A neat program will get an early boost from its wow factor, but to get people wanting to continue to use it, the power user needs to be able to get things done quickly and efficiently, not constantly reaching for the mouse.
One of the reasons why Mozilla has seen so little testing on my computer is because of the long lack of keyboard shortcuts -- browsing a lot of sites just gets to be a pain, and a slow one. Speaking of which, Netscape deserves some boos for changing ctrl+O to ctrl+L for opening up a URL box, as well as for not implementing backspace/shift-backspace for going forward and back. You should be able to retrieve both local files and web urls from a single ctrl+O action. (Actually, I can't even get alt+-> or alt+<- to work on the Preview Release, but surely they'll at least change this by the actual release.)
Cheers,
ZicoKnows@hotmail.com
vi is scriptable? (Score:2)
feature in vim?
Re:One feature is necesary (Score:2)
Wordstar? In many ways it was a traditional
program using lots of odd keystroke commands to
get things done. You could do a lot with it
(for a program on an 8bit CPM machine with
preciously little memory or disk to speak of).
The keystrokes certainly weren't "intuitive"
right off the bat, but they did their best to
make it easy for new users to pick up on them
by *putting the cheat sheet on the screen*.
The program was configurable with "beginner" and
"expert" modes, and in the "beginner"'s mode
half of the screen (14 lines that is) was
taken up with a description of common keyboard
commands. A very slick touch was that this
menu was context sensitive. For example the
"Block" commands (used to do stuff like cut and
paste text) were all two keystroke commands
beginning with Control-K. When you did the
first Control-K, the menu would change
immediately to show all of the Block commands.
There were other things that were cool
about Wordstar's command set, as well...
for example, the cursor controls were an
embedded "star" pattern (C-s, C-d for forward
and back, C-e, C-x for up and down), with
other motion keys logically grouped around
the star, e.g. C-f takes you forward a
a word, because it's next to C-d that takes
you forward a character. And the delete keys
were all grouped together as well C-t, C-g and C-y.
This sounds crazy at first, but it turns to be
really easy to get into once you've used it
for just a little while.
So the point is you want software with some
depth to it, which in all likelyhood means
some complexity, but you want to be able to
ease a new user into it gradually. This is
a concept that was lost in the post-Macintosh
scramble to make a computer "as easy to use
as a telephone".
Re:vi is scriptable? (Score:2)
can be rebound. That's nice, and it sounds like
an improvement [1], but it doesn't sound like
a full scripting language to me.
[1] One of my peeves about the vi/emacs wars is
that for years if you told the vi guys about some
cool emacs feature they'd respond "You don't
need that!". Now that they've all switched to
vim, they respond "We can do that now!"... but
I thought you didn't *need* to gang?
Typically you do an "ESC $" in emacs to run the
spell checker.
SImplicity, scalability (Score:2)
Simplicity is another important factor. Hundreds of bells and wistles won't help anyone, if he/she can't find the forrest for all the trees.
Graphical junk is something most of the "new" UI's for X has - for example, most of the enlightenment themes doesn't provide any new functionality to the user interface, just a new look, with even more lines, shades, 3d-borders and so on. Very few window managers (vm2, the pie-menu extended fvwm2 and one more that I have forgotten the name of) have really new concepts.
Orthogonality. If something can be performed on one screen object, it should be possible to perform on (nearly) all of them.
Every program should use standard interfaces to each other (E.g. sending guile scheme expressions to each other) for interaction. In addition, they should have good interactions between command-line and GUI. All graphical programs should read their stdin anyway, and interpret command they get from there, and do tasks based on them, possibly affecting the GUI data.
Finally, a set of important concepts:
*Drag'n'drop.
*Scripting
*Simplicity
*Intergation beteen programs
*Embedding of document inside each other (pictures in text)
*Speed of usage
*Speed of learning
*Orthogonality
*Minimalism
--The knowledge that you are an idiot, is what distinguishes you from one.
Re:Bad GUIs put the computer first (Score:2)
Should I be able to find a file without remembering where I put it? Certainly.
However, the drive structure has to be there, and I have to have the option of deciding how I want things sorted.
Re:Different things to different people. (Score:2)
The NeXT and the Amiga were my two favorite examples of "consistent" interfaces. I miss them both horribly. (Apple ripped the 2nd mouse button out for MacOS X, I'm told, so the NeXT is truly gone from us now.)
C O N S I S T A N C Y (Score:2)
Books are no different one to the other. Copyright page, Table of contents, Prelude/Prologue/Introduction, Chapters 1 through X, Epilogue, Appendicies, Index.
Commercial hi-fi/entertainment gear is no different one to the other... Channel up/down, volume up/down, play, stop, rewind, fast forward, pause, previous track, next track.
Cars have a turn signal that clicks up for right, down for left, a gearbox that goes RPND321, a brake on the left and a throttle on the right.
Windows, as much as you may hate it, is solidly consistant (in most places). File/Edit/View/Custom/Help/About
I know it's ALWAYS Ctrl-X/C/V for cut/copy/paste, and Ctrl-Z/Y for undo/redo.
Which leads me to the second most important thing in a user interface... keyboard shortcuts!
mindslip
Re:Some problems I've seen with UI's (Score:2)
After Mozilla is really stable and KDE 2.0 is out, I plan to create a customized UI for my parents.
The idea is a tool bar down the edge of the screen with a few big, friendly buttons on it. These buttons will start up a web browser, a word processor, and maybe some other essentials.
The window manager will always run programs full screen, except for the reserved space for the tool bar. Eliminating overlapping windows will remove a major source of confusion.
If a program is already running, the toolbar button will just make the window visible. This will eliminate the confusion between starting a program and switching to one that is already running.
This will actually be a little like the Palm OS - everything seems to be running all the time, and you just push buttons to switch between apps.
Other things: Simplified menus. Or even no menus at all: just a short tool bar in each program. And, simple dialog boxes that are really obvious when they grab the focus - maybe even graying out all the background when they are up. Have you ever seen people clicking on a window background, getting beeps back, just because there's a modal dialog open and they don't really realize it?
All these things can be reduced or eliminated for people that just want to use the computer to do a few simple things, never want to change the settings, never want to install more software, and never want to think about "using the computer".
You could even create a distribution based on this. Call it "Linux for Grandma." Forget simplifying the installation - grandma will get her 13 year old granddaughter to do that.
But once it's up and running, all the complexity will be hidden away, and the user will never need to think about it.
Torrey Hoffman (Azog)
User Interface Wish List (Score:2)
I've been watching my grandmother learn to use Windows 98. It's painful. First of all, her motor control is not perfect. Second of all, Windows is highly inconsistent in how you approach actions. It's been very instructive, though. These observations are based on what I've seen:
1. Consistency. There should be a standard "meaning" for each action. These should not change unless the context is really significantly different.
2. Clarity. Controls and Widgets of all kinds should emphasize comprehensibility over coolness.
3. Feedback. When something's happening, I should know what's going on.
4. Performance. If the interface is going to stall while something is happening, it should provide feedback immediately, rather than waiting and then presenting a progress bar or the equivalent.
5. Safety. Any destructive action should have at least one warning and a chance to cancel. These safety warnings should be set up so a pro can de-activate them if they want to live risky.
6. Configurability. If I have a way I like to work, I should be able to streamline the process. If applicable, I should be able to script common tasks as well.
-
bukra fil mish mish
-
Monitor the Web, or Track your site!
The Tao of UI (Score:2)
And he raised an eyebrow, and then snapped a finger, and then wiggled his fingers, and then waved his hands, and only after all this di he speak, and I was enlightened."
- From The Tao of UI
It is so very important to remeber that the phrase "User Friendly" does Not mean "Instant Usability", or "Simple Commands". When designing UI, one must take into account the number of core commands that must be represented, and the speed, not complexitiy, with which the truly core commands can be executed. I do NOT want a UI that makes me speak ever time a basic command is used, I would have a sore throat before lunch time. So make the core fast to execute, a key-combo perhaps, make the next level out a command of the form of a menu or typed command, and use things like voice to call up third teir commands, which you use infrequently, but want to execute quickly.
---
"Elegant, Commented, On Time; Pick any Two"
Re:multitasking... (Score:2)
Modal dialogs can be necessary for them to be meaningful and avoid data corruption. The problem is that there's an awful lot which are modal because it saved the UI coder thinking about whether this was necessary or not. But banning modal dialogs completely creates its own problems.
Voice commands will be just as big a problem (Score:2)
Even people who have learned the GUI vocabulary enough to get their work done have no idea what I mean when I say "launch this program" or "open this file"... Hard to believe, but true. And the people who have the GUI down are definitely in the minority.
What I'm saying is that the average user, in my experience, has trouble grasping the abstractions that we understand almost implicitly, and that is not going to change with voice recognition, any more than it changed when CLI was largely supplanted by point-and-click. A user still needs to know WHAT to click on, and when voice finally arrives, he will need to know what to say.
UIs are static, but should seem *dynamic* (Score:2)
When I initially pick up a piece of software, the menus are quite helpful, as I learn what the software does. But after several times of using a command, option or feature, I generally remember the keyboard shortcut. As I learn the interface, it "grows" with me, and I become quicker.
The real difficulty is that almost none of the window driven programs today incoporate these design features and elements at the necessary scale. Sure, ctrl-B is bold and ctrl-I is italics, but full functionality through keyboard shortcuts? Yeah, right. I still love Wordperfect 5.0 - the last of the great purely DOS-based word processors. I used it enough that I knew that the bullets of the arrow style was Shift-F5, 1, 3, 1, Enter. How long does that take with MS Word?
1) move had from keyboard to mouse
2) click bullet in toolbar
3) right-click over bullet in text
4) select arrow
5) click OK
6) move hand back to keyboard and resume typing
or
Shift-F5, 1, 3, 1, Enter? You decide.
I'm not claiming to be a guru, but I'll go out on a limb and say that a majority of software that is used by someone all-day, daily, (data entry types, I'd guess) is not window driven. I know the ones I've seen surely aren't. They're obscure, CLI-type interfaces that appear just awful to use. But it you sit there and watch someone, they're tap-tapping away at those keys pulling up the information quicker than you can believe. But even those UIs aren't the best, because the learning curve is so steep. In order to become that proficient with the interface, someone must spend a lot of time guessing and worrying.
Unfortunately, the majority of the world has moved away from good UI design principles with Windows. Too many people aren't power users - the software winners have been winners because of time to market, not quality. A fact seen clearly in the success of Microsoft.
Is there a perfect solution? (shrug) It's a hard middleground to master. I think the *nix world comes a whole lot closer than the Windows world. I've got my fingers crossed though - I think the rush to get software out the door is about to slow down - perhaps then companies can afford to spend time on good UI design.
Ease of Use != Ease of Learning (Score:2)
Another failure is help systems that give abstract information, but no concrete information and in particular, rarely are examples given and even rarer are cross references so if you don't understand a concept, you can look it up.
i'm suprised no one has said this: (Score:2)
Nothing's more iportant than having EVERY WINDOW look absolutly different with inconsistent controls!
This question almost cannot be answerd (Score:2)
Is this an interface that will be used frequently (word processor, cell phone, PDA), occaisionally (web order page) or rarely (911)?
Do you need to support a heterogenous or homogeneous user population (issues of handicap access; training; literacy)?
Does the user have to multiplex the tasks supported with other tasks (e.g. word processor vs. inbound telemarketing system vs. car MP3 player)?
How tolerant of user errors can the software be, and how does this balance with the need of the software to be responsive?
What range of form factors will the application work in (PDA vs. laptop vs. large screen desktop)?
Just to cook and example, lets say I want to deploy an application which coaches people through performing CPR. If this is as a training aid, the user can be required to spend ten or fifteen minutes figuring it out; if it is a field aid, this would render the system rather useless. If I am targeting PDA as my platform, then I'm pretty sure I have somebody who is literate. If it is a public kiosk, say at beach or industrial site, I don't know for sure whether the user is functionally literate in my language.
I know what you're primarily asking is about desktop GUIS, but I think it's helpful to keep in mind that the answers you get are probably going to be slanted toward office productivity type applications. While these are important, the shrinkage of computing power and proliferation of networking is going to render this a minority niche in a few years.
There will never be a one size fits all GUI, let alone UI in a general sense.
Re:Ah yes, Linux FUD (Score:2)
The reason - it allows improvements to the window manager.
If you can't change the window manager, you can't slip in an improved one.
Even if only the superuser can change it, on a system wide basis, that's still miles better than everyone stuck with a 10 year old wm that's not improved.
Bad GUIs put the computer first (Score:2)
Why is that I can find something easier on the Web (thanks Google!) than I can on my hard drive? Why can't I use the same spell-checker (yes, including the same custom dictionary) in my MUA that I use for word processing? Why do I have to dig through directories, hierarchical structures and all that crap to find a file? Because someone, somewhere, was coding an application and stuck to the design that was easier to *implement*, not easier to *use*.
A drive structure should not be exposed to the user; documents must be tracked by the OS, not the user. Functions and functionality should be transparent and consistent in all applications. The Macintosh succeeded in the first points (hide the machine complexity away behind closed doors), Windows succeeded in the last --all Windows apps (make that *Microsoft* Windows apps) share components, functionality, and up to a point design philosophy (yes, I know, that's not 100% true, Word doesn't do everything the same way that Excel does, but they are very, very close).
Gnome and KDE should learn from their predecessors' successes and failures, rather than copying them blindly --and if you're gonna copy antyhing, please not CDE
engineers never lie; we just approximate the truth.
Re:One feature is necesary (Score:2)
Windows may allow scripting - but it doesn't provide it. You have to buy/beg/borrow/warez additional software to do it. And that's not good.
It is nice if a user interface teaches itself to you, but not necessary. For simple applications, it may be necessary... but for complex applications, you'll end up spending so much time using them that it's a good idea to RTFM anyway.
Are scripts user-interface features? You bet! You're a user... and you're using them to control the program.
Scripting is not sufficient for a good UI. But it is necessary. Given sufficiently powerful scripting, even the crappiest UI can be re-made into something vastly more powerful. As an example of this, someone brought up WindowBlinds.
I think that's about it.
-Dave Turner.
learning curve required (Score:2)
You couldn't, for instance, sit down at a large bench saw with no training or experince and reasonably expect to operate it (more likely you'd cut your arm off). Moreover, the saw shouldn't be designed FOR the inexperienced at the expense of the experts.
A computer is ridiculously more complex than a saw.
The UI should present a clean, consistent, pleasant(!) method of control, but the user must sit down with a clear goal in mind, and at least a modicum of basic training. Given experience, they will benefit from consistencyt expecally (newbies often ask me how I knew how to use Windows a program I'd never seen before. The answer is that I can click my way around ANY app with File, Edit, View menus, toolbars, etc.)
Embrace a common ground, but don't design for the ignorant.
Yay modality (Score:2)
Hear, hear. Modality easier for the beginners, and more powerful for the power-users. It's also easier to integrate with keyboard-only I/O than non-modal interfaces, which for those of us with mousebite is a serious win.
There needs to also be non-modal interfaces, but right now we've moved almost completely away from them. The pendulum should swing back.
The things for which modality is crucial is for any program which provides a user experience of "environment". When a user is "within" a program, doing something, interacting with the program, then modality is powerful. By way of contrast, when a user experiences the program as a "thing", then a non-modal interface is probably best.
For example, compare a word processor to a cd player. The first is something you work in. Contrary to everything everyone expected based on ideas of modality being "hostile" and "unnatural", the most preferred word processor in history was Word Perfect 5 -- which was strictly modal. Meanwhile, a cd player is something you want to set up to do something (play a cd) and then have it function without you. It doesn't need a modal interface.
----------------------------------------------
Re:MS?? (Score:2)
If you're going to have a metaphor, stick with it as much as possible. That's consistency, in a more important sense than whether a menu item is called "Customize" or "Options" or whatever.
Re:One feature is necesary (Score:2)
What's needed is a layered system, with a GUI or menuing system on top for newbie, a CLI for "power users", and open formats and protocols and system utilities for the hacker to get in under it all.
Example: I use exmh - a Tcl GUI program - to handle my email. I can also use the MH CLI programs (very useful when I'm telneted in to my box). I can also get underneath it all and just access mail messages as files - using grep to search them, moving them between folders manually, etcetera.
Re:multitasking... (Score:2)
Unfortunately, DirectX provides a lot of loopholes. It's pretty easy to break task-switching on a Win9x machine using DirectX -- the EverQuest client is a notorious example.
Since I've switched to Win2K, no application has ever succeeded in taking exclusive control of the system (not even EverQuest,) but I have occasionally been forced to log off to kill a program.
Re:Consistency! (Score:2)
Good point, but the automobile has been around for around 100 years now, and the GUI, 30(ish). The gui, really, hasn't been in mainstream use since 1985-1990(ish).
The gui can't settle down until it has matured. Imagine if we hadn't developed new concepts since Win3.1?
Basic things like Drop Down Lists, Radio Buttons, and different types of scroll bars, most certainly have evolved over time. Multi-Select, for instance, boxes still don't work all that well. How would a new user know to press CTRL to select more than one item?
We've still got a way to go before we can make every interface behave the same release after release.
my wacky idea (Score:2)
The grouping should also be "active" rather than passive, like a folder. You should be able to open a group up and have all of your documents exactly where you left them when you closed the group. You should be able to bookmark the view state of the group as well as any individual document. Selecting a group bookmark returns you to the bookmarked view in all of the open documents. One predefined bookmark would be the initial view of a document. For example a web document would consist of a particular URL which is its initial view. After browsing you can go back to that URL by selecting this bookmark.
Another problem is there is often obscured elements in the "desktop metaphor". Windows can obscure other windows and also icons on the "desktop". A good interface would provide some clue that something is obscured.
At all times there should be some visible representation (icon?) of open documents even if the document is not itself visible. Documents that "need attention" but are otherwise obscured would flash this icon.
-- Eric
UI Features (Score:2)
First, the UI must be customizable. The needs of a user change over time, and the UI should change accordingly. If something can be streamlined by the user for his/her particular situation, then the UI should be able to accomodate them.
Second, the UI must find the delicate balance between feature-rich and simple. The truly good UIs will be the ones that provide what the user needs, not more and not less. Any added "fluff" features will go ignored by the user adding overhead to the program for no reason. Conversely, missing features will frustrate the user anddiminish productivity.
Third, it must be attractive. A UI that sucks visually, misses the point entirely. Style is a form of usability...nobody wants to look at an ugly screen all day. This applie to text interfaces as well. Well designed textual interfaces should have a professional-looking layout just as if it were a graphical app, and/or well designed key "shortcuts".
Lastly, a good UI will be well designed internally. It should be as modular, code-wise, as possible to allow for customizability, as well as be streamlined and efficient.
Well just my 2.....
Re:Consistency! (Score:2)
Above all, behavior of interface elements must be consistent in order to maintain intuitiveness. GNOME and KDE are actually doing quite well in implementing consistent interfaces while allowing for themability (one thing that is lacking in Mac OS because Apple has refused to release the Appearance Manager theme specs). My only gripe about GNOME and KDE is that both desktop environments are setting things up a lot like Windows, which often fails to maintain consistency and "sensible" behavior. For instance, why is shut down under the Start menu? Why does Windows hide important options that should be grouped throughout different control panels--hardware management (under Windows 98, you have the System control panel the Add New Hardware control panel, and the Modems control panel (which controls COM port assignments, speaker settings, etc.)), for example. Also, the design metaphor used in Windows sometimes confuses new users. Thus, the fact that GNOME and KDE are being used to attract new users to Linux is a cause for concern.
People often don't understand that the little details in Mac OS make it a stronger interface than many of the others. (Another strong interface is the one in BeOS, for various reasons.) The close box for windows is on the opposite side as the grow and window shade boxes to denote the strong difference in behavior (which is one thing that might change in Mac OS X--bah). Windows that have the focus have textured title bars, while windows in the background do not. Granted, there are some weird aspects of Mac OS--like dragging removable disks to the Trash and restart and shut down being under "Special."
Anyway, consistency and well-planned behavior are highly important. Flexibility (and themability) are also significant to strong user interfaces. GNOME and KDE are showing great potential, and I think that with time they will develop into strong desktop environments.
big things for a GUI (Score:2)
Unfortunate trial (Score:2)
Re:Consistency! (Score:2)
One of the annoying details in Windows is how to do a search. Sometimes it is F3, sometimes Ctrl-F, sometimes Alt-S. Damn it! I don't care which one it is, so long as it is ALWAYS the same thing.
The ONLY purpose of a UI such as X or Windows is to provide a consistent interface to the user. If it fails in that it doesn't matter how good it looks, or how stable the OS is (and I'm of the school that does not confuse the UI with the OS).
Graphics are not a requirement for a good UI. Always using "--help" to bring up help on switches and supporting "info name" makes for a friendly environment. I'm new to Linux, but knowing these to features are available makes the learning curve a little less steep.
I disagree. (Score:2)
If your interface can't free the user form the original hard work you intended to eliminate (the whole reason to use a GUI in the first place), you're back on square 0. True, a newbie won't know about it, but when they do need it -- it's there.
---
Re:My Mother (Score:2)
Object->Action vs. Action->Object (Score:2)
The problem with this is that it doesn't intuitively allow someone to start new documents or find old ones. To start a new letter, you first need to start the application for letter writing, which means you have to know where to look. To load an old letter, you wither have to go through the application, the "recent documents list", or the file system...
As you can see, the verbs here are "start", "continue". and "write". The user's action is TASK oriented, not object-oriented. An interface that allows you to do choose a TASK at the top level gives a better starting point to the user (I use uppercase to denote the specific idea I'm discussing here). Note that none of what I'm about to describe are new ideas, but they're worth considering...
A TASK menu might have choices like "write an e-mail" or "play a game"; though, of course, more specific. Some may think at this point, "Well, that's just like the "Start" menu in Windows!" Not quite: the TASKs must be listed with intuitive, easy to understand names. "Write a Letter" as opposed to "MS Word 2000" or "Emacs". In a sense, the TASK menu is more like the "New..." submenu you'll find when you right-click on the Windows desktop, except TASKs are not always for document-creation.
A TASK menu wouls also support continuing saved work: "Work on an existing letter", "Continue a StarCraft campaign", etc. One must be careful to balance what is available at the top-level and what choices become available under specific applications. "Print letter" may be useful at the top-level, but it would be better if this option were only available whle one was working on the letter.
A few more notes:
1) The file system should be invisible. As someone proposed in another comment, the OS should support finding saved work using searches or heuristics (ie. recent document lists, etc). A hierarchical directory scheme should still be available for users who like to organize their data that way, but it need not necessarily reflect the underlying data structures.
2) Applications should be invisible. Applications implement some set of TASKS for the user; we might expect that in the near future all apps will be downloaded, so users can simply search the net for a new TASK they may want to do. For example, I may not have "Create flow chart" implemented by any app on my local machine, but I could search for that task and find a number of apps (Visio, etc) that can implement it. I choose one, it downloads and installs itself, and I'm up and running. Maybe even better, the actual app is stored remotely -- my system just stores my files and configuration information.
3) There's no idea of "saving" a document: all work is logged (as with a versioning system); users can return to any snapshot of their work through history. By default, the most recent version is loaded, but a "Continue from old version" option might be available as well. Check out the Elephant File System [mit.edu] to get a better idea of how this might work.
Well, I've gone on quite a bit about what I hope is a different way of looking at things than what you're used to. I'm sure there are plenty of issues that would make this sort of system a pain for current computer users, but remember we're thinking about future users. Also note that voice recognition won't solve anything without a redesign of the standard UI: I'd hate to have to spell out filenames and name specific applications when all I want to do is "Start a new letter..."
--Sameer
Many features are necesary (Score:2)
- One of the most interesting UI ideas I've heard of comes from the Oxygen project at MIT. Apparently, they have realized that the computer we know today is a terrible interface for most of what we do. Their idea is to have smart dust that is constantly around you and takes shape according to your needs. There is a lot of organization required to manage today's GUI's. Our handy icons, folders, etc require lots of time to manage. This should all be hidden from us. Computers are smart enough to find the data we need, it's just a question of a good indexing method. For most communication purposes, we wouldn't need a monitor and keyboard of we had good enough speech technology.
- As far as speech recognition goes, it'll be useless until we have seamless natural language processing. Then we'll only need monitors for reading. And then your grandmother will be able to use your computer without any difficulty.
- Computers need to be able to learn about their users. What OS have you ever seen offer to place an icon on your desktop for mozilla after it noticed that you used it everyday? (and speaking of ui's, I wish copy/paste even worked in mozilla)
- And gui, oxygen, or speech based, whatever the OS, the _BEST_ feature any UI can have is to be organic. The best thing about the macOS is that it's organic. It lets you know when the network is down with a dialog, and when it is returned. It refreshes the contents of network volumes for you, without your having to hit F5, F5, F5. It responds (like gnome does sometimes) when a disk is inserted. Machines that are more self propelled will be the answer to truly augmenting human ability, as opposed to hindering it with slow launching, whiz-bang email suites (can you say, Outlook!) that are more of a problem then they're worth. The most pleasing thing about slackware is so tiny, but it's amazing. Just the simple touch of adding fortune to the
___________________________
Michael Cardenas
http://www.fiu.edu/~mcarde02
http://www.deneba.com/linux
Re:Just two words... (Score:2)
I don't have his current book's title, but it would also be a solid read on interfaces.
Alan Cooper started Cooper Interaction Design [cooper.com] as a consulting firm that specializes in optimizing any human-machine interaction. They've helped with cell phones, programmable toys, word processors, hospital records management vertical databases, you name it. They don't write the code. They help you build the RIGHT interface for YOUR application.
Cooper has trademarked the term, "Rich Visual Modeless Feedback." Rich: lots of it; Visual: seen on the screen; Modeless: doesn't interrupt you; Feedback: lets you see what the computer thinks. A classic example is the red squiggly underline in Microsoft Word: it happens automatically, you see it, you know the word is misspelled, it doesn't interrupt you, you can go back to it when you want to.
There's two sides to any interface. In computer user interfaces, the computer and the human should be considered in an implicit partnership to get the human's tasks done.
In essence:
Alan likes to say things like "Don't make the user feel stupid!" By that, he means situations where the computer program seems to delight in stopping the user's flow, just to pop up annoying messages. Or they can't seem to remember the user's preferences.
Anyone who has used a computer before, bitches loudly at the Win95 default setting of showing subdirectory contents without a tree view.
As it turns out, in many useability studies, some Microsoft, some not, it turns out that a frightening percentage of people (even existing computer users) were unable to grasp the concept of a hierarchy . They just can't get it. Win95 hides the tree by default, since people can get used to "click this, click that, click that," sequences, much like driving-by-landmark.
One of Microsoft's aphorisms, which unfortunately they fail to follow, goes something like:
Make the everyday tasks simple; make the more complicated tasks possible.
Object-Oriented User Interface (Score:2)
I had high hopes for GNOME, but the truth is that the GNOME developers are only interested in making a Windows-like desktop, which is a real shame. Both GNOME and the WPS are CORBA-compliant, but I wonder if the GNOME developers really understand what that means.
Re:One feature is necesary (Score:2)
Course Don Norman's new thing is Internet Appliances and the industry is gradually catching up. It makes a lot of sense, Don's fond of talking about the interface of doors and the like, the interface of any/ever computer/os is too hard and not intuitive, by building computer controlled appliances/tools with discrete functionality, the task of creating a sensible interface is a lot easier/actually achievable.
Linux UIs suffer from lack of consistency amongst applications and the proliferation of too highly customisable window managers that never seem to get to a 1.0 release (Linux is stable but the window managers aren't... to the user [who views their computer as a tool, not a forver hackable toy] this translates to an unstable computer/os).
My concern with OS X is that Apple has lost so many of it's UI scientists (Don Norman, Brenda Laurel, Tog, Jeff Raskin, etc...) that the Aqua interface is going to break so many ui design principles in the interests of looking cool. Hopefully Aqua 2 will get rid of the candy and Apple will have the sense to bring back some of its old ui team.
Just two words... (Score:2)
You can do better than that. (Score:2)
I generally try to separate application logic from UI as much as possible, since it is a real pain to change code because of UI changes.
Let the core functionallity of the program have a well defined interface (use CORBA, EJB, ActiveX or whatever) and *then* build a UI shell around it. That way, the next person who touches your app has a fair chance to make UI adjustments without groking every detail of your code.
Fitting a GUI on top of a CLI is rather easy, the reverse can be almost impossible. Ergo: Never think just GUI.
Re:Some problems I've seen with UI's (Score:2)
This is a biggy when i'm helping out my dad. I just "know" which window to be dealing with, but he doesn't. perhaps an optional dim-everything-but-the-window-in-focus feature would be good, to make it clear.
or, perhaps neater, dim-everything-except-what-you -need-to-read-or-can-click-on. ie: window titlebars would not be dimmed (unless they had an overriding modal window up), nor would the text in your current window, but everything else would be.
might have some interesting consistency problems (under windows, I can do a single click to ICQ to pull up their menu, even though it's in a window that is not the current window.
certainly I think we have enough horsepower to do this, considering it would be a reasonably rare occurence with the kind of person that would be helped with it. I can deal with most dialog boxes without looking, using only keyboard shortcuts, so they're gone as fast as they're up. but my dad usually takes a few seconds, so this sort of background-fading wouldn't be so bad.
Bauhaus or Baroque? (Score:2)
The best analogy and comparison is the diffrence between a Buick LeSabre GS and a BMW 540ti. Both are luxury cars but one was designed with Bauhaus principles that put the user first while the other has all the toys thrown in with little thought to ergonomics. I can drive the BMW without taking my eyes off the road because everything in the cockpit was purposefully placed for my comfort and safety. Whereas with the Buick, I have to futz with the light switch because some dumbass GM engineer decided to obscure the light switch with some useless decoration. I take my eyes off the road for 5 seconds, and I hit a Mack truck!
If I were driving the BMW, I would of kept my eyes on the road and I would still be alive or walking.
As computers enter into mission-critical areas like medicine, the UI design becomes a factor if someone lives or dies. If a nurse can not grok a interface panel on a computer-controlled piece of med equipment and presses the wrong button, he/she can kill the patient.
Keep it simple, especially when time to make a decision is crucial.
Also remember that mistakes do cost money, whatever you can do to lessen errors in your UI will save people time and money.
The overiding principle when designing a functional object, like a UI, is to follow the mantra contained within my sig:
If design is not Bauhaus, it is Baroque.
Re: two words (Score:3)
Just because an interface is simple, doesn't mean that it can't be complex. Just because an interface is complicated doesn't mean that it's powerful.
My (YMMV) take on the UI (Score:3)
Installers should be smart - either dragging the application to the hard drive should be sufficient to install it properly (like much of the simpler Mac software), or a simple installer (the new Windows Installer isn't bad), or a
There's nothing inherently wrong with a CLI - so long as users can function without it. In that sense, it'll be interesting to see how MacOS X turns out. Applications should be consistent to the OS's bulit-in UI functionality - using the system's UI elements should be the default behavior for any application. Chrome and skin use should be optional, if used at all.
Finally, the keyboard/pointing device combination should be enough for most anything. Not that there's a lot of alternatives out there, but I don't see voice recognition (in cubicle farms?) or touchscreens (the old "gorilla arm" syndrome) being too useful for anything but a specialized environment. Day-to-day applications should not be designed with those type of inputs in mind. More audio feedback would be nice to see in the future, so long as it's not required to use the systems properly.
For the most part, I remain a relative fan of the MacOS for UI consistency and design. Though it's a lot more complicated than it used to be, and there really isn't easy access to the underlying OS (AppleScript is great and powerful, but a CLI would have been nice years ago), I agree with the pundit (I can't remember who it was) many years ago who said, basically, "The Mac is the first and only personal computer that's good enough to dislike". And though I own and use systems running Windows 98, Windows 2000, and Linux, when I go home and just want to turn on one of my computers and just get something done quickly and easily, without having to think about how to do it - 9 times out of 10 that means turning on my Mac. So I really guess a good UI should steal as much of that as possible.
- -Josh Turiel
UI Must-haves (Score:3)
A GUI under Linux or any other Unix system will have a tougher time of meeting all these requirements than a GUI built on a newly-designed OS. The reason is that Unix already has certain ways of doing things and the requirement for consistency demands that those ways be complied with in a GUI. An example is the documentation access method: Unix uses manpages, and so a GUI should also use manpages. There's nothing that says that you can't build on that, but it's very wrong, IMO, to build an entirely new documentation structure because it violates the rule of consistency and predictability (those two tend to go hand-in-hand).
Thus far, pretty much every Unix-based GUI (and Windows, too) violates Fitts' Law, which basically says that larger targets are easier to hit and thus more desirable, so edges of the screen are prime real-estate since they are infinite in at least one dimension. Gnome has the additional problem that its default scrollbars are far too narrow and thus are difficult to hit, which makes them difficult and annoying to use. Why the width of the scrollbars isn't included in the
Both Gnome and KDE are making slow but steady progress towards being easy and pleasing to use. But I think it's very important that they avoid the mistakes made in Windows, even at the cost of compatibility with the Windows GUI: it's more important to get the UI right than it is to get it to be compatible. People can learn, especially if what they're learning conforms with the principles listed above.
--
You, sir, are an idiot (Score:3)
There is nothing "logical" about most *nix GUI's. What confuses people is not relentless logic, but incredible arcaneness, the assumption that the user has a great deal of computer knowledge, and no clue whatsoever about where to start in getting a job done.
If a user wants to make a text file (and most users aren't even clear what a "text file" is) there is nothing "logical" about typing "vi newfile.txt." And there is *certainly* nothing logical about the controls in vi.
A computer is a tool. For geeks, it's an extremely important tool, and one that we therefore become intimately familiar with. For us, the primary job of a GUI is to get the hell out of the way so we can get our work done. We memorize key shortcuts, write scripts to automate common tasks, and do most of our work from the command line. Therefore, any attempt by GUI writers to add features is likely to just get in the way, since we already have things just as we like them.
Most users have neither the time or the interest to become this familiar with their computers. This does not make them stupid, lazy, or irrational. It simply means that learning the inner workings of a computer is not a priority. For these users (and 90% fall in this category) the interface needs to be simple, consistent, and provide the user with a limited set of high-level choices that are clearly marked and make it clear what options the user has. A good interface for these users also hides and automates as much as possible the nitty-gritty details of computer operations.
In other words, a mechanic might be perfectly happy reaching into the engine and manipulating it directly, but the rest of us like our steering wheels, dash boards, turn signals, etc. The fact that I can't distinguish a spark plug from an air filter does not make me stupid or irrational. I shouldn't have to know how to rebuild the engine before I drive to the store in my car.
So for geeks the interface doesn't matter that much. We work with our machines long enough that we'll figure out practically any interface. So for us, the priorities are power, flexibility, and minimal intrusiveness.
There *are* however, several facets of good UI design that should be observed in all good GUI's reading these comments I see that most open source types seem to be oblivious to the importance of good UI design. Some of the most important, just from my personal observations:
The possible actions should be available at all times. This is the biggest factor in reducing the learning curve for a new interface, and it's the primary purpose of menus.
Unix GUI's are just awful on this score. If a new user sits down at an average Unix terminal, he's not going to have a clue where to begin. I know I didn't. You *have* to have someone sitting at your side to explain shell commands to you, and even then there are dozens of little tricks that I have learned only by watching other users. Compare this with the Mac OS, in which--although there are still lots of tricks-- all the important functions are either done by direct manipulations or are listed in menus.
Once a user becomes familiar with the interface, this is less important, but even then there are going to be features that the user hasn't used yet.
The second requirement is consistency. The Mac OS imposes a fairly strict set of conventions for widget behavior, menu placement and layout, etc. There are standard shortcuts in almost every app for cut, copy, paste, quite, etc. Unix apps have nothing that vaguely resembles this level of consistency.
If you think that the computer is simply a device to be "really fast at mathematics and transferring data around," I don't think you understand what the information revolution is all about. The whole point of the last 20 years of UI development is that the user can get work done with the computer without understanding its inner workings. A good UI hides unnecessary details and provides simple, high-level abstractions to accomplish the user's objectives. Often these interfaces are poorly done, which is probably why many power users have turned to the raw simplicity of the command line. But the fact that most GUI's today get in the way does not mean that all GUI's are useless.
more variety (Score:3)
What are some alternatives? Here is a list:
Window management itself is also an area of variability.
Altogether, I feel that there isn't enough experimentation with new UI styles, but I can see reasons for it. I hope this posting will encourage people to look around a bit more and think about alternatives (Google will quickly find pointers to the systems I mention). Most likely, in the near future, new UI styles will simply live within the current system, just like web browser and Mathematica notebooks exist within pretty sparse UI frames.
As far as UIs go, I think one size doesn't fit all. There are too many different applications and different cognitive styles. Let's hope that with Microsoft receding in significance, we'll see a new wave of experimentation and different systems.
Re:Consistency! (Score:3)
However, I don't think it's a good idea to force a stagnation of GUIs yet. If automobile controls had been standardized too soon, we'd still be starting them with cranks and steering them with tillers.
Re:MS?? (Score:3)
The Mac's GUI should not be taken as a gold standard. I've had to use it at work for the past few months (I'm typing this on a Power Mac) and I find it rather clumsy.
Not that the Windows GUI is any better, mind you, but I'll take my Linux box any day.
Frustrations with the Mac GUI (some apply also to Windows):
Re:One feature is necesary (Score:3)
The problem is that novice-usable UI scripting that is also useful to power users may not really exist yet. If it did, I'd think that the world would be beating a path to its door.
Re:Choice of interface (Score:3)
Whadda mean M$ isn't aware of this? You've got lots of interfaces to choose from! There's
See? Lots of options!
Universal UI. Already here. (Score:3)
no windows (Score:3)
What does a UI use windows for?
For context switching, the stacking and overlapping of windows confuses people, makes partially obscured windows fairly unusable, and results in poor usage of the limited screen real-estate. This isn't to say we don't want multi-tasking - just that the pseudo-3D window is a pretty clunky way of managing the interaction. Modern window systems should be able to perform more active management of the division of screen space between apps, scale the results, etc, etc, so that all apps are usable to some extent if they're given any screen space at all. This becomes especially important if voice-command interfaces ever become popular.
As a directory metaphor, a window filled with icons is a terrible user interface - really bad use of screen space, and provides no context as to what a file is for (other than filename and file type) or where it actually came from. A better interface could be based around HTML, with automatically generated web-like pages serving the purpose of a directory, and having the advantage that they can be annotated by the user so she doesn't lose track of what the file is for.
For dialogs, windows are pretty poor too - they're only appropriate for cases where some catastrophic event occured and the user's work flow absolutely must be interrupted. Even then, you want to tie the dialog to the window that generated the error, rather than have it pop up in the middle of the screen and where it needs to be managed separated from the application.
Unfortunately, window-based applications are really easy to program, so the interests of the user play second fiddle for many applications.
-Fzz
Re:Easy question (Score:3)
A user interface should let you: Run programs Alter system settings Allow your programs to communicate with each other (drag and drop, calling up a browser when you click on a URL)
A few more things an OS should let you do:
Store documents
Locate documents
Find the program you want to run
Open documents
Connect to external devices
Locating external devices
Allocate memory to a task
Stop programs running
Manage screen real estate
Arbitrate CPU time between running programs
Plus many others. And OS is a complex beast that has to do a lot of things.
A user interface should be:
Intuitive - no learning curve
Unfortunately there is no such thing as a UI without a learning curve. All UIs are learnt. Sit down with a truly novice user some time.
The question is how easy is a particular UI, and the answer is complex and depends heavily on the skills, knowledge and previous experience of the user trying to learn it, as well as on the nature of the UI and its documentation.
Be physically easy to use (single key-strokes and mouse use - you shouldn't have to let go of the mouse to use the keyboard for the basic UI)
With the caveat that what one user finds easy, another might not. Not to mention that not everything can be accessed by simple operations, so you have to choose some things to be a single click, and other require several clicks to make happen. The question is which operations do you make easy and which hard? That's what UI design is all about...
Disgruntled Help Desk Tech (Score:3)
Re:Choice of interface (Score:4)
That's a laudable goal, but a very hard thing to implement. Consider this: we pretty much agree that the interface across the applications has to be consistent (for obvious reasons). This means that all applications must be decoupled from their interfaces, and that's nontrivial if possible at all. An application will no longer be able to do
switch(some_event) {
...
case button_1_release:
...
}
because it doesn't know whether the user interface used actually has buttons (maybe it's voice input). I actually don't think it is possible to decouple an application from it's UI to this extent.
On a simpler note, consider writing an application the full functionality of which is accessible through (1) command line; (2) GUI; (3) voice input. It's much harder than make a just-GUI or just-command-line applications.
The second problem is: how do you plug in a new user interface for an application? An application has a set of inputs that it reacts to -- the user interface has to know each one of these inputs and map each of it to some mouse/keyboard/voice even. Retrofitting a new user interface onto an application is going to be pretty hard (and demand the application's source most likely) and writing a user interface that you can plug into existing applications is going to be basically impossible (no, I'm not talking about simple things like theming and keyboard remapping).
Kaa
You've got it backwards (Score:4)
Form follows function. The user interface is defined by the application and the people who use it. That's why it's called an "interface".
It's also why I cringe when I see GNOME/KDE/UI of the Month (well-intentioned as they are) essentially trying to port the UI from Win95/MacOS (OS's that, IMO, are utterly powerless) to run on top of Linux. It's like covering a bandsaw in wrapping paper: it looks pretty, but now you can't use the tool.
To forestall the inevitable "what about my grandmother" arguments:
1) I'm not saying "keep it ugly and complex to keep the lusers out". I'm saying "think about the power of the tool, THEN decide on a UI." For instance, "gless" (a GNOME pager) is completely useless. How do I pipe to a graphical tool? And even if I could, does it provide me with anything I didn't already have? Does it take anything away?
2) A lot of people who take more than 5 minutes to think about UI's will respond with "but my grandmother doesn't need to run pipes and greps and stuff". OK, but that's not an argument for a simple (minded?) Linux UI--it's an argument for your grandmother to use a different OS.
--
Have Exchange users? Want to run Linux? Can't afford OpenMail?
Some problems I've seen with UI's (Score:4)
1. Multiple overlapping windows are very hard to sort out for someone who's not used to it. Notice that on video games, ATM's and the like that everything is completely modal; you're not distracted by everything else that's going on.
It would be better if computer GUI's took care of some of the complexity associated with arranging windows, dialog boxes, etc.
2. People aren't used to having to organize their files in a thougtful manner. Many users give their files names like 'Bob.xls' or 'Mary.doc'. What directory are they saving to? Many (maybe even most) people have absolutely no idea.
If the computer organized the user's data into a searchable database, rather than a hierarchial filesystem, information would be much easier to retrieve and reuse.
3. Collaboration is excessively difficult. This could be remedied through better versioning, easier interfaces to web publishing, and the like.
There are a lot of other problems, too, such as creeping featurism, emphasis on style over substance, etc., which I'm sure will be mentioned in other posts.
One feature is necesary (Score:4)
-Dave Turner.
Re:Its the whole desktop metaphor thats screwed up (Score:4)
A quote I just found (Score:4)
I just found this the other day on some linux quotes list. Sorry I can't find the link
"The only "intuitive" interface is the nipple. After that, it's all learned."
LiNT-- Bruce Ediger, bediger@teal.csn.org, in comp.os.linux.misc, on X interfaces.
multitasking... (Score:4)
-- Moondog
Consistency! (Score:4)
Re:One feature is necesary (Score:4)
It maybe a necessary functional requirement for an operating system to allow scripting capability, however user interface has actually nothing to do with that. An operating system may impose certain functional restrictions and it may provide standard user interface libraries, this does not mean that those restrictions are good or those libraries are at all usefull.
If I remember correctly from my UI classes the major problems in creating a successfull user interface are always related to certain restrictions in functionality and thought barriers.
Well Designed User Interface faces many challenges, here are some of them:
1. Interface must allow new user training and it can gradually allow more and more difficult tasks.
2. Interface must have the possible minimum number of movements (levels) to do a task (instead of moving a mouse onto a menu item, click the button and a circular menu appears where the cursor is with the cursor in the middle, let's say you divide the circular menu into four sections, once you strike in the direction of the needed section without releasing the finger, another circular menu appears with the cursor in the middle, then you have another hand motion to do instead of selecting an item from a bar menu etc).
3. Good interface provides analogies - if you want a magnifying glass, why can't you actually take a square or otherwise shaped magnifying glass from your office desk. So in VR, you actually would have items physically associated with your tasks. Pull your magnifying glass over your text and it magnifies for you (not just zooming in and out, actually moving the real magnifying glass over something). (virtual office)
In fact there are departments totally devoted to user interfaces. Without these departments, what kind of user interfaces would we have for a computer? a car? a tv? a vcr? your stove, your microwave (bad example), even your door - How many times have you being in a situation where you walk into a door and you don't know whether to push or to pull the handle? (bars are for pushing, handles are for pulling - one way for identifying the correct way to open a door)
Most of the time we all are users of someone elses idea of a user interface
Re:One feature is necesary (Score:4)
Easy question (Score:4)
Run programs
Alter system settings
Allow your programs to communicate with each other (drag and drop, calling up a browser when you click on a URL)
A user interface should be:
Intuitive - no learning curve
Be physically easy to use (single key-strokes and mouse use - you shouldn't have to let go of the mouse to use the keyboard for the basic UI)
In obtrusive - in other words, it's not the end goal, it is a means to a goal.
Different things to different people. (Score:5)
GUI? CLI? Voice? Who cares! The key thing is that:
1. You can get a list of plausible options in most cases. The list may be a bunch of icons, any of which you can click on. It may be a dock. However, somewhere, there should be some kind of guide to what your choices are.
2. There will be cases where no such list can be made, because there are thousands of entries; in these cases, a little sorting goes a long way.
3. You must be able to pick an action unambiguously.
4. You must get feedback as to whether an action has succeeded or failed, and if it failed, you should get an indication of what prevented it.
5. You should be able to control the level of feedback based on your needs.
6. You should be able to abort unintended actions. Undo is nice, but abort is absolutely essential. For newbies, dangerous actions should come with a clearly labeled delay during which an abort will be harmless.
Most UI's try for some portion of some of these. Some attempts to make "easy" user interfaces end up falling down. How do you rename a file on a mac? Click on the name and wait a while, and it becomes a text box. However, if it can't be renamed, no one tells you, because there's no reason to believe that you really meant "rename", not just "select", and it would be stupid to give you the warning if you were just selecting a file.
This gives us also:
7. Explicit actions are preferable to implicit actions. You should always know what the computer thinks you're doing.
Many things matter; users are diverse (Score:5)
But a few big, important things:
Newbies and experts (Score:5)
(1) Allow newbies to understand what's going one and learn (e.g. menus);
(2) Allow casual users to use "standard" skills in an application (consistency across applications);
(3) Allow experts to use fast but nonintuitive ways (e.g. keyboard shortcuts) and to considerably modify the user interface if desired (e.g. remap keyboard).
(4) Allow a smooth progression from the newbie status to the expert status (newbie and expert should not be two completely different interfaces).
Kaa
Re:Its the whole desktop metaphor thats screwed up (Score:5)
Pieces of paper on a desktop?
Absolutely correct. (Score:5)
In many ways, this type of architecture is an extension of the classic paradigm of Unix tool development: have a lot of tools that accomplish small tasks, and have the ability to chain those tools together to perform more complex operations. Only in today's environment, "chaining together" often involves wrapping a functional GUI around them to make them easier and more intuitive for users to navigate. This type of architecture really does offer the best of both worlds; it gives users the tools they need to perform a task, and it offers them a choice as to how those tools will be used.
Choice of interface (Score:5)
Having different interfaces (e.g. voice recognition/GUI/command line) is vital for a usable computer. So is being able to change the interfaces you are given. MS (as well as other companies) don't seem to be aware of this fact.
Re:Choice of interface (Score:5)
Absolutely agreed!
I think one of the major factors in people's dissatisfaction is due to the designer of the UI recognizing that there is no such thing as one UI to suit everybody. Almost all UI designers are motivated by seeking the "holy grail" of UI's, so to speak. This is especially true of GUI's. However, my opinion is that there is no such thing as a Holy Grail of GUI's (or any other UI for that matter). Everyone has their own preferences, and different people have incompatible preferences.
This is why GUI's like MS Windows are loved by some and hated by others. This is why debates over whether or not Window's GUI is good or not will never be resolved. There is no one UI that satisfies everybody, and until UI designers realize this, we will always be complaining.
What programmers and designers need to realize is that they need to provide alternatives. Or at least, they need to make it possible for the user to choose/install a third-party UI if they so choose. What turns people off is when they are force-fed with one and only one, irreplacable UI, which they happened to dislike, be it CLI or GUI or whatever else is out there.
We can argue forever over what features are "necessary" and what features are "superfluous" but IMHO we will never get anywhere until we accept the fact that different people consider different things as necessary, and they are often irreconciliable. Let's not even talk about GUI's: even with CLI, some people prefer bash, some prefer csh, others prefer other shells out there. Just try to convince a csh lover to switch to bash and watch their reaction.
There are already too many UI's out there designed by people who are seeking the "holy grail" of UI's. IMHO what we need isn't a "better" UI, what we need is a system where the user can choose his/her own UI easily, and where there are many alternatives that the user can choose from to find one that best fits his/her need.
---
My Mother (Score:5)