What if JavaScript wins?

It will be a very sad day for the IT industry. In my opinion, JavaScript is a shit language. It’s terrible for beginners to learn, and it’s painful for many IT veterans to use, myself included.

What if JavaScript wins?

I will forever leave this profession I love so much. I will weep and drink myself into a stupor.

JavaScript is possibly the worst-designed programming language in the history of programming languages. (Arguably, PHP is just as bad, but I shan’t argue that.) Brendan Eich “designed” it in ten days under the thumb of his Netscape overlords, and it shows. Very little thought and care went into this process.

The result is an endless array of WATs and WTFs that have made JavaScript the butt of jokes for years. Here are some examples:

Image for post
Image for post

JavaScript is so problematic that an entire ecosystem of transpiled languages has grown around it. CoffeeScript was the first to gain traction, but many, many languages have since followed, including Amber, Bridge.NET, Cheerp, ClojureScript, Dart, Elm, GopherJS, Haxe, JSweet, Opal, PharoJS, Scala.js, Transcrypt, and so on.

JavaScript was so broken that the ECMA TC39 committee was unable to repair most of the damage. First of all, they were unwilling to make breaking changes, understandably since it would bring down the whole web. This didn’t stop PHP and Python from making breaking changes, though (PHP 7 and Python 3, respectively).

Second, instead of fixing the design mistakes, TC39 chose to pile on new feature after new feature, bloating the language into a huge behemoth. ECMAScript 2017, for example, has a language spec of over 885 pages long!!!

Image for post
Image for post

The front-end web framework landscape is another sore point. There are dozens of frameworks vying for attention like Angular 1-x, React, Ember, Backbone, Knockout, Polymer, Meteor, Mercury, Mithril, Aurelia, Vue, etc. It’s a chaotic mess. Everybody is suffering from framework fatigue.

Even on the Node side, things aren’t that rosy. Putting aside the huge, f*cking mess that is the npm repositories, Golang can run rings around Node. Golang’s concurrency is far superior to that of Node. Here’s a wonderful story of how Golang whupped Node’s ass: The Way of the Gopher.

I see no reason why I should inflict JavaScript on myself. There are so many excellent alternatives.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store