DEV Community

Discussion on: My 🔥 First Experience Attending TC39

Collapse
 
allenwb profile image
Allen Wirfs-Brock

Welcome to TC39 and thanks for sharing your experience.

Regarding "normative". Generally, when we say "normative" in TC39 we mean something that is an actual requirement expressed in a specification. These can be big like "Promises are part of all ECMAScript implementations". To tiny, such as the ordering of specific actions within a single specification algorithm.

Most of the text in TC39's specifications is normative and most of the work of TC39 ultimately leads to decisions about new normative requirements. This includes all of the proposals going through the staged process. Deciding upon normative requirements is so fundamental it is seldom mentioned in that context.

When "normative changes" are explicitly discussed at meetings, this is usually about some very minor change to the specification of some larger feature that is already in the specification. Like swapping the order of algorithm steps or adding (or removing) a required error check. Often such changes are specification bug fixes. Sometimes they are are needed to bring the specification into alignment with what implementations actually have implemented. Regardless, they require TC39 consensus because in some way they change a requirement that will have an observable (put usually minor) impact on implementations and in rare cases could impact real world code.

Collapse
 
bnb profile image
Tierney Cyren

Ah, thank you for the additional context Allen!

This... makes sense in the context that it was brought up within the meeting. Coming from a place of still trying to grasp the context of "grammar" in the spec: can normative changes happen around grammar as well, or if changes to grammar would be a different kind of change?

Also: I've added a link to your comment and updated the post to reflect the context you've shared. Thank you for taking the time to explain! ❤️

Collapse
 
allenwb profile image
Allen Wirfs-Brock

Sure, as "normative" applies to anything that is an actual requirement and the grammar defines the syntax that an implementation is required to recognize.

But while normative grammar issues have occurred in the past, I would expect small bug-fix level normative changes to the grammar to now be quite rare.