Have you ever asked why JavaScript requires so much special attention to learning, compared to nearly all other programming languages?

Languages like Java and Python and C# and Ruby and Scala and Clojure and Haskell don’t seem to create nearly as much chaos as JavaScript.

Check out Kyle Simpson’s talk. Kyle Simpson, if you don’t know, is a big JavaScript evangelist, and even he is gracious enough to point out many of JavaScript’s biggest faults. JavaScript’s design, if you can call it that, is pretty much a disaster. But he still likes the language. (Go figure.)

No language is perfect, but JavaScript has much more than its fair share of warts. People do not complain nearly as much about Java and Python. C# gets a lot of respect (why doesn’t JavaScript?).

And it’s not because of JavaScript’s lack of static typing (see Python and Clojure), nor JavaScript’s use of lambdas (see Scala, Clojure, Haskell), nor JavaScript’s use of prototypes (see Lua and Rebol). It’s because of the language’s broken semantics, which ECMA TC39 cannot repair for fear of breaking the web.

There is something wrong when a language like JavaScript, which has no special qualities whatsoever, requires special training in order to use well. Why not just save this effort and put it towards better languages like Kotlin and Swift and Smalltalk?

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