Richard Kenneth Eng
JavaScript Non Grata
2 min readFeb 16, 2016

--

I have to say, I like you. You are very intelligent and funny and charismatic and well-spoken and passionate about programming. This article (and many of your videos) almost convinced me that JavaScript is worthy of investing my time and energy into it.

However, I’m afraid we shall have to agree to disagree. I accept that JavaScript is the lingua franca of the web. Its ubiquity in web browsers is without question an overwhelming advantage. I’m happy that JavaScript engines have been optimized to perform so very well. That’s why I have no problem with using JavaScript as a transpiler target for other languages that I regard as superior.

For example, I’m a big fan of Smalltalk. Smalltalk is also a very easy-to-learn language that is extremely expressive and flexible. As Alan Lovejoy says:

Smalltalk is also fun because defining and using domain specific languages isn’t an afterthought, it’s the only way Smalltalk works at all. As a result, Smalltalk code lets both the reader and the writer focus on the problem domain, using language and notation that is natural to that domain.

And here’s the kicker: Smalltalk is not plagued by the many “little annoyances” that you find in JavaScript. I’m sure you can find a couple of warts in Smalltalk (because no programming language is perfect), but it’s not haunted by a menagerie of hobgoblins.

Amber Smalltalk transpiles to JavaScript. So does PharoJS. Of course, I’m only citing one example. There are many other languages that are better than JavaScript and can transpile to it. One that immediately comes to mind is Clojure.

The point is, JavaScript may or may not be “a pretty darn nice language” (which is quite debatable), but there’s really no compelling reason to directly program in JavaScript. In the future, WebAssembly will further strengthen this argument.

All I’m saying is, you have choices. You really do. You can choose to avoid the minefield that is JavaScript.

--

--