
Direct Manipulation: A Step Beyond Programming Languages (1983) [pdf] - panic
http://www.csc.kth.se/utbildning/kth/kurser/DH3050/hcihist11/DM.pdf
======
DonHopkins
Wow, Ben Shneiderman looks so young in that photo. He's still hard at work
making computers easier for people to use, and he just published a major
update to his classic book, "Designing the User Interface: Strategies for
Effective Human-Computer Interaction", which just went to the printers and
will be available on April 26. [1]

I enjoyed working with him at the University of Maryland Human Computer
Interaction Lab, and the experience deeply influenced everything I've done
since.

Ben is the human who suggested the field be called "Human Computer
Interaction" instead of "Computer Human Interaction", to put humans first.

He defined the term Direct Manipulation [2] as:

1) continuous representation of the objects and actions,

2) rapid, incremental, and reversible actions, and

3) physical actions and gestures to replace typed commands.

He also came up with the blue underlined hypertext link, as well as embedded
graphical links [3] for the "HyperTIES" system [4].

Here's a paper I published when I was at HCIL, about a visual PostScript
programming environment that featured "direct stack manipulation": "The Shape
of PSIBER Space - October 1989". [5]

Ben's an avid photographer, and has published this photo history of SIGCHI
conferences. [6]

[1] [http://www.amazon.com/Designing-User-Interface-Human-
Compute...](http://www.amazon.com/Designing-User-Interface-Human-Computer-
Interaction/dp/0321537351)

[2]
[https://en.wikipedia.org/wiki/Direct_manipulation_interface](https://en.wikipedia.org/wiki/Direct_manipulation_interface)

[3]
[https://www.youtube.com/watch?v=fZi4gUjaGAM](https://www.youtube.com/watch?v=fZi4gUjaGAM)

[4]
[http://www.cs.umd.edu/hcil/hyperties/](http://www.cs.umd.edu/hcil/hyperties/)

[5]
[http://www.donhopkins.com/drupal/node/97](http://www.donhopkins.com/drupal/node/97)

[6]
[http://www.sigchi.org/photohistory/lib_viewer.jsp?lib=chi](http://www.sigchi.org/photohistory/lib_viewer.jsp?lib=chi)

------
erichocean
Unix and the entire Unix OS/process model is an impediment to "direct
manipulation" programming.

------
YeGoblynQueenne
It's funny to see the SPF editor as an example of a friendly, easy to use
editor. I guess, if your measuring stick is ed then everything looks user-
friendly.

Edit: I use (I)SPF at work. It's ... serviceable but I wouldn't call it
friendly. Frex, undoing is complicated- sometimes you can undo the last
command by entering UNDO in the command line, sometimes you have to enter
RESET to get to the last saved version and some times you have to enter CANCEL
to exit without saving and open your file again. Not to mention, if you press
PF3 then it exits _and saves_ so it's very easy to lose your work.

Then again, for sheer existential dread nothing beats being trapped in ed's
command line for the first time. On a mainframe. With no man pages. And with
the lights off.

------
mark_l_watson
Nice paper and it is interesting to see something 33 years old. The paper
reminded me of the excitement of graphic 'live' data displays on my old lisp
machine and also on Smalltalk systems. A little off topic but: even if you
don't care about the Smalltalk programming language it is worthwhile playing
with Pharo Smalltalk and packages like Roassal2.

------
kazinator
The paper seems a little out of touch for its time. A lot about text editing,
and screenshots of games that were long dated by 1983. Yet almost no mention
of direct manipulation as an operating system and application environment! In
the consumer market, the Apple Lisa came out that year (screenshot:
[https://en.wikipedia.org/wiki/File:Apple_Lisa_Office_System_...](https://en.wikipedia.org/wiki/File:Apple_Lisa_Office_System_3.1.png)).
The first Mac was only a year away. These cribbed ideas seen at Xerox PARC in
the late 1970's.

~~~
seanmcdirmid
People found out about these concepts in the 60s and 70s via exploration and
experience. Shneiderman looked back on what was done (the article has many
real examples), and generalized on what was really going on. Such
generalizations are then invaluable when we want to build new systems, so we
just don't blindly cargo cult on what was done before.

~~~
DonHopkins
Ben Shneiderman has made a career of performing controlled experiments,
measuring the efficacy of different techniques, comparing them to each other
in different contexts, and teaching his students the importance of empirical
testing, balanced with human centered design. [1]

He and Ike Nassi developed a goto-less visual programming technique called the
Nassi-Shneiderman diagram [2]. He not only studied and summarized the status
quo of flowcharting, but also conducted experiments that suggested flowcharts
were not helpful for writing, understanding, or modifying computer programs.

He's also done a lot of work with information visualization [3], including
tree maps and dynamic query sliders, and developed systems and published
papers that have inspired many other people.

He and Christopher Williamson developed and empirically evaluated dynamic
query sliders in the ingenious Dynamic Home Finder [4], which applies direct
manipulation and infovis techniques to dynamic real time visual real-estate
database queries. That inspired me to implement a similar real time
information visualization technique in SimCity [5].

By studying, measuring, comparing, and generalizing on what was really going
on, he came up with these eight golden rules for interface design:

1) Strive for consistency. Consistent sequences of actions should be required
in similar situations...

2) Enable frequent users to use shortcuts. As the frequency of use increases,
so do the user's desires to reduce the number of interactions...

3) Offer informative feedback. For every operator action, there should be some
system feedback...

4) Design dialog to yield closure. Sequences of actions should be organized
into groups with a beginning, middle, and end...

5) Offer simple error handling. As much as possible, design the system so the
user cannot make a serious error...

6) Permit easy reversal of actions. This feature relieves anxiety, since the
user knows that errors can be undone...

7) Support internal locus of control. Experienced operators strongly desire
the sense that they are in charge of the system and that the system responds
to their actions. Design the system to make users the initiators of actions
rather than the responders.

8) Reduce short-term memory load. The limitation of human information
processing in short-term memory requires that displays be kept simple,
multiple page displays be consolidated, window-motion frequency be reduced,
and sufficient training time be allotted for codes, mnemonics, and sequences
of actions.

\----

[1] An Empirical Comparison of Pie vs. Linear Menus:
[http://www.donhopkins.com/drupal/node/100](http://www.donhopkins.com/drupal/node/100)

[2] Nassi-Shneiderman diagram:
[https://en.wikipedia.org/wiki/Nassi%E2%80%93Shneiderman_diag...](https://en.wikipedia.org/wiki/Nassi%E2%80%93Shneiderman_diagram)

[3] InfoVis:
[https://en.wikipedia.org/wiki/Information_visualization](https://en.wikipedia.org/wiki/Information_visualization)

[4] Dynamic Home Finder:
[http://hcil2.cs.umd.edu/trs/92-01/92-01.html](http://hcil2.cs.umd.edu/trs/92-01/92-01.html)

[5] SimCity Frob-O-Matic Dynamic Zone Filter:
[https://youtu.be/_fVl4dGwUrA?t=3m35s](https://youtu.be/_fVl4dGwUrA?t=3m35s)

