Alles rund um Windows

Microsoft portiert TypeScript mit 10-facher Performance-Steigerung

Microsoft kündigte ein Projekt zur Verbesserung der TypeScript-Leistung durch die Portierung des Compilers und der Sprachwerkzeuge auf Go an.

Das Projekt mit dem Titel "Corsa" verspricht eine 10-fache Geschwindigkeitssteigerung für Entwickler sowie eine ‚erhebliche‘ Reduzierung des Speicherverbrauchs.

Anders Hejlsberg, leitender Architekt von TypeScript und technischer Mitarbeiter bei Microsoft, kündigte dies in einem Blogbeitrag und einem YouTube-Video an.

Der TypeScript-Compiler und das Toolset wurden durch eine direkte, Datei-für-Datei- und Funktion-für-Funktion-Übersetzung aus der ursprünglichen Codebasis nach Go portiert.

Die Entscheidung, den TypeScript-Compiler und das Toolset auf Go zu portieren, wurde getroffen, um die Leistungsgrenzen von JavaScript (JS) zu überwinden. Trotz des Erfolgs von TypeScript in den letzten zehn Jahren hatte die selbst gehostete JavaScript-Implementierung mit Problemen wie langsamen Kompilierungszeiten und Speicherfehlern zu kämpfen, wie Hejlsberg anmerkte.

"Wir haben wahrscheinlich die Grenze dessen erreicht, was wir aus JavaScript herausholen können", sagte er.

Microsoft geht davon aus, dass bis Mitte 2025 eine Vorschau auf eine native Implementierung des TypeScript-Compilers mit Befehlszeilen-Typprüfung möglich sein wird, mit einer vollständigen Lösung für Projekt-Builds und einem Sprachdienst bis Ende des Jahres.

Dieses Projekt zeigte eine über 10-mal schnellere Kompilierungszeit über mehrere Codebasen hinweg. So sinkt beispielsweise die Kompilierungszeit der 1,5 Millionen Codezeilen von Visual Studio Code von 77,8 Sekunden auf 7,5 Sekunden.

„Diese native Portierung wird in der Lage sein, sofortige, umfassende Fehlerlisten für ein gesamtes Projekt bereitzustellen, fortgeschrittenere Refactorings zu unterstützen und tiefere Einblicke zu ermöglichen, deren Berechnung bisher zu teuer war“, heißt es in einem Abschnitt des Blogbeitrags.

Microsoft gab außerdem an, dass die Gesamtspeicherauslastung ‚etwa‘ halb so hoch zu sein scheint wie bei der aktuellen Untersuchung.

Einige Entwickler fragten sich auch, warum Microsoft Go anderen Programmiersprachen wie Rust vorgezogen hat. Matt Pocock, ein TypeScript-Experte, schrieb: "Der mit Abstand wichtigste Grund war die strukturelle Ähnlichkeit von Go mit der aktuellen JavaScript-Implementierung. Die Programmiermuster von Go ähneln stark der bestehenden Code-Struktur von TypeScript."

"Das bedeutet, dass Mitwirkende, die mit der bestehenden Codebasis vertraut sind, sich leichter in der Codebasis zurechtfinden werden", fügte er hinzu.

TypeScript 5.8 wird auf 5.9 aktualisiert und die Entwicklung wird mit der 6.0-Serie fortgesetzt. Project Corsa wird als TypeScript 7.0 veröffentlicht. Die JS-basierte Codebasis wird zusammen mit der Entwicklung des neuen Projekts beibehalten – "bis TypeScript 7+ eine ausreichende Reife und Akzeptanz erreicht hat".