Skip to main content
Shop Talk Show

703: Ujjwal Sharma and TC39

67 min episode · 2 min read
·

Episode

67 min

Read time

2 min

AI-Generated Summary

Key Takeaways

  • TC39 Proposal Stages: Proposals progress through numbered stages from informal idea to finalized specification, with stage 4 representing full ratification. Any delegate — browser implementers, engine developers, or other stakeholders — can block advancement at any stage. This consensus requirement forces proposal champions to maintain broad buy-in across all relevant parties before a feature reaches the language.
  • Temporal Date API: Temporal is the single largest addition ever made to JavaScript, surpassing the entire Intl internationalization namespace in scope. It standardizes date-time serialization with a new timestamp format that embeds both time zone and calendar data. Developers can now add one month to a Hebrew calendar date with correct leap-year handling — something previously impossible without external libraries like Moment.js.
  • Language Budget Constraints: Every feature added to JavaScript carries a permanent runtime cost, even for developers who never use it. BigInt, for example, adds parsing overhead to every JavaScript program regardless of usage. TC39 operates with an implicit "budget" — as more features ship, the committee becomes progressively more conservative to preserve engine performance and language analyzability.
  • Types-as-Comments Proposal: The types-as-comments proposal does not bring TypeScript to browsers — it reserves syntax space where type annotations appear and instructs engines to ignore that content entirely. Developers could paste TypeScript directly into a browser console without a compile step. However, the proposal faces a balancing problem: restricting too much alienates TypeScript users, while restricting too little concerns developers who never use types.
  • Signals Proposal Status: Signals remain an early-stage proposal despite strong engine-side support and widespread framework adoption of the reactive pattern. The primary obstacle is disagreement among framework authors about the specific API shape, not the concept itself. The pipeline operator faces a similar deadlock — two competing camps each prefer incompatible designs, making it likely neither version ships.

What It Covers

Ujjwal Sharma, TC39 chair and Igalia engineer, explains how JavaScript evolves through ECMA's consensus-based committee process. The conversation covers TC39's structure, the stages system for proposals, the Temporal date API now shipping in browsers, and active proposals including signals, types-as-comments, and internationalization templating.

Key Questions Answered

  • TC39 Proposal Stages: Proposals progress through numbered stages from informal idea to finalized specification, with stage 4 representing full ratification. Any delegate — browser implementers, engine developers, or other stakeholders — can block advancement at any stage. This consensus requirement forces proposal champions to maintain broad buy-in across all relevant parties before a feature reaches the language.
  • Temporal Date API: Temporal is the single largest addition ever made to JavaScript, surpassing the entire Intl internationalization namespace in scope. It standardizes date-time serialization with a new timestamp format that embeds both time zone and calendar data. Developers can now add one month to a Hebrew calendar date with correct leap-year handling — something previously impossible without external libraries like Moment.js.
  • Language Budget Constraints: Every feature added to JavaScript carries a permanent runtime cost, even for developers who never use it. BigInt, for example, adds parsing overhead to every JavaScript program regardless of usage. TC39 operates with an implicit "budget" — as more features ship, the committee becomes progressively more conservative to preserve engine performance and language analyzability.
  • Types-as-Comments Proposal: The types-as-comments proposal does not bring TypeScript to browsers — it reserves syntax space where type annotations appear and instructs engines to ignore that content entirely. Developers could paste TypeScript directly into a browser console without a compile step. However, the proposal faces a balancing problem: restricting too much alienates TypeScript users, while restricting too little concerns developers who never use types.
  • Signals Proposal Status: Signals remain an early-stage proposal despite strong engine-side support and widespread framework adoption of the reactive pattern. The primary obstacle is disagreement among framework authors about the specific API shape, not the concept itself. The pipeline operator faces a similar deadlock — two competing camps each prefer incompatible designs, making it likely neither version ships.
  • Removing Features from JavaScript: TC39 has successfully removed at least one feature — the species constructor — by verifying through browser telemetry that only a single website used it, then contacting that site directly. This process illustrates the only viable path for deprecation: confirm near-zero usage via implementer telemetry data, then coordinate with remaining users before formally removing the feature from the specification.

Notable Moment

Sharma reveals that JavaScript's original Date object was copied from Java's date implementation — but by the time JavaScript shipped publicly, Java had already replaced their version with something better. JavaScript inherited a design that the language it copied from had already discarded, which explains decades of developer frustration with date handling.

Know someone who'd find this useful?

You just read a 3-minute summary of a 64-minute episode.

Get Shop Talk Show summarized like this every Monday — plus up to 2 more podcasts, free.

Pick Your Podcasts — Free

Keep Reading

More from Shop Talk Show

We summarize every new episode. Want them in your inbox?

Similar Episodes

Related episodes from other podcasts

This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.

You're clearly into Shop Talk Show.

Every Monday, we deliver AI summaries of the latest episodes from Shop Talk Show and 192+ other podcasts. Free for up to 3 shows.

Start My Monday Digest

No credit card · Unsubscribe anytime