Go back

JavaScript’s midlife crisis

JavaScript won the browser, but its infrastructure is moving to Rust, Go and Zig: what this means for developers.

JavaScript’s midlife crisis

I came across an excellent article by Maroun Baydoun about what is happening to the JS ecosystem in its third decade.

The central idea: JavaScript has won everywhere, but is now going through an existential crisis.

We have gone from attempts to “kill” or replace JS (Flash, VBScript, CoffeeScript) and prop it up from the outside (jQuery, Lodash, TypeScript) to a situation where all modern infrastructure is being rewritten in other languages.

⚡️ What is happening now?

  • Tools are moving to Rust, Go and Zig. Vite, Biome, Turbopack, SWC, Rolldown, Bun: we are handing compilation, linting and bundling over to faster, native languages.
  • The irony of the ecosystem: we compile JS using Rust to get JS that then runs in an engine (V8/JavaScriptCore) written in C++. The author neatly compares this to “laying ultra-high-speed tracks for a steam locomotive that still cannot go faster than its nature allows.”
  • A higher barrier to entry in tooling: previously, if a Babel or ESLint plugin broke, you could open node_modules and fix the JS code right there. Now that tooling has moved to Rust/Go, the circle of people able to debug and contribute to bundlers and linters has shrunk considerably.

JS is not going anywhere in the browser: that is a fact. But the ecosystem around it is already ceasing to be “JS-only”.

What do you think? Have you already dived into Rust/Go because of the new tooling, or do you prefer to treat build tools as a “black box” that should simply run fast?

Read the full article

Copied