The Canon Cat: The Writing Information Appliance (2004)
canoncat.org
canoncat.org
Even if I don't necessarily agree with everything in it, it gives a meaningful vantage point from which to offer constructive criticism of an interface.
(Even just the advice about about avoiding modality was extremely helpful.)
BTW, there's a Canon Cat emulator that runs on the browser at: https://archive.org/details/canoncat
But of course, it's the right format for the job. He didn't need to format or illustrate it; the publisher had professionals for that. He needed to do the easy thing that got the content to those professionals.
And yeah, the book absolutely changed my life. Or at least the way I design UI.
I'm sorry ZUIs didn't take off. I incorporated them into things I was doing, but users didn't especially respond to them, so I stopped.
Demo of the Canon Cat computer released in 1987 with 'leap' feature [video] - https://news.ycombinator.com/item?id=29423545 - Dec 2021 (1 comment)
Canon Cat - https://news.ycombinator.com/item?id=26213934 - Feb 2021 (31 comments)
Leap Technology (keyboard vs. mouse on a Canon Cat machine, ca 1987) - https://news.ycombinator.com/item?id=22042900 - Jan 2020 (1 comment)
Canon Cat Emulation - https://news.ycombinator.com/item?id=18032916 - Sept 2018 (2 comments)
Canon Cat Resources – Jef Raskin's Forth-Powered Word Processing Appliance - https://news.ycombinator.com/item?id=14650365 - June 2017 (23 comments)
The Canon Cat - https://news.ycombinator.com/item?id=6978587 - Dec 2013 (30 comments) (<-- "My uncle was one of the programmers on the Cat project")
Canon Cat Documents Archive - https://news.ycombinator.com/item?id=3394546 - Dec 2011 (8 comments)
Canon Cat - https://news.ycombinator.com/item?id=595744 - May 2009 (15 comments)
> Leap Technology (keyboard vs. mouse on a Canon Cat machine, ca 1987) - https://news.ycombinator.com/item?id=22042900 - Jan 2020 (1 comment)
Wow, thanks! I did miss that story (same video in both HN discussions) which is very relevant to my interests.
Watching the video, I find that the way I move around code in Emacs is very similar to the “Leap” technique in the Canon Cat, with exactly the benefits they claim. I even have a dedicated “Leap” thumb key in my keyboard, a programmable Dygma Raise (https://dygma.com/) where I mapped one of the thumb keys to the “Find” keycode, and then that in Emacs to incremental search.
It is still limited to the current buffer, whereas the Canon Cat’s Leap seems to work across documents. I hadn’t thought of that but there are ways to do it in Emacs, for instance searching interactively in all open buffers: https://stackoverflow.com/questions/2641211/emacs-interactiv...
He recommended "The Psychology of Human-Computer Interaction" (Card, Moran, et al) From that point forward, all roads led from Fitt's Law.
Now we can emulate any idea you want to try in a web browser, emulator, etc. It's surprising we don't have a flood of new OS ideas, but at least now we can run things like this in emulation.
It's indeed surprising that there are not more new ideas around. Recent noise is only about bigger, faster and cheaper.
There are lots of new ideas... if you know where to look ;-) The problem is that, being new, they are neither widely distributed nor as well refined as the old ones.
Keep an eye on 'modern note taking' productivity tools in the orbit of 'second brain' or 'networked thought'; they are upgrading many of the principles of the Canon Cat to the current networked environment, and follow through on the spirit of the classic "augmenting the human intelect" dream.
I believe they have the potential to replace the outdated desktop metaphor, and offer a digitally native metaphor for information processing and productiviy.
Look for modern notetaking apps (Notion, Obsidian, logseq, Airtable, Roam Research... and "alternatives to" any of those) to see what style of knowledge management I'm talking about (there are two main varieties - the "outliner" and the "user-friendly relational database", with a lot of overlap between them).
Were the Cat and the Epson HX20 both programmed in Forth? I may be getting the two of them confused. I remember hearing that one or both ended up buggy because the software effort bogged down.
Yes, it did. It included two functions that significantly change the system's user-friendliness:
- Search and navigation was done through quasi-mode interactions, instead as with point-and-click. This gave end-users the powerful keyboard-only navigation capabilities of vi, without all the cognitive load of its navigation&commands mode.
- All content in the system was organized as a single infinite stream of text. There were special characters for sections and files, so you could always navigate to the previous/next section or file by leaping to that character. And you could open a section or file by typing the character plus the file name.
Several of these conventions have been since adopted by browsers' "smart address bars", allowing users to navigate the web through a limited version of this keyboard-first style. But there is no desktop environment that fully takes advantage of these principles for a general audience. Typically, only some power users benefit from a similar workflow in controlled environments like Emacs, without all the simplicity and gentle learning curve of the Canon Cat.
Do you mean something like emacs and other modeless editors? Emacs particularly, had incremental search in the 1970s.
Yeah, and I suspect it may have influenced Raskin in designing the Canon Cat. But good luck with quasimodes and spacial navigation among files in Emacs. The refined interactions provide an extra value in terms of approachability that Emacs is notorious for lacking.
The Canon Cat was easy to learn even for advanced use, something that you'll never hear about Emacs.
Incremental search was a headline feature, but it was far from the only novel idea. Among others, Raskin also removed the notion of files with separate lifecycles on disk and in memory. Rather than presenting files, the Canon Cat worked by offering workspaces that were persistently stored on a floppy disk. Take a workspace disk to a Cat and the entire workspace state is available to you without worrying about loading specific files, etc. He also took a minimalist approach to the application suite. Rather than switching between multiple fixed function apps, he extended the core word processor app with calculator, terminal, and programming capabilities. In an era where mass-market PC's only really ran a single fixed function app at a time, this was a huge step forward.
> I find it incredible that it used to take getting a machine manufactured en masse to push out a UI idea like this.
In one sense, it didn't. There was also the SwyftCard, which brought similar concepts to an Apple ][ expansion card. You view that in the context of a mid-80's ecosystem that also had the likes of TopView, Windows, GEOS and the like, and there was a great deal of contemporary prior art to the notion that it did not take a new machine to introduce a new UI concept.
Having said that, there is a sense in which it did take hardware to introduce a new UI concept. Maybe the best semi-current parallel is the original Apple iPhone. Running iOS on a contemporary Windows CE mobile phone would not have produced the same level of experience - there were aspects of the Apple hardware design that were very important to the overall experience. So it was with the Cat also. The notion of a machine that booted off a single disk into a complete workspace state is one example, but so is the keyboard. (Which included not only the specific Leap keys, but also front labels on the keys for specific functions and a "Use Front" key that selected those operations.
> Now we can emulate any idea you want to try in a web browser, emulator, etc....
As long as it fits into the hardware you have available. Just as a counterpoint, I can emulate Castelvania Symphony of the Night on my iPhone, but it's a comparatively terrible experience to play using a flat touch screen instead of a normal controller. The software is there, but the experience is not.
like... i would be willing to send this book to randos on hackernews should they prove interested-- that is how strongly i feel like this book should be consumed.
For the way I type, with my thumb angled so the knuckle would hit the Leap key, that would be absolutely infuriating. But it's an interesting idea nonetheless.
It also had a "Learn" key, which seems to have been used for constructing macros. Neat! The example they give for it is a find operation to replace "dog" with "cat". I think the vast majority of people who spend a lot of time in word processors today still don't know how to use macros, and part of that is an accessibility problem; what sub-menu (or sub-sub-menu) would that be hidden in? It's interesting to think of an alternate reality where users learned to create macros as part of using a computer. Maybe we'd have more coders if so.
I've seen an adaptation[1] of the concept to a standard keyboard that used the Alt + Alt gr keys for Leap back/forward, and the result was quite usable.
[1] the Archy project by Raskin's son Aza https://en.wikipedia.org/wiki/Archy_(software)
Though I'd say they have huge shortcomings in terms of usability with respect to using them solely from keyboard shortcuts, at least compared to the simple efficient model of the Canon Cat and its radically modeless interactions.[1]
I would like to see a modern incarnation with e-Paper, an SSD and an editor with focus mode, presumably you could run around for a week without charging.
The PCW was such a well-conceived product. People were still using them as their main computer well into the '00s. I wrote some mapping software for it which LocoScript Software distributed - it did a creditable job of both display and routing despite having nothing more powerful than a 4MHz Z80.
https://web.archive.org/web/20140825104412/http://www.tigert...
It also had a very conventional late-1980s UI.
I love PCWs -- I still own 2 -- but comparing PCWs to the Canon Cat is a bit like saying that an Airbus A380 is a car, because it has wheels and an engine.