1 of 5

Follow the user

TC39 vision presentation

Daniel Ehrenberg

2 of 5

The null TC39 vision: a process

  • Stage 1: Users identify needs
  • Stage 2-3: TC39 works out details
  • Stage 4: Ship to users

3 of 5

Stage 1: Users identify needs

  • Modules
  • Pipeline/bind operator(s)
  • Null-coalescing operator
  • Class features: fields, decorators & private
  • Numeric types
  • Better Date
  • Standard library improvements (e.g., Intl)
  • WebAssembly/JS integration
  • Pattern matching, algebraic data types, value types (?)
  • Types (??)

4 of 5

Stage 2-3: TC39 works out details

  • Ensure consistency
    • Internally and with other features
  • Make efficiently, reasonably implementable
  • Minimize overall complexity
  • Coordinate with stakeholders
    • Embedders: WHATWG, W3C, Node
    • Advanced users, e.g., frameworks
    • Should result in a consistent, non-duplicated layering
  • Fully document web reality

5 of 5

Stage 4: Ship to users

  • Babel, polyfill libraries (when possible)
    • To get things to users now
    • Compat for older browsers
    • Impl likely to come first
  • Native engines, used in browsers and Node
    • Better performance, integration with DevTools, etc
    • Historically great attention to detail
  • Treat separately in process?