I saw Jef Raskin demo the Canon Cat in the 1980s when I was working at Stanford.
One of the more interesting concepts behind the interface was, everything was stored in one "circular" file, with marks for document beginnings and ends. By "circular" I mean that if you leapt forward from file to file, you'd eventually return to your starting point. The idea was, it's hard to remember the names of documents, let alone where in the filesystem you might have saved them. But you can usually remember something about the document -- some piece of text, etc. Using the leap keys you could quickly find the document you were looking for. Modern OSes allow for such searching, but at the time the idea of not worrying about file locations or names seemed very forward thinking.
Jef had research to show that "leaping" was superior (or at least, your productivity was faster) when comapred to other computer interfaces -- provided the user was used to using leap keys. Later I saw Andy Hertzfeld give a talk on Multifinder, and I thought the contrast between the two engineers was stark. The Canon Cat gave you one way to interface with the system (which was "the best way"), while Andy's interface gave you multiple ways to do the same task. Andy said something like "different people interact with the system differently" and he wanted to support all they ways they might want to do their work.
Cover Flow was basically just document thumbnails as OpenGL textures. You’d still have to open the application for the document.
Raskin’s “leap” concept worked within the documents themselves. There was no separation between a document editor and a file browser or shell. A leap would take you directly to the content, and leaping enough times would bring you back where you started. But you never switched from “application mode” to “Finder mode”, so to speak.
> The Cat even allowed you to include computer code in the middle of a document that could be executed with a button press.
I miss the 1980's. If I recall correctly, Raskin conceived the Macintosh as a computer that was easy to use for ordinary people yet also incorporated the means for ordinary people to program the machine. The solution was to make it easier to program. (Something that was added as an afterthought to Jobs' re-envisioned Macintosh with Bill Atkinson's Hypercard.) The general view was that those who used computers should be creators, not just consumers.
Contrast that to modern computers. While most can be programmed by the end user, the entry points are rarely obvious. The vast majority of languages that are easy to learn are regarded as learner or toy languages. Many of the professional languages are several orders of magnitude more difficult to use than their equivalents in the 1980's (often for good reasons, but it doesn't help the cause).
> Raskin conceived the Macintosh as a computer that was easy to use for ordinary people yet also incorporated the means for ordinary people to program the machine. Something that was added as an afterthought to Jobs' re-envisioned Macintosh with Bill Atkinson's Hypercard.
Apple created an in-house Macintosh version of Basic that was intended to ship with the Mac, but Microsoft threatened to yank Apple's license for Microsoft Basic on the Apple II if Apple released MacBasic for the Mac.
Andy Hertzfeld shared the story of how this all played out:
> We decided we should write [Basic] ourselves, instead of relying on a third party, because it was important for the Basic programs to be able to take advantage of the Macintosh UI, and we didn't trust a third party to "get it" enough to do it right...
Apple's original deal with Microsoft for licensing Applesoft Basic had a term of eight years, and it was due to expire in September 1985. Apple still depended on the Apple II for the lion's share of its revenues, and it would be difficult to replace Microsoft Basic without fragmenting the software base. Bill Gates had Apple in a tight squeeze, and, in an early display of his ruthless business acumen, he exploited it to the hilt.
After Microsoft forced Apple to kill MacBasic, they shipped Microsoft Basic for Mac, and it was indeed absolutely terrible when it came to creating programs that took advantage of the Mac UI.
It wasn't until HyperCard shipped a couple of years later that truly user friendly GUI based programming landed on the Mac.
(a) MS expected to make money on the Mac, and did for many years with Word and Excel (well before they were bundled into Office), among others. The best versions of Excel and Word were on the Mac for a long time.
(b) Microsoft eventually released a QuickBasic for the Mac that was capable of producing apps with a real Mac UI. IIRC, the IDE wasn’t very good, but it was capable enough at the time.
Killing the ability for users to easily create GUI based programs certainly counts as platform sabotage in my book.
There was no Windows yet on PC, and Microsoft Basic for Mac gave you almost no ability to create programs that took advantage of the Mac UI. You were limited to creating text based programs on a system that was all about having acess to a graphical user interface.
It's pretty easy to see why Microsoft didn't want Basic programmers on the Mac to be able to do more advanced things than Basic programmers could do on DOS based computers.
Even going back to Windows 95, there's a lot more visible effort made to let basic users become power users than I notice today. For example there's a shortcut to Task Scheduler right in the taskbar, which takes you to a very simple task scheduling interface.
By the time Windows 95 shipped, Mac OS had a system wide user friendly scripting language that integrated functionality exposed by third party applications alongside the functionality of the OS.
To give users an easy onramp, AppleScript would allow you to hit a record button in the script editor and watch you carry out a series of actions in the OS as well as third party applications and convert those actions into editable AppleScript code on the fly.
Sounds like Apple would've had something like Visual Basic but 5 years before Microsoft if it had a drag and drop interface for creating GUIs. But Jobs went on to do that on the NeXT.
I'd argue that the "toy language" concept was well in place on '80s computers. You could get into BASIC easily and do stuff, but if you wanted to do complex games or fast graphics or anything non-trivial, you had to learn assembly - BASIC was the "toy language."
When I saw Word 6 (dos) templating macro instructions I was quite shocked. It's not far from "web dev" work, yet you'd have people in all kinds of offices automating simple parts of their documents.
"We're trying to get away from programming. We've got to get away from programming because people don't want to program computers. People want to use computers."
I tried this the other day, I wasn't able to "use front" (mapped to CTRL key, which works for some things, but not others). I downloaded MAME for my computer and the Cat ROMS so I could use it without triggering a new browser window (among other problems).
When I went to use it in MAME proper, it popped up a big red warning that the port was incomplete and to expect problems. Unfortunately, they weren't kidding. I could type maybe a paragraph before the emulation hung (sometimes with the speaker activated, which was... nice). The "leap" keys worked enough to show that they could be a powerful way to get around a file.
So, yes, you can start it up and see the credit screen, but (for me at least) it's not a proper emulation. It would be interesting if some of the "distraction free" writing "appliances" like the upcoming BYOK or Alpha-Smart replacements would do something like this -- they all seem to consider features that can make review/revision pleasant to be outside their "distraction-free" mission.
Sure, but i think the innovation was the dedicated leap keys. You hold the key, type to incrementally search, and let go to leap. One key for forward and one for back.
Also, leaping was through eveything in the whole os, not just the application.
Since almost everyone uses USB keyboards, I am surprised that a small addon board with just 2 keycaps that can be placed near the spacebar, hasn't already been made. Could do it with a Teensy or anything else that exposes HID, I think.
It actually works really well; it uses the left and right alt keys as the open and solid Apple keys, which the SwyftCard uses as forward and backward leaping. It's quite easy and comfortable to use!
> Since almost everyone uses USB keyboards, I am surprised that a small addon board with just 2 keycaps that can be placed near the spacebar, hasn't already been made. Could do it with a Teensy or anything else that exposes HID, I think.
I've seen something (on HN in the past, maybe?) similar - someone developed pedals (maybe for Vim?)
One of my takeaways from reading that long ago was that there should be a commandment: treat the user's data as sacred, and do not delete it without permission. (Just ordered a copy of it so I can read it again.)
One of the more interesting concepts behind the interface was, everything was stored in one "circular" file, with marks for document beginnings and ends. By "circular" I mean that if you leapt forward from file to file, you'd eventually return to your starting point. The idea was, it's hard to remember the names of documents, let alone where in the filesystem you might have saved them. But you can usually remember something about the document -- some piece of text, etc. Using the leap keys you could quickly find the document you were looking for. Modern OSes allow for such searching, but at the time the idea of not worrying about file locations or names seemed very forward thinking.
Jef had research to show that "leaping" was superior (or at least, your productivity was faster) when comapred to other computer interfaces -- provided the user was used to using leap keys. Later I saw Andy Hertzfeld give a talk on Multifinder, and I thought the contrast between the two engineers was stark. The Canon Cat gave you one way to interface with the system (which was "the best way"), while Andy's interface gave you multiple ways to do the same task. Andy said something like "different people interact with the system differently" and he wanted to support all they ways they might want to do their work.