React, etc. Tech Stack

React, Flux, GraphQL, Hack, HHVM...? All of this and more!

JavaScript itself is Conservative

Sometimes it seems like the most advanced technologies are the ones that continuously evolve and break backwards compatibility.

JavaScript has for the last years been in this constant state of improvement, where every week applications break down if you update dependencies to the latest versions.

This continous evolving gives out a perception of continous improvement and forward-going momentum. But this can also lead to quite a bit of churn as developers don't get to stabilise their applications when things move forward.

While people often relate JavaScript itself being the fault for this kind of behaviour, JavaScript / ECMAScript are actually very conservative in their improvement. Imagine now how much legacy code still needs to run perfectly even in the very latest browsers...

That's right! You rarely get incompatibilities with old JavaScript code when a new browser version comes out. This is because the language specification itself is very backwards compatibility, because they can't afford to break the whole internet based on the latest whims and trends in the tech industry.

A great example of this is the let keyword in ES6. It has to do with the scoping of variables in a block and behaves differently to the classical var keyword which easily leaks to global scope, because of it being scoped by the enclosing function.

You could think that they designed the latest incarnation of the specification JavaScript is built on to use let for some fancy reason... But it's just there because because so much of the internet would break if some browsers suddenly handled var differently then they had before.

So the community using JavaScript may be sometimes frustratingly unstable, but JavaScript itself is a solid platform with much consideration for backwards compatibility. Respect.

Written by Jorgé on Sunday April 24, 2016

Permalink -

« Mossack Fonseca exposes unmaintained Open Source CMS risks - JavaScript back to basics: You might not need React or Angular 2 »