Skip to main content

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.


Popular posts from this blog

Installing and Configuring NextPVR as a Replacement for Windows Media Center

If you follow me on Google+ you'll know I had a recent rant about Windows Media Center, which after running fine for about a year suddenly decided as of January 29 it was done downloading the program guide and by extension was therefore done recording any TV shows.

I'll spare you more ranting and simply say that none of the suggestions I got (which I appreciate!) worked, and rather than spending more time figuring out why, I decided to try something different.

NextPVR is an awesome free (as in beer, not as in freedom unfortunately ...) PVR application for Windows that with a little bit of tweaking handily replaced Windows Media Center. It can even download guide data, which is apparently something WMC no longer feels like doing.

Background I wound up going down this road in a rather circuitous way. My initial goal for the weekend project was to get Raspbmc running on one of my Raspberry Pis. The latest version of XBMC has PVR functionality so I was anxious to try that out as a …

Running a Django Application on Windows Server 2012 with IIS

This is a first for me since under normal circumstances we run all our Django applications on Linux with Nginx, but we're in the process of developing an application for another department and due to the requirements around this project, we'll be handing the code off to them to deploy. They don't have any experience with Linux or web servers other than IIS, so I recently took up the challenge of figuring out how to run Django applications on Windows Server 2012 with IIS.

Based on the dated or complete lack of information around this I'm assuming it's not something that's very common in the wild, so I thought I'd share what I came up with in case others need to do this.

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Assumptions and CaveatsThe operating system is Windows Server 2012 R2, 64-bit. If another variant of the operating system is being used, these instructions may not work properly.All of the soft…

Setting Up Django On a Raspberry Pi

This past weekend I finally got a chance to set up one of my two Raspberry Pis to use as a Django server so I thought I'd share the steps I went through both to save someone else attempting to do this some time as well as get any feedback in case there are different/better ways to do any of this.

I'm running this from my house (URL forthcoming once I get the real Django app finalized and put on the Raspberry Pi) using I don't cover that aspect of things in this post but I'm happy to write that up as well if people are interested.

General Comments and Assumptions

Using latest Raspbian “wheezy” distro as of 1/19/2013 (’lll be using Nginx ( as the web server/proxy and Gunicorn ( as the WSGI serverI used heavily as I was creating this, so many thanks to the author of that tutorial. If you’re looking for more details on …