The second age of JavaScript is about the community and ecosystem. In 2009, ECMAScript 5 and the dominant module syntax in Node.js and the browser were introduced. Different sections of the community emerged, including runtime and the emergence of build tools. Significant innovations like Closure Compiler, CoffeeScript, Grunt, Webpack, Typescript, Galp, Tracer, Rollout, Babel, and newer versions of Bundlers came out. Frameworks like Angular, Backbone, Meteor, ReactiveView, and Its Vault also emerged. This history spans over 10 years of runtimes, build tools, frameworks, and a shift left in JavaScript tooling.
OK. Then we'll talk about the second age of JavaScript. So if the first age of JavaScript was about forming the language, the second age of JavaScript is about the community, the ecosystem. In 2009, all these things happened in the same year. We reach ECMAScript 5, the Harmony specification, but then we also had this weird, like, common JS syntax that was proposed. That became the eventual dominant module syntax in Node.js and in the browser. Node.js was launched in 2009, and as well as MPM was launched in 2009. All these things we take for granted today were invented in the same year.
There are different sections of the community. So I'm going to break out a few of them. The first was runtime. You can track the gradual evolution of being able to run JS everywhere. You can run JS in a browser. Chrome also started in 2009, which is wild to think it's that Electron, you can run it in the desktop, you can run it on phones, and then you can have specialized runtimes just for Android. And that's a really interesting, low-level engineering thing that's going on. Obviously, there's probably other runtimes that I don't even know about, so let me know in the comments if there are that you think I should touch on.
The second part of the ecosystem I want to touch on is the emergence of build tools, the way to help you compile, and build, and bundle your JavaScript. So, Closure Compiler and CoffeeScript both emerged in 2009, as well. Very, very significant year for innovation. There was Grunt, Webpack, and Typescript around about the same time in 2012-ish, 2011. Galp and Tracer came out in 2014, and Rollout and Babel replaced Tracer, as well as the newer versions of Bundlers, Rollout, Parcel, and Bazel came out in the subsequent three years.
Frameworks also came out. So, we had, before Angular and Backbone, we had a bunch of others. But let's just call it the start of the second-age of JavaScript with Angular and Backbone. Meteor came out and tried to be full stack, with its own UI layer called Blaze. ReactiveView came out in 2013 and 2014. Its Vault came out in 2017, but it was essentially reinvented in 2019. So, that's the history. It's over 10 years of runtimes and build tools and frameworks. And there's one more trend which I like to call out, which is this idea of a shift left in JavaScript tooling.
Comments