Description
From @GeoffreyBooth on 2016-11-04 05:34
Just starting a thread to review where we are, and discuss next steps. So as of 2016-11-12 there has been progress on the jashkenas/coffeescript 2
branch:
- Async/await is implemented, thanks to @GabrielRatener.
- Arrow functions, function default parameters and function rest parameters are implemented, thanks to me.
- Splats in arrays and function calls are output using ES2015 syntax, thanks to @connec.
- Computed properties are output using ES2015 syntax, thanks to @connec.
- Octal and binary literals are output as-is, thanks to @JimPanic.
- CoffeeScript is stricter about whitespace thanks to @eelco, and Literate CoffeeScript now understands Markdown thanks to @billymoon.
- Support for ES2015
for...of
is implemented, thanks to @atg. - Bugs were fixed by @alangpierce, @shreeve, @JimPanic and others. Also thanks for feedback from @lydell and @jashkenas.
I’ve updated our project tracker. I think there’s no question that the top priority on the current list is classes. A lot of progress was made in #4330, but that branch has a lot of broken tests (especially after the arrow-functions PR was merged in) and the last commit was a month ago. @connec, would you appreciate some help with this? Do you still think the approach you took in this PR is the most promising one? Would anyone else be up for helping implement classes?
Update: #4354 is a PR that will hopefully add ES
class
support.
I think classes are so important that we should release our first alpha of CoffeeScript 2 as soon as classes are supported. We could even approach class
support iteratively, perhaps supporting the minimum at first and later on adding back in executable class bodies or whatever other Coffee-only features we’re struggling with.
I think the next-most-important feature, and the only other one that concerns interoperability, is tagged template literals. @greghuc, have you made any progress on this? If so, would you mind pushing a branch somewhere, even if it’s a work in progress? You’re welcome to use https://github.com/GeoffreyBooth/coffeescript if you want a central place for people to collaborate. Is anyone else eager to see tagged template literals supported, and has time to help with this? As part of implementing this, we would implement outputting interpolated strings using ES2015 syntax, and hopefully also fix the bug regarding backticks inside embedded JavaScript.
Other features:
- Outputting ES2015 destructuring assignment is low-hanging fruit, along the lines of ES2015 computed properties. Anyone up for taking on a smaller task?
We’ve made tremendous progress. Great thanks to all those who have contributed so far, and if you’ve been watching from the sidelines, now’s your chance to be a part of CoffeeScript 2 😄