TC39
Language Design in the Open
Yulia Startsev • Berlin.js 2019
TC39 Language Design in the Open Yulia Startsev Berlin.js 2019 - - PowerPoint PPT Presentation
TC39 Language Design in the Open Yulia Startsev Berlin.js 2019 Hi. My name is Yulia. I work at Mozilla. I am also a co-chair on TC39 A bit of history Issues from ES4 The Proposal Process Overview How is JavaScript
Yulia Startsev • Berlin.js 2019
We aimed to provide a “glue language” for the Web designers and part time programmers who were building Web content from components such as images, plugins, and Java applets. We saw Java as the “component language” used by higher-priced programmers, where the glue programmers—the Web page designers—would assemble components and automate their interactions using [a scripting language]. *
1995
A prototype named Mocha Written in 10 days by Brendan Eich, this is the first “JavaScript” implementation from netscape
1996
Microsoft releases JScript JScript was a reverse engineered version of JavaScript. To keep MicroSoft in check, Netscape moved to standardize JavaScript
1997
ECMAScript 1
1998
ECMAScript 2
1999
ECMAScript 3
2009
ECMAScript 5
2015
ECMAScript 6 ...
ECMA-402, ECMA-404, ECMA-414
1995
A prototype named Mocha
1996
Microsoft releases JScript
1997
ECMAScript 1
1998
ECMAScript 2
1999
ECMAScript 3
2009
ECMAScript 5
2015
ECMAScript 6 ...
implemented
ES3.1, then ES5 and ES6[*]
for proposals, called the Harmony Process
and advancing proposals in stages
Stage 0 Someone has an idea and they write it up Stage 1 The idea is presented to the committee, committee makes comments Stage 2 Committee discusses if this feature “should be in the language” Stage 3 Polyfill and browser implementations, final form of the proposal takes shape Stage 4 Proposal is included in the specification
Requirements
challenges/complexity
Precisely describe the syntax and semantics using formal spec language The committee expects the feature to be developed and eventually included in the standard Requirements
and editorial issues are expected
Indicate that further refinement will require feedback from implementations and users The solution is complete and no further work is possible without implementation experience, significant usage and external feedback. Requirements
Indicate that the addition is ready for inclusion in the formal ECMAScript standard Requirements
and merged
that provided by two independent VMs
text
Stage 0 Someone has an idea and they write it up Stage 1 The idea is presented to the committee, committee makes comments Stage 2 Committee discusses if this feature “should be in the language” Stage 3 Polyfill and browser implementations, final form of the proposal takes shape Stage 4 Proposal is included in the specification
https://github.com/tc39/tc39-notes
O t h e r S t a n d a r d s B
i e s
Vendors Users Developers
Users Developers Vendors
capabilities to the web platform that are secure and efficient.
existing features***, such as HTML and CSS, allowing authors to understand and replicate them.
features in JavaScript, and allow web developers to iterate on them before they become standardized. This creates a virtuous cycle between standards and developers.
recommendations and deprioritize and refocus those which do not.
Pure CSS Francine by Diana Smith
Users Developers Vendors
Array.prototype.contains -> Array.prototype.includes
compared to developers. Making the web worse for users pushes them away from the web.
frameworks and teaching.
each plenary
https://github.com/tc39/tc39.github.io
evolves.
https://github.com/tc39/proposals
https://github.com/tc39/test-262
○ Ask us Questions! ○ Use the twitter tag #tc39panel ○ We will answer on stage and the session will be recorded
○ At fullstack.js meetup ○ https://t.co/dPrqyrJSzh
@ioctaptceb yulia@mozilla.com