Javascript is making all other languages irrelevant and why you must master it now
I’ve always been that thoughtful programmer, the one who didn’t get involved in the argument about which language was best. I always sat back on my high horse, and asked, well what are you trying to do? That was surely the best way to determine what language to use, no exceptions. But it’s coming back to haunt me. Why? Because now it's all about Javascript, and I’m not sure I care what you’re developing anymore.
If you cornered me (and bored me) with an argument about the merits and quality (or lack thereof) of the javascript language compared to numerous other cool languages (ignoring just about everything else in this world), you still might have some points. But, my argument for its inevitable dominance is a numbers game, and it comes down to infrastructure. Javascript enjoys a portability that only languages like C and C++ are used to (I purposely exclude Java because recently my virus program declared it a hazard). Every desktop computer ships with Javascript, unless it’s strictly a server (and even then it could have node.js or phantom.js installed by default). Every browser runs Javascript, every mobile phone and tablet does too (those of us who aren’t overly proud that we own a Nokia 3100). Recently, even mobile applications are sidestepping complicated native development for Javascript, running on a platform like PhoneGap. Hell, Javascript is even running on Arduino.
Server side: old way of thinking meets new
So what about server side? Why is node.js better than PHP?, or Ruby?, or insert another random language here? Well, the non blocking aspect of node is pretty damn cool, but the coolest part is we finally have a scenario where a single programmer can use a single language to build a web application. A coder can now understand the server and the client - and frameworks like Meteor will blur these lines even further.
Switching between languages when building a web application feels like the norm, but it’s not easy! I’ve used lots of languages in my career extensively; I’ll tell you switching between them has had its costs. Now, when I’m able to sit down and work in a single language... well, let me tell you its been one of the most relieving, freeing experiences of my career. Different languages come with more than just a different syntax, they also come with their own way of thinking, a community, currents and flows that will dictate your experience with them. This will be the first time where your webteam (all of them) will be able to speak without a translator, the first time the primary language of development will have direct roots to the place we’re all trying to build the best experience, the browser.
A lot of the challenges people are having adopting Node.js and Javascript into their workflow is because languages like PHP and Ruby forced us to think a certain way that still dominates the thought process. Before the web, desktop applications were often more responsive and interactive than websites 15 years later. We only accepted the static nature of HTML, CSS and cross browser compatibility because of the huge wealth of information we got in return from the internet, it was a sacrifice. But now, server side language thinking keeps us in the past. We’ve come full circle, we’ve got our app back.
While PHP and Ruby coders are arguing in a San Francisco bar, while Apple boycotts flash, while mobile consultants try and convince clients that supporting multiple devices is going to triple and quadruple development costs, you’re going to learn Javascript. You’ll be coding server side, you’ll be coding client side, you’ll likely be coding mobile devices. You’ll have career flexibility rivaled by no other language in history.
Javascript is a game changer.