# Time is a construct but it can still break your software Page: https://stenobird.com/podcast/the-stack-overflow-podcast/time-is-a-construct-but-it-can-still-break-your-software Text version: https://stenobird.com/podcast/the-stack-overflow-podcast/time-is-a-construct-but-it-can-still-break-your-software.md Podcast: [The Stack Overflow Podcast](https://stenobird.com/podcast/the-stack-overflow-podcast) Published: 2026-05-01T04:00:00+00:00 Episode link: https://rss.art19.com/episodes/46aaa840-a696-49db-984d-1e50846c5831.mp3?rss_browser=BAhJIg90cmFuc2NyaWJyBjoGRVQ%3D--952c5701c84ad333c69d5faa668f8177091704f0 Audio file: https://rss.art19.com/episodes/46aaa840-a696-49db-984d-1e50846c5831.mp3?rss_browser=BAhJIg90cmFuc2NyaWJyBjoGRVQ%3D--952c5701c84ad333c69d5faa668f8177091704f0 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/the-stack-overflow-podcast/episodes/time-is-a-construct-but-it-can-still-break-your-software Duration seconds: 2138 ## Resource JavaScript's legacy Date object is fundamentally flawed, leading to a nine-year effort to implement the Temporal API. This episode explores the technical challenges of redesigning time handling in ECMAScript and the complexities of standardizing a massive new API. ## Highlights - Main idea: The Temporal proposal aims to replace the problematic JavaScript Date object with a modern, robust API - Technical challenge: The Temporal API is so large that it required removing features like custom calendars to prevent bloating JS engines - Failure mode: Relying on the legacy Date object leads to inconsistent behavior and difficulty handling time zones and calendars - Practical takeaway: While Temporal is at Stage 4, developers should prepare for a long transition period as the old Date object remains for backward compatibility - Complexity note: The Temporal specification requires over 4,500 tests to ensure correctness across different environments ## Topics JavaScript, Temporal API, ECMAScript, TC39, Software Engineering, Web Development, Date and Time Handling, Browser Engines ## Chapters - 1:00 — Introduction and Background: Jason Williams discusses his background in software engineering and his early involvement in open source projects. - 3:40 — The Flaws of the Date Object: An exploration of why the original JavaScript Date object was difficult to work with and how it inherited issues from Java. - 9:05 — The Rise and Fall of Moment.js: A look at how developers used libraries like Moment.js to solve date issues and the challenges of managing library size. - 11:30 — Rust and Modern Engine Development: Jason discusses his work on the Boa engine and the impact of using Rust for high-performance software components. - 16:50 — The Complexity of the Temporal Proposal: Why the Temporal API took nine years to develop, focusing on the massive API surface and the need for rigorous testing. - 24:45 — Data Precision and the 2038 Problem: A technical discussion on nanosecond precision and how the new API avoids the Y2K38 integer overflow issue. - 32:40 — The Future of JavaScript Time: Discussing the transition from Date to Temporal and why the legacy API will persist in the ecosystem for years. ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/the-stack-overflow-podcast/episodes/time-is-a-construct-but-it-can-still-break-your-software/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/the-stack-overflow-podcast/time-is-a-construct-but-it-can-still-break-your-software.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.