703: Ujjwal Sharma and TC39
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.
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 — FreeKeep Reading
More from Shop Talk Show
711: Where did Oh My Zsh Come From? And Using Rails in 2026
Apr 20 · 63 min
Masters of Scale
Possible: Netflix co-founder Reed Hastings: stories, schools, superpowers
Apr 25
More from Shop Talk Show
710: Simen Svale from Sanity
Apr 13 · 56 min
The Futur
Why Process is Better Than AI w/ Scott Clum | Ep 430
Apr 25
More from Shop Talk Show
We summarize every new episode. Want them in your inbox?
711: Where did Oh My Zsh Come From? And Using Rails in 2026
710: Simen Svale from Sanity
709: Slopforking a CMS, Apple Browser Feedback, and Custom Theme CSS
708: People Are Not Friction, Getting Rid of the CMS, and Social RSS Follow Up
707: RSS with Social, AI Agent Traffic, and What to Blog About
Similar Episodes
Related episodes from other podcasts
Masters of Scale
Apr 25
Possible: Netflix co-founder Reed Hastings: stories, schools, superpowers
The Futur
Apr 25
Why Process is Better Than AI w/ Scott Clum | Ep 430
20VC (20 Minute VC)
Apr 25
20Product: Replit CEO on Why Coding Models Are Plateauing | Why the SaaS Apocalypse is Justified: Will Incumbents Be Replaced? | Why IDEs Are Dead and Do PMs Survive the Next 3-5 Years with Amjad Masad
This Week in Startups
Apr 25
The Defense Tech Startup YC Kicked Out of a Meeting is Now Arming America | E2280
Marketplace
Apr 24
When does AI become a spending suck?
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 DigestNo credit card · Unsubscribe anytime