I remember the sheer amazement that I felt the first time I saw the Squeak programming environment. It is driven by one of the first object oriented languages: Smalltalk. The demo is quite impressive: a whole world of graphical components had been built up and it looked pretty easy to script them and make them work together. It is plagued by some problems though. Most people don’t have it, and are thus probably not willing to download the 16.3MB file to have a functioning environment for one little application. That combined with the fact that not too many people know Smalltalk makes it a tough sell these days. This thing was about a decade too early.

It was quite some time ago that I ran into Squeak, but recently, I’ve had the same tingly feeling playing around with bookmarklets, which are little pieces of Javascript that can be bookmarked to add functionality to any web page. The present generation of browsers are starting to conform to standards, which is helping to make them scriptable. In fact, they are so scriptable that some are predicting the end of desktop applications. I won’t go so far, but I will say that I’m going to spend a lot of time getting my Javascript up to speed and freshening up on the modern DOM (Jesse’s Javascript shell is an great tool for this). The last time I did some serious Javascript programming it was a nightmare getting the stuff to work right in all of the major browsers. I’ve heard (and seen in the code that I’ve recently perused) that the browser’s DOMs are getting a lot more uniform, which is great news.

On a related note, the Javascript XMLHttpRequest object, which has become a de-facto standard across browsers has helped to make it so that it is easy to refresh content from a webpage without refreshing the page itself. Gmail uses it to make reading mail in a browser almost as comfortable as reading it in a client-side application.

I’m looking to put all of this stuff together into a next-generation live-wiki/messaging/annotation/blog/kitchen-sink system.

Here are some links related to all of this stuff:

Related Technologies