TypeScript 7: spartesnis kompiliatorius Go pagrindu

Straipsnyje aptariama, kaip Go kalba perrašytas TypeScript 7 kompiliatorius spartina kūrimą, trumpina CI laukimą ir ką komandoms svarbu įvertinti prieš migraciją.

Viltė Petrauskaitė Viltė Petrauskaitė .
TypeScript 7: spartesnis kompiliatorius Go pagrindu

3 Minutes

Atverkite didelę TypeScript saugyklą ir tikriausiai tai pajusite: delsimas, anksčiau varginęs kodo redaktorius, akivaizdžiai mažėja. Failai atsiveria akimirksniu. Klaidos pasirodo beveik iš karto. Šis pokytis nėra nedidelis pataisymas. Tai perrašymas iš pagrindų.

Kas vyksta viduje: Go, lygiagretus darbas ir mažiau netikėtumų

„Microsoft“ išleido galutinę TypeScript 7 versiją, prieš tai perrašiusi kompiliatoriaus branduolį Go kalba. Rezultatas primena trumpą istoriją apie pašalintą trintį: daugelyje scenarijų viso projekto kompiliavimo laikas, kaip pranešama, sutrumpėja 8-12 kartų. Tai patvirtina ir realūs matavimai. Pavyzdžiui, VS Code aplinkoje pirmosios klaidos parodymo laikas dideliame projekte sumažėjo nuo maždaug 17,5 sekundės iki mažiau nei 1,3 sekundės, taigi pagreitėjimas viršija 13 kartų.

Tačiau greitis nėra visa istorija. Naujoji versija lygiagretina pagrindinius įrankių grandinės etapus: sintaksės analizė, tipų tikrinimas ir išvesties generavimas dabar, kai įmanoma, vykdomi vienu metu. Šis pokytis svarbus, nes šiuolaikinės kodų bazės yra ne tik gilios, bet ir plačios. Lygiagretumas keičia skaičiavimų logiką. Komandos gali derinti veikimą naudodamos naujas parinktis: --checkers ir --builders valdo, kiek lygiagrečių darbininkų procesų paleidžiama, o --singleThreaded leidžia programuotojams priverstinai įjungti vienos gijos vykdymą derinimui arba silpnesnėms aplinkoms.

TypeScript 7 nebuvo diegiamas vien laboratorinėmis sąlygomis. Testavime dalyvavo „Slack“, „Canva“, „Google“, „Bloomberg“, „Figma“, „Notion“ ir kelios „Microsoft“ komandos, įskaitant „Teams“, „Office“ ir „Xbox“. Naujasis kompiliatorius kalbos serverio klaidų skaičių sumažino daugiau nei 80 procentų, o serverio strigčių skaičių, daugiau nei 60 procentų. Tokie rodikliai tiesiogiai reiškia mažiau laukimo ir mažiau netikėtų darbo pertraukų.

Įrodymai CI konvejeryje taip pat įtikinami. „Slack“ praneša, kad sujungimo eilės laukimo laikas sumažėjo 40 procentų, o tipų tikrinimas CI aplinkoje sutrumpėjo nuo maždaug 7,5 minutės iki 1,25 minutės. „Microsoft News Services“ skaičiuoja, kad perėjus prie TypeScript 7 dėl trumpesnio CI laukimo per mėnesį sutaupoma apie 400 valandų. Kai dirba daug programuotojų, šios minutės greitai virsta reikšmingu laiko laimėjimu.

Vis dėlto ne viskas įsijungia automatiškai. Įrankiams ir ekosistemos integracijoms dar reikia laiko. „Microsoft“ kol kas nestabilizavo naujos vykdymo aplinkos įrankių API; tikimasi, kad šis darbas bus užbaigtas 7.1 versijoje. Iki tol kai kurios sistemos ir įrankiai negalės visiškai išnaudoti naujos vidinės architektūros. Tarp projektų, kuriems gali prireikti atnaujinimų, yra „Vue“, „Svelte“, „Astro“, „MDX“ ir „Angular“.

Siekdama palengvinti migraciją, „Microsoft“ išleido suderinamumo paketą typescript/typescript6@, kad komandos galėtų naudoti 6 ir 7 versijas greta, kol atnaujins kūrimo įrankius ir papildinius. Tai pragmatiškas sprendimas, mažinantis riziką didelėms organizacijoms, kurios negali per naktį pakeisti kompiliatorių.

Esmė: TypeScript 7 žada apčiuopiamai spartesnę programuotojų patirtį, tačiau ekosistemai prireiks trumpo prisitaikymo laikotarpio, kol visi galės pasinaudoti visa nauda.

Ką kūrimo komandoms daryti dabar? Išbandyti TypeScript 7 atskiroje šakoje, pamatuoti CI ir redaktoriaus reakcijos laiką, o artimiausiems mėnesiams suplanuoti papildinių atnaujinimus. Našumo prieaugis tikras, tačiau perėjimas vyksta dviem žingsniais: pirmiausia atsiranda spartesnis kompiliatorius, tada ekosistema prisitaiko prie jo ritmo.

Viltė Petrauskaitė
Sveiki! Esu Viltė, kasdien sekanti technologijų naujienas iš viso pasaulio. Mano darbas – pateikti jums svarbiausius ir įdomiausius IT pasaulio įvykius aiškiai ir glaustai.

Leave a Comment

Comments

No comments yet.