Highlights (details: see language features):
- Inheritance: classes, traits
- Iterators, for-each loop, generators, deferred functions
- Block-scoped let bindings
- Destructuring assignment
- Parameter handling: default values, rest parameters, spread operator
Brendan Eich mentioned Traceur in his JSConf.US presentation. And he was unhappy about a few details. You should also read Alex Russell’s response to his complaints.
- The project raises concerns about openwashing: Is Google’s actual agenda behind this open source project to control where ECMAScript.next is going? Probably not, but the following points set a tone that is slightly off.
- Traceur has been created in secret, without involving TC39, and then presented for maximum “wow” effect at JSConf (Eich calls this “delayed open source” which can be a means of control). In contrast, Mozilla’s Narcissus has always been developed in the open, to foster discussion with the community.
- Some features are different from current ES.next proposals. This risks forking the community.
- The JSConf Traceur slides are Chrome-only, neither (mobile) Safari nor Firefox works. Alex Russell’s explanation: “As for the slides, that looks to be a bug in Traceur support for FF which we’re still sorting through.” But the problem exists on Safari, too, which does not bode well for cross-browser compatibility.
Let’s hope these are just initial issues, because Traceur is a cool project. This kind of on-the-fly compiling is the way to ensure a smooth transition from ECMAScript 5 to ECMAScript.next.