703: Ujjwal Sharma and TC39
Episode
67 min
Read time
2 min
Topics
Design & UX, Software Development, Science & Discovery
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
724: Ask Dan Abramov Anything About AT Proto
Jul 20 · 55 min
Eye on AI
What Industrial AI Actually Looks Like | Kriti Sharma, Nexus Black
Jul 10
More from Shop Talk Show
723: Ads on Your Website, UX for Web Dev Jobs, and Progressive Web Components
Jul 13 · 57 min
Eye on AI
"According to NASA's Definition of Life, I'm Not Alive" - Why Nobody Can Define Life | Dr. Kate Adamala
Jul 21
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links.
Tools
by TC39
“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.”
More from Shop Talk Show
We summarize every new episode. Want them in your inbox?
724: Ask Dan Abramov Anything About AT Proto
723: Ads on Your Website, UX for Web Dev Jobs, and Progressive Web Components
722: The No-AI Talk Challenge, Picking Rails Tooling, Dark Mode?
721: New Gear, Nerding Out, and VS Code Forks
720: TypeScript Complaints, Slowing Down, and AT Proto Protocols
Similar Episodes
Related episodes from other podcasts
Eye on AI
Jul 10
What Industrial AI Actually Looks Like | Kriti Sharma, Nexus Black
Eye on AI
Jul 21
"According to NASA's Definition of Life, I'm Not Alive" - Why Nobody Can Define Life | Dr. Kate Adamala
Software Engineering Daily
Jul 16
Agentic DevOps at AWS
Software Engineering Daily
Jul 14
AURA and Open-Source Agents for Production Operations
Machine Learning Street Talk
Jul 1
The Benchmark With No Instructions — ARC-AGI-3 (winning team!)
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Software Engineering Podcast Insights — cross-podcast analysis updated weekly.
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 one show.
Start My Monday DigestNo credit card · Unsubscribe anytime