Influences on ECMAScript 6
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.