Portrait Dr. Axel Rauschmayer
Dr. Axel Rauschmayer
Homepage | Twitter
Cover of book “Exploring ES6”
Book, exercises, quizzes
(free to read online)
Logo of newsletter “ES.next news”
Newsletter (free)
Cover of book “JavaScript for impatient programmers”
Book (free online)

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.