Happy Happy Joy Joy

Reason #1:

JavaScript is very easy to learn. No setup is required; it’s built right into the web browser! Just start writing code and see the results immediately in your browser.

I pity would-be software engineers who are too intimidated and lethargic to follow simple installation instructions for languages like Python, Ruby, Smalltalk, Go and Elixir. They lack the kind of initiative, curiosity and determination that is so necessary to becoming an IT professional.

Once you overcome the huge, overbearing obstacle of installing one of these languages, you’ll find that the syntax is wonderfully easy and inviting. They’ll make JavaScript look like the awkward stepchild that it is in the world of engineering.

Reason #2:

JavaScript is used everywhere…web browser (Angular, React), server-side (Node), mobile, desktop, games, Internet of Things, robotics, virtual reality, etc.

Hold your horses, not so fast! JavaScript dominates in web development because you have no choice — it’s the native language of the web browser. Outside of the web, JavaScript is up against many language competitors where it’s clearly disadvantaged. For example, in the mobile space, JavaScript has no hope of displacing Java (for Android) and Objective-C/Swift (for iOS).

On the desktop, JavaScript cannot compete with C++ and Java. In games, C++ and C# rule. Internet of Things? We’re looking at C, Python, Java, even Perl! Robotics means C/C++, Python, Java and Smalltalk. And so on.

Do you see a pattern? In every case, solid programming languages win the day. JavaScript is objectively a very flawed language. That it has managed to be shoehorned into these different areas is a testament to the JavaScript community’s creativity, but we have to face the fact that, in practice, JavaScript is not gaining traction. JavaScript is used for web development. Period.

Reason #3:

Node is super popular. Proof: there are over 30,000 NPM packages available!

How many of these 30,000+ packages have significant usage? Probably relatively few. Let’s consider an Apple analogy. Apple claims that there are over 1.5 million iOS apps in the App Store. But it’s well-known that only a tiny percentage of them are popular. The rest lie fallow, never to see the light of day. In fact, I wrote an iOS app that has done absolutely squat in the App Store; I’m one of the sad statistics.

The fact that so many NPM packages exist shows the “gold rush” mentality that most contributors have. They hope to cash in on the JavaScript hype, or at least make a name for themselves in the open source community. Open source is another good example. Open source has countless thousands of contributions, most of which never see the light of day. So what do 30,000+ NPM packages signify?

Not much of anything. We still don’t know how many businesses use Node. Is it even in the thousands, for instance (show me the numbers)? Even that would pale in comparison to Java or Python usage.

Reason #4:

There are lots of high-paying jobs for JavaScript developers. What a great way to start your IT career!

It’s true, there are lots and lots of JavaScript job postings. And all of them are related to front-end web development or Node. You won’t find any postings for JavaScript programming in mobile, desktop, Internet of Things, games, robotics, virtual reality, etc. If all you want to do is write web apps, then JavaScript may be your ticket. But it’s hardly the path to a healthy career in IT, where there are so many other exciting developments going on, such as Artificial Intelligence, robotics, Big Data, Internet of Things, cloud computing, scientific modelling and simulation, Virtual Reality, etc., which use grown-up languages like Java, Python, C/C++, Go, Haskell and Julia.

Reason #5:

JavaScript is an incredibly expressive and powerful language.

Such an unbelievable overstatement! Is JavaScript any more expressive than, say, Clojure, Scheme, Erlang/Elixir, Haskell, C#, or even Smalltalk? Smalltalk has first-class functions and closures, which means that it can do anything JavaScript can do. If you really care about using an expressive language, you’d choose one of the above seven, not a language that is plagued by hobgoblins of every sort and apparently one that ECMA TC39 is incapable of fixing.