A fifth of century

About me

I like dogs

JavaScript developer

Member of NodeBots Buenos Aires and NodeSchool Buenos Aires

What we will talk about

ECMAScript 2015 (aka version 6)

ECMAScript 5


ECMAScript 1

Before the beginning

How the process changed

ES2015 -> ES5


Arrow functions

Iterators (and generators)



let and const

and many more

Created with Highcharts 4.0.4 Pages 110 117 188 252 566 ES1 ES2 ES3 ES5 ES2015 0 100 200 300 400 500 600

ES2015 is quite big

Start embracing it!

  • Understanding ECMAScript 6 - by Nicholas Zakas
  • Exploring ES6 - Axel Rauschmayer
  • YDKJS: ES6 & Beyond - Kyle Simpson

ES5 -> ES4

404 - not found

aka JavaScript v2

"ES4 was so large and so innovative that there were doubts about whether it could be successfully specified and implemented."

Douglas Crockford

ES5 -> ES4 ES3

Final draft of ES3 was published on 1999.

Final draft of ES5 was published on 2009.

2006 - First release of jQuery

2006 - AJAX is standardized by the W3C 

2004 - Release of Gmail

2000 - End of the world

  • strict mode
  • getters and setters
  • Higher order array methods
  • JSON
  • Object.seal and Object.freeze
  • immutable undefined

ES5 introduced:

(function (){ undefined=1;})();
alert(undefined == 1); // true

ES3 -> ES2

Final draft of ES2 was published in 1998

  • try/catch
  • strict comparison
  • instanceof
  • fn.apply
  • switch
  • function expressions
  • Array helpers (slice, splice, concat, etc)

ES3 introduced:

abstract do import short
boolean double instanceof super
byte enum int super
case export interface switch
catch extends long synchronized
char final native throw
class finally package throws
const float private transient
debugger goto protected try
default implements public volatile

ES2 future reserved words

Out of 40 future reserved words in ES2, 38 are also a Java keyword.

ES2 -> ES1

Final draft of ES1 was published in 1997

ES1 -> Mocha

The night is dark and full of terrors.

JavaScript is created in May 1995 by Brendan Eich

Other things happening in 1995: invention of Java, Ruby and PHP

Any JavaScript error would open a pop-up.

There was no array and object literals.

The constructor property couldn't be set by assignment

Lets polyfill:

undefined=void jsconfeu;
if (typeof Object.create != 'function') {
    Object.create = Function('o', 
        'var F = Function();' +
    	'F.prototype = o;return new F();');

ES2016 and beyond

Releases shipping yearly

non browser vendor based commitee

Open committee 


"JavaScript at 20" by Brendan Eich

"Virtual Machines, JavaScript and Assembler" by Scott Hanselman

Evolution of JavaScript III



A fifth of century

By Alejandro Oviedo García

A fifth of century

  • 2,109