The Humane Interface
Last updated at 12:47 am UTC on 17 January 2006
Posted to the squeak-dev list by dgc on 2/19/2003
Added to the Swiki by dgc on 2/19/2003
As long as we're reviewing how approachable Morphic is for the novice...
Here are several of Jef Raskin's ideas from his book "The Humane Interface" about applying cognitive psychology to make user-computer interactions more efficient, consistent, and friendlier.
It seems to me that some of these are accomplished very well by Squeak and some could make the whole environment much more approachable for the naive. You can find this summary listed here as well:
Subconscious Finger Habits - Create, utilize, simplify, and support the user's subconscious typing and mouse movement habits.
Tool should Disappear from User's Attention - The use of the tool should disappear from the user's conscious awareness or attention.
Uninterrupted Concentration on Task - Only the tasks or the creation of content should be conscious in the user's awareness. This allows uninterrupted concentration on the task.
Capitalize on User Habituation - Make the habits that a user naturally forms when they interact with any interface work for them instead of against them. Capitalize on user habituation as much as possible.
Instant-On - User should be able to do work immediately without waiting for the computer to boot up.
Never Lose Anything - Never lose anything by accident. Eschew "Save" for "Unlimited Undo".
Never Interrupt the User's Attention - Never interrupt the user's attention/workflow unless absolutely necessary. If a user's decision can be delayed, allow them to attend to the error message when they are ready.
Never Move the Data Input Focus - Never move the data input focus or click focus unless the user requests it. (i.e. change menu entries just before user clicks on prior menu entry, or bring up a dialog box while user is typing so that they press enter on the dialog box rather than their text, or changing window focus while typing.)
Non-Modal - The entire user interface should be non-modal including the command set, the keyboard input, and the mouse button input. (Quasi-modes are OK.)
Data Entry at Any Place and Any Time - Allow the typing of a command or data entry at any place and any time. Allow the user to move the data to an appropriate place after creating it rather than always navigating first to the data entry field and then entering the data after that.
Multiple Selection of Data for a Single Command - Allow the simultaneous multiple highlighting/selection of items for the items to be operated on by a single command from the command line, key stroke, menu selection, etc.
Easily Move Any Unit of Data - Easily move any unit of data, block of data, range of data, or data matching criteria to any other physical storage place in the system or any other data type.
All Data Presented in a Searchable Linear Sequence - Represent all user-accessible data and user-created data in a searchable linear sequence. Most users think in terms of a serial sequence of data presentation rather than a matrix or multilink network of data representation.
Shortcuts to Quickly Search Forward or Backward - Ability to easily LEAP (r) forward or backward to any data block or any data type by an incremental, sequential search on content or data type label with auto-completion of the search field.
Unified Storage Structure - Only use "documents" for exchanging data with other systems or applications. Keep all data in a shared, indexed, unified storage structure, database, or image.
Myth of the Beginner-Expert Dichotomy - A truly efficent user interface will look the same for the beginner and the expert. Both would use identical search mechanisms. The beginner simply creates or has provided more linking text that he/she looks for to build the needed habituation.
- Whole Purpose is to Create - Remember: The whole purpose for using a computer is to create (usually more information, more instructions, or a memory or experience in one's own mind)
Jeff Raskin also has several other innovative ideas which, if implemented,could greatly enhance future versions of Squeak. Including...
- A brilliant concept for an interface for navigating one's environment, Zoom world. You can see an example of this in his book which was developed for a hospital.
- Not as original but still very is useful incremental searches.
He also advocates concepts which are close to what already exists in the Squeak environment.
- Such as the elimination of applications and the OS. Developer's in such a scenario would sell commands not applications.
- In addition, the elimination of file systems.
An explanation how this would work can be found in his book. As well, his web site has some descriptions of these concepts and usage. http://www.jefraskin.com/
hmmm..."talk doesn't cook rice." Beyond that, these are very well-intentioned but muddled comments by someone who is obviously not a programmer. :-) Doug Clapp; firstname.lastname@example.org
Could you be more specific? What's the interrelationship between intentions, the programmer, the ability to program, & the application user? dgc