Die TypeScript-Verlangsamung, die offen vor aller Augen liegt
Die TypeScript-Entwicklung umfasst zwei getrennte Prozesse: Transpilation und semantisches Type-Checking. Schnelle Build-Tools wie esbuild oder Vite entfernen die TypeScript-Syntax rasch und wandeln sie in lauffähiges JavaScript um. Dieser Schritt ist schnell und dauert oft nur Millisekunden.
Der Engpass entsteht beim semantischen Type-Checking, das die Gültigkeit des Codes prüft. Dieser Prozess, der für das Editor-Feedback und CI-Pipelines entscheidend ist, kann bei großen Projekten mehrere Minuten dauern. Entwickler erleben diese Verzögerung als träge Fehlermeldungen in IDEs oder als verlängerte CI-Laufzeiten.
Microsoft hat dies offiziell mit einem Go-Port des TypeScript-Compilers angegangen, der gegenüber der älteren JavaScript-Engine eine 8- bis 12-fache Beschleunigung erzielt. Diese Go-Version, Teil von TypeScript 7.0, verkürzte die Prüfzeiten deutlich; so sank etwa die Type-Prüfung von VS Code von 125,7 Sekunden auf 10,6 Sekunden.
Kürzlich ist eine von der Community getragene Rust-Implementierung hinzugekommen, die einen neuen Konkurrenten darstellt. Dieser Rust-Port der Go-Codebasis wurde von Cloudflare und dem Oxc-Projekt mithilfe von KI-Agenten zügig entwickelt und soll nach eigener Aussage fast dreimal schneller sein als die offizielle Go-Version. Er ist zwar noch nicht im gesamten Ökosystem integriert, besteht aber über 99,9 % der TypeScript-Konformitätstests und zeigt damit sein Potenzial.
Der Benchmark: 0,3 Sekunden gegenüber 0,7
Um die Beschleunigung zu beziffern, stellte ein Benchmark den älteren JavaScript-Compiler gegen die neuen Go- und Rust-Ports. Der Test verwendete das offizielle TypeScript-Repository, eine umfangreiche Codebasis mit 793 Dateien und rund 380.000 Codezeilen. Vier Szenarien bewerteten die Leistung: völlig gültiger Code, ein einzelner Typfehler, ein Folgefehler-Kaskade durch einen defekten Kerntyp und tiefe Rekursion.
In diesen unterschiedlichen Szenarien waren die Ergebnisse eindrucksvoll. Der JavaScript-Compiler brauchte durchweg am längsten, nämlich zwischen 6,6 und 13 Sekunden. Der Go-Port verbesserte dies deutlich und schloss die Prüfungen in 0,6 bis 2,2 Sekunden ab. Die Rust-Version zeigte jedoch die beste Leistung und war bereits nach 0,2 bis 0,5 Sekunden fertig.
Zur Einordnung der Kennzahlen: Der Rust-Compiler war im Durchschnitt etwa 24-mal schneller als die ursprüngliche JavaScript-Implementierung. Noch bemerkenswerter ist, dass er in diesem speziellen Test fast dreimal schneller war als der Go-Port. Diese Ergebnisse zeigen das Potenzial für erhebliche Verbesserungen der Developer Experience.
Es ist wichtig zu bedenken, dass Benchmark-Ergebnisse variieren können. Faktoren wie Hardware-Spezifikationen, Projektstruktur, konkrete Compiler-Versionen und die genaue Benchmark-Methodik können die Leistung beeinflussen. Dennoch ist die durchgängige und deutliche Beschleunigung des Rust-Ports eine bedeutende Entwicklung für das TypeScript-Ökosystem.
KI-Agenten übernahmen das mühsam erarbeitete Design
Bemerkenswerterweise stammt der Rust-Port nicht von einem Entwickler, der ein neues Typsystem entworfen hat. Stattdessen leitete ein Entwickler KI-Agenten an, vor allem Claude Opus 3.5, Microsofts bestehenden Go-Compiler Funktion für Funktion nach Rust zu übersetzen. Dieser Ansatz beruhte auf einer mechanischen statt kreativen Übersetzung.
Diese Übersetzungsstrategie nutzte die umfangreiche Konformitätssuite von TypeScript mit über 13.000 Testfällen. Jeder Testfall legt die genauen Diagnosefehler fest, die ein konformer Compiler melden sollte. Die Agenten portierten eine Funktion, führten die zugehörigen Tests aus, beseitigten Abweichungen und gingen dann zur nächsten Funktion über.
Dass die Rust-Version inzwischen alle diese Tests besteht, bestätigt ihre Kompatibilität und ihre Fähigkeit, mit dem offiziellen Go-Compiler identische Type-Checking-Ergebnisse zu liefern. Das ermöglichte schnelle, überprüfbare Iterationen in nur drei Wochen Entwicklungszeit. Mehr zum offiziellen Go-Port finden Sie unter A 10x Faster TypeScript - Microsoft Developer Blogs.
Das Bestehen der Konformitätstests belegt jedoch in erster Linie die Korrektheit der Ausgabe. Es garantiert nicht von sich aus eine gleichwertige Leistung bei allen Projekttypen, eine nahtlose Editor-Integration oder die sofortige Produktionsreife für jede Codebasis. Die im Video gezeigten Benchmarks sind überzeugend, doch weitere Integration und Tests unter realen Bedingungen werden entscheidend sein, um eine breitere Verbreitung zu festigen.
Gefällt Ihnen der Artikel? Erhalten Sie jeden Morgen einen wie diesen per E-Mail.
eine E-Mail pro Tag · Abmeldung mit zwei Klicks · kein Tracking durch Dritte
Geschwindigkeit ist spannend; die Akzeptanz ist der eigentliche Test
Die Leistungsgewinne von Rust sind spannend, doch die WebAssembly-Perspektive liefert einen überzeugenden Grund für die Einführung. Cloudflare beispielsweise will Entwickler-Tools direkt in Browser- und Edge-Umgebungen ausführen. Rust lässt sich ohne mitgelieferten Garbage Collector zu WebAssembly kompilieren, anders als Go, und eignet sich damit ideal für eine schlanke, isolierte Ausführung.
Microsofts Go-Implementierung des TypeScript-Compilers bleibt die offizielle Referenz und treibt TypeScript 7.0 mit deutlichen Geschwindigkeitsgewinnen an. Der Rust-Port wird dagegen im Oxc-Projekt entwickelt, einer Rust-Toolchain von den Machern von Vite. Das empfiehlt ihn für künftige Anwendungen wie typbewusstes Linting in Oxc Lint, bei dem seine Geschwindigkeit Feedback in Echtzeit ermöglicht.
Betrachten Sie den Benchmark als vielversprechendes Signal, nicht als allgemeingültige Garantie. Prüfen Sie vor der Integration die Kompatibilität und Tooling-Unterstützung für Ihren konkreten Projekt-Stack. Beobachten Sie, ob diese Optimierungen und Integrationen in den Arbeitsalltag gelangen und die Durchlaufzeiten für Entwickler in der Praxis senken. Der eigentliche Test für den Rust-Port wird sein, ob aus einem beeindruckenden Benchmark ein breiter praktischer Nutzen wird.
Häufig gestellte Fragen
Ist der Rust-basierte TypeScript-Compiler ein offizielles Release von Microsoft?
Nein. Es handelt sich um einen von der Community getragenen Rust-Port im Umfeld des Oxc-Projekts; Microsofts offizieller nativer Compiler-Port ist in Go geschrieben.
Wie viel schneller war der Rust-Compiler im Benchmark des Videos?
Im Test mit dem TypeScript-Repository war er durchschnittlich etwa 24-mal schneller als der JavaScript-Compiler und fast dreimal schneller als der Go-Port.
Warum einen TypeScript-Compiler in Rust entwickeln?
Da Rust keinen Garbage Collector hat, kann das Packaging für WebAssembly attraktiv sein; zudem untersucht der Port Optimierungen bei Leistung und Speicherverbrauch.
Wurde der Rust-Port von einer KI geschrieben?
KI-Agenten übernahmen unter Anleitung eines Entwicklers einen Großteil der mechanischen Portierungsarbeit und orientierten sich dabei am Compiler von Microsoft und an den Konformitätstests von TypeScript.

