Brief History of
JavaScript
An introduction to properly distinct JavaScript, ECMAScript,
Node.js and some other buzzwords
Genesis
● Created by Brendan Eich (founder of Mozilla) to be run natively on Netscape
browser in 1995
● The goal is to turn static HTML page to be more dynamic
● Originally called “LiveScript”, only to be renamed later to “JavaScript”
because anything with name “Java” in it was so cool in 90’s
The Browser War
● Microsoft then adopted stole the technology to be implemented on its own
glorious browser: Internet Explorer
● The implementation got really different from the Netscape’s, frustrating web
developers to make a single working website for all browsers
● This made birth to terms like “best viewed in Internet Explorer”
Standardization
● Netscape submitted the JavaScript language to ECMA International to make a
standardized version based on their implementation
● Thus born the term “ECMAScript” to identify the specification of the language
● Other companies later made implementation based on this spec, like
Macromedia with their “ActionScript”, and of course Microsoft with their…
“JScript”
● This standardization only unified the web for a few years before companies
started to fight over which implementation that should be prioritized
● Guess which company started the fight?
● Of course it’s Microsoft
The Browser War cont.
The Renaissance Era
● Despite the browser war, JavaScript community was flourishing, and they gave
way to libraries like jQuery, Prototype, and MooTools to ease development of
cross-browser features
● Also in this era, the term AJAX (Asynchronous JavaScript XML) was coined to
describe techniques to allow JavaScript to fetch data from server without
reloading the whole document
● The implementation of AJAX was also messy and unstandardized, with some
browsers using XMLHttpRequest and others with ActiveX. But thanks to
libraries above, this didn’t bother web developers anymore
The Harmony
● As the war of “mY JavAScRipt iS BetTEr” was no longer relevant, the
companies started to regroup again and finally released specification of
ECMAScript 5, which codenamed as “Harmony”
● This led to a smoother development of JavaScript, with the release of the
infamous ECMAScript 6, a.k.a. ES6
● ES6 is now renamed as ES2015, where subsequent version is ES2016 &
ES2017
Common Ground
● In 2009, the effort to make specification for JavaScript to be run outside
browser was started, resulting in “CommonJS” (originally called “ServerJS”)
● The most popular implementation is, of course, Node.js
● The popular yet less known implementation is: MongoDB
● Node.js is built using V8, the JavaScript engine that is originally made for
Google Chrome browser
Bonus Chapter: The Node War
● Node.js was founded by Ryan Dahl in 2009 when working on a company
called Joyent
● Joyent later took the governance of Node development, but this made the
development less open to community
● So the community took a “People Power” in 2014 by forking Node to io.js and
develop their own features based on latest version of V8 engine
● Thankfully in 2015 the war is ended by the foundation of Node.js Foundation
which oversee the release of Node v4, codenamed as, you know it: “Harmony”
The Typings
● Being a dynamic language, some people thought what if JavaScript is statically
typed. This led to the creation of TypeScript, a superset of JavaScript
● Essentially, TypeScript make JavaScript to be more Java, with features like
types (duh), annotations, generics and interfaces
● To run a TypeScript code, it must be compiled into JavaScript first, which will
strip those additional features
● Guess who created TypeScript?
● Surprise, surprise, it’s Microsoft
Summary/Glossary
● JavaScript is the original language to be run in browsers
● LiveScript is the original name
● ECMAScript is the specification of the language
● ActionScript, JScript is example of other languages implementing the spec
● TypeScript is the static superset of the language
● CommonJS is the specification for out-of-browser JavaScript
● Node.js is the most popular server side JavaScript, implementing CommonJS
First World Problem
● Despite smooth release of ECMAScript specifications, the real
implementations of the features are not equal in every browsers
● Also in server-side Node.js, the implementation of a single ES spec is spread
into multiple versions
● This brings new headache for developers: “In which ES version should we
write our applications?”
● The safest bet of course the lowest version, which is more widely adopted, but
the developer experience definitely is the worst
The Tower of Babel
● The solution: a “transpiler”, which is like a compiler of a language, but resulting
in same language
● Babel is the most known transpiler for JavaScript, allowing you to write the app
in latest spec, ES2017 for example, then transpile it to ES5
● Named from the biblical Tower of Babel, which is the myth-origin of why
mankind speaks different languages
Atwood’s Law:
“Any application that can be written in
JavaScript, will eventually be written
in JavaScript”
~ Jeff Atwood, creator of StackOverflow
Thanks

Brief History of JavaScript

  • 1.
    Brief History of JavaScript Anintroduction to properly distinct JavaScript, ECMAScript, Node.js and some other buzzwords
  • 2.
    Genesis ● Created byBrendan Eich (founder of Mozilla) to be run natively on Netscape browser in 1995 ● The goal is to turn static HTML page to be more dynamic ● Originally called “LiveScript”, only to be renamed later to “JavaScript” because anything with name “Java” in it was so cool in 90’s
  • 3.
    The Browser War ●Microsoft then adopted stole the technology to be implemented on its own glorious browser: Internet Explorer ● The implementation got really different from the Netscape’s, frustrating web developers to make a single working website for all browsers ● This made birth to terms like “best viewed in Internet Explorer”
  • 4.
    Standardization ● Netscape submittedthe JavaScript language to ECMA International to make a standardized version based on their implementation ● Thus born the term “ECMAScript” to identify the specification of the language ● Other companies later made implementation based on this spec, like Macromedia with their “ActionScript”, and of course Microsoft with their… “JScript”
  • 5.
    ● This standardizationonly unified the web for a few years before companies started to fight over which implementation that should be prioritized ● Guess which company started the fight? ● Of course it’s Microsoft The Browser War cont.
  • 6.
    The Renaissance Era ●Despite the browser war, JavaScript community was flourishing, and they gave way to libraries like jQuery, Prototype, and MooTools to ease development of cross-browser features ● Also in this era, the term AJAX (Asynchronous JavaScript XML) was coined to describe techniques to allow JavaScript to fetch data from server without reloading the whole document ● The implementation of AJAX was also messy and unstandardized, with some browsers using XMLHttpRequest and others with ActiveX. But thanks to libraries above, this didn’t bother web developers anymore
  • 7.
    The Harmony ● Asthe war of “mY JavAScRipt iS BetTEr” was no longer relevant, the companies started to regroup again and finally released specification of ECMAScript 5, which codenamed as “Harmony” ● This led to a smoother development of JavaScript, with the release of the infamous ECMAScript 6, a.k.a. ES6 ● ES6 is now renamed as ES2015, where subsequent version is ES2016 & ES2017
  • 8.
    Common Ground ● In2009, the effort to make specification for JavaScript to be run outside browser was started, resulting in “CommonJS” (originally called “ServerJS”) ● The most popular implementation is, of course, Node.js ● The popular yet less known implementation is: MongoDB ● Node.js is built using V8, the JavaScript engine that is originally made for Google Chrome browser
  • 9.
    Bonus Chapter: TheNode War ● Node.js was founded by Ryan Dahl in 2009 when working on a company called Joyent ● Joyent later took the governance of Node development, but this made the development less open to community ● So the community took a “People Power” in 2014 by forking Node to io.js and develop their own features based on latest version of V8 engine ● Thankfully in 2015 the war is ended by the foundation of Node.js Foundation which oversee the release of Node v4, codenamed as, you know it: “Harmony”
  • 10.
    The Typings ● Beinga dynamic language, some people thought what if JavaScript is statically typed. This led to the creation of TypeScript, a superset of JavaScript ● Essentially, TypeScript make JavaScript to be more Java, with features like types (duh), annotations, generics and interfaces ● To run a TypeScript code, it must be compiled into JavaScript first, which will strip those additional features ● Guess who created TypeScript? ● Surprise, surprise, it’s Microsoft
  • 11.
    Summary/Glossary ● JavaScript isthe original language to be run in browsers ● LiveScript is the original name ● ECMAScript is the specification of the language ● ActionScript, JScript is example of other languages implementing the spec ● TypeScript is the static superset of the language ● CommonJS is the specification for out-of-browser JavaScript ● Node.js is the most popular server side JavaScript, implementing CommonJS
  • 12.
    First World Problem ●Despite smooth release of ECMAScript specifications, the real implementations of the features are not equal in every browsers ● Also in server-side Node.js, the implementation of a single ES spec is spread into multiple versions ● This brings new headache for developers: “In which ES version should we write our applications?” ● The safest bet of course the lowest version, which is more widely adopted, but the developer experience definitely is the worst
  • 13.
    The Tower ofBabel ● The solution: a “transpiler”, which is like a compiler of a language, but resulting in same language ● Babel is the most known transpiler for JavaScript, allowing you to write the app in latest spec, ES2017 for example, then transpile it to ES5 ● Named from the biblical Tower of Babel, which is the myth-origin of why mankind speaks different languages
  • 14.
    Atwood’s Law: “Any applicationthat can be written in JavaScript, will eventually be written in JavaScript” ~ Jeff Atwood, creator of StackOverflow
  • 15.

Editor's Notes

  • #13 See: https://caniuse.com/#feat=es6-class See: https://node.green/