Javascript - An Unauthoritative History
by Danny Kirchmeier and Caley Brock
At Outschool we prioritize learning and teaching, not just for our Outschool educators and learners, but internally on our engineering team. Our engineer, Danny, taught a session in JS and put together an introduction to the history of Javascript. We thought it was too good not to share.
1995
POV: You are a company named Netscape. You have a popular browser called Netscape Navigator. The web development scene is flourishing and people want a way to make pages more dynamic.
September: You release a beta version of a scripting language called LiveScript. 1 December: You release it officially as JavaScript. 2
1996
POV: You are Microsoft. You are competing with Netscape Navigator for market share with your own browser, Internet Explorer. They own 95% of the market share, but you’re not willing to be beat that easily. You decide to do what it takes to bring dynamic pages to your browser too.
August: You reverse-engineer JavaScript and call your implementation JScript. 3
1997
POV: You are Netscape. You want your language seen as the standard, and you’ve been in talks with the standards organization, Ecma International.
June: You get the language formalized, but compromise on the name: ECMAScript 4
POV: You are a programmer. You think ECMAScript sounds like a skin disease.
July: You (and everyone else) keep on calling the language JavaScript. 5
1998
POV: You are a programmer. Even with a common standard, browser differences make supporting multiple sites difficult.
August: Browser market share reaches a 60/40 (favoring Netscape) ratio. 6
So you take a shortcut: 7
2000
POV: You are Microsoft.
January: IE passes 75% market share and continues to grow with no signs of slowing down.
2001
POV: You are Microsoft.
August: IE passes 86% market share as they release IE6. It continues to grow. 8
You decide to rest on your laurels and slow new feature development.
2004
POV: You are Google. Disappointed with existing but slow web-based email services, you come up with some novel uses to existing APIs that allow you to get new data from a server dynamically, allowing you to make a new, very fast email system.
April: Gmail is released 9
POV: You are Mozilla. Frustrated with the lack of progress made in web standards by Microsoft, you decide to take matters into your own hands.
November: Firefox is Released 10
2005
POV: You are a programmer. You made a webpage and found Firefox much easier to support than Internet Explorer.
October: You tell your friends about it. Firefox grows to 8% market share and continues to grow quickly. 11
2006
POV: You are Google. Gmail is popular and feature complex. The code is becoming unwieldy. Trying to support all of the oddities of IE has become a nightmare. JS Devs are in short supply and your super star engineers are Java Devs who hate JS.
May: You release GWT (Google Web Toolkit), a tool that compiles Java into Javascript. 12
2008
POV: You are Google. Frustrated with IE & Firefox for being quirky and running JS slowly, you decide to take matters into your own hands.
December: You release the Chrome browser, a browser focused on speed and compliance. 13
2009
POV: You are Ryan Dahl. Intrigued by the speed of JS in Chrome and frustrated with limitations of the Apache HTTP Server, you decide to take matters into your own hands.
May: You release Node.js as a tool to run a server in Javascript. 14
POV: You are the ECMAScript committee. Frustrated by the discrepancies between JS implementations and inconsistencies in the specification, you decide to take matters into your own hands.
December: You ratify version 5 of the spec. Formally known as ECMAScript 2009, also called ECMAScript 5 or more commonly: ES5. 15
2010
POV: You are Isaac Schlueter. Impressed with node.js, you want to contribute to its popularity and help everyone share code that can be used on this new platform.
January: You release npm, the node package manager. 16
2012
POV: You are Microsoft. Frustrated by the difficulty of developing large apps in JS, you still see potential in the language but think it needs some more structure.
October: You release Typescript as a language that adds optional types and compile-time validator on top of Javascript. 17
POV: You are Google. Pleased by the increase of JS developers and frustrated by the burden of maintaining GWT, you decide to relocate team members.
June: You announce the transition of GWT to an open-source project and quickly loses popularity. 18
2013
POV: You are the ECMAScript committee. Desiring to continue to improve the language, you study and learn from other languages.
November: The final meeting of the year comes and goes and there are still disagreements on how to implement certain features. 19
2014
POV: You are Sebastian McKenzie. You see the neat features that have been proposed and accepted in ES6 and you want to start using them now.
September: You build a tool called 6to5 that compiles ES6 code into ES5 code. 20
2015
POV: You are Sebastian McKenzie. 6to5 has become very popular, but you realize that not all ES6 features proposed and supported by your tool will end up in the spec.
February: Wanting to future proof the project name, you rename it to Babel. 21
POV: You are the ECMAScript committee. Desiring to continue improving the language, you motion to release the spec and establish a regular release cadence to protect against large changes and long delays.
June: You release the 6th version of the spec. 22 Commonly known as ES6, the committee recommends that it be called ES2015 to match a yearly release cadence. 23
2023
POV: You are here, reading this article.
The committee has continued to release annual releases of their ECMAScript standard. All major browsers have multiple releases per year and incorporate standard features quickly. Node.JS has annual releases and continues to be used successfully to power large websites.
-
https://en.wikipedia.org/wiki/JavaScript#Creation_at_Netscape ↩︎
-
https://en.wikipedia.org/wiki/JavaScript#Creation_at_Netscape ↩︎
-
https://en.wikipedia.org/wiki/JavaScript#Adoption_by_Microsoft ↩︎
-
https://www.visualcapitalist.com/internet-browser-market-share/ ↩︎
-
https://en.wikipedia.org/wiki/Browser_wars#First_browser_war_(1995%E2%80%932001) ↩︎
-
https://www.visualcapitalist.com/internet-browser-market-share/ ↩︎
-
https://en.wikipedia.org/wiki/History_of_Gmail#Public_release ↩︎
-
https://www.visualcapitalist.com/internet-browser-market-share/ ↩︎
-
https://en.wikipedia.org/wiki/Google_Chrome#Public_release ↩︎
-
https://en.wikipedia.org/wiki/ECMAScript_version_history#5th_Edition_%E2%80%93_ECMAScript_2009 ↩︎
-
https://github.com/babel/babel/commit/c97696c224d718d96848df9e1577f337b45464be ↩︎
-
https://www.infoq.com/news/2015/02/babel-new-name-for-6to5/ ↩︎
-
https://en.wikipedia.org/wiki/ECMAScript_version_history#6th_Edition_%E2%80%93_ECMAScript_2015 ↩︎
-
https://github.com/tc39/notes/blob/167155eeb708d84e1758d99c88b15670f9b81f75/meetings/2014-06/jun-4.md ↩︎