Multifinder could be thought of as a spiritual successor to Switcher but it shared no code with Switcher and took a different approach to solving the problem of allowing a user to interact with multiple running applications.
Erich Ringewald, the author of Multifinder, and Andy weren’t done with this problem at, or with, Apple. I got to work both of them, Erich at Be and Andy at General Magic/Eazel.
For perspective, that's >$320k today. For 'switching apps'. It's always kinda crazy to look back and realize how incredibly minute and small programs were back them. Like 'spellcheck' being a project you'd assign half a dozen programmers to or Knuth would write almost a book about.
> ChatGPT won't solve problems with code unless asked,
It helps to clarify what model you're talking about. Maybe you mean the free model, Luna? Using whatever their frontier paid model in the chat interface is at the time on xhigh, it defaults to writing python scripts for everything vaguely calculation-shaped for at least the past year. I can literally remember a specific number I asked about last Nov and it used a script. I just asked this exact question from GP and it returned $310m after running a python script unprompted.
Early on, pretty much as soon as it was able to run arbitrary Python code it created (note: it can use other languages now too! Ask it!), I instructed it to NEVER guess at any question that is best served by computing it or counting it, and to always write a small program to do the computation or counting instead.
So I never actually saw the "strawberry" problem since it always just wrote a program to count the "r"'s!
I'm pretty sure were it not for Knuth and other programmers solving spellcheck and other problems, big and small, AI wouldn't be able to solve programming tasks today.
Reading these types of of stories growing up was always humbling.
I started at Microsoft on the Windows Mobile compiler team, having never taken a compiler class in college. I was surrounded by people who had already done great things, and by the time my career started the glory days of doing real software engineering was already waning.
I got to work with a few of the greats during my time as Microsoft, and I wish I'd taken up an in offer I had to meet Raymond Chen.
Sitting next to people of old school caliber and watching them work is, to use the proper word yet again, humbling as hell.
Fuck your design patterns. These people can debug starting at assembly, and sometimes when that fails they'll debug by pulling out an oscilloscope. Then when that is done they'll build design patterns on top of the foundations they laid themselves.
Yes, it was humbling and one reason was many of them had developed their skills in tandem with the growing complexity of the hardware and software. They had an amazing advantage of being there when it was all happening and being built up around them.
As for design patterns, I would never accuse Andy of using them. He was a coding wild man and super impressive, but his real skill was coming up with cool ideas and willing them into existence. Working with him, I always felt he was going through the jungle making paths with a machete and the rest of us had to actually build the roads behind him.
You can still get this experience by trying to do some things the old ways. One that's come up to me recently: program an ATMega328 (the famous Arduino chip) in assembly to output a waveform with tight timing requirements.
That is, as opposed to using a timer interrupt or a delay routine, arrange instructions so that the processor naturally gets to the instruction to change the output pin at the correct time, within the acceptable tolerance. These processors have no caches or predictors so instruction timing is reliable.
I think people are doing it these days on the Raspberry Pico chips, but any "old school" microcontroller will do.
While they could argue it was derivative code, they would not own rights to the new code, only could argue that they wanted to stop its distribution without license.
And validity of any "we own everything about you" contracts gets kinda iffy if you're not paying the worker who went on "leave of absence"
Meanwhile, Amiga 1000 Workbench (also released in 1985) not only had application switching, even when full screen, they had desktop screen switching where each screen can be different resolution / colour depth.
Yes, and absolutely ghastly screen artifacting when doing so which would have had Steve Jobs smashing the screen with a chair.
(my favourite Amiga game was Obliterator, but I hated the screen appearances one had to go through to get it running if one had been doing some sort of graphical work)
Also, only pixel fonts --- but the Apple Mac at that time was outsourcing its own vector font usage to the much faster processor in the Apple LaserWriter.
Lots of TV stations using Amigas for screen graphics though.
Open up Multiplan, and fire up some spreadsheet manifestation.
Then, launch Cricket Graph as the second app.
Go back to Multiplan, click on a column, Cmd-C to copy it, switch back to Cricket Graph and hit paste.
Voila! A new chart!
Now fire up MacDraw as a third app.
Back in Cricket Graph, Cmd-C the chart.
Switch to MacDraw, and Paste. Now the chart is in MacDraw. Not only is it in MacDraw, you can ungroup it and play with the primitives (the wedges of a pie, the bars of a chart, the legend as text and filled in boxes).
The magic here was that none of these applications were cooperating. It's not that they knew about each other. It was just the dumb luck of supporting common formats on the clipboard. Lines of numbers from Multiplan. An Quickdraw PICT resource from Cricket Graph.
It’s just hard today to appreciate how extraordinary that kind of painless integration was. None of these applications knew about Switcher, they all came out before it (mind, stuff was moving REALLY FAST back then).
And, how, much, much later, I tried to Copy and Paste a diagram from Visio into PowerPoint -- and it didn't work. That was a dark time.
It was pretty magical to instantly flip between the different apps.
In many ways multi-finder view later felt like a regression vs the full screen takeover of Switcher. Even today I appreciate Spaces and the ability to full screen apps and flip directly into an app taking over the whole screen, a small echo of that original magic.
I really like the contrast between the strategic aims, and negotiating levers, of Gates & Jobs in this story.
Both want the same software to be in the Mac world for its 2nd-order benefits; neither needs to monopolize it.
Both want a good deal, which Gates pursues by a sort of "labor-theory-of-value" and Jobs by assertion of Apple's proprietary rights.
(It does sound to me like Hertzfeld could've gotten more with the right ask, but getting to tackle the problem, and see his solution out in the world, was of even higher value to him.)
My favorite detail is that the switching was actually too fast, so they added animation to make it easier to understand. Such a great example of how good UX isn't always about making things faster.
45 comments
[ 0.43 ms ] story [ 36.3 ms ] thread(The article doesn't mention this later became "Multifinder" and included with System 6 iirc.)
Erich Ringewald, the author of Multifinder, and Andy weren’t done with this problem at, or with, Apple. I got to work both of them, Erich at Be and Andy at General Magic/Eazel.
At least that’s what ChatGPT says
It won't solve problems with code unless asked, but if you ask, it has its own full computer!
AI is powerful because it can use tools and can build tools for you to use or for it to use. But it is not a calculator.
It helps to clarify what model you're talking about. Maybe you mean the free model, Luna? Using whatever their frontier paid model in the chat interface is at the time on xhigh, it defaults to writing python scripts for everything vaguely calculation-shaped for at least the past year. I can literally remember a specific number I asked about last Nov and it used a script. I just asked this exact question from GP and it returned $310m after running a python script unprompted.
So I never actually saw the "strawberry" problem since it always just wrote a program to count the "r"'s!
https://www.folklore.org/Negative_2000_Lines_Of_Code.html
These are actually still the best programs.
100k probably would have bought you a couple of houses not far from Apple back then.
Switcher (2004) - https://news.ycombinator.com/item?id=32414661 - Aug 2022 (30 comments)
"Don't argue with me. $100,000 is fair, and you know it." - https://news.ycombinator.com/item?id=1637862 - Aug 2010 (110 comments)
Mac OS gets multi-tasking - https://news.ycombinator.com/item?id=1319308 - May 2010 (7 comments)
As a 1980s developer I wonder if that may have been a reference to Borland's Sidekick launched in 1984.
* https://en.wikipedia.org/wiki/Borland_Sidekick
Or was Memory Shift an actual TSR swapper I simply never encountered?
I started at Microsoft on the Windows Mobile compiler team, having never taken a compiler class in college. I was surrounded by people who had already done great things, and by the time my career started the glory days of doing real software engineering was already waning.
I got to work with a few of the greats during my time as Microsoft, and I wish I'd taken up an in offer I had to meet Raymond Chen.
Sitting next to people of old school caliber and watching them work is, to use the proper word yet again, humbling as hell.
Fuck your design patterns. These people can debug starting at assembly, and sometimes when that fails they'll debug by pulling out an oscilloscope. Then when that is done they'll build design patterns on top of the foundations they laid themselves.
As for design patterns, I would never accuse Andy of using them. He was a coding wild man and super impressive, but his real skill was coming up with cool ideas and willing them into existence. Working with him, I always felt he was going through the jungle making paths with a machete and the rest of us had to actually build the roads behind him.
That is, as opposed to using a timer interrupt or a delay routine, arrange instructions so that the processor naturally gets to the instruction to change the output pin at the correct time, within the acceptable tolerance. These processors have no caches or predictors so instruction timing is reliable.
I think people are doing it these days on the Raspberry Pico chips, but any "old school" microcontroller will do.
And validity of any "we own everything about you" contracts gets kinda iffy if you're not paying the worker who went on "leave of absence"
https://www.youtube.com/watch?v=rDDndh6OPK4
The key combo was Amiga-M to send window to back of stack, and cycle windows.
BTW = Amiga had preemptive multitasking
But the world decided to ignore the Amiga and focus on MsDOS and black and white MacOS.
(my favourite Amiga game was Obliterator, but I hated the screen appearances one had to go through to get it running if one had been doing some sort of graphical work)
Also, only pixel fonts --- but the Apple Mac at that time was outsourcing its own vector font usage to the much faster processor in the Apple LaserWriter.
Lots of TV stations using Amigas for screen graphics though.
I did not realize it was inspired by a DOS app, though. It was usually the other way around...
Open up Multiplan, and fire up some spreadsheet manifestation.
Then, launch Cricket Graph as the second app.
Go back to Multiplan, click on a column, Cmd-C to copy it, switch back to Cricket Graph and hit paste.
Voila! A new chart!
Now fire up MacDraw as a third app.
Back in Cricket Graph, Cmd-C the chart.
Switch to MacDraw, and Paste. Now the chart is in MacDraw. Not only is it in MacDraw, you can ungroup it and play with the primitives (the wedges of a pie, the bars of a chart, the legend as text and filled in boxes).
The magic here was that none of these applications were cooperating. It's not that they knew about each other. It was just the dumb luck of supporting common formats on the clipboard. Lines of numbers from Multiplan. An Quickdraw PICT resource from Cricket Graph.
It’s just hard today to appreciate how extraordinary that kind of painless integration was. None of these applications knew about Switcher, they all came out before it (mind, stuff was moving REALLY FAST back then).
And, how, much, much later, I tried to Copy and Paste a diagram from Visio into PowerPoint -- and it didn't work. That was a dark time.
It was pretty magical to instantly flip between the different apps.
In many ways multi-finder view later felt like a regression vs the full screen takeover of Switcher. Even today I appreciate Spaces and the ability to full screen apps and flip directly into an app taking over the whole screen, a small echo of that original magic.
Both want the same software to be in the Mac world for its 2nd-order benefits; neither needs to monopolize it.
Both want a good deal, which Gates pursues by a sort of "labor-theory-of-value" and Jobs by assertion of Apple's proprietary rights.
(It does sound to me like Hertzfeld could've gotten more with the right ask, but getting to tackle the problem, and see his solution out in the world, was of even higher value to him.)