iTunes on windows

Downloaded the windows version of iTunes last night. Told a few colleagues about it this morning, who did the same – and we discovered that the windows version also includes the Rendevous-based song sharing capability!

Very cool.

Programming is literature

This paper by Richard Gabriel and Ron Goldman describes a potential future for software development, extending the open source concept and trends.

What I found most interesting was the description of software as literature. Alan Francis made a similar comment the other day. Programming is often still seen as the bottom rung of the software industry ladder, a distasteful task to be done only as long as necessary to enable promotion to analyst, manager or other non-programming role. How many software companies hire graduates as developers? How many hire graduates as architects or project managers?

Now consider programming as literature. A programmer’s mental activities bear a striking resemblance to those of an author. The programmer’s task is to find the means of expressing the concepts in their mind in terms a computer can understand, ie a programming language. There are a multitude of ways of telling a computer to do something, even within a single programming language, just as there are a multitude of ways of expressing a concept in a spoken language. Some are mundane, some rude, some inappropriate, and some win their originators literary prizes.

The other analogy is that of how great authors become great. Most great authors are also great readers. The writers of tomorrow are influenced by the work of yesterday. In the programming world, this translates into open source. Open source represents the beginnings of a body of software literature. The closed source model, when viewed from a literary perspective, seems almost scandalous. Imagine if Dickens had only ever read his own work?

Prevayler fossils found

Yes it’s true. Prevayler is not a new idea. Mainframes have had transparent persistence for years. Only difference is that its handled at the operating system level. What applications see is a huge amount of addressable memory, what they don’t know is that some of that is actually stored on disk (or, given the context, on big rolls of magnetic tape). The operating system hides the various implementations of its memory storage behind a common interface. (Couldn’t resist that one).

So here’s an idea: how about using AOP to intercept and monitor object access patterns, moving them to and from disk-based storage as usage warrants. Seems to me like a natural extension to java’s generational garbage collection.

JAOO Report

JAOO was great. Met tons of really interesting people, talked to Ward about FIT and watched Aslak tell him about Wikis, discussed whether Denmark should join the Euro with Bjarne Stroustrup, lent Matz my power supply for his Ruby seminar and drank too much beer.

Could have written a whole lot more, but those were the high points.