From: dbucklin@sdf.org
Date: 2018-08-24
Subject: The Canon Cat: Boxy, But Good

Alternative  visions  of  our  future fascinate me, as do artifacts
that represent that alternative vision.  One such artifact  is  the
Canon Cat.  The popular computing environment with us today was de-
rived primarily from the graphical  interface  developed  at  Xerox
PARC  and  honed over decades by Microsoft and Apple.  But this in-
terface represents just one possible metaphor among many for how we
might interact with a computer.  In _The Design of Business_, Roger
Martin writes about looking at  unexplored  avenues  even  after  a
business  has found success.  Martin argues that, after the winning
experiments have been identified and honed to mechanical precision,
there is value in taking a second look at the failures.

Jef  Raskin  is  credited with providing the initial vision for the
Apple Macintosh.  After Raskin left Apple in 1982, he set about de-
signing  a  machine that more closely represented his original con-
cept for the Macintosh.  The result was introduced to the market in
1987  as  the Canon Cat.  The Cat had a text-only interface, a sur-
prising contrast with the pioneering  graphical  interface  of  the
Macintosh.   The Cat did not include a mouse; users could navigate,
rapidly, using the keyboard.  There was no file system.  Instead of
navigating  through  trees  of  folders  and files, all content was
available at all times in a document stream.  The Cat did  not  in-
clude  a set of distinct applications.  Instead, there were a vari-
ety of tools that could be applied to document  content  using  the
keyboard.  There were tools for document formatting, search and re-
place, macro recording and playback, abbreviation expansion, spell-
check, sorting, inline expression-evaluation, even spreadsheets and
mail merge.

The Cat would be less interesting had it not contrasted so  sharply
with  its  contemporaries.  Raskin had aimed to create an "informa-
tion appliance" rather than a personal computer.  Canon billed  the
Cat  as an "Advanced WORK Processor", comparing it to the dedicated
word processors in use at the time.  The release of the  Canon  Cat
in 1987 followed the release of Research Unix version 9 and 4.3BSD,
and coincided with the release of UNIX System V Release  3.2.   The
Macintosh  II,  Macintosh  SE,  and Windows 2.03 were also released
that year.  At that time, the Unix tools-based  approach  was  well
established.   Consumer-oriented,  GUI-based  systems  were  on the
rise.  The paradigm that came along with the GUI has the effect  of
compressing the learning curve; the system is easier for beginners,
but it does not reward additional effort.   Proficiency  is  tanta-
mount to expertise.

As  a text-interface enthusiast, I want to see if there is anything
to be learned by studying the Cat.  The Cat can be thought of as  a
word  processor;  a device oriented toward the input, editing, for-
matting, and output of textual data.  These four key functions cap-
ture  how  I  use Vim most of the time, so the use-case, for me, is
almost identical.

Input is probably the least surprising aspect of the Cat.  The key-
board  included just 59 keys including a pair of modifier keys, la-
beled "USE FRONT", that refered to functions indicated with legends
printed on the front of the key caps (much like the graphic symbols
on the Commodore 64 keyboard).  A pair  of  LEAP  keys  facilitated
rapid  navigation  through  documents.  To position the cursor, the
user held down a LEAP key and performed a search, not unlike  using
the / and ? functions in Vim.  Because the LEAP keys were dedicated
to this function and positioned below the spacebar, navigation  was
very fast; faster, I think, than in vi and Vim.

Editing  was  accomplished  by highlighting and manipulating selec-
tions.  Selected text could be moved, erased, and changed.  The us-
er  could  also perform global search and replace.  The user manual
encouraged navigation using the LEAP keys and  discouraged  "creep-
ing",  using the LEAP keys to move one character at a time.  Mathe-
matical expressions could be evaluated in place, much like using dc
or  bc  as a filter or formatprg in Vim.  There were no regular ex-
pressions, but this may have been seen as an unnecessary  complica-
tion given the Cat's target market.  That said, the Cat was able to
execute arbitrary Forth and Assembly code input by the user.

The Cat managed to provide a WYSIWYG environment  given  that  it's
output  target  was a daisy wheel printer[1].  There were no fonts.
(The font would have been determined by the  daisy  wheel  itself.)
Only the most basic formatting options were available: bold, under-
line, indentation, justification, and line spacing.  These features
were  the minimum expected by the word processor market.  Personal-
ly, I prefer to use markup, presentational or semantic, rather than
futz  with styles while composing or editing, but I have tools like
groff and pandoc at my disposal.  I'd love to send groff output  to
a daisy wheel printer, though.

It's never too late to learn from the past, not necessarily to find
out what works and what doesn't, but to  explore  ideas  that  have
been  abandoned  and ask what use they might have today.  The Cat's
interface presents an alternative conception of applications: coop-
erative tools that act on the user's information rather than sealed
partitions from which user data never escapes.  I'll admit it's not
fair to compare a word processor to a general-purpose computer, but
I want to call attention to the unobtrusiveness of the system,  its
simplicity,  and  the  lack  of barriers between the user and their
work.  Some of this is clearly a result of the Cat's limited scope,
but it's also the result of a design philosophy that is centered on
the user and places applications in a supporting role.

Resources

https://en.wikipedia.org/wiki/Canon_Cat
Lo and Behold, Reveries of the Connected World[2]
Hacker News: Ted Nelson: It All Went Wrong at Xerox PARC[3]
http://www.canoncat.org/canoncat/onlinehelp.html
http://www.digibarn.com/friends/jef-raskin/slides/canon-cat/index.html
https://archive.org/stream/byte-magazine-1987-10-rescan/1987_10_BYTE_12-11_Heuristic_Algorithms#page/n127/mode/1up
https://loriemerson.net/2015/09/04/the-canon-cat-processing-advanced-work/
https://archive.org/details/bitsavers_informatioatHowtoGuide1987_51033849

References

[1]: http://www.vintagecomputing.com/index.php/archives/813/retro-scan-of-the-week-the-daisy-wheel
[2]: https://en.wikipedia.org/wiki/Lo_and_Behold,_Reveries_of_the_Connected_World
[3]: https://news.ycombinator.com/item?id=7126802