First, a bit of a warning. I am going to witter on about Smalltalk, and about HotJava, and about the VIC 20. I’m having a nostalgic week. Indulge me.
None of those things – nor what they represent – are at the gravitational centre of the computing world. This is a terrible shame. For twenty years computing has been making itself in the image of the business machine. This leaves us all worse off.
I’m pretty sure that if I’d grown up with the machines we have now, well, I wouldn’t be into this stuff at all.
My first machine was a Commodore VIC 20. And here’s an article from 1983 about its video chipsets. You don’t have to read the article, but at one point it says:
“Suppose we want to lay out our own screen and characters. It seems simple enough: choose the locations for screen memory and character set, and POKE the block numbers (screen block times 16 plus character block) into address 36869.”
POKE and PEEK – that’s messing directly with the computer’s memory. We did a lot of this sort of stuff. The computer’s memory was there for us to mess around with. As it should be.
Play was encouraged and to do some things it was necessary to fiddle directly with memory locations. You know, this sometimes killed the machine but it had a big on/off switch within easy reach (and it started up again in just a few seconds).
Now, on to smalltalk. Well, what’s to say that hasn’t already been said? It’s another environment that encourages you to take it apart and put it back together again. Until you start changing the way it works, it’s near useless. I liked that a lot.
Here’s a bit from the Squeak source code:
initNormal NormalCursor := (Cursor extent: 16@16 fromArray: #( 2r1000000000000000 2r1100000000000000 2r1110000000000000 2r1111000000000000 2r1111100000000000 2r1111110000000000 2r1111111000000000 2r1111100000000000 2r1111100000000000 2r1001100000000000 2r0000110000000000 2r0000110000000000 2r0000011000000000 2r0000011000000000 2r0000001100000000 2r0000001100000000) offset: 0@0).
If you squint, you can see that it’s defining the bitmap for drawing the the normal cursor. You can get at this code with three clicks from launching a smalltalk image – I just did.
You can get hold of the cursor object it initialises, right then and there. Change that object and your system will work differently, right then, right there. Turn it into a space alien, or a pacman icon. Easy. Beautiful.
And everything is like this, change the code editor, change the compiler, change the thread scheduler. Smalltalk all the way down, and modifiable in place.
Um, HotJava. Some of you might remember this project – um, it wasn’t very good. But it hid an amazing idea. That the web could be Java™ all the way down. That the JVM could be that malleable machine, but networked.
Yeah, it didn’t work that one, but I remember being pretty excited about it at the time. And, I think it was the last time that I heard anyone properly talk about my vision – a malleable consistent environment from the top to the bottom, that would encourage play, require tinkering, be empowering.
Now, when I hear Google and its many commentators talk about the browser being the OS, they’re talking about spreadsheets and word processing. What a pale promise. Not interesting in the slightest to me.
An OS that is written entirely in javascript – well, that’s getting warmer. Watch a couple of minutes of this demo video to see why this gets me…
Well, I ramble on. I recently read Alan Kay’s 1972 Dynabook paper. Wow. It’s the one that a lot of folks credit with creating the idea of a personal computer. Alan Kay was also one of the drivers behind the Squeak smalltalk project and one of the original Smalltalk creators.
It’s a marvellous idea of a malleable, tinkering machine – malleable in the same way as Squeak is, as the original home computers are, as the Hotjava browser was supposed to be. How I wish it existed, not for me, but for my son.
Unfortunately the way things are going, by the time he’s ready to do bitwise battle with the world, everything will be locked down by the business f***wits.
I don’t want to end on a miserable note, but really, it’s is getting worse and we’re allowing ourselves to be dragged further away from this ideal, day by day, by corporations who have forgotten how cool computing used to be and forgotten how to build things their kids would be proud of.
About time we did something to get it back.
I'm Ben Griffiths: an escapee of web 1.0 and web 2.0 start-ups; a programmer; developer; architect; sometime consultant; team leader; agile exponent.
I live in Greenwich, London.