Circular progress

Back when progress bars were linear, not circular, there was an idea that browser-based apps could be written in more than one programming language. One implementation of that idea was called ActiveX Scripting, which was supported by Internet Explorer (and other Windows apps). Of course the ActiveX moniker turned out to be inauspicious on the Web. But let’s recall, for a moment, what the essential idea was. The browser was equipped with an interface that enabled it to work with any scripting engine. I remember playing with a demo browser app that fetched and displayed data three different ways: using JavaScript, VBScript, and Perl. That was in, I think, 1997.

Today you can write a browser-based app in any language you choose, so long as you choose JavaScript. Which, like any programming language, is capable of amazing things. My current favorite example is Adrian Holovaty’s new Soundslice player. Here’s my 2012 writeup on Soundslice. It began as a fabulous tablature-based tool used to annotate and study music for string instruments. Now, with support for standard music notation, it’s becoming a general tool that will (I hope) revolutionize music education.

When he announced the new player, Adrian said:

HTML5 FTW! Screw native apps and their walled gardens.

It’s ironic that this liberation has been achieved by creating another kind of walled garden. Adrian is, after all, the creator of Django, a popular framework for server-based Web apps. Django is written in Python, a language with which Adrian has deep expertise, none of which could be leveraged in the creation of Soundslice.

But progress is circular. Maybe we’ll come back around to the idea that JavaScript need not be the only game in town.

Posted in .

2 thoughts on “Circular progress

  1. Hi Jon, the circle is coming around… check out clojurescript, clojure language compiles to javascript. other higher languages could do the same.

  2. Jon – there are a whole lot of projects that are having luck with the compile-to-javascript approach. See e.g. the JSMESS project which runs the MESS and MAME video game and microcomputer emulators with a Javascript and in-browser engine. Play your favorite Atari 2600 games! See e.g.

Leave a Reply