Skip to main content
US

Ujjwal Sharma

1episode
1podcast

We have 1 summarized appearance for Ujjwal Sharma so far. Browse all podcasts to discover more episodes.

Featured On 1 Podcast

All Appearances

1 episode
Shop Talk Show

703: Ujjwal Sharma and TC39

Shop Talk Show
67 minTC39 Chair, Igalia

AI Summary

→ 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 INSIGHTS - **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. 💼 SPONSORS None detected 🏷️ TC39, ECMAScript, Temporal API, JavaScript Proposals, TypeScript Types, Internationalization

Never miss Ujjwal Sharma's insights

Subscribe to get AI-powered summaries of Ujjwal Sharma's podcast appearances delivered to your inbox weekly.

Start Free Today

No credit card required • Free tier available