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.

Comments

Popular posts from this blog

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…

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 …

Fixing DPI Scaling Issues in Skype for Business on Windows 10

My setup for my day job these days is a Surface Pro 4 and either an LG 34UC87M-B or a Dell P2715Q monitor, depending on where I'm working. This is a fantastic setup, but some applications have trouble dealing with the high pixel density and don't scale appropriately.
One case in point is Skype for Business. For some reason it scales correctly as I move between the Surface screen and the external monitor when I use the Dell, but on the LG monitor Skype is either massive on the external monitor, or tiny on the Surface screen.
After a big of digging around I came across a solution that worked for me, which is to change a setting in Skype's manifest file (who knew there was one?). On my machine the file is here: C:\Program Files\Microsoft Office\Office16\LYNC.EXE.MANIFEST
And the setting in question is this:
<dpiAware>True/PM</dpiAware>
Which I changed to this: <dpiAware>False/PM</dpiAware>
Note that you'll probably have to edit the file as administr…