Entries from September 2009 ↓

Malleable machines. Where are they?

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.

Re-reading Neuromancer

I’ve been re-reading William Gibson’s Neuromancer this week, reliving the effect that it had on me twenty-odd years ago.

There was a chap at my school who had a cool older sister with an even cooler American boyfriend. This boyfriend had all but smuggled this book out of Canada. Or so the story went. Hadn’t even been published in the UK. Was hot.

It wasn’t the same shape as British paperbacks and the typeface was really small. All the spelling was American. By the time I was reading it, it was falling apart – I guess it had been passed around lots of kids before me. I read it in one afternoon and one evening and it has had a huge effect on me.

I remember thinking that there was no way anyone in my parents’ generation could even understand a half of one page of this book. It was something that only we could have access to. I was hugely disappointed when I found out that Gibson was about the same age as my Dad.

So, I’m reading it again – it’s still excellent.

It starts: “The sky above the port was the colour of television, tuned to a dead channel.” How odd, I’m thinking now, that with all the amazing predictive power that Gibson has, the first line is so analogue and dated. I’m pretty sure that my son will grow up without ever having seen what static on a TV screen looks like.

But, when I was 14 and reading it for the first time, the world he described seemed so, so far away and still does.

Everything old is new

A friend and I were arguing in the pub a couple of weeks ago. The next war, he said, will be fought over internet latency. Countries battling it out over the rights to fast internet fibre routes.

Nonsense, I replied. You can’t feed people with faster broadband. Or at least that’s how I remember it. We had had a few jars of ale by that point.

Then today I came across this fantastic historical example of the strategic advantage of low latency in Thinking Strategically:

A famous example … was made by the Rothschilds following the Battle of Waterloo. The Rothschilds supposedly used carrier pigeons and hence were the first to know the battle’s outcome. When they discovered that the English had won, the sold British bonds publicly and thus led others to believe that England had lost. The price of British bonds plummeted. Before the truth was discovered, the Rothschilds secretly bought an even greater number of bonds at the rock-bottom price.

Those who ignore history…

By the way, the book is better than its cover suggests – it’s in fact a readable, anecdote-rich introduction to the basics of Game Theory.