Black lives matter
Portrait Dr. Axel Rauschmayer
Dr. Axel Rauschmayer
Homepage | Twitter
Cover of book “JavaScript for impatient programmers”
Book, exercises, quizzes
(free to read online)
Cover of book “Deep JavaScript”
Book (50% free online)
Cover of book “Tackling TypeScript”
Book (first part free online)
Logo of newsletter “ES.next news”
Newsletter (free)

Influences on ECMAScript 6

[2015-10-21] dev, javascript, esnext
(Ad, please don’t block)

This is a list of a few ECMAScript 6 features and what their influences were:

  • Iteration: Python (but with a modified protocol)
  • Generators: Python
  • Arrow functions: CoffeeScript
  • const: The name comes from C++ (the latest C standard borrowed it from C++), but it behaves more like Java’s final.
  • let: is old, became popular via BASIC.
    • Also frequently appears in functional programming languages (Lisp, ML, etc.), but creates immutable bindings there.
  • Template literals: E (quasi literals)
  • Destructuring: Lisp (destructuring bind)
  • Modules: CommonJS, AMD
  • Species pattern (Symbol.species): Smalltalk
  • Promises: also often called futures, are an old construct from concurrent programming languages. But ES6 Promises don’t block, they accept continuations via callbacks.