Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.


I was skeptical about JavaScript back then. While I understood the language, its prototypal object model didn’t impress me. I believe that the reason of its popularity mainly because every major web browser supports it.

However in 2011, I tried Node.js. I was impressed on how easy to setup website with reasonably good performance, and it is the same JavaScript on server side! Surely there are a lot of hype surrounding Node.js now, and it may not be the best option out there, but given that a lot of people already understand JavaScript, the promise of sharing same code in client and server, and the rapid growth of its libraries, I believe Node.js will continue to grow.

Right now there are also rapid growth of JavaScript MV* framework. Back in 2011 it was BackboneJs and KnockoutJs which are main options. Now AngularJs and EmberJS and some others are also battling for top client framework. This article from Steven Sanderson may help to understand the difference between some Js frameworks.

One thing that may boost JavaScript popularity further is asm.js . Asm.js is subset of JavaScript and its purpose is run as  fast as possible inside the browser. Now it is already supportted in nightly build of Firefox. Epic Games and Mozilla also already work together to port Unreal Engine to asm.js.

For now typical asm.js application seems to be application which is built using C/C++ and ported to JavaScript using emscripten.

While JavaScript adoption is getting higher, we can’t deny that JavaScript itself is relatively simpler language to other dynamic language out there. The alternative solution is by using intermediate language which compiles to JavaScript, like CoffeeScript, TypeScript etc. CoffeeScript itself is included automatically in Rails.