Why Apple and Microsoft can’t touch Squeak Smalltalk
Life in Mac / Windows
Software is hard… and buggy. We all know that. Unfortunately, in mainstream systems, there’s very little we can do about it, except maybe file a bug that disappears into the bureaucracy of a major corporation, probably never to be heard from again.
The Squeak Life
I’m using an application called ScriptManager to keep some simple notes. Here’s a little screenshot:
Now as software is wont to do, as soon as I went to save a profound (and long) note, an error occurred:
“What the heck is that!?” you say. “I can get cryptic error messages quite easily in Windows, thank you very much.” Except, this is no ordinary error message – it’s a debugger opened on the application’s code, so I can see exactly what went wrong. I can do this because all code – from the lowest level graphics and file libraries, to whole applications – is available to me to change as I please. And it’s all in the same simple, revolutionary (old) language – Smalltalk. I don’t have to chase the application’s C++ to the libraries’ C to… well what difference does it make – I would’ve given up already.
But in Squeak, within 2 minutes, I had fixed the error and recovered my note.
You see, by flipping through the call stack, the debugger showed me exactly which object had gone south. I was able to open and inspect this object in another tool:
It was immediately obvious that a nil entry had been stored in a set, which is not allowed. Right in the tool, I was able to delete the key:
And I was back on track – no work lost! How does that compare to your last error in OS X or Windows?
n.b. I was using a variant of Squeak called Pharo. All this info applies to all versions of Squeak.
Did you ever figure out how the nil key got there in the first place? Just curious.
@Stephen Smith I don’t remember, and the screenshots aren’t ringing any bells…