Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Allen Wirfs Brock Presentation Es5 Panel


Published on

Published in: Technology, News & Politics
  • Login to see the comments

  • Be the first to like this

Allen Wirfs Brock Presentation Es5 Panel

  1. 1. ES5: ECMAScript Standards for a Better Web Panelists: Allen Wirfs-Brock, Microsoft (Moderator) Brendan Eich, Mozilla Douglas Crockford, Yahoo! Mark S. Miller, Google
  2. 2. <ul><li>Final Document will be approved by TC39 next week. </li></ul><ul><li>Ratification as official standard at December ECMA General Assembly meeting. </li></ul>ECMAScript 5 is Finished!
  3. 3. What’s new in ES5 <ul><li>Enhanced Object Model & Reflection API </li></ul><ul><ul><li>Getter/Setter Properties </li></ul></ul><ul><ul><li>Configurable Attributes </li></ul></ul><ul><ul><ul><li>Enumerable, Writable, Configurable </li></ul></ul></ul><ul><ul><li>Sealed/Frozen Objects </li></ul></ul><ul><ul><li>Property Interrogation </li></ul></ul><ul><ul><li>Object.create(proto,…) </li></ul></ul><ul><li>Technical Corrections </li></ul><ul><ul><li>Readonly NaN, undefined,etc. </li></ul></ul><ul><ul><li>arguments is enumerable </li></ul></ul><ul><ul><li>Array.prototype fully generic </li></ul></ul><ul><ul><li>Etc. Etc… </li></ul></ul><ul><li>Strict Mode </li></ul><ul><ul><li>Enhanced Error Checking </li></ul></ul><ul><ul><li>Tamed global object access </li></ul></ul><ul><ul><li>Private eval scopes </li></ul></ul><ul><li>Native JSON </li></ul><ul><li>Library Enhancements </li></ul><ul><ul><li>“ Array Extras” + reduce[Right] </li></ul></ul><ul><ul><li>String trim </li></ul></ul><ul><ul><li>Function bind </li></ul></ul><ul><ul><li>Date ISO string format </li></ul></ul>
  4. 4. What Does ECMA TC39 Actually Do? <ul><li>Codify successful browser/community innovation </li></ul><ul><ul><li>Mozilla “Array Extras” </li></ul></ul><ul><li>Polish promising innovations </li></ul><ul><ul><li>json2.js  ES5 JSON support </li></ul></ul><ul><li>Synthesize from browser experiments & user requirements </li></ul><ul><ul><li>__defineSetter__ + framework builder needs  ES5 Object Model enhancements and Reflection API </li></ul></ul><ul><li>Invent when necessary to solve real world problems </li></ul><ul><ul><li>Security & usability concerns  ES5 Strict Mode </li></ul></ul>
  5. 5. What’s Next: ECMAScript “Harmony” <ul><li>Be a better language for writing: </li></ul><ul><ul><li>complex applications; </li></ul></ul><ul><ul><li>libraries (possibly including the DOM) shared by those applications; </li></ul></ul><ul><ul><li>code generators targeting the new edition. </li></ul></ul><ul><li>Switch to a testable specification, ideally a definitional interpreter hosted mostly in ES5. </li></ul><ul><li>Improve interoperation, adopting de facto standards where possible. </li></ul><ul><li>Keep versioning as simple and linear as possible. </li></ul><ul><li>Support a statically verifiable, object-capability secure subset. </li></ul>Goals <ul><li>New features require concrete demonstrations. </li></ul><ul><li>Keep the language pleasant for casual developers. </li></ul><ul><li>Preserve the “start small and iteratively prototype” nature of the language. </li></ul>Requirements <ul><li>Minimize the additional semantic state needed beyond ES5. </li></ul><ul><li>Provide syntactic conveniences for: </li></ul><ul><ul><li>good abstraction patterns; </li></ul></ul><ul><ul><li>high integrity patterns; </li></ul></ul><ul><ul><li>defined by desugaring into kernel semantics. </li></ul></ul><ul><li>Remove (via opt-in versioning or pragmas) confusing or troublesome constructs: Consider building on ES5 strict. </li></ul><ul><li>Support virtualizability, for host object emulation </li></ul>Means 10 Year Release Cycle
  6. 6. Panel Q&A? Panelists/ECMA TC39 Member Representatives: Allen Wirfs-Brock, Microsoft (Moderator) Brendan Eich, Mozilla Douglas Crockford, Yahoo! Mark S. Miller, Google
  7. 7. Please complete an evaluation.