-
Notifications
You must be signed in to change notification settings - Fork 199
Description
On Nov. 6, 2025, the WebDX CG discussed about the topic of merging old, widely available, features together. Here's a summary (full notes):
-
Examples of old features that might be good to merge now include:
- flex gaps and flex. They are 2 separate features now, and when they came out, definitely deserved to be separate. But now, it might make sense to merge them. I don't think developers consider gap as a separate thing anymore.
- grid and grid animations might fall in the same category.
- @jamesnw mentioned that grid animations feel too new to fold into grid right now. This begs the "When" question.
- Not captured in the notes, but I think there was some high-level agreement about waiting for at least double the Baseline Widely Available time before folding.
- @jamesnw mentioned that grid animations feel too new to fold into grid right now. This begs the "When" question.
-
@ddbeck mentioned that answering the "How" question depends on the machinery, and linked to Allow references to useful subsets of large features #2676 where we're investigating how to reference slices of a feature. Being able to have features contain multiple sub-parts would indeed make it easier to merge features together while retaining what these features were originally about.
- @Elchi3 made a related comment about the fact that merging features would lose Baseline years.
- Retaining information about the merged features seems important.
-
Matching developers' perception of features is important too. Do we want to keep talking about flexbox gaps in 5 years from now when no developers really think of it as something separate?
-
@ddbeck and @Elchi3 discussed the case of Array features in JS. Lots of small features were created and then folded into Array.
- There was a sense that small, atomic, features could continue existing with the notion of larger, merged, features, if we find a way to target sub-features.
I said I'd create an issue to continue discussing (so here it is), and provide a few more examples of features we might want to merge.
Before I do, reading the meeting notes again made me realize that merging is different than grouping. We may very well want to group many features together into a logical group. For example, Grid and Flexbox can be part of a Layout group. And <input> and <table> can be part of a HTML group. But that doesn't mean we'll ever want to merge these features together. @Elchi3 made a comment at the meeting about wanting to keep small, granular features. I agree that we should go as fine grained as necessary for developers, but I don't think we can make a guideline out of this easily. The granularity of our features varies greatly, and that's OK, even if it's uncomfortable for us to work with at times. We need features that map to the mental model of web developers. Features that map 1:1 to tasks that devs need to accomplish by using the web platform. Our goal isn't to create a catalog of the entire platform's sub-parts, that's what BCD is for. Our goal is to make it make sense to devs.
Here are a few features I found which are all Baseline Widely Available and have been since at least 2021, and which we could consider as candidate for merging:
-
Consider merging into WebGL:
- WEBGL_depth_texture WebGL extension
- EXT_blend_minmax WebGL extension
- WEBGL_lose_context WebGL extension
- WEBGL_debug_renderer_info WebGL extension
- EXT_texture_filter_anisotropic WebGL extension
-
Consider merging into String:
- String padStart() and padEnd()
- String codePointAt() and fromCodePoint()
- String includes()
- String raw()
- String repeat()
- String startsWith() and endsWith()
-
Consider merging into JavaScript (initial core language support):
- Let and const
- Functions
- Iterators and the for...of loop
Let's ask ourselves:
- Do we want to do this? Do developers consider String.includes() as something separate from String? Has it been available widely and long enough for it to just be part of String by now? Have let and const been part of JS for long enough that developers just consider them like var?
- When? Have these been Baseline WA for long enough that merging would be ok to do? Can we create a guideline around this?
- How? Let's come up with ideas to avoid loosing the history.
- This begs another question: should the Baseline date of the parent feature (the one which other features are being merged into) advance to whatever is the most recent Baseline date of its sub-features?