Thanks for the shout out and links!
That timeline you linked to goes along with this article I wrote a few years ago:
Pie Menus: A 30 Year Retrospective.
By Don Hopkins, Ground Up Software, May 15, 2018.
https://donhopkins.medium.com/pie-menus-936fed383ff1#8546 https://donhopkins.medium.com/pie-menus-936fed383ff1#8546
The earliest known implementation of pie menus was in an early CAD system called PIXIE developed at Cambridge University by Neil E. Wiseman, Heinz U. Lemke, John O. Hiles, on a PDP-7 with a 340 vector display with a light pen.
Neil E. Wiseman, Heinz U. Lemke, John O. Hiles, PIXIE: A New Approach to Graphical Man-Machine Communication, Proceedings of 1969 CAD Conference Southampton IEEE Conference Publication 51, pp. 463–471.
https://www.donhopkins.com/home/documents/PIXIE%20a%20new%20approach%20to%20man-machine%20communication.pdf https://www.donhopkins.com/home/documents/PIXIE%20a%20new%20...
Flight of the PIXIE - Yuja Wang:
https://www.youtube.com/watch?v=jDrqR9XssJI https://www.youtube.com/watch?v=jDrqR9XssJI
Films from the University of Cambridge Library Archives:
https://www.cl.cam.ac.uk/library/archives.html https://www.cl.cam.ac.uk/library/archives.html
In 1986 Mike Gallaher and I together came up with the same idea, and I implemented a prototype proof-of-concept for the X10 window system I called "theta menus":
https://donhopkins.com/home/pub/piemenus/theta-menus/ https://donhopkins.com/home/pub/piemenus/theta-menus/
Mitch Bradley suggested the name "pie menu", and I implemented them in the X10 "uwm" window manager, which I integrated into Mitch's Sun Forth system so it was possible to script the window manager in Forth:
https://donhopkins.com/home/pub/piemenus/pietest/ https://donhopkins.com/home/pub/piemenus/pietest/
https://donhopkins.com/home/pub/piemenus/pietest/fuwm-main.f https://donhopkins.com/home/pub/piemenus/pietest/fuwm-main.f
X10 Pie Menu Window Manager:
https://www.youtube.com/watch?v=IJhvB6kwmog https://www.youtube.com/watch?v=IJhvB6kwmog
You could define both pie menus and linear menus in a special menu definition syntax in your .uwmrc file, and configure them to run various window management, application launching, and shell scripting commands. But there was no pie menu editor, just a text file defining the menus.
We performed an experiment to compare the speed and error rate of pie menus and linear menus, which I programmed in Forth to randomize and present the menus and measure the error rates and timing statistics.
Pie Menu Experiment:
https://www.youtube.com/watch?v=s0zEUi6p2ws https://www.youtube.com/watch?v=s0zEUi6p2ws
Implementing a Forth scriptable pie menu window manager for X10 led the way to implementing pie menus in PostScript for various versions of the NeWS window system. It was easy for me to make the transition from Forth to PostScript, which is much more like Lisp than like Forth, and NeWS had an object oriented programming system like Smalltalk which is great for implementing user interface toolkits.
Just the pie menus from All The Widgets:
https://www.youtube.com/watch?v=mOLS9I_tdKE https://www.youtube.com/watch?v=mOLS9I_tdKE
Ben Shneiderman demo: Don Hopkins and pie menus in ~ Spring 1989 on a Sun Workstation, running the NEWS operating system.
https://www.youtube.com/watch?v=8Fne3j7cWzg https://www.youtube.com/watch?v=8Fne3j7cWzg
PSIBER Space Deck Demo:
https://www.youtube.com/watch?v=iuC_DDgQmsM https://www.youtube.com/watch?v=iuC_DDgQmsM
HCIL Demo - HyperTIES Authoring with UniPress Emacs on NeWS:
https://www.youtube.com/watch?v=hhmU2B79EDU https://www.youtube.com/watch?v=hhmU2B79EDU
NeWS Tab Window Demo:
https://www.youtube.com/watch?v=tMcmQk-q0k4 https://www.youtube.com/watch?v=tMcmQk-q0k4
After NeWS, I made an X11 window manager based on "twm" called "piewm":
https://donhopkins.com/home/pub/piemenus/piewm/ https://donhopkins.com/home/pub/piemenus/piewm/
https://www.donhopkins.com/home/catalog/unix-haters/x-windows/i39l.html https://www.donhopkins.com/home/catalog/unix-haters/x-window...
Then I implemented pie menus for TCL/Tk on X11, which I used for the X11 version SimCity (which EA later relicensed under GPL-3 and released for the OLPC).
https://github.com/SimHacker/micropolis/blob/master/micropolis-activity/src/sim/w_piem.c https://github.com/SimHacker/micropolis/blob/master/micropol...
X11 SimCity Demo:
https://www.youtube.com/watch?v=Jvi98wVUmQA https://www.youtube.com/watch?v=Jvi98wVUmQA
Multi Player SimCityNet for X11 on Linux
https://www.youtube.com/watch?v=_fVl4dGwUrA https://www.youtube.com/watch?v=_fVl4dGwUrA
Playing SimCity for X11 on Linux with Pie Menus in San Francisco:
https://www.youtube.com/watch?v=1p7_fapUq20 https://www.youtube.com/watch?v=1p7_fapUq20
I later implemented the pie menus in The Sims, which you can see an early version of here, including a graphical zooming/rotating pie menu that didn't make it into the game:
The Sims Steering Committee - June 4 1998:
https://www.youtube.com/watch?v=zC52jE60KjY https://www.youtube.com/watch?v=zC52jE60KjY
Another take on pie menus that did make it into the game was the object placement tool that let you rotate objects both as you picked them up and set them down, like an invisible "direct manipulation pie menu" (see the demo of object placement tool placing chairs around the dining room table at 4:45):
https://www.youtube.com/watch?v=-exdu4ETscs https://www.youtube.com/watch?v=-exdu4ETscs
Not only can you rotate it while placing it down, but also while picking it up. Clicking picks up or places down without rotating, but pressing and moving rotates to face the direction of motion. Unfortunately, later versions of The Sims didn't implement that simple feature, so instead you have to use the keyboard or repeatedly click multiple times until it rotates around to the direction you want, which is much more difficult and less natural than simply dragging in the direction you want it to face when picking up or placing down.
Here's a later web based version of Micropolis (open source SimCity) with pie menus implemented with OpenLaszlo / Flash -- at 3:00 it demonstrates how the pie menus work as an alternative to the traditional tool palette, and once you learn the pie menus you can hide away the palette to gain many acres of SimCity "screen real estate":
https://www.youtube.com/watch?v=8snnqQSI0GE https://www.youtube.com/watch?v=8snnqQSI0GE
ActiveX Pie Menus:
https://www.youtube.com/watch?v=nnC8x9x3Xag https://www.youtube.com/watch?v=nnC8x9x3Xag
The ActiveX pie menus were implemented as an OLE Control, which supported editing via a tabbed property sheet using traditional gui widgets like buttons, tree editors, text editors, and a wysiwyg (but not editable) preview. One nice feature was that you could simply type in an indented outline into the text editor to produce a whole tree of nested menus, which saved a whole lot of pointing and clicking gui widgets to create the menus and items one by one. But I hit a wall because I wanted more control over the graphical presentation and dynamic feedback, that was extremely difficult to program with MFC/Win32/C++/GDI, and I wanted the full features of a web browser to render each item, including animated gifs, css styles, etc.
JavaScript Pie Menu IE5 Behavior Components:
https://www.youtube.com/watch?v=R5k4gJK-aWw https://www.youtube.com/watch?v=R5k4gJK-aWw
So implementing pie menus inside the web browser in JavaScript with DHTML and CSS was the obvious next step, which also made it easy to define menu structures with XML and presentation with HTML. You could put anything you wanted into the pie menu center or items. But Microsoft's IE5 Behavior Components were a dead-end.
JQuery Pie Menus:
https://github.com/SimHacker/jquery-pie https://github.com/SimHacker/jquery-pie
So later on after jQuery came along I implemented pie menus for jQuery, using jQuery-UI.
Unity3D Pie Menu Demo:
https://www.youtube.com/watch?v=sMN1LQ7qx9g https://www.youtube.com/watch?v=sMN1LQ7qx9g
Pet Rock Remote Control -- Touch screen pie menu interface on Pocket PC for sending commands to rocks:
https://www.youtube.com/watch?v=SG0FAKkaisg https://www.youtube.com/watch?v=SG0FAKkaisg
In those earlier days was there a concept of “UX?” Or even “UI?” - the only thing I’ve come across is “human to machine design” but that’s a vague role/title. It seems that anyone working on software from my ignorant perspective was expected to also know what we call “information architecture / UI / ux” today, to some extent anyway? Any insight you can shed here on the history / context? When did software even start getting associated with “designers?”
Also what did you find most disappointing that isn’t around but was back then? What was a surprising failure / surprising success?
Thanks for taking the time.
From my “historical diving” and personal experience; I’m most surprised that almost all computer form factors and software used today was “engineered” at Parc, even down to the UI/ux. Then surprised Forth didn’t win out as a language but I guess it didn’t get popular for whatever reason. Then similarly to Parc it’s weird how much of the engineering powering the engineering is bell labs.
There is ACM SIGCHI (Special Interest Group for Computer Human Interaction), but Ben Shneiderman made it a point to name his lab HCIL (Human Computer Interaction Lab), to put Humans BEFORE Computers! ;)
The term "interface designer" has degenerated into describing people who are merely shallow cargo cult fashion oriented graphic designers, and never heard of nor care passionately about important topics like Fitts's Law, Hick's law, steering law, power law of practice, keystroke level model, GOMS model, human processor model, working memory, human factors, interaction design, direct manipulation, cognitive psychology, ergonomics, accessibility, anthropometry, ethnology, information architecture, user research, usability testing, etc.
https://en.wikipedia.org/wiki/Fitts%27s_law https://en.wikipedia.org/wiki/Fitts%27s_law
https://en.wikipedia.org/wiki/Hick%27s_law https://en.wikipedia.org/wiki/Hick%27s_law
https://en.wikipedia.org/wiki/Steering_law https://en.wikipedia.org/wiki/Steering_law
https://en.wikipedia.org/wiki/Power_law_of_practice https://en.wikipedia.org/wiki/Power_law_of_practice
https://en.wikipedia.org/wiki/Keystroke-level_model https://en.wikipedia.org/wiki/Keystroke-level_model
https://www.cs.umd.edu/~golbeck/INST631/KSM.pdf https://www.cs.umd.edu/~golbeck/INST631/KSM.pdf
https://en.wikipedia.org/wiki/GOMS https://en.wikipedia.org/wiki/GOMS
https://en.wikipedia.org/wiki/Human_processor_model https://en.wikipedia.org/wiki/Human_processor_model
https://en.wikipedia.org/wiki/Working_memory https://en.wikipedia.org/wiki/Working_memory
https://www.cs.umd.edu/~ben/papers/Shneiderman1983Human.pdf https://www.cs.umd.edu/~ben/papers/Shneiderman1983Human.pdf
https://www.cs.umd.edu/~ben/goldenrules.html https://www.cs.umd.edu/~ben/goldenrules.html
https://en.wikipedia.org/wiki/Direct_manipulation_interface https://en.wikipedia.org/wiki/Direct_manipulation_interface
https://www.nngroup.com/articles/direct-manipulation https://www.nngroup.com/articles/direct-manipulation
https://www.cs.umd.edu/~ben/papers/Shneiderman1983Direct.pdf https://www.cs.umd.edu/~ben/papers/Shneiderman1983Direct.pdf
https://www.cs.umd.edu/~ben/papers/Shneiderman1975Cognitive.pdf https://www.cs.umd.edu/~ben/papers/Shneiderman1975Cognitive....
https://www.researchgate.net/publication/264042374_Handbook_of_Human_Factors_and_Ergonomics_Fourth_Edition https://www.researchgate.net/publication/264042374_Handbook_...
https://en.wikipedia.org/wiki/Usability_testing https://en.wikipedia.org/wiki/Usability_testing
https://www.nngroup.com/articles/usability-testing-101/ https://www.nngroup.com/articles/usability-testing-101/