TypeScript 7 zadebiutował w tym tygodniu z całkowitym przepisaniem kodu w języku Go, co skróciło czas kompilacji w VS Code z 17,5 sekundy do niespełna 1,3 sekundy i zmniejszyło zużycie pamięci nawet o 26% w dużych projektach. Wzrost prędkości sprawia, że codzienne programowanie wydaje się błyskawiczne, a oszczędności sumują się do wielu godzin czasu programistów w całym stosie technologicznym.

Dlaczego przepisanie kodu w Go ma znaczenie

Microsoft przebudował kompilator w Go, zastępując wieloletnią implementację w JavaScript/Node. Oryginalna baza kodu napotkała barierę wraz ze wzrostem projektów – parsowanie i sprawdzanie typów spowalniały procesy CI, które mają ograniczone zasoby CPU i RAM. Dzięki przejściu na język kompilowany z wbudowaną współbieżnością, nowy silnik wykonuje parsowanie i sprawdzanie typów równolegle, drastycznie skracając czas oczekiwania na pierwszy błąd.

Realne zyski wydajnościowe

Wczesne benchmarki przeprowadzone na kilku dużych bazach kodu ilustrują ten wpływ:

  • VS Code: 11,9-krotnie szybsza kompilacja, o 18% mniejsze zużycie pamięci.
  • Sentry, Bluesky, Playwright, Tldraw: przyspieszenie od 7,7x do 8,9x.
  • Bluesky odnotowuje również 26-procentowy spadek zużycia pamięci.

Programiści, którzy kilkanaście razy dziennie uruchamiają komendy „run” lub „watch”, zauważają płynniejszą edycję i mniejsze obciążenie procesów CI.

Nowe flagi dają Ci kontrolę

Nowa wersja zawiera opcje wiersza poleceń, które pozwalają zespołom balansować między prędkością a zużyciem pamięci:

  • --checkers oraz --builders uruchamiają procesy parsowania i sprawdzania typów obok siebie, wykorzystując procesory wielordzeniowe.
  • --singleThreaded wymusza wykonywanie wszystkich zadań na jednym wątku, co sprawia, że debugowanie jest powtarzalne w przypadku wystąpienia wyścigu (race condition).
  • Osobne skalowanie procesów sprawdzania typów względem procesów budowania pozwala potokom CI na przydzielanie dokładnie takiej ilości zasobów, jaka jest potrzebna na każdym etapie.
  • Odświeżony tryb --watch korzysta z portu Parcel napisanego w Go, co eliminuje kosztowne odpytywanie (polling) ogromnych drzew node_modules i sprawia, że wykrywanie zmian w plikach jest bardzo lekkie.

Kto zyskuje, a kto może się wahać

Frameworki front-endowe, które silnie polegają na TypeScript – takie jak Next.js i Nuxt – zyskają na szybszych przebudowach i krótszych pętlach zwrotnych. Środowiska IDE, takie jak VS Code i Cursor, stają się bardziej responsywne, co zachęca programistów do dłuższego pracy w edytorze zamiast przełączania się na budowanie w terminalu.

Na co warto zwrócić uwagę w przyszłości

  • Tempo adopcji w dużych projektach open-source i korporacyjnych monorepo.
  • Opinie społeczności na temat stabilności oraz ewentualnych ukrytych spadków wydajności.
  • Aktualizacje Microsoftu dodające nowe funkcje kompilatora, aby jeszcze bardziej skrócić czas kompilacji lub poprawić diagnostykę błędów.