JavaScriptHistory of JavaScript

History of JavaScript

JavaScript was created in ten days in May 1995 by Brendan Eich, then an engineer at Netscape. The browser war between Netscape Navigator and Microsoft Internet Explorer was at its peak. Netscape wanted a small scripting language that less-technical authors could embed into web pages to make them interactive — and they wanted it in the next browser release. Eich, who had a background in functional and Scheme-like languages, was given that brief and a brutal deadline.

The result was a strange but powerful hybrid: object-orientation that looked a bit like Java, but with first-class functions and dynamic typing borrowed from Scheme and Self. That combination is why JavaScript still feels different from most "C-family" languages today.

How did it get the name "JavaScript"?

The original name was Mocha. It was renamed LiveScript before the public beta. Just before the final release, Netscape and Sun Microsystems struck a marketing deal and renamed it JavaScript — riding the wave of excitement around Java, which had just been launched. The name caused decades of confusion: JavaScript and Java are not related languages; they share four letters and very little else.

The standardisation: ECMAScript

Microsoft watched Netscape's success, reverse-engineered the language, and shipped its own implementation called JScript in Internet Explorer 3 (1996). To stop the two implementations from diverging, the language was sent to ECMA International, a standards body, which renamed the official specification ECMAScript. The first edition, ES1, was published in June 1997.

So when people say "JavaScript", they mean the language as you use it. When they say "ECMAScript" or "ES2015", they mean the formal specification that browsers and runtimes implement.

Timeline of major moments
  • 1995 — Brendan Eich creates the language at Netscape; ships as JavaScript in Netscape Navigator 2.0.

  • 1996 — Microsoft ships JScript in Internet Explorer 3. The browser war heats up.

  • 1997 — ECMA standardises the language as ECMAScript (ES1).

  • 1999 — ES3 lands. Most features you can use in any browser today come from this version — regular expressions, try/catch, switch, do-while.

  • 2005 — Jesse James Garrett coins "AJAX"; Google Maps and Gmail show what JavaScript can really do. Interest in the language explodes.

  • 2006 — jQuery is released. It papers over browser inconsistencies and makes JavaScript pleasant to write. Almost every site uses it for a decade.

  • 2008 — Google Chrome ships with the V8 engine, which compiles JavaScript to native machine code. The performance jump is dramatic.

  • 2009 — Ryan Dahl uses V8 outside the browser to build Node.js. JavaScript becomes a server-side language overnight.

  • 2010 — npm is released. The JavaScript package ecosystem begins.

  • 2015 — ES2015 (also called ES6) — the biggest update to the language ever: let/const, arrow functions, classes, modules, promises, template literals, destructuring, default parameters, Map/Set, generators.

  • 2016 onwards — TC39 switches to a yearly release cadence. Smaller, focused additions every year: ES2017 brought async/await, ES2018 brought spread for objects, ES2019 brought flat/flatMap, ES2020 brought optional chaining and nullish coalescing, ES2021–2024 brought logical assignment, at(), top-level await, findLast, well-formed Unicode, and more.

  • 2010s–today — Frameworks rise (Angular, React, Vue, Svelte), bundlers replace simple <script> tags (Webpack, Rollup, Vite, esbuild), TypeScript adds optional types, Deno and Bun appear as alternative runtimes.

How new features get added: TC39

The language is now maintained by TC39, the technical committee inside ECMA responsible for ECMAScript. New features go through a public proposal process with five stages:

  1. Stage 0 — Strawman. Someone has an idea worth talking about.

  2. Stage 1 — Proposal. A champion (usually a TC39 member) sketches the problem and rough solution.

  3. Stage 2 — Draft. A precise specification, written in the language of the spec.

  4. Stage 3 — Candidate. Spec is feature-complete. Browsers start to implement it for real.

  5. Stage 4 — Finished. Two independent implementations ship, tests are written, and the feature is included in the next yearly ECMAScript release.

You can follow proposals on the TC39 GitHub. A feature you have used in Chrome today probably spent two to four years in this pipeline.

The big inflection points

If you read older JavaScript books or blog posts, three changes shape almost everything:

  • V8 and JIT compilation (2008). Made JavaScript fast enough to run real applications, not just decorate pages.

  • Node.js (2009). Took JavaScript outside the browser. The language now competes for back-end work, build tools, CLIs and more.

  • ES6 / ES2015. Modernised the syntax. Code written before ES6 looks very different from code written after — modules, classes, arrow functions, promises, and let/const reshaped how people write JavaScript.

JavaScript today

JavaScript is now the most widely deployed programming language in the world. Roughly 98% of websites use it. Every major company that builds for the web ships JavaScript, often in millions of lines. The language continues to evolve cautiously — TC39 prefers small, well-designed additions to giant overhauls — but the surrounding ecosystem (frameworks, build tools, package managers, runtimes) changes far more quickly.

The takeaway
You're learning a language with a winding history but a stable future. Browsers maintain extreme backwards compatibility — code written in 2005 still runs today — and new features are added in a controlled, incremental way. Once you understand the fundamentals, the language stays useful for the long haul.