Thursday, September 3, 2009

JavaScript is Becoming the Lingua Franca For All Development

Let's start with a trip down memory lane.

Way back when I got my first real job as a programmer, one of my first tasks was to work on some server-side JavaScript. Now I may be dating myself with that statement but yes, back in the dark ages there was a web server made by none other than Netscape called Netscape Enterprise Server, and you could write server-side code in JavaScript. It was darn handy, and a lot less nasty than some of the alternatives available back then, but for whatever reason it never really took off outside of Netscape's web server product.

So an embarrassing number of years later, I'm not sure we'd call what's becoming more and more prevalent these days "server-side" JavaScript, but JavaScript is living in a lot more places than your browser. And why not? It's a great language, every web developer on the planet already knows it, and for developers who don't know it, the syntax and concepts are easy enough to pick up very quickly.

We've had a few runs at JavaScript outside the browser over the years. I'm sure no one but me remembers IBM Sash, but it was a concept very similar to Adobe AIR--but predating AIR by about 7 years--that let you very easily write desktop applications in JavaScript.

I'm not sure why Sash didn't take off other than IBM's typical inability to capitalize on great technology (OS/2 anyone?), but it was a really quick, easy way to write desktop applications that were easily to download and update. And of course since it ran on the desktop you could do much more than you can within the confines of the web browser, like access the filesystem and store data offline to be synced back up later.

It was really interesting to see all the security concerns around AIR when it first came out because they were exactly the same concerns everyone had about Sash, but I wrote some pretty slick little Sash apps for internal use that did online/offline data and even file syncs (great for traveling sales people) long before AIR or even Macromedia Central. Ultimately I think the timing just wasn't quite right for Sash.

Total aside, but another attempt at this sort of functionality was REBOL, which I also spent a bit of time with a long time ago, and I was a bit shocked to learn today that it's still around. Who knew?

Anyway, back to JavaScript. Some of you know I've recently fallen in love with CouchDB, and the default view server in CouchDB is based on JavaScript. It uses the SpiderMonkey engine (a JavaScript engine written in C), and you write all your views in CouchDB in JavaScript. Simple, effective, and very powerful.

But there's much more. Today I came across Tropo, which lets you develop cloud-based communications applications in a bunch of different languages, one of which is JavaScript. Tropo is completely new to me but from their code samples it looks like what you're doing is programming telephony applications in JavaScript. Quite a leap from the button rollovers that used to be the common domain of JavaScript.

I'm sure there are numerous other examples, and perhaps nostalgia is really what prompted this post, but I think it's interesting and exciting that the language we all know and love (or love to hate) is all grown up and doing a lot of cool stuff outside the web browser.

Where else have people seen JavaScript where you might not have expected it, and what are your opinions on JavaScript as a lingua franca of development? Personally I think it's a smart move on the part of applications like CouchDB and Tropo to leverage JavaScript in this way but I'd love to hear your thoughts. I for one see a lot more JavaScript in my future.

No comments: