What Is TC39 and Why JavaScript Developers Should Care

What Is TC39 and Why JavaScript Developers Should Care
Photo by Alisa Anton / Unsplash

If you’ve been working with JavaScript for a while, chances are you’ve come across the term TC39—especially when hearing about upcoming features like optional chaining, pattern matching, or pipeline operators. But what exactly is TC39? And why does it matter to your day-to-day coding?

🧠 TC39 in a Nutshell

TC39, short for Technical Committee 39, is the group responsible for evolving JavaScript—or more accurately, the ECMAScript language specification. It's a committee within Ecma International, the organization that standardizes JavaScript under the ECMAScript name.

This means every cool new feature you see in the language today—like async/await, let/const, or Array.prototype.includes()—went through TC39’s approval process.

🏛️ Who's Behind TC39?

TC39 isn’t just a bunch of academics or random people. It's made up of engineers and representatives from major tech companies like:

  • Google (Chrome’s V8 engine)
  • Microsoft (Edge and TypeScript)
  • Mozilla (Firefox’s SpiderMonkey engine)
  • Apple (Safari’s JavaScriptCore)
  • Meta, Baidu, Salesforce, and many more

In short, the same folks building the JS engines in your browser are the ones deciding the future of the language.

📈 The Proposal Lifecycle: From Idea to Standard

TC39 proposals go through five stages, and each stage acts like a filter to ensure quality and feasibility:

  1. Stage 0 – Strawman: A loose idea. Anyone can submit it.
  2. Stage 1 – Proposal: Someone (a champion) writes a formal outline and starts exploring the idea seriously.
  3. Stage 2 – Draft: The proposal is drafted into spec language and must answer many technical questions.
  4. Stage 3 – Candidate: The feature is stable and implementations in real engines start.
  5. Stage 4 – Finished: It’s done. It becomes part of the official ECMAScript spec.

When something hits Stage 3, tools like Babel and TypeScript usually start supporting it, so developers can experiment early. Once it’s Stage 4, it’s in the language—no flags, no polyfills needed (depending on browser support).

🧪 Why Should You Care?

Most developers aren’t writing specs—but understanding TC39 is still useful because:

  • You can track upcoming language changes and be ready for them.
  • You know which features are stable and which are still experimental.
  • You can give feedback or follow proposals that matter to you (yes, even individuals can get involved via GitHub or community discussions).
  • You can avoid relying on features that aren’t finalized yet.

Bonus: Staying in the loop with TC39 helps you write more future-proof code and use modern JavaScript more confidently.

🛠 Tools That Help

If you're curious about what's brewing in the JavaScript world, check out:

💬 Finally

JavaScript is constantly evolving—but it’s not chaos. TC39 provides the structure and sanity behind the progress. As a developer, it’s worth keeping one eye on what they’re up to, especially if you care about writing modern, elegant, and efficient JavaScript.

If you've ever enjoyed ?. or ??, or even simple things like arrow functions, thank TC39. They’re the ones shaping the JavaScript you'll be writing tomorrow.

Support Us