Technical Committee 39. Caretaker for many standards: ECMAScript (ECMA-262), Intl (ECMA-402), JSON (ECMA-404), etc.
Non exhaustive list of supported projects :
Written by TC39.
ECMA is an international standards body (much like ISO, IETF, W3C or WHATWG, for instance).
Listed on the ECMA internatinal website.
|ES5.1||ECMA-262||2011||PDF, HTML, Annotated HTML|
|ES6||ECMA-262 2015||2015||PDF, HTML, ES6 features list, ES6 Features list over ES5|
|ES.Next||ECMA-262 2019||2019 ?||Draft, Feature watch: ECMAScript 2019|
Occurs following a general assembly meeting. The last to date was the 115th General Assembly held in Geneva, June 27, 2018.
They approved the ECMA-262 9th edition - ECMAScript® 2018 Language Specification.
|0 Strawman||"It’d be dandy if we had a unicorn operator (🦄) to…"|
|1 Proposal||A TC39 member “champions” the proposal. General API look and feel hammered down, and many/most cross-cutting concerns addressed.|
|2 Draft||Initial spec text, covers all critical aspects and technical semantics.|
|3 Candidate||Spec complete, verified by appropriate reviewers and greenlighted. API finalized, no stone left unturned.|
|4 Finished||Full Test262 coverage, 2+ shipping implementations (e.g. V8 + SpiderMonkey), significant real-world usage feedback, Spec Editor imprimatur. Usually goes into the next feature freeze (January or March).|
ECMAScript proposals are tracked in a dedicated repository on github.
finished-proposals.md file can be seen as a changelog between specs yearly versions.
ECMAScript needs an engine to be executed.
Theses Engines are used in browsers or server side.
|V8 (blog officiel)||Chrome, NodeJS|
|Carakan||Opera still 2013|
explain diff between interpretation vs compilation and how JIT plugs into this.
interpreter better startup but slower runtime (compile stupidly every LoC on the fly)
compiler slower startup but there is lots of room for optimizations
JIT tries do be between them getting the best of the 2 worlds
trad fr du précédent
So we collected data from over 20,000 developers, asking them questions on topics ranging from front-end frameworks and state management, to build tools and testing libraries.
AST is for Abstract Syntax Tree. The concept is transverse to all programming languages. Cf wikipedia def for example.
An online tool to visualize the AST of the pasted code.
Bundlers (webpack, ...) and Linters (ESLint, ...) make heavy use of AST parsers tools to do their job.
ESLint is using eslint/espree.
Babel allows you to write your code in ES6/7/8/x, it will generate ES5 compliant code.
TypeScript include ES6 specs but it enhances it with more features.