Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Feb 19, 2018. It is now read-only.
/discussPublic archive

Commit6899328

Browse files
committed
Move features into main readme
1 parent95608ef commit6899328

File tree

3 files changed

+81
-133
lines changed

3 files changed

+81
-133
lines changed

‎Compiler.md

Lines changed: 0 additions & 25 deletions
This file was deleted.

‎Features.md

Lines changed: 0 additions & 93 deletions
This file was deleted.

‎README.md

Lines changed: 81 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@
2525

2626
This repo intends to serve as a place to discuss the future of CoffeeScript, especially as it relates to ES2015+ (ES6).
2727

28-
[Open an issue](https://github.com/coffeescript6/discuss/issues/new) to propose an idea or raise a question! This is also where proposals for adding features to CoffeeScript or updating current features’ output can be discussed. As proposals reach consensus, the consensus will be summarized in[Features](./Features.md). No code will be developed here; the “CoffeeScript 6” project is one of discussion, directed at updating CoffeeScript itself.
29-
30-
You can also drop by this[Gitter Chatroom](https://gitter.im/csnext/Lobby).
28+
[Open an issue](https://github.com/coffeescript6/discuss/issues/new) to propose an idea or raise a question! This is also where proposals for adding features to CoffeeScript or updating current features’ output can be discussed. As proposals reach consensus, the feature will be added[below](features-implemented) and to the[project board](https://github.com/coffeescript6/discuss/projects/1). No code will be developed here; the “CoffeeScript 6” project is one of discussion, directed at updating CoffeeScript itself. You can also drop by this[Gitter chat room](https://gitter.im/csnext/Lobby).
3129

3230
##Background
3331

@@ -37,11 +35,9 @@ Many people were drawn to CoffeeScript because it offered features that JavaScri
3735

3836
Many other people, however, came to CoffeeScript for the clean, readable syntax and the many ways that the language itself helps prevent bugs, such as significant whitespace and the existential operator. CoffeeScript still has these advantages over all versions of JavaScript, and will retain them so long as ECMAScript strives for backward compatibility. But for CoffeeScript to remain a viable choice for developers, it must keep pace with the JavaScript community. At the very least it must be compatible with most popular frameworks and build tools; ideally it will also be current with the latest approved standard. The mantra of CoffeeScript is that “It’s just JavaScript”—but right now, JavaScript is ES2015.
3937

40-
#Proposal for the Future of CoffeeScript
41-
4238
##Goals
4339

44-
**ES2015 features that modern frameworks require, like modules and classes, must be supported in CoffeeScript ASAP.** We can’t expect developers to continue using CoffeeScript if they must choose between CoffeeScript and whatever hot new framework they want to use for their project. Support for modules is[has beenmerged in](https://github.com/jashkenas/coffeescript/pull/4300).
40+
**ES2015 features that modern frameworks require, like modules and classes, must be supported in CoffeeScript ASAP.** We can’t expect developers to continue using CoffeeScript if they must choose between CoffeeScript and whatever hot new framework they want to use for their project. Support for modules is[has beenreleased in CoffeeScript 1.11](https://github.com/jashkenas/coffeescript/pull/4300) and support for classes[has been merged into the`2` branch](https://github.com/jashkenas/coffeescript/pull/4354).
4541

4642
**CoffeeScript should support other ES2015+ features on a case-by-case basis.** There is very little that ES2015 offers that CoffeeScript lacks; but whatever new features that make sense within the constraints of CoffeeScript’s design principles, and can be implemented in a reasonable way, should be supported. We don’t want developers to feel like choosing CoffeeScript means they’re giving up features they had in ES2015. Please refer to the[issues](https://github.com/coffeescript6/discuss/issues) of this repo for discussion around which ES2015+ features to add, and how they should be defined and implemented in CoffeeScript.
4743

@@ -53,23 +49,93 @@ Many other people, however, came to CoffeeScript for the clean, readable syntax
5349

5450
##The Plan
5551

56-
See the[Features document](./Features.md) for a prioritized list of ES2015+ features that we hope to add toCoffeeScript, including proposed implementation for each feature.
52+
###CoffeeScript 1.x
5753

58-
The top priorityfeaturesare thosethatimperil interoperability. CoffeeScript is hemorrhaging marketshare the longer that incompatibilities with popular frameworks and build tools go unaddressed. We must support modules, classes and tagged template literals ASAP. See[here](./Features.md#top-priority).
54+
New ES2015+featuresthat can be opt-in by using them andthatdon’t break backward compatibility, like modules, have been added to CoffeeScript in the current`master` branch and released. These features aren’t shimmed or polyfilled down to ES5; they are output as ES2015.
5955

60-
Aside from the top priority features, features that developers enjoy in ES2015+ that are appropriate to implement inCoffeeScript, like`await`, should be implemented as time permits. See[here](./Features.md#medium-priority).
56+
###[CoffeeScript 2](https://github.com/coffeescript6/discuss/projects/1)
6157

62-
Finally,CoffeeScript’s output should be modernizedasmuch as possible.Fat arrows shouldoutput asfat arrows, destructuring should outputasdestructuring,etc.
58+
New ES2015+ features that cannot be added without causing breaking changes, like classes,[are implemented on a`2` branch](https://github.com/coffeescript6/discuss/issues/36) for a futureCoffeeScript 2.0.0 release. This new release will break backward compatibility, butasminimally as possible.Also in 2.0.0, we will modernize theoutputofasmany features as possible and removeasmany shims and polyfills as possible. CoffeeScript 2.0.0 will go through several rounds of alpha releases like 2.0.0-alpha1, 2.0.0-alpha2etc. so that we can add features gradually and avoid committing to a final set of breaking changes before we’re ready. You can also read[draft documentation for CoffeeScript 2](https://rawgit.com/GeoffreyBooth/coffeescript/2-docs/docs/v2/index.html).
6359

64-
CoffeeScript will be split into two branches:
60+
##Implemented Features
6561

66-
###CoffeeScript 1.x
62+
####~~Modules:`import` and`export`[(#7)](https://github.com/coffeescript6/discuss/issues/7)~~
6763

68-
New ES2015+ features that can be opt-in by using them and that don’t break backward compatibility, like modules, should be added toCoffeeScriptin the current`master` branch. These features would not be shimmed or polyfilled down to ES5; they would be output as ES2015.
64+
>CoffeeScript1.x and 2
6965
70-
###[CoffeeScript 2](https://github.com/coffeescript6/discuss/projects/1)
66+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/4300) and released as part of CoffeeScript 1.11.
67+
68+
####~~Classes: Extend ES Classes, Idiomatic Methods[(#22)](https://github.com/coffeescript6/discuss/issues/22)~~
69+
70+
>CoffeeScript 2 only
71+
72+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/4354) into the`2` branch.
73+
74+
####~~Tagged template literals[(#28)](https://github.com/coffeescript6/discuss/issues/28)~~
75+
76+
>CoffeeScript 1.x and 2
77+
78+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/4352) and released as part of CoffeeScript 1.12.
79+
80+
####~~`async`/`await`[(#10)](https://github.com/coffeescript6/discuss/issues/10)~~
81+
82+
>CoffeeScript 2
83+
84+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/3757) into the`2` branch.
85+
86+
####~~Backticked blocks[(#42)](https://github.com/coffeescript6/discuss/issues/42)~~
87+
88+
>CoffeeScript 1.x and 2
89+
90+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/4357) and released as part of CoffeeScript 1.12.
91+
92+
####~~Template literals[(#41)](https://github.com/coffeescript6/discuss/issues/41)~~
93+
94+
>CoffeeScript 2 only
95+
96+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/4365) into the`2` branch.
97+
98+
####~~Fat arrows`=>` output as`=>`[(#8)](https://github.com/coffeescript6/discuss/issues/8)~~
99+
100+
>CoffeeScript 2 only
101+
102+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/4311) into the`2` branch.
103+
104+
####~~`for … of`[(#11)](https://github.com/coffeescript6/discuss/issues/11)~~
105+
106+
>CoffeeScript 1.x and 2
107+
108+
[This has been merged](https://github.com/jashkenas/coffeescript/pull/4306) and released as part of CoffeeScript 1.12.
109+
110+
##Features to Implement
111+
112+
####Classes: Idiomatic`super`[(#22)](https://github.com/coffeescript6/discuss/issues/22)
113+
114+
>CoffeeScript 2 only
115+
116+
CoffeeScript’s`super` should always be compiled to ES2015’s`super`. This is in progress at[jashkenas/coffeescript#4424](https://github.com/jashkenas/coffeescript/pull/4424).
117+
118+
####Classes:`static`,`get` and`set` keywords[(#17)](https://github.com/coffeescript6/discuss/issues/17)
119+
120+
>CoffeeScript 2 only
121+
122+
Classes should support getters and setters[(#17)](https://github.com/coffeescript6/discuss/issues/17) and the`static` keyword.
123+
124+
####Destructuring assignment[(#18)](https://github.com/coffeescript6/discuss/issues/18)
125+
126+
>CoffeeScript 2 only
127+
128+
##Not in Scope
129+
130+
These are other features that have been discussed, but the consensus at the moment is that no action should be taken to implement them:
131+
132+
####Block assignment`let` and`const` assignment operators[(#31)](https://github.com/coffeescript6/discuss/issues/31) or[(#35)](https://github.com/coffeescript6/discuss/issues/35)
133+
134+
####Inferred`let` assignment[(#1)](https://github.com/coffeescript6/discuss/issues/1)
135+
136+
####Decorators[(#9)](https://github.com/coffeescript6/discuss/issues/9)
71137

72-
New ES2015+ features that cannot be added without causing breaking changes, like classes,[should be implemented on a`2` branch](https://github.com/coffeescript6/discuss/issues/36) for a future CoffeeScript 2.0.0 release. This new release will break backward compatibility, but as minimally as possible. Also in 2.0.0, we will modernize the output of as many features as possible and remove as many shims and polyfills as possible. CoffeeScript 2.0.0 will go through several rounds of alpha releases like 2.0.0-alpha1, 2.0.0-alpha2 etc. so that we can add features gradually and avoid committing to a final set of breaking changes before we’re ready.
138+
####Type annotations[(#12)](https://github.com/coffeescript6/discuss/issues/12)
73139

74140
##Open Questions
75141

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp