A Brief History of JavaScript
A lot of JavaScript’s quirks and features make more sense once you know where the language came from.
The Creation of JavaScript (1995)
Brendan Eich created JavaScript at Netscape in 10 days in May 1995. It was first called “Mocha,” then “LiveScript,” and then it was renamed to “JavaScript.” The rename was a marketing decision. Java was popular at the time, and the new language had little in common with it.
The goal was to build a lightweight scripting language that could run in the browser and make web pages interactive. At the time, web pages were static HTML documents, and any interactivity required a round-trip to the server.
The Browser Wars
In the late 1990s, Netscape and Microsoft were competing to control the browser market. Microsoft created JScript, its own implementation of JavaScript for Internet Explorer. That caused compatibility problems, because the same code could behave differently in different browsers.
Standardization: ECMAScript
To fix those compatibility problems, JavaScript was submitted to ECMA International for standardization in 1996. The standardized language was named ECMAScript (ES). JavaScript is the best known implementation of it.
Key versions include:
| Version | Year | Notable Features |
|---|---|---|
| ES3 | 1999 | Regular expressions, try/catch, better string handling |
| ES5 | 2009 | Strict mode, JSON support, array methods |
| ES6/ES2015 | 2015 | Classes, modules, arrow functions, promises, let/const |
| ES2016+ | 2016-present | Annual releases with incremental improvements |
ES6
ES6 (also called ES2015) added a large set of features after years with no significant update. These are the features that made JavaScript a modern programming language:
- Classes for object-oriented programming
- Modules for code organization
- Arrow functions for concise function syntax
- Promises for asynchronous programming
- let and const for block-scoped variables
- Template literals for string interpolation
- Destructuring for extracting values from objects and arrays
Since ES6, the language has been on an annual release cycle. Each year brings a smaller set of changes than ES6 did, but the releases are regular.
Node.js and the Growth of JavaScript (2009)
In 2009, Ryan Dahl released Node.js, which let JavaScript run on the server. That turned JavaScript into a general-purpose programming language that could run outside the browser.
Node.js made it possible to:
- Build web servers and APIs in JavaScript
- Use one language for both frontend and backend (“JavaScript everywhere”)
- Share code between client and server
- Use non-blocking I/O for high-performance applications
npm (Node Package Manager) grew into the world’s largest software registry. Companies started using JavaScript for their entire stack. A new developer could learn one language and build a complete application.
Node.js is the reason JavaScript runs in so many places, and it is where most of the tooling that modern web development depends on comes from.
JavaScript Today
JavaScript started out as a “toy language” for small browser scripts. It is now the most widely used programming language in the world. Two things got it there: the ECMAScript updates that modernized the language, and Node.js putting JavaScript on the server.
It now runs in:
- Web browsers (where it started)
- Server-side applications (Node.js, Deno, Bun)
- Mobile apps (React Native, Ionic)
- Desktop apps (Electron)
- IoT devices and embedded systems
The language is still changing. New features are proposed and reviewed through the TC39 committee.
A Note on the Name
JavaScript has “Java” in its name, but there is no technical relationship between the two languages. The name was a marketing decision.