Temporal: долгий процесс решения проблемы времени в JavaScript

Как меняется JavaScript?
JavaScript уникален тем, что работает во всех браузерах. У него нет какого-то одного «владельца», поэтому нельзя внести изолированное изменение и ждать, что оно будет применено везде. Эволюция происходит через TC39 — Технический комитет, отвечающий за ECMAScript.
Предложения должны пройти последовательность этапов развития:
• Этап 0: идея.
• Этап 1: принято пространство задач.
• Этап 2: выбрана архитектура драфта, но работа продолжится.
• Этап 2.7: предложение одобрено в принципе; ожидает тестирования и обратной связи.
• Этап 3: реализация и обратная связь.
• Этап 4: предложение стандартизовано.
В 2018 году, когда я впервые изучал Temporal, он находился на Этапе 1. Комитет TC39 был убеждён, что проблема реальна. Это было радикальное предложение по добавлению в JavaScript новой библиотеки дат и времени. Она должна была:
• Стать заменой Date.
• Добавить новые типы DateTime (вместо единого API).
• Стать неизменяемой.
• Добавить поддержку часовых поясов и календаря.
Но как мы к этому пришли? Почему Date вызывает столько проблем? Чтобы ответить на эти вопросы, нужно вернуться назад.


















