Has the addition of significant new syntax features to ECMAScript stalled?

I'm curious what people here, delegates especially, feel about the rate of progress in the specification of significant new syntax features in ECMAScript post-ES6? Because, as an outsider who observes the standards process but does not really participate in it, it does seem like progress has stalled in recent years.

Now, "significant" is a somewhat contestable term. Clearly, important and useful new syntax has been added to the language in recent versions—nullish coalescing and optional chaining are just two examples that I use daily, and am very grateful for. But allow me to contend that none of the syntax features added post-ES6, with the exception of async/await, have had the same impact as arrow functions, classes, template literals, destructuring, etc. in going beyond quality-of-life improvements or evolution of an existing syntax feature, to change more generally how code in the language is written, in a way that unlocks new paradigms for the design and construction of applications, libraries and frameworks.

There are proposals that I would consider "significant" in this way: decorators, block params, do expressions, pipelines, pattern matching, binding/extensions. At various times over the past years I've been excited about each of them, but so far none of then have reached stage 4 and been adopted into the language, or even really seem close to do doing so, and I'm wondering why this is?

Are these features too complex to be ever be finished to everyone's satisfaction? Are they too controversial to reach consensus? Is the usefulness bar for major syntax changes so high than nothing can reach it? Is it a result of limited time and attention resource within the TC39 ? Is there a lack of implementor interest? Or, is there no issue at all, and these features are all progressing at a rate everyone considers expected/acceptable?

3 Likes

ES6 was developed for 5 years and benefited from years of prior work on those features. The pace to me seems perfectly fine.

Arguably, ES6 added far too much far too fast, and would have benefited from the more measured and cautious approach in the modern process.

3 Likes