It’s been a busy week in the Linux community, what with all the activities going on over the past few days.
Software Freedom Day, the Atlanta Linux Fest and the FSF’s mini-summit on women in FOSS all took place last Saturday, and then LinuxCon started in Portland just two days later. Not to mention Russia’s newly declared official holiday the week before: Programmer’s Day!
This is definitely a much busier social calendar than Linux Girl is used to.
Interesting news and discussions have emerged on virtually all fronts, too, including the still-raging inferno of a debate over sexism in FOSS, word that Ubuntu 10.04 will be called “Lucid Lynx,” and some pointed words about the Linux Foundation’s first-ever LinuxCon.
Keep that caffeine coming!
‘It’s All Learned’
Despite all the action going on in the bricks-and-mortar world, however, Linux bloggers haven’t been too busy to engage in discussions of a more theoretical kind.
Case in point: Carla Schroder’s recent post on Linux Today contemplating the question of intuitiveness in computers.
“‘Intuitive’ has nothing to do with computers,” Schroder wrote. “It’s all learned.”
Referring to the legions of Windows users switching over to Linux, she added, “our mission, for those who choose to accept it, is to understand that de-programming these proprietary refugees is Job One.
“Somehow we must communicate that some actual study and learning are required for all platforms and devices, and that whining and wailing in despair don’t accomplish much.”
‘Limited Task-Set Mouse Clickers’
Nearly 20 comments had greeted Schroder’s post by Wednesday on Linux Today, in addition to another 14 or so more on LXer.
“You nailed it,” wrote techiem2 on LXer, for example. “All these silly people who have been told over and over and over that they shouldn’t have to think or learn in order to use technology. *sigh*”
Similarly: “Today’s average home computer (and many workforce computer users) are not users…they are limited task-set mouse clickers,” agreed helios. “If only they knew the power at their literal fingertips.”
‘Nothing Is Intuitive’
Given the frequency with which the term “intuitive” is bandied about in the computing context — particularly from the halls of Redmond and Cupertino — it seemed to Linux Girl that this question was an important one.
Should computers be intuitive, requiring little to no learning or thinking? For that matter, is it even possible for them to be so? Linux Girl couldn’t resist asking around.
“Nothing is intuitive,” Montreal consultant and Slashdot blogger Gerhard Mack told LinuxInsider. “Think about it: We have to be taught to use a toilet, how to use a fork and how to drive. Why do we expect computers to be some magic thing that does not have a learning curve?”
The best we can do is keep things “following the same rules as much as possible so that people can extrapolate how new tasks are done and so people don’t constantly have to relearn existing tasks,” Mack added.
‘Electrons Are Not Intuitive’
“There is nothing ‘intuitive’ about computers,” blogger Robert Pogson agreed. “They are abstract machines with few moving parts. Electrons are not intuitive.”
We can try to create more human interfaces with the desktop metaphor, but it is never intuitive, Pogson told LinuxInsider.
“Why would anyone click on an ‘X’ in the corner of a rectangular region to stop a process and close the region? That can never be intuitive because we do not think like machines,” he explained. “We absorb information with our senses and interact with the world with our muscles. Thought is not at all like computing.
“People learn as children do,” he added. “They start with hand-eye coordination and advance to abstract thinking. It takes time and effort.”
‘No Bloat Will Make the GUI Intuitive’
Providing the world with “PCs running that other OS and promoting it as intuitive has been one of the greatest disservices ever done in the name of IT,” Pogson added. “We now have hundreds of millions of people convinced they need to fear links in emails, and that they need to buy software to protect their PCs from malware, when it is the OS they are using with its intuitive/user-friendly interface that is friendly to malware.”
In short, “no amount of bloat, features or nomenclature will make the GUI intuitive,” Pogson concluded. “Eventually, our computers might be robots and we will be able to use our social skills on them, but that is not happening today on PCs.”
‘I Don’t Think Study Should Be Required’
On the other hand, “I don’t see why they can’t be intuitive,” Slashdot blogger drinkypoo told LinuxInsider. “I don’t think that study and learning should be required for consumer-oriented platforms.”
While personal computers “have certainly gone in that direction, even-more-personal computers like cellular telephones are always reaching towards a simpler, more apprehendable interface,” drinkypoo noted. “Even Intel’s Moblin makes substantial strides in this direction.”
Devices like the Kindle, however, are an ever better example, he asserted.
“There’s no particular reason that the Kindle couldn’t be the next application delivery platform which would require *no learning* to use,” drinkypoo asserted. “In fact, it is relatively simple to run arbitrary programs on the system.
“If there’s any reason these programs couldn’t or shouldn’t be intuitive, I sure don’t know what it is,” he concluded.
‘Humans Dislike Change’
The problem with intuition is that “there is no general definition of what is intuitive ‘to the masses,'” Slashdot blogger Josh Ulmer told LinuxInsider.
“Why do younger people tend to pick up new technologies faster than older people — the classic VCR programming quip?” he noted. “Because they don’t have any predefined expectations as to what the technology should do, or how it should work, or how they should interact with it.”
While Linux Today’s Schroder “has a point,” he added, “the biggest reason people remain in any given situation, be it an OS or an apartment, is comfort. It is important for Linux proponents and developers to recognize that humans tend to innately dislike change.”
The feeling of “intuition” that comes from “the latest and greatest in Redmond or Cupertino is the result of a natural evolution from an established system,” Ulmer explained. “It’s easier to use from an individual perspective because all of the basic concepts are already trained.”
‘That Means No CLI’
Indeed, the problem with the “intuitive” label “is that folks seem to miss the forest for the trees,” Slashdot blogger hairyfeet told LinuxInsider. “The basic desktop, be it Windows, OSX, Gnome or KDE, all follow pretty much the same conventions on the surface,” but that paradigm “falls apart” when something goes wrong.
“No matter how much sugar you put on top, as long as Joe User has to go CLI at the slightest glitch, it just ain’t gonna sell,” he explained. “If you really want to make this a three-way race between Windows, OSX and Linux, then the user HAS TO come before all. That means simple-to-understand GUIs, that means NO CLI.”
Just the Nipple?
It was once said that “‘the only ‘intuitive’ interface is the nipple — after that, it’s all learned,'” said Slashdot blogger David Masover.
On the other hand, “I’d suggest that anyone who is a pediatrician or has otherwise observed a new mother trying to teach her baby how to breast feed would classify the ‘nipple as intuitive interface’ line as not only an unquestioned assumption, but also one that’s wrong,” countered value_added in a recent Slashdot discussion. “Put simply, the nipple is a familiar interface. The familiarity happens very early, and there’s a wealth of factors that motivate it, but still it’s something that’s learned.”
When people say “intuitive,” they tend to mean one of two things: “discoverable or familiar,” Masover told LinuxInsider.
Discoverable vs. Familiar
“‘Discoverable’ has to do with how easy it is to learn an interface, especially without training,” he explained. “For example, GUIs are more discoverable than the command line because you can usually see what options are available at a glance. Then you can click one of them to see more options.”
A command line, on the other hand, “requires you to know which command you wanted ahead of time, and then to read the documentation on that command,” he added.
“Familiar,” meanwhile, “is how similar an interface is to other interfaces you’ve used,” Masover noted. “It helps make an interface discoverable. For example, ctrl+i for italic is discoverable in OpenOffice Writer, and familiar, and often seen as ‘intuitive’. I would argue this is mostly because that’s how Word does it.”
What Would Windows Do?
That’s all “good and useful,” he added, “but it’s also dangerous — sometimes there truly is a better interface out there, but it’s seen as ‘less intuitive’ because it’s not how Windows works.”
Regarding package managers, for instance, “the Windows way is far less secure than a good package manager, and Linux would be worse off if it tried to be like Windows here,” he said. “Yet people who don’t understand package managers will wonder why they can’t just download an EXE.”
Computer technology can be easy to use, but it might not be intuitive, and it “certainly won’t always be discoverable,” Masover added.
An Impossible Dream
So, can any interface be intuitive — that is, discoverable, familiar and easy to use for everyone?
“I don’t think so,” Masover asserted. “But it’s still worth thinking about the tradeoffs involved. It’s worth having ‘intuitive’ as a goal, even if it’s impossible.”
Providing alternative ways to do something is a step in the right direction, he suggested, as is making an interface customizable — though that “had better be both powerful and idiot-proof.”
In short, “the ideal interface would leverage as much as possible of what most people already know (make it like Windows), be as simple as possible (but no simpler), expose as much functionality as possible to those who know where to look, and be infinitely customizable by the end-user but impossible to accidentally screw up,” he concluded. “This is why we have Human-Computer Interaction (HCI) specialists.”
Companies should not spend time “trying to determine what the average values of intuition are and applying them to their new project,” Ulmer said. “Mac fans will forever compare Windows’ newest features to something that already exists in their own environment, your ‘average’ Windows user is terrified of the command line, and I for one miss the grizzled hobbyist who made Linux a fun toy years ago.
“I don’t know if it’s possible to appease all three groups with the same software,” Ulmer concluded. “I for one would much rather have something that excels at being easy to use for one group than diluted for everyone.”
While comparing computers and breastfeeding as to intuitiveness, one has to know that the baby has in its DNA the breastfeeding mechanisms that complement the mother’s own, to reach out to the breast, to suckle, etc. "Stub" mechanisms, I call them, like the client-server Internet paradigm. We all have to learn to control our limbs to have them move in certain directions for a certain distance. The desktop experience builds on that: one grabs the mouse, moves the mouse by a certain amount, the computer keeps track of the location of the mouse to determine what task it has to perform next.
The essence of the discussion seems to be: should an operating system be easy to use for end-users.
The word "intuitive" is a bit ambiguous because it depends on the level of background knowledge and above all "what one is used to" as a measure of "intuitiveness". Only a bit, because (a) the experience of the average computer end-user is MS Windows, and (b) a properly constructed GUI obviates the need for users to know the list of available commands in advance which always beats a CLI in terms of intuitiveness for those who have little or no knowledge of the system in question.
In this vein I will adopt a slightly more precise interpretation of "easy to use" in the sense of:
(a) requiring little detailed knowledge on part on an end-user
(b) presenting end-users with at least one interface that has a shallow learning curve
(c) presenting end-users with a forgiving and idiot-resistant interface (as in: ‘it’s not so easy to accidentally destroy things, and you will get a warning when you try something irrevocable’)
Of course there will always be a need for specialist software packages and "power user" interfaces to operating systems etc. In such cases a CLI really seems a good way to go, because it’s easy to implement, its actions tend to be very reproduceable (as opposed to endless lists of manual point and click actions), and it can be scripted.
However, looking again at the question: "should computers, operating systems, and general end-user software packages be intuitive in the sense of having shallow learning curves and hard to accidentally abuse?" I strongly believe that the answer is "Yes", and that, generally speaking and as things are now, MS Windows and MacOs GUIs have done a better job of it than Linux GUIs, and are doing a much better job of it than the Linux CLI.
Simple things (like basic functionality) ought to be simple and the system ought to give visual clues as to what to do and how far the operation has progressed. That’s basic ergonomics.
Of course, and referring to the highly graphical example of the toilet, there is always *some* learning involved in using a tool (even using one’s own hands and legs involves some sort of training).
The question is "how much", and "how easy is it to correctly operate the appliance".
In the case of a toilet end-the user only has to memorize some general principles and the desired end-state. Specifically the need to memorize and reproduce a precise set of instructions is obviated by the design of the appliance.
Most parts of the actual use of a toilet are highly standardized and progress is very transparent. Even the most elaborate Japanese conveniences have sensible default settings which relieve the end-user of the need for detailed knowledge (or the need to be able to comprehend the instructions for use, which tend to be in Japanese).
The only difficulty that may arise is the operation of the flushing interface to finalize the session, but even then the overwhelming majority of interfaces basically consist of a switch that has to be operated, either by pushing, turning, pulling, or standing up. In the vast majority of cases an end-user is able to experiment without risking inconvenience or irreparable damage to essential assets.
In this vein one could identify two camps. One that insists that basic functionality should be safe, standardized and readily accessible through an easily recognizable and memorizeable interface.
And another that insists that, in the interests of efficiency, freedom of expression and-so-forth, the entire convenience ought to be commandline operated, and always ready to, without the slightest warning, dispose the entire contents of the convenience plus any nearby objects irrevocably into an industrial-strength shredder by specifying the appropriate option on said commandline.
Any complaints about loss of property (or relatives) to be greeted by more or less polite variations on the term "RTFM".
The above (very graphical) example precisely illustrates my view on the question of whether or not an essential (but totally subordinate) element like an operating system or a computer ought to be.
There is no reason for them not to be easy to use and fool-resistant besides laziness of the designers and builders.
‘Intuitive’ is is indeed used frequently to describe a desirable goal in man-machine interfaces. However, this is a terrible choice of word to describe the actual problems being discussed.
‘Familiar’ is better, but not great. Familiar suggests a learned action/response that we expect to find in future encounters with the same cue.
We are familiar with the visual cue that a vertical door handle suggests we should pull to open and a horizontal handle (bar) should be pushed to open. We are surprised and annoyed when the handles are reversed. This is a classic example of both human interface design we rely upon in every day life.
In my opinion, ‘consistent’ is the word which should be most closely associated to the desired goal of ease of learning / use. In most situations the door handles and actions they imply are consistent. Entering a new building where the handles are reversed will likely never become familiar.
There are two rooms in my house where the light switches are on the ‘wrong’ side of the door and even after 6 years in the house I still reach to the wrong location every time I fail to consciously think about where the switch is. This is another case of where a ‘familiar’ learned experience lets us walk into a home or building and ‘know’ where the light switch will be.
Consistency is also key to the Macintosh user interface which is often described as ‘intuitive’.
Beyond expecting something to happen when I click the mouse and expect something to happen or move the mouse and expect to see the pointer move in the same direction there are few things ‘intuitive’ about the Mac interface.
Back in the early days of Windows, a head hunter set up an interview for me with Apple for a sales position. At the end of the interview I told the Apple folks that I had two major reservations about working for them.
One of these was that I had extensive experience with minicomputer and IBM pc software and systems and like many of my peers considered Macs more toys than computers. (I mean really! No CLI?) I couldn’t see myself announcing to friends whom I had told that when they got a ‘real’ computer I might be able to help them with problems that now I was going to be selling these ‘toys’.
The Apple folks must have been convinced that I could sell their products because promised to send me a Mac with software if I would just promise to try it out.
When I first started learning PCs I had the advantage that DOS and CP/M were both derived from software I was familiar with, all of which incorporated a CLI or CLI ‘like’ interface for ‘high level’ system control and dedicated applications.
Besides the most popular PC application, Wordperfect, was first introduced on Data General computers and I was already an expert on it. It was virtually identical when they ported it over to DOS for PCs.
It ‘only’ took me about 3 months of self taught learning on a PC to be competent enough to charge for my help and advice on DOS and Wordperfect. I even picked up a smattering of knowledge of Novell networking ‘expertise’ along the way. The environment was familiar and the manuals were pretty good for each of these.
When the Mac Plus arrived with keyboard, mouse, external (2nd diskette drive) and a 20Mb external Hard Drive which proved to have the software loaded on it there were no manuals included. I called my Apple contact to ask when the manuals would show up and in essence they just laughed. Well, that pushed my pride button real hard.
I proceeded to visit the 3 local Apple dealers and restricted myself to 3 questions each in hopes that in the remote possibility I did take a job with Apple they wouldn’t remember me and my ignorance.
Three weeks after receiving the computer, I had an epiphany. Without embarrassment, I would have charged clients for my help and support on not only the Mac OS, but no less than 6 applications including Word. (You can judge how long ago this was by the fact that a 400k diskette had room for the Word program plus a couple of documents.)
I took the job with Apple and about 3 months later I finally put together why I had such a short learning curve.
Apple ‘forced’ programmers to be ‘consistent’ between programs. Open, Close, Print, Quit, etc. were always found in the same place in the menus. Error and operational messages were all the same in response to the same triggering events. Only functions and messages specific to the program appeared were ‘new’ or in different locations.
No matter what new program I tackled I started out 50% or even more of the way to being an expert because it was ‘consistent’ and therefore familiar. If I understood the function of the program everything else was a breeze.
During the same period, every DOS program had a different, ‘better’ user interface and had to be learned from scratch. It didn’t improve much when Windows was introduced and there is still a huge difference between the consistency on Macs and Windows PCs. (Linux is even less consistent than Windows in software and hardware.)
This experience with Macs and Don Norman’s book ‘The Design of Everyday Things’ made me the advocate of consistency in software (including Web design) human interfaces.
All of this has been good to me.
I was #1 in Apple Education Sales and turned in increasing sales each year which earned a nice paycheck and some great award trips.
And the inconsistency in the Windows world (both hardware and software) has earned me a good living since leaving Apple.
Why is clearly illustrated by an analysis I did of my practice in the mid 90s for a client considering switching from Macs to Windows. I went back through my records for a bit less than 2 years and compared my billings between the Mac systems and Windows systems I had contracts to support. Since I was the only Mac support person in the organization I did all the Mac support and supported a roughly equal number of Windows desktops and servers. (About 500 each.) Fully 92% of my billings were for Windows support.
Bottom line was I would have starved to death trying to make a living supporting only Macs.
I believe this is still true and give thanks every day to Redmond and Windows software and hardware developers for my comfortable lifestyle.
Let me offer just one other example of the power of consistency. Over the years virtually every DOS / Window client has lauded and/or cussed their software documentation. Mac users often had not even taken the shrink wrap off their documentation months after taking delivery.
Every ‘Windows’ manual had been read to at least some extent while many Mac users often can’t find theirs. A consistent user interface is the only explanation I can find.
Before anyone asks, my perception is the Mac users were generally more productive while the Windows user community had more ‘experts’ helping others.
If we want Linux to ever be a serious competitor on the desktop (and I surely do) we need either a Steve Jobs style dictator ruling the Linux user interface design or another form of ‘religious movement’ enforcing consistency.
At least this is my opinion.
What is needed is a simple, customizable shell that sits on the operating system…ultimately, all operating systems today do much the same thing…talk TCP/IP, manage files, manipuate text and graphics and interface with peripherals. The human factors designing for accessing that doesn’t need to be part of the operating system, but a shell on top of it. It should be common to all operating systems, but customizable to make use of any special features that the OS has, and to make the computer work for *you*, not force you to conform to the interface. Even just the simple thing of easily moving where the control key, for example, and increase the usablity for certain people (full disclosure…ME!).