The Javascript Renaissance

We're a couple of years into the resurgence of an old language. Originally just a stop-gap, Javascript has been hated over the years, considered ugly and badly designed by most. But despite everything, it stayed simmering in the background, gradually getting more refined, becoming more useful.

These days, Javascript is a ubiquitous, high-performance, well understood dynamic scripting language. It's everything that python and ruby wish they were.

If someone wants to learn how to write code these days, the first thing I'm going to say is learn Javascript. Why? because it's already on your machine - no matter what that machine is. You can write it easily and see stunning results quickly with nothing more than notepad and the browser you're already running.

It's not a toy anymore, not a filler, but the heart of several fully fledged, interconnecting frameworks. If you want to write an application that runs in the browser, it's there, in spades. If you want to write a native application, windows 8 supports this out of the box, giving you full access to the application environment. If you want to write some server side code, Javascript has your back. And if you want to write some maintenance scripts to help you out, or knock out a quick commandline tool that does something specific, Javascript is your buddy.

Javascript works well at all the user-space tiers. The places where it doesn't work (kernel level and truly high-performance environments) either have, or are getting interfaces that let you drive them from Javascript. I can't see any point in learning something else as a first language. Sure, there are some environments that aren't yet friendly to a pure Javascript developer, it's difficult to write an iPhone or Android app using just Javascript, for example and native traditional desktop apps still elude it. But all these platforms support HTML, and Javascript eats HTML. It's the only cross-platform environment that's kept its legs, despite the robust attempts of key players to cut it down.

I'm definitely a fan of Javascript. There are a couple of key technologies that make the whole platform worthwhile:

  • NodeJS

    This is an executable that runs a given Javascript program from the commandline. A massive library of high-quality modules are available that let you write very powerful applications in this framework. Using the NodeJS modules you can write powerful commandline scripts, web services and whole frameworks. This website itself is driven by NodeJS. Node works on Linux, Windows and MacOS, and in principle can be ported just about anywhere. Microsoft will also support NodeJS on their Azure cloud framework.

  • Windows 8

    Somewhat surprisingly, Microsoft have embraced Javascript as a 1st order language in their latest operating system. The new tablet-like Metro applications can be written in Javascript and executed just like any other app. Windows isn't the first operating system to do this - WebOS apps were written using Javascript and HTML5, but WebOS hasn't really taken off.

  • ExpressJS

    One of many high-quality NodeJS modules, Express is a framework for creating web-sites or web-services that are easy to write and structure.

  • Nodejitsu

    There are a few Node-based hosting sites, Nodejitsu has distinguished themselves by being extremely active in the community, releasing much of their back-end infrastructure as open-source modules that anyone can use.

I'm really excited by Javascript and the future looks extremely promising for this old upstart.