Back

JavaScript: The George Clooney of Programming Languages

Aug 15, 2014

Arriving upon the conclusion to learn to program seems to be an obvious one. The not so obvious conclusion, however, is what exactly you should program and what language you should learn to program. Society enjoys grouping programmers together as if we’re all just movers of bits. Although technically true, we must remember that although an airplane moves people and a mover moves furniture, they both serve two different purposes and both attempt to accomplish different goals. Thus is the same with programmers and programming languages. If a JavaScript engineer is the airplane, a Ruby engineer is the mover. At a fundamental level they do the same thing, but their goals and how they accomplish those goals are drastically different. When deciding which language to learn, you first should decide what your current and future goals are, then pick which language will help you arrive at those goals.

When I first started learning to program I had three goals. One, I wanted to build web applications. When I was five years old, there were 45 million, or almost 1% of the world population using the internet. Now, not even twenty years later, there are 2.9 billion internet users composing 40% of the world’s population. The internet has and will continue to define my generation and generations to come and I wanted to be apart of that movement. Two, I wanted to learn something that would continue to be relevant into the future and one that would continue to progress and mature. I love learning. Learning makes me happy. I wanted a programming language that would never stagnate so my skills wouldn’t stagnant along with it. Three, if I had an idea, or someone else had an idea I believed in, I wanted to have the skills to build it. We are living in a time where you can connect with 2.9 billion people while your cost of goods sold is negligible. While weighing all of these options, the language that won in every category was JavaScript.

If you’re a Software Engineer who has been under a rock for the last five years, you still think of JavaScript as a dinky scripting language which helps change a button’s color when you mouse over it. That couldn’t be further from the truth. JavaScript has very quickly progressed into a powerful language for building web applications, think Gmail or PayPal. JavaScript is the ‘language of the web’, and as talked about earlier — that’s a great thing. The web is everywhere, on your computer, phone, in your car and it’s continuing to swallow the world. But what makes JavaScript even more interesting now is we’ve built tools that allow us to write JavaScript code in more than just a web browser.

There are typically two types of programmers for the web. Front-end Engineers and back-end Engineers. Front-end engineers work typically in HTML, CSS, and JavaScript and they make web applications look pretty while also sending requests to the ‘back-end’ in order to receive different types of data. Think Facebook. When you click the thumbs up icon, the browser (or front-end) notices you clicked the icon, it will then tell the back-end “Hey, Tyler likes Mikenzi’s post about her dog, make sure that gets saved somewhere”. If everything went well, the back-end responds with “Sounds good, that information has been saved”. At a very high level that’s how the web works. It’s the back-end engineers role to write code that listens for requests from the front-end, and responds accordingly. JavaScript used to be a language for front-end engineers only. However, with the invention of Node.js, JavaScript can, and is very often used (Wal-mart, PayPal), as a back-end language. This was huge for JavaScript engineers. Now instead of having to learn a whole different language to write back-end code, JavaScript engineers can stick to what they’re good at, JavaScript. Right now you might be thinking, “well that’s cool, but I’m a big believer in iPhone or Android apps and I think that’s the future”. Though you’re wrong, here’s why you should still learn JavaScript. Believe it or not, **you can write iPhone apps or Android apps using JavaScript and submit those apps to the Apps Store. There’s a technology called Phonegap (http://phonegap.com/) that allows you to take your JavaScript code, and wrap it in a iPhone or Android app. **Though your Phonegap application is going to lack the performance of native iPhone apps (which is why iPhone app developers still have very nice jobs), it’s comforting to know if you wanted to build an iPhone app with JavaScript, you could. It’s as if Gandalf the White was able to take over Dumbledore’s Headmaster position at Hogwarts when he died. You get the best of both worlds. Can you now see why JavaScript won’t be going anywhere anytime soon? It’s too embedded into our daily lives. Even with Apple’s release of their new programming language “Swift”, Apple is taking a steps away from C like languages and a step closer to JavaScript like languages — which is fantastic news for JavaScript developers.

Still don’t believe me? Above is a graph of the amount of new repositories (code bases) created on Github (a web app where programmers can save their code) by year. JavaScript is consistently at the top of lists like this because it’s everywhere and it continues to progress and grow. Python, a language taught at Universities throughout the country was once a staple as a back-end language. However, with the rise of different technologies like Node.js and Google’s newest back-end language ‘Go’, Python is quickly becoming a language that’s taught in academia but not used in the real world. You don’t want to learn a language that’s trending down. JavaScript is the George Clooney of programming languages. It gets better with age.

Although we’ve covered a lot, there’s one important fact about JavaScript that I still haven’t mentioned that makes it perfect for people who are learning outside the normal confinement of academia. JavaScript is very rarely taught in academia, and if it is, it’s uncomfortably bad. Professors still hold strong to the notion of JavaScript as a dinky scripting language, which their students then reflect going forward with their careers. This is terrible if you’re in academia (or care at all about how our education system is constantly behind when it comes to technology, which you should). But if you’re learning outside of academia, this is a huge advantage to JavaScript. You’re not directly competing with the tens of thousands of students studying Computer Science. This makes finding a job a whole lot easier.

JavaScript has changed, and will continue to change, the way we interact with technology. Like the 2015 Cleveland Cavaliers, it’s ok if you jump on the bandwagon, because everybody is doing it.