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.