The Weird History of JavaScript
Tags: javascript
Published: 2019-06-20 21:12:27

---
title: The Weird History of JavaScript
published: true
description: Pivotal moments in the evolution of JavaScript
tags: javascript
---

{% youtube Sh6lK57Cuk4 %}

The history of JavaScript is almost as weird as the language itself. Over the last 25 years, it has exploded from a rushed prototype for Netscape to the world's [most widely used](https://insights.stackoverflow.com/survey/2019#most-popular-technologies) programming language. Here's how it happened, I guess... 


## Let there be JavaScript

*1990 - 1999*. During this period, we see the birth of JavaScript and its standardization through ECMA to version 3 (ES3). 

**Christmas Day 1990**. The world's first modern web browser, WorldWideWeb (later renamed to Nexus), is developed by Sir Tim Berners-Lee in Switzerland. Take it for a [spin](https://worldwideweb.cern.ch/browser/). 


![world wide web](https://upload.wikimedia.org/wikipedia/commons/8/8c/WorldWideWeb.png)

**December 1991**. The High Performance Computing Act is passed (Gore Bill). Al Gore is later hilariously misquoted as having "invented the Internet". 

**January 1993** The Mosaic Browser is developed by [Marc Andreessen
](https://en.wikipedia.org/wiki/Marc_Andreessen) and Eric Bina at the University of Illinois with funds from the Gore bill. It takes off as the first mainstream web browser 🚀. 

![mosaic](https://upload.wikimedia.org/wikipedia/en/a/a5/NCSAMosaic1.0Mac.png)

**Early 1995**. Netscape (co-founded by Marc Andreessen) was growing rapidly to nearly 80% of the browser market share, but web designers needed a "glue" language to make their sites more dynamic. At first, they turned to Java, but realized something more dynamic and approachable was needed. 

![netscape](https://upload.wikimedia.org/wikipedia/en/c/c9/Navigator_1-22.png)

**May 1995**. [Brendan Eich](https://en.wikipedia.org/wiki/Brendan_Eich) is recruited to put "Scheme in the browser", but was under pressure to produce a prototype quickly with the threat of Microsoft beating them to the punch.

![eich](https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/Brendan_Eich_Mozilla_Foundation_official_photo.jpg/220px-Brendan_Eich_Mozilla_Foundation_official_photo.jpg)

**Ten days later...** He creates a language called Mocha. It has the syntax of Java, first-class functions like Scheme, dynamic types like Lisp, and prototypes like Self. 

**September 1995**. It is renamed to LiveScript for marketing reasons.

**December 1995**. It is renamed to JavaScript for marketing reasons. 

**August 1996**. Microsoft reverse engineers JavaScript and ships it with Internet Explorer 3, but calls it JScript for ~~marketing~~ legal reasons. 

![msft dance](https://media.giphy.com/media/ALsmDt9JdRLJm/giphy.gif)

**November 1996**. Microsoft is crushing their competition with an internal culture of **"embrace, extend, and exterminate"**, yikes 😬. Netscape submits documentation to standardize JavaScript with [ECMA International](https://www.ecma-international.org/publications/standards/Ecma-262-arch.htm). 

**June 1997**. The first standardized version of JavaScript (ES1) is approved by the TC-39 committee as ECMA-262 or ECMAScript. It has many of the features we use in JS today, like first-class functions, objects, and prototypal inheritance. 

**June 1998**. ES2 is standardized, mostly unchanged.

**December 1999**. ES3 is standardized, adding support for strict equality, exception handling, and more. It will stand for the next 10 years. 

## The Dark Ages

*2000 - 2008. After the tech bubble bursts, JS experiences numerous setbacks and the failure of ES4.*

**March 2000**. The tech bubble bursts. 

**Sometime later...** A wide range of features are proposed for ES4, like classes, interfaces, optional types, and other mechanics aimed at large enterprise needs. [Douglas Crockford](https://en.wikipedia.org/wiki/Douglas_Crockford) from Yahoo raises concerns that the proposal is too complex and bloated, Microsoft agrees. 

The TC-39 committee decides to develop ECMAScript 3.1 (the simple version) and ECMAScript 4 (the enterprise version) in parallel. Ultimately, this approach fails and ES4 never sees the light of day. 

![fire](https://media.giphy.com/media/1rNWZu4QQqCUaq434T/giphy.gif)

**Meanwhile...** Microsoft's Internet Explorer is dominating with approx 90% of the browser market share. They contribute to ECMAScript, but mostly play by their own rules, shipping new features for JS in their browser. Most notably, [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) sets the stage for the single page applications of the future. 

**August 2006**. John Resig creates [JQuery](https://jquery.com/). The library addresses extremely-frustrating issues related to cross-browser compatibility that existed at the time. It also provides a well-documented terse API that sets a new standard for the "developer experience". Today, it remains the most widely used JS library in terms of actual page loads.  

**September 2008**. Google releases the Chrome Browser and open-sources its high-performance runtime, called the [V8 engine](https://v8.dev/). It opens the door to new possibilities...

![v8](https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/V8_JavaScript_engine_logo_2.svg/220px-V8_JavaScript_engine_logo_2.svg.png)

## The Renaissance

*2009 - 2015. JavaScript goes fullstack and sees prolific growth in its dev ecosystem*

**May 2009**. [Ryan Dahl](https://en.wikipedia.org/wiki/Ryan_Dahl) develops NodeJS with Google's V8 project. It is unique for its ability to run non-blocking code with an event loop on the server. It gives rise to the **JavaScript Everywhere** paradigm. 

![nodejs](https://nodejs.org/static/images/logos/nodejs-new-pantone-black.png)

**December 2009**. Exactly 10 years after ES3 we finally see a new version of JavaScript - **ES5**. It adds a conservative set of new features based on ES3.1 like strict mode, accessors, and JSON.

![es5](https://media.giphy.com/media/kcZKcDHYs0FXCMbrHV/giphy.gif)

**October 2010**. Both [AngularJS](https://en.wikipedia.org/wiki/AngularJS) and [Backbone](https://en.wikipedia.org/wiki/Backbone.js) frameworks see their initial releases. They become extremely popular for different reasons - Angular was declarative and opinionated, while backbone was imperative and minimal. This marks the beginning of the modern single page application (SPA) and "framework churn". 


**May 2013**. Facebook releases [ReactJS](https://en.wikipedia.org/wiki/React_(JavaScript_library)). It sees rapid growth in the years ahead solidifies the declarative UI patterns used in many apps today. 

![react](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/React-icon.svg/512px-React-icon.svg.png)

Dozens of other frontend, backend, and fullstack frameworks emerge roughly around this time period, like Angular, Ember, Meteor, Sails, Vue, Svelte, Mithril, Knockout, Polymer, just to name a few. 

## Modern Times

*2015 - present. A ton of new features land in ES6 changing the way modern JS devs write their code.*

**2015**. ES6 brings a ton of new features to the language (many of which originated in the failed ES4), such as let/const, arrow functions, classes, promises, and more. It gives rise to transpilers like Babel and Typescript, so developers can write modern code, but still support legacy browsers that run ES5/3. 

**2016** ES7. We get minor changes, like Array.includes(). Most importantly, ECMA is now making small changes on an annual basis. 

**2017** ES8. We get Async Await!

**2018** ES9. We get Rest/Spread syntax!

**2019**. ES10. More small, but useful updates have been finalized. Should be out this summer. 

Where does JavaScript go from here? Will WASM replace JS? Will microfrontends make React obsolete? Will the new tech bubble burst? 

Only time will tell, stay tuned for Part II in 2045!