npm install -g reveal-md
npm start
- whoami
- The History of JavaScript
- TC39 Process
es-next
- May - Brendan Eich is recruited by Netscape to create "Scheme in the Browser"
- Developed in 10 Days under the code name "Mocha"
- September - "LiveScript" ships with Netscape Navigator 2.0 beta
- December - Renamed to "JavaScript", ships with Netscape Navigator 2.0 beta 3
- Netscape partnered with Sun to ride the momentum of the Java language
#### vs
- Named JScript to prevent lawsuit
- November 1996: Netscape delivers JavaScript to ECMA International for standardization
- June 1997: The first edition of ECMA-262 was adopted by the ECMA General Assembly
- The name "ECMAScript" was a compromise, Brendan Eich says it "sounds like a skin disease"
- Any JavaScript error would open a pop-up.
- The Number constructor would throw if the parameter could not be converted successfully
Number('some string');
- If at least one of the operands of the equals operator was Boolean, undefined or Number it will then coerse both operands to Number.
if(new Object() == false) {}
- The reference to the value
undefined
was not present.
Notes on explicit JavaScript versioning
Added 40 future reserved words (38 are also a Java keyword).
abstract | do | import | short |
boolean | double | instanceof | static |
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 |
Introduced:
- try/catch
- strict comparison
- instanceof
- fn.apply
- switch
- function expressions
- Array helpers (push, pop ,slice, concat, etc)
- Regular expressions
- Abandoned in 2008
- There were a lot of very strong opinions about how to move JavaScript forward, many of which were incompatible, some of which had mostly assembled what they thought would be the 4th edition before things fell apart
"ES4 was so large and so innovative that there were doubts about whether it could be successfully specified and implemented." -Douglas Crockford
- Focus work on ES3.1 with full collaboration of all parties
- Collaborate on the next step beyond ES3.1
- Some ES4 proposals have been deemed unsound for the Web, and are off the table for good: packages, namespaces and early binding. This conclusion is key to Harmony.
- Other goals and ideas from ES4 are being rephrased to keep
consensus in the committee.
- strict mode
- getters and setters
- Higher order array methods (forEach, map, reduce, etc)
- JSON
- Object.seal and Object.freeze
- immutable undefined
Before ES5:
undefined=1;
alert(undefined == 1); // true
- A revision of 5.0 that corrects some errors in the document itself.
The ISO edition of the ES5 specification incorporates a number of editorial and technical corrections including those listed in the current ES5 errata.
It contains no new language or library features. TC39 is continuing its longer term work on “ECMAScript Harmony” which is intended to be the next version to include any new features.
Official goals: a better language for
- applications
- libraries
- code generators
- Classes
- Arrow functions
- Iterators (and generators)
- Proxies
- Destructuring
- let and const
- and much much more
- June 1997 - ES1
- June 1998 - ES2
- December 1999 - ES3
10 Years Go By
- December 2009 - ES5
- December 2011 - ES5.1
4 Years Go By
- June 2015 - ES2015 (6)
- June 2016 - ES2016 (7)
https://github.com/hemanth/tc39-members
The Ecma TC39 committee is responsible for evolving the ECMAScript programming language and authoring the specification. The committee operates by consensus and has discretion to alter the specification as it sees fit. However, the general process for making changes to the specification is as follows.
https://tc39.github.io/process-document/
- Browser Museum
- Netscape Navigator on Wikipedia
- MDN: New in JavaScript
- The A-Z of Programming Languages: JavaScript
- Brendan Eich: JavaScript - The High Road, The Low Road
- What's going on with JavaScript versioning?
- Brendan Eich on JavaScript at 17 - O'Reilly Fluent 2012
- Brenda Eich on JavaScript at 18: Legal to Gamble - Fluent 2013
- Brendan Eich on JavaScript Taking Both the High and Low Roads - O'Reilly Fluent 2014
- ECMAScript Harmony: Rise of the Compilers - Brendan Eich keynote
- Alejandro Oviedo - THE !FUTURE OF JAVASCRIPT (Spanish Audio)
- Nordic.js 2016 • Jem Young - Embracing The Future
- JavaScript Jabber #124: The Origin of Javascript with Brendan Eich
- JavaScript Air - The past, present and Future of Javascript