Episode

Time is a construct but it can still break your software

Podcast
The Stack Overflow Podcast
Published
May 1, 2026
Duration seconds
2138
Processing state
processed
Canonical source
https://rss.art19.com/episodes/46aaa840-a696-49db-984d-1e50846c5831.mp3?rss_browser=BAhJIg90cmFuc2NyaWJyBjoGRVQ%3D--952c5701c84ad333c69d5faa668f8177091704f0
Audio
https://rss.art19.com/episodes/46aaa840-a696-49db-984d-1e50846c5831.mp3?rss_browser=BAhJIg90cmFuc2NyaWJyBjoGRVQ%3D--952c5701c84ad333c69d5faa668f8177091704f0
JSON
/v1/public/podcasts/the-stack-overflow-podcast/episodes/time-is-a-construct-but-it-can-still-break-your-software
Markdown
/podcast/the-stack-overflow-podcast/time-is-a-construct-but-it-can-still-break-your-software.md

Actions

  • 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.
  • 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.

Summary

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.

Topics

  • JavaScript
  • Temporal API
  • ECMAScript
  • TC39
  • Software Engineering
  • Web Development
  • Date and Time Handling
  • Browser Engines

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

Chapters

  1. 1:00 Introduction and Background: Jason Williams discusses his background in software engineering and his early involvement in open source projects.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.