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:
--checkersoraz--buildersuruchamiają procesy parsowania i sprawdzania typów obok siebie, wykorzystując procesory wielordzeniowe.--singleThreadedwymusza 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
--watchkorzysta z portu Parcel napisanego w Go, co eliminuje kosztowne odpytywanie (polling) ogromnych drzewnode_modulesi 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.
