5 Punkte von xguru 2024-09-07 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Das TC39-Komitee fügt die neue Stage "2.7" hinzu, um den Update-Prozess von JavaScript schneller und reibungsloser zu gestalten
  • Hintergrund des Updates
    • Seit ECMAScript 2015 erhält JavaScript jedes Jahr neue Updates
    • Das TC39-Komitee hat große Anstrengungen in die Standardisierung investiert, um die Sprache weiterzuentwickeln
    • Um eine gründliche Konzeption, Tests und Implementierung neuer Funktionen sicherzustellen, wurde ein mehrstufiger Prozess eingeführt

Ein stufenweiser Prozess für Qualität und Kompatibilität

  • Stage 0: Erkundung neuer Funktionsideen und Definition des Problems
  • Stage 1: Es muss ein Repository und einen "Champion" geben, die den Nutzen der Funktion beschreiben, einschließlich einer klaren Erklärung und möglicher Probleme
  • Stage 2: Erster Spec-Entwurf für die Funktion. Das Komitee erwartet, dass die Funktion Teil der Sprache wird
  • Stage 3: Kandidatenvorschlag, bei dem die Funktion fast fertig ist, aber praktische Erfahrungen durch Implementierungen in Browsern oder serverseitigen Runtimes benötigt werden
  • Stage 4: Bedeutet, dass alle Arbeiten an der Spezifikation abgeschlossen sind und sie bereit ist, in die vollständige Sprachspezifikation aufgenommen zu werden. Letzte Freigabestufe

Tests als expliziter Meilenstein

  • Im ursprünglichen Prozess musste man nach Erreichen von Stage 3 in manchen Fällen Tests neu schreiben
  • Das war besonders bei größeren Vorschlägen schmerzhafter, wenn Designänderungen nötig waren, weil eine Rückkehr zu Stage 2 noch belastender war als ein Zurückfallen auf Stage 3
  • Das Schreiben von Tests erfordert einen erheblichen Arbeitsaufwand, daher wurde der Wechsel zwischen den Stufen belastender als beabsichtigt, wenn dieselbe Arbeit zweimal erledigt werden musste
  • Die neue Stage 2.7 wurde eingeführt, um die Testphase von der Implementierung zu trennen

Anforderungen an Stage 2.7

  • "Grundsätzlich" genehmigt, aber noch validierungsbedürftig
  • Das Schreiben von Tests ist eine der besten Methoden, um alle Konsequenzen eines Feature-Designs zu berücksichtigen. Bei einigen Funktionen kann es nötig sein, Tests schon vor Abschluss des Designs zu schreiben
  • Es muss ausreichend praktische Erfahrung gesammelt werden, um eine vollständige Testsuite und einen Prototyp zu entwickeln und zu zeigen, dass die Funktion implementierbar ist
  • Der Spezifikationstext für die Funktion ist fertig, und das TC39-Komitee verlangt keine Änderungen mehr, außer solchen, die sich aus Tests, Implementierung und Nutzung ergeben
  • Stage 2.7 soll unnötige Doppelarbeit reduzieren und Vorschlägen helfen, direkt zu Stage 3 überzugehen
  • In Stage 3 geht es nun darum, Implementierungserfahrung zu sammeln und Probleme bei Web-Kompatibilität oder Integration zu entdecken

Praktische Anwendung von Stage 2.7

  • Bei der Einführung von Stage 2.7 überprüfte das TC39-Komitee alle bestehenden Stage-3-Vorschläge. Einige Projekte hatten zwar noch nicht alle Tests eingecheckt, waren aber fast fertig und blieben daher in Stage 3
  • Einige Vorschläge wie deferred import und die Methode Math.sumPrecise haben bereits Stage 2.7 erreicht
  • Regexp.escape, das String-Escapes in regulären Ausdrücken unterstützt, hat Stage 2.7 erreicht und ist zusammen mit seiner Testsuite zu Stage 3 weitergerückt
  • Dagegen wurde der Vorschlag "microwaits" (der derzeit atomics.pause heißt), für den sich nützliche Tests nur schwer schreiben lassen, kürzlich auf Stage 2.7 verschoben; die Diskussion drehte sich dabei größtenteils darum, welche Hinweise für Implementierungen in die Spezifikation aufgenommen werden sollten

Noch keine Kommentare.

Noch keine Kommentare.