The Future & History of the User Interface
An anonymous reader writes "The Mac Observer is taking a look at UI development with lots of video links to some of the latest developments in user interfaces. It also has links to some of the most interesting historical footage of UI developments, here's one of the 1968 NLS demo. From the article: 'Sadly, a great many people in the computer field have a pathetic sense (or rather ignorance) of history. They are pompous and narcissistic enough to ignore the great contributions of past geniuses... It might be time to add a mandatory "History of Computers" class to the computer science curriculum so as to give new practitioners this much needed sense of history.'"
Some obvious trivial faults:
For reference, just look at your screen now, and watch how much of it is covered by empty "gray areas". When you open a new window, does it hide gray areas, or real information?
This is even more absurd when there are just a couple of windows, hiding each other, when the entire screen is free space! The computer expects YOU to work for HIM and move these windows from hiding each other.
This phonemenon is also felt in list boxes, where you are expected to adjust the column widths manually to not be too short/too long, even when there is an optimal adjustment readily available. You again have to work for the computer, and ask for a ctrl+plus to set it up. Most people don't even know about ctrl+plus in column-listboxes.
Some programs make it even worse, and don't let you resize their windows when the entire screen is free, and you have to scroll through their data in a little window.
What's so fascinating about this example - is how common it is across platforms, programs, operating systems.
The feature is called "shortcut keys" and yet everyone is implementing it as "shortcut symbols".
This is terrible - when you switch between languages, all shortcut keys break!
The fact that fixing this would require modifications of all existing GUI programs is a certificate of poor architecture of GUI software.
There are many more trivial issues to fix. Until they fix these, I find it very funny to talk about future directions for the User Interface. We haven't even gotten the basics right yet!
In the long term, we'll be communicating with computers the same way we communicate with our pets, kids, and coworkers - with a combination of body language, voice, gestures, etc.
In the short term, we'll see Longhorn slowly and sloppily copy whatever Apple's doing; and we'll see KDE and Gnome both copying the bad parts of what the Gnome and KDE are doing respectively; and we'll see all real computer users using emacs/vi/pine/xterm/screen like they always did.
At least not to common consumer devices. I cannot even count the number of remote controls, microwaves, cellphones, dishwashers, ATMs, and other devices which are seem to be designed completely without thought for the human who will need to use them.
Remote controls - ever heard of making the buttons distinguishable by FEEL, so I don't have to look down to tell whether I'm going to change the volume or accidentally change the channel or stop recording?
Microwaves - make the buttons we use all the time bigger and obvious. I can't use my microwave oven in near dark because the stupid thing's start button is indistinguishable from the power level button. That's just dumb. I don't need two different buttons that say "Fresh vegetable" and "Frozen vegetable" which I never use; and I have to babysit the popcorn anyway, so I don't need a "popcorn" button hardcoded for some random time limit. A microwave should have a keypad for entering time and bigger buttons labeled +1minute, +10seconds, ON, and OFF. That's all 99% of people use anyway.
The people who design interfaces should be made to use them for long enough so that they work out at least the most obvious design flaws.
I keep putting off buying a new cellphone because I know I will have to learn a new interface even to set the freaking alarm clock and it will probably take six menu choices to do it.
it's a blue bright blue Saturday hey hey
All that gestural stuff will make my work better exactly how? It's not gestural - it's just arm-waving of the "IN THE FUTURE..." variety.
HOWEVER: the I/O brush IS very k3wl. I can think of all kinds of fun stuff to do with that. It's an app, not a UI, but it's definitely fun.
RS
Shoes for Industry. Shoes for the Dead.
Dude, If you win the lottery have some fun. Buy a Ferrari, hang out on a tropical island for a while, do whatever you want. You don't have to go back into full-time education if your're rich.
"I am a die-hard capitalist....but unethical, lying, bastard capitalism is really no better than socialism" - unknown
My cynical viewpoint is that certain parts of history are buried quite deliberately. Or at least I can understand you not being encouraged to research it, to some people it's controvertial. Why? Partly because of the current madness regarding patents and partly because modern culture encourages an arrogant disconnect from our greater history. No longer is it "the shoulders of giants" we stand on, kids today seem to think everything was invented in the last 20 years, instead we live on the roof of a great skyscraper built by magicians. To understand your technological history is to grasp the context, the limitations, and then to develop a little healthy contempt for soothsaying futurist punits who whip up a frenzy of hype around each dull and trivial new technological advance.
Many of the things we believe are new are just rehashed ideas that were ahead of their time. As we go forward, ideas that were too advanced get second chances at coming into the mainstream. Sometimes they succeed, other times they have to wait for the third or fourth chance. A generation kept in ignorance of its history can be fooled into thinking those old ideas are the creation of new developers.
Please, write your history of computing, research it well and thoroughly starting with the Babylonians, but remember to include multiple perspectives, generally unquoted and unrecognised foriegn acheivements, look for prior art on every claim made in the last 30 years and you'll
probably find the person with their name to the acheivement "borrowed" it from work within a timeframe of 10-50 years previous.
Nothing upsets "historians" with a vested interest more than revisionists, but it's a necessary part of the very formation of history and informed hindsight .
Seriously. Most of that stuff can be done with two mice. Why hasn't anyone implemented that yet? Just grab the image from the ends and drag to resize, or drag one end to rotate, or whatever. Two mice would be much more natural. Sure, you'd probably use the one in your good hand more, but for some stuff it would be great (perhaps handling 3D models?).
Send email from the afterlife! Write your e-will at Dead Man's Switch.
During my degree, I studied a module which was essentially "The History of Programming Languages".
:)
Suffice to say, it was the most soul destroying, mind numbing, useless waste of time that anyone on my course ever encountered. I'm sure it's down to the lecturer's "style", but it was really, really god awful.
But I agree, perspective is important...just like everything though, it has to be taught well!
take these fancy UIs and use them to control a calculator and then decide if it right for the job.
"Right for the Job" is the key phrase.
There are three primary UIs:
the command line (CLI)
the Graphical User Interface (GUI)
and the side door port used to tie functionality together. known by many different names, but in essence an Inter Process Communication Port (IPC)
Together they are like the primary colors of light or paint, take away one and you greatly limit what the user can do for themselves,
But if they are standardized with the recognition of abstraction physics (in essence what a computer impliments) then the user would be able to create specifically what they need for the job they do via understanding and applying abstraction physics. The analogy would be mathmatics and the hindu-arabic decimal system in comparison to the more limited roman numeral system.
There are all sorts of user interfaces that can be created but they all are made up of some combination of the primary three, perhaps lower down on the abstraction ladder but none the less there.
The reason why this is unavoidable is simple due to the nature of programming.
Programming is the act of automating some complexity, typically made up of earlier created automations (machine language - 0's and 1's is first level abstraction - all above it is an automation). The purpose of automating some complexity is tocreate an easier to use and reuse interface for that complexity. And we all build upon what those before us have created. Its a human unique characteristic that make its our natural right and duty to apply.
What the failure of so called computer science is guilty of is distraction by the money carrot, starting with IBM and wartime code cracking paid for by government/tax payers.
This distraction has avoided genuine computer science, or abstraction physics as it would be far more accurate in description.
Abstraction physics to the creation and manipulation of abstractions as mathmatics is a creation and manipulation of numbers, as physics and chemistry is a creation and manipulation of elements existing in physical reality.
With the primary three colors of paint you can paint anything you want, but you cannot call a painting "the painting" any more than you can call a mathmatical result mathmatics. Nor can you call some interface built upon the primary UIs the silver bullet of UI's.
All this will become much more clear, common and even second nature once we all get past the foolish fraudlent idea that software is patentable.
A roman numeral accountant, in defending his vested interest in math with roman numerals, promoted that only a fool would think nothing could have value (re: the zero place holder in the hindu arabic decimal system.)
Here's a listing of Human Factors (and associated) graduate programs, which is published by the HFES. http://www.hfes.org/web/Students/grad_programs.htm l
Todd
-- !todd erases a red dot! I steal music on the internet.
But for a breastfed child a nipple on a bottle is an intuitive interface.
Ludwig Wittgenstein
Apple, in its early days, had a good sense of what was important in a user interface, and that was expressed in the "Apple Human Interface Guidelines". Much of that knowledge has been lost.
One of the original Apple rules was "You should never have to tell the computer something it already knows". Consistently applying this rule requires a clear separation between infomration about the host environment and individual user preferences, something most programs don't do well. Apple was reasonably faithful to that rule in their early days, but over time, got sloppy. Microsoft never did as well, and it was an alien concept in the UNIX world.
It's common, but wrong, to bind environment decisions at program install time, which means that a change in the environment breaks applications in mysterious ways. The whole concept of "installers" is flawed, when you think about it. You should just put the application somewhere, and when launched, it adapts to the environment, hopefully not taking very long if nothing has changed. That was the original MacOS concept.
Much of the trouble comes from failing to distinguish between primary and derived sources for information. "This program understands .odf format" is primary information, and should be permanently associated with the program itself and readable by other programs. ".odf documents can be opened with any of the following programs" is derived information, and should be cached and invalidated based on the primary information. "I would prefer to open .odf documents with OpenOffice" is a user preference. None of the mainstream operating systems quite get this right. That kind of thing is the frontier in user interfaces, not eye candy.
Agreement here too.
My biggest gripe with today's computer interfaces is that attempting to funnel everything you might want to do through a mouse plus (if you're lucky) a keyboard forces you (as an interface designer) to make a difficult decision: either waste huge amounts of screen real-estate on functions you need to include, or hide them away.
What we need are interface devices that aren't so bandwidth limited. When we want to make the computer perform an action, all we are generally able to do is locate it on the screen and say "Do." On systems with multi-button mice the situation is somewhat better. Most Firefox users are familiar with "left click to follow a link, middle click to open it in another tab, and right click to get an [ick] context menu" idiom. Scroll wheels are another instance of a bandwidth-increasing addition to the system. Rather than clicking an arrow to scroll, we are now able to spin a wheel while pointing in the general area of the thing we wedant to scroll.
Some systems put the physical controls available to even better use. The Sam text editor, its successor Acme, and basically all of the Plan 9 operating utilize the mouse buttons to perform distinct and consistent actions. In Plan 9, button 1 selects, and the other two buttons, when used in conjunction with it, perform other useful actions. The exciting feature of this setup is that it moves the selection of possible actions out of the computer, where navigation is inefficient, and puts it literally under your fingertips. Rather than selecting an object on the screen then selecting an action, or vice versa, one can simply point at it and say "do this." The ability to convey specific actions in one fell swoop is what makes command line junkies (myself included) swing the way they do. What could be more exciting than marrying that power with a GUIs flexible expression?
An even more extreme example is the five button keyboard (for the left hand) + three button mouse featured in the Doug Engelbart video linked from the summary. I'm not sure how his system used them, but this setup allows for eight functions using the most obvious mapping, many more than modern interfaces. Not only that, but with chording, it's possible to increase the number of possible actions to a dizzying 255, which is probably way too many to actually make use of*: Engelbart's system uses typed commands as well as clicks rather than attempting to assign a meaning to each combination of button presses. One good way to cope with the number of possibilities is to assign a general funtion to each button, and to combine those functions to perform actions. For example, if the left mouse button selects text, the middle button pastes it, and the right mouse button cuts it, one can copy by selecting with LMB, then pressing RMB, MMB in succession. Other button actions might be "system" to trigger global system functions, "window" to do window management and "inspect" to look more closely at an item. What might happen when you press these together? Exposé, anyone? But without reaching for the keyboard.
Anyone interested in user interfaces should take a look at the Sketchpad computer program for starters, which was simply amazing, and at "Alan Kay: Graphical User Interfaces" on Google Video. GUIs have a rich history that is not evident in modern interfaces.
* This is a good thing! Even when a the system allocates a set of global button presses and applications implement their set of commands, there will still by plenty left over for the rest of us to allocate as we see fit. This is the one point where I disagree with Bunions: I love that multimedia keyboards aren't standardized, because it means that programs don't depend on the buttons they provide, which in turn gives me 32 keys (on the keyboard I have) that I can bind to any action I want, without losing any functionality.
I can't think of any reason why someone would want to fake a 1968 computer GUI video but there are several things here that confuse me.
1. The mouse and GUI were not invented until the 1970's by Xerox. In 1968 the microprocessor hadn't even been born yet.
2. Look at the headset that the guy is wearing. They did not have small compact, against the ear, short tube microphoned, headsets in 1968. They used around the ear headphones hte size of your fist with a boom microphone sticking out the side. They just did not have those kinds of headsets back then. Look at any vintage NASA or military video, and they had the best that money could buy.
And last but not least, despite the fact that there were no micro processors in 1968, there were also no video displays capable of rendering a rasterized mouse cursor..... They used teletype formated rows and columns of ASCII characters. Hell in 1968 even super computers still used teletype terminals and punch cards......
It looks like a well done fake using computer effects to age the video.
As an interface/interaction designer, your product is like your baby, with all of its quirks and whatnot. Even in the face of criticism, rarely would designers "go back" on their decisions. That would force them to acknowledge two things: 1) my baby is ugly! 2) i was wrong!
And who wants to do that?
For simple things, sure, a touchscreen works wonders. Kiosks and self-contained systems (such as medical equipment) would be complicated without them.
But for any other general-purpose computer, the touchscreen lost out long ago. There were a number of touchscreen monitors for sale in the 90s, all the way to today, but they never made inroads over the mouse. The problem is two-fold:
1. people don't like raising their arms to horizontal and manipulating a screen while seated. It is an unnatural position. See, normally when you're STANDING and your arms are horizontal, you are using your entire body as a pivot point. Watch a painter at-work: they move more than just their upper-body, and this makes the work feel "easier" because the loads are distributed to more muscles. When you sit at a touchscreen, you have to use just the upper-body to move and keep your hands horizontal, causing you to wear out faster.
2. touchscreens are inherently large with low-resolution, like all monitors. What this means is you end up moving your finger a lot further than you should have to, because your shoulder-arm-wrist-hand-finger is capable of much higher reolution than the screen (typical mouse resolution is 600 dpi, typical screen resolution is 100 dpi). The end result is more strain than you should have to endure.
In fact, the modern touchpad on laptops is proof that these two issues make touchscreens unusable:
* touchpads are MUCH higher resolution than their respective screens, yet they are as usable as mice or trackballs.
* touchpads are at the horizontal position, a much more natural position for your hands while seated.
Leave the touchscreens to their niches: self-contained, rugged computers, and kiosks. For seated computing, the mouse is a better extension of the human hand than a touchscreen will ever be.
Man is the animal that laughs.
And occasionally whores for Karma.
Use voice recognition on a phone tree lately? It is improving. Hell the default voice-recognition that comes with XP works accurately enough with a little training. Application commands are part of the package -- why not OS commands?
I can map my own shortcut keys if I desire. Have I simply missed the possibility of how to map a selected vocabulary of voice commands to my OS? Without having to pay for Dragon Naturally Speaking, that is. (I'm cheap, and I have good projection.)