JavaScript, the Assembly Language of your Generation

Back when I was a kid, somewhere around the times when the Dinosaurs roamed the Earth, most programmers would solve their real problems using Assembly programming. Sure you could create some minor things in BASIC for instance, but all “serious” problems resorted to Assembly. Today we’re in a similar shift, where extremely high level abstractions are not yet (apparently) powerful enough to solve our “real problems”, so we’re left with coding in JavaScript. However, have no doubts, this is an anomaly.

If you attend a job interview 5 years from now, and you explain the guy interviewing you that you’re a skilled JavaScript developer, you’ll be laughed out of the office, the same way a skilled Assembly programmer today is. The reasons are summed up by Paul Graham.

A high level abstraction will always outperform a low level abstraction in productivity

The above lesson was something Graham learned in his venture ViaWeb. And guess what, an employer doesn’t care if you can create a rich web app in 20 days, if somebody else can create it in 5 days, solving his needs. An employer doesn’t care if you’re able to fluently speak Clojure, as if it was your native tongue, if some 5th generation system developer is able to create an Ajax web form 5 times as fast as you.

Even today an extremely skilled Assembly programmer can easily outperform a C++ developer, and implement something that’s at least 25% faster. However, those 25% are basically the difference between 0.00001 and 0.0000075 seconds. Do you really believe the end user is going to notice it …?

What the end user will notice though, is if you’ve spent 10 people working for 10 months, or 2 people working for 2 months to solve the problem. This will from the customer’s point of view literally translate into thousands of dollars, that the software vendor needs to earn, to make the project break even. In addition, your employer will definitely notice it if your competitor is able to deliver a product into production 8 months before you do.

Guess what, JavaScript is an extremely low level abstraction, and if you can avoid it, and use a higher level abstraction – You SHOULD!


jQuery is extinct

jQuery used to be the king of the web development, just like the T-Rex used to be the king of the Earth 65 million years ago. Its reputation and power was well deserved, since it used to solve a really big and difficult problem; Cross browser incompatibilities.

However, all good things must come to an end, and today jQuery is literally extinct – Although many web developers will probably object to me saying such a thing. The problem jQuery used to solve, is no longer a problem. Hence, its biggest asset, is all of a sudden a ball and chain its maintainers cannot get rid of, since it would break backwards compatibility with previous versions of jQuery, and they would basically have to create another non-compatible jQuery. The irony … 😉

10 years ago, if you wanted to create a piece of JavaScript that worked equally well in both IE, FireFox and Chrome, you had almost no other option than to use jQuery. Today, you can simply create JavaScript, and the statistical probability of that you’ll create something that doesn’t work in all browsers, is close to zero. Hence, jQuery is no longer of any use, besides from of course adding 30KB of bandwidth to your page load that is.

Of course, a lot of people have invested huge amounts of time and effort into learning jQuery, and these developers will defend jQuery to the bitter end. But we can all see where it’s going, even the ones who still defends it. jQuery is extinct. Thank you for showing us greatness and being of service to the world, for a period of almost 10 years, and hence being the T-Rex of web development – But now it’s time to bury yourself.

Don’t feel too bad about yourself jQuery, JavaScript is soon going the same way

R.I.P. jQuery!