CS2 Discussion: Project: CoffeeScript 2.0.0 #36
Description
Branching off from #34, this is a place to discuss a potential 2.0.0
release of CoffeeScript. The proposed 2.0.0 release will include breaking changes, and have two major features:
- Classes output with the
class
keyword. See CS2 Discussion: Output: Classes #22. - ESNext output whenever possible, with all ES5 or ES3 shims removed.
I think we should release 2.0.0-alpha1
as soon as classes are ready. We would also add a note on coffeescript.org that 2.0.0 is in alpha and subject to further breaking changes, which would be released as 2.0.0-alpha2
and so on until we’re pretty sure we have no further breaking changes for the 2.x major version.
The other features on our list that aren’t breaking changes (tagged template literals, await) can be released either on the 1.x branch or the 2.0.0-alpha branch. They should be implemented only as ESNext output, regardless of branch.
We should try to define exactly which features will have their output changed to ESNext. Here and here are comparisons of CoffeeScript features to new ES2015 features. Here is a pretty concise list of features introduced by ES2015. I’ve started a GitHub project where we can put cards into columns to define what features we want to update.
The other big issue is what to do about const
/let
and block scoping. Let’s please hash out an approach to that one over in #35, to not overwhelm this thread. Also if we can, let’s please keep discussion of whether we want to refactor or replace the compiler over in #25.
EDIT 2016-09-19: Changed “beta” to “alpha”.