
Sign up to save your podcasts
Or


Diese Woche haben wir Philipp Dunkel (Bluesky) zu Gast und sprechen mit ihm über Temporal, also die neue JavaScript-API für Datum, Uhrzeit, Zeitspannen und Zeitzonen. Aufhänger ist ein Vortrag von Jason Williams auf der State of the Browser, von dem aus wir in die Geschichte, die Designprinzipien und die praktische Modellierung von Zeit in JavaScript einsteigen.
Alle reden von Automation – aber wo betreibst du eigentlich deine Tools?
Egal ob n8n oder andere Container-Setups: Mit dem Container-Hosting von mittwald läuft deine Anwendung in wenigen Minuten. Die nervige Konfiguration? Geht easy von der Hand – inklusive Vorschlägen für Umgebungsvariablen und Entrypoints.
Also: Fang an zu automatisieren. Dein erster Schritt ist ein Hosting bei mittwald. 👉 mittwald.de/workingdraft
Dabei geht es nicht nur um einen Ersatz für das alte Date-Objekt, sondern auch um die lange Vorgeschichte mit Libraries wie Moment.js, Luxon und date-fns, um die Rolle von Intl und ECMA 402 sowie um die vielen politischen, technischen und semantischen Fallstricke, die bei Datum und Uhrzeit eben dranhängen.
Im weiteren Verlauf geht es um die vielen Randbedingungen, die bei Datums- und Zeitverarbeitung eben nicht bloß technische Details sind. Zeitzonen, Sommer- und Winterzeit, regionale Sonderfälle, politische Entscheidungen und kurzfristige Änderungen machen das Thema notorisch kompliziert. Philipp nennt dafür Beispiele wie Marokko mit Ramadan-bedingten Anpassungen, historische Sonderfälle in Großbritannien oder abweichende Regelungen innerhalb einzelner Länder. Genau deshalb orientiert sich Temporal konsequent an bestehenden Standards und Datenquellen, statt neue Konventionen zu erfinden. Für Zeitzonen wird das IANA-Schema verwendet, für Datums- und Zeitstrings ISO 8601, und die enge Zusammenarbeit mit Intl beziehungsweise ECMA 402 (ECMAScript® internationalization API specification) war ein wichtiger Teil der Arbeit.
Besonders spannend ist die Schilderung des langen Standardisierungswegs. Über neun Jahre hinweg wurde nicht nur am API-Design gearbeitet, sondern auch an Interoperabilität, Spezifikationstext, Tests und Implementierungen. Ein wichtiger Baustein war dabei, die IANA-Zeitzonen-Notation überhaupt in einen relevanten Standardkontext zu bringen, damit sie sauber in Temporal verwendet werden kann. Philipp beschreibt außerdem die lange Stage-3-Phase, in der von außen wenig sichtbar war, intern aber Implementierungen in Browser-Engines und Projekten wie temporal_rs vorangetrieben wurden.
Zu guter Letzt sprechen wir noch über die API-Gestaltung selbst. Dazu gehören die bewussten Namensentscheidungen wie das Präfixe Plain und Zoned, die Immutability aller Objekte, die Vermeidung von versteckten Seiteneffekten und der Anspruch, sinnvolle Defaults zu liefern, ohne Spezialfälle unmöglich zu machen. Gerade bei Rechenoperationen rund um Sommerzeitwechsel oder Monatsarithmetik zeigt sich, warum Temporal so differenziert ist: Es gibt oft nicht die eine „richtige“ Antwort, sondern unterschiedliche fachlich sinnvolle Interpretationen. Temporal soll diese Fälle nicht kaschieren, sondern kontrollierbar machen. Zum Schluss spekulieren wir noch darüber, wie gut sich die API in der Praxis durchsetzt, ob Adapter für bestehende Libraries sinnvoll wären und wann der Punkt erreicht sein wird, an dem man die bisherigen Datumsbibliotheken endgültig hinter sich lassen kann.
Diskutiert die Folge mit uns in unserem Community-Slack: https://draft.community/
By Vanessa Otto, Peter Kröner, Hans Christian Reinl, Stefan Baumgartner, Christian »Schepp« SchaeferDiese Woche haben wir Philipp Dunkel (Bluesky) zu Gast und sprechen mit ihm über Temporal, also die neue JavaScript-API für Datum, Uhrzeit, Zeitspannen und Zeitzonen. Aufhänger ist ein Vortrag von Jason Williams auf der State of the Browser, von dem aus wir in die Geschichte, die Designprinzipien und die praktische Modellierung von Zeit in JavaScript einsteigen.
Alle reden von Automation – aber wo betreibst du eigentlich deine Tools?
Egal ob n8n oder andere Container-Setups: Mit dem Container-Hosting von mittwald läuft deine Anwendung in wenigen Minuten. Die nervige Konfiguration? Geht easy von der Hand – inklusive Vorschlägen für Umgebungsvariablen und Entrypoints.
Also: Fang an zu automatisieren. Dein erster Schritt ist ein Hosting bei mittwald. 👉 mittwald.de/workingdraft
Dabei geht es nicht nur um einen Ersatz für das alte Date-Objekt, sondern auch um die lange Vorgeschichte mit Libraries wie Moment.js, Luxon und date-fns, um die Rolle von Intl und ECMA 402 sowie um die vielen politischen, technischen und semantischen Fallstricke, die bei Datum und Uhrzeit eben dranhängen.
Im weiteren Verlauf geht es um die vielen Randbedingungen, die bei Datums- und Zeitverarbeitung eben nicht bloß technische Details sind. Zeitzonen, Sommer- und Winterzeit, regionale Sonderfälle, politische Entscheidungen und kurzfristige Änderungen machen das Thema notorisch kompliziert. Philipp nennt dafür Beispiele wie Marokko mit Ramadan-bedingten Anpassungen, historische Sonderfälle in Großbritannien oder abweichende Regelungen innerhalb einzelner Länder. Genau deshalb orientiert sich Temporal konsequent an bestehenden Standards und Datenquellen, statt neue Konventionen zu erfinden. Für Zeitzonen wird das IANA-Schema verwendet, für Datums- und Zeitstrings ISO 8601, und die enge Zusammenarbeit mit Intl beziehungsweise ECMA 402 (ECMAScript® internationalization API specification) war ein wichtiger Teil der Arbeit.
Besonders spannend ist die Schilderung des langen Standardisierungswegs. Über neun Jahre hinweg wurde nicht nur am API-Design gearbeitet, sondern auch an Interoperabilität, Spezifikationstext, Tests und Implementierungen. Ein wichtiger Baustein war dabei, die IANA-Zeitzonen-Notation überhaupt in einen relevanten Standardkontext zu bringen, damit sie sauber in Temporal verwendet werden kann. Philipp beschreibt außerdem die lange Stage-3-Phase, in der von außen wenig sichtbar war, intern aber Implementierungen in Browser-Engines und Projekten wie temporal_rs vorangetrieben wurden.
Zu guter Letzt sprechen wir noch über die API-Gestaltung selbst. Dazu gehören die bewussten Namensentscheidungen wie das Präfixe Plain und Zoned, die Immutability aller Objekte, die Vermeidung von versteckten Seiteneffekten und der Anspruch, sinnvolle Defaults zu liefern, ohne Spezialfälle unmöglich zu machen. Gerade bei Rechenoperationen rund um Sommerzeitwechsel oder Monatsarithmetik zeigt sich, warum Temporal so differenziert ist: Es gibt oft nicht die eine „richtige“ Antwort, sondern unterschiedliche fachlich sinnvolle Interpretationen. Temporal soll diese Fälle nicht kaschieren, sondern kontrollierbar machen. Zum Schluss spekulieren wir noch darüber, wie gut sich die API in der Praxis durchsetzt, ob Adapter für bestehende Libraries sinnvoll wären und wann der Punkt erreicht sein wird, an dem man die bisherigen Datumsbibliotheken endgültig hinter sich lassen kann.
Diskutiert die Folge mit uns in unserem Community-Slack: https://draft.community/

26 Listeners

9 Listeners

4 Listeners

189 Listeners

10 Listeners

36 Listeners

5 Listeners

0 Listeners

21 Listeners

28 Listeners

11 Listeners

339 Listeners

32 Listeners

5 Listeners

0 Listeners