-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Experimental Features Strategy #24941
Comments
CC: @ryzokuken |
possible duplicate of #22021? |
@devsnek I think this is more about discussing how experimental features work and revisiting if it's the best possible strategy in the first place, but I might be wrong. Labelling this as "meta" for now. |
the issue says experimental flags but discusses js features, which would be harmony flags (and not under the control of node). are we talking about node's experimental flags, or v8's experimental flags? both? |
@ryzokuken is absolutely right. @devsnek So ES6-7 features were under flag on v8? Anyway it was just an example. So what am saying is to rethink how we ship and treat experimental features. And I suggested 2 possible solutions. |
I think the discussion Proposal: Subdivide “Experimental” Status and the resulting PR #46100 go some way to addressing the points raised here and implement a similar solution to what @rubo-21 suggested. As this issue is fairly old, I'm going to close, but encourage any further comments or feedback to be added to the recent discussion thread. Thanks, @rubo-21. |
I would like to discuss a bit how experimental features are implemented and treated.
Let's first remember how is the situation now. Experimental features being added to main (and only) release and getting shipped to everyone. I see one 'problem' here which I would like to raise. The problem is that people really don't understand is it a real experimental thing or its feature which most probably will be added as stable. To deep dive into the root of this problem I want to add a bit history here. So back then when ES6-7 stuff invented and everybody was curious about new features of ECMAscript and wanted to test/use them as soon as possible they had to use special flag because features were added as 'experimental'. A lot of people even run apps with flags on production trying to get that functionality as soon as possible. Time have passed and now luckily we have that functionality without flag or anything. But it Taught us to do a 'bad thing'. It changed people's mind about experimental features. They started thinking that it's not that 'experimental' and we got that new bad habit. Which is using experimental features in real world applications and even on production. We have same situation with worker threads and other features. So there is a misunderstanding of concept of experimental features. Community used to use experimental features and we already have that bad habit and we continue doing it wrong. In my opinion experimental features should not be used at all as they are experimental and you have no guarantee that they would be upgraded as stable or removed. Or you will have the same API as you have on current version.
I think we need a bit clarity here. A way to determine is the feature really experimental or not. I see 2 possible solutions here which can make situation better.
Have separate build/release like beta/canary/nightly build which will include all new experimental things and main stable release won't. So people will not use it on production but only for some tests. I see only one reason to not split builds because it will make maintenance harder but I think it worths the effort.
So the second solution is to have level of experiments which will determine how experimental that is. like 3 levels low. medium and critical.
I would love to have your thoughts on this, maybe a better way to solve this or something.
Thanks for your attention.
The text was updated successfully, but these errors were encountered: