Javascript Is The Language Of The Future
It's been a long time since there were only a few languages and my older colleagues often reminisce about their COBOL days while their colleagues of the time were writing low-level code in C. In those days, few people had heard of the major programming languages and even fewer could write any meaningful code in them.
Those days are long gone. Almost everybody born since then knows about at least one or two programming languages, has probably taken some form of programming class at some point in their academic career, and if they know more than enough about one to be dangerous, they likely know the basics of at least three others. It's not uncommon to see technical job descriptions with a laundry list of disparate programming languages for a relatively focused job.
With the number of programming languages growing and the "hot new" language changing almost annually (I still remember when Ruby was cool), the hot topic on technical decision-makers' minds is what platform and technology to invest in over the next n years.
My take on the matter is that Javascript will be the language to know over the next few years, and here's why.
Javascript is Cross-Platform
Originally, EMCAScript (or Javascript, as it's better known) was a language included with Netscape Navigator to allow web pages to do "dynamic" things. However, thanks to Google's Chrome V8 Engine, Javascript can now run just about anywhere. Node.js extends this power between the core environment and the extensive package ecosystem and platforms like PhoneGap allow developers to write cross-platform mobile apps in Javascript.
Javascript Scales Well
One of the aspects of Javascript that is embraced by platforms like Node.js is the fact that it is non-blocking. This does not mean that it never blocks or never does anything synchronously. It does mean that, when used correctly, your Javascript code is only running when it actually has something to do through the use of callbacks and timeouts. In fact, Javascript has no "sleep" method, nor any easy way to implement one (trust me; I've tried. Note that you'd never actually want to do this because Javascript is inherently single-threaded).
Javascript is Easy to Debug
One of my initial reactions against the prospect of learning Javascript was the lack of good debuggers. Thankfully, this is no longer the case, as Apple's WebKit (specifically the Developer Tools) is quite possibly one of the best debuggers for any language at time of writing. Since WebKit powers Safari and Chrome, and will soon power Opera, this means that developers can have a good debugging experience regardless of operating system. (In Internet Explorer's defense, IE11 has a significantly improved developer toolkit over previous versions, having borrowed at least much of the look and feel from WebKit.)
Most Developers Probably Already Know Javascript
Whether you write code mainly for mobile, for web, or for desktop, you have probably also written code for at least one web site. Since most web sites make use of as many as four different programming languages, it's likely that Javascript is one of them. Either out of necessity or simply by continued exposure, the likelihood is high that you have picked up more Javascript than you ever thought you would. This has the advantage that Javascript is a sort of common ground for developers on diverse platforms, and to a certain extent it just makes sense that developers would start using it for things other than client-side web scripting.
Your thoughts
I doubt I am the only one predicting the language of the future. Do you have a different candidate that you or your organization is investing in? Do you feel there are other languages that better embody any of the points mentioned here? Let us know in the comments.