-
Notifications
You must be signed in to change notification settings - Fork 4
CS2 Discussion: Features: Experimental flag? #37
Comments
This is kind of similar to the |
The only issue I see with a branch is then do we have Or maybe we should just accept |
Where is Node in terms of implementation? Babel? I imagine only very closed environments would want async natively in the browser if you still have to enable flags for it. However I can see this being used the moment it is released in Node code bases. If current versions of node are supporting it, or babel then I would want this in the 1.x experimental code base. I have iced coffee in use in a few places because it really is a useful feature, and one that is much simpler to get than promises. I suspect if the docs are clear about what edge cases aren't covered or work arounds for them, it would be fine to enable them as experimental. |
Node doesn’t support We’ve been discussing this in jashkenas/coffeescript#3757. I think the consensus is that it shouldn’t go in 1.x because |
So push this into the 2.0 branch under the experimental flag? |
Just the |
Migrated to jashkenas/coffeescript#4933 |
Per this comment and this one, @jashkenas is opposed to adding new features to CoffeeScript until they’re not just an approved spec, but implemented in a few runtimes. His logic is that however “final” specs seem to be, the proof is really in the implementation; and we shouldn’t get ahead of ourselves supporting something that may change when browser or Node support for that feature finally ships. This makes supporting a feature like await problematic. Its spec isn’t finalized, and it’s currently implemented only in Edge and in Chrome behind a flag.
Yet it’s one of the most popular requested features. An entire fork of CoffeeScript was created, Iced CoffeeScript, to implement this one feature.
Leaving aside the specifics of
await
, I wonder if there’s a way to satisfy both camps for features like this one. What if we created a flag called--experimental
, and put features likeawait
in there? The docs would define experimental features as subject to breaking changes or removal at any time, like in Chrome. If and whenawait
graduates to evergreen browser support, we can move it out of the--experimental
zone into the language proper; or if it never gets approved or widely implemented, we drop it. But this way we at least have the option of giving people these high-demand features, without committing to them.The text was updated successfully, but these errors were encountered: