Artikkeli

TypeScript 7: Go-ydin ja valtava nopeutus kehittäjille

TypeScript 7:n Go-pohjainen ydin ja rinnakkaisuus lyhentävät käännösaikoja ja parantavat editorin reagointia merkittävästi. Artikkeli esittelee mittaukset, yritysten testitulokset, CI-säästöt ja ekosysteemin päivityshaasteet.

TypeScript 7: Go-ydin ja valtava nopeutus kehittäjille
Lukuaika: 2 Minuuttia
Seuraa Googlessa

Avaa suuri TypeScript-repositorio, niin voit huomata sen: editorien aiemmin vaivannut viive vähenee. Tiedostot aukeavat salamannopeasti. Virheilmoitukset ilmestyvät lähes välittömästi. Tämä muutos ei ole pieni säätö. Kyse on koko järjestelmän uudelleenkirjoituksesta.

Moottorin takana: Go, rinnakkaisuus ja vähemmän yllätyksiä

Microsoft on julkaissut TypeScript 7:n lopullisen version sen jälkeen, kun kääntäjän ydin uudelleenrakennettiin Go-kielellä. Tulokset kuulostavat kuin kertomukselta kitkan poistumisesta: koko projektin käännösaikojen kerrotaan olevan monissa tilanteissa 8–12 kertaa nopeammat. Todelliset mittaukset tukevat tätä. Esimerkiksi VS Codessa ensimmäinen raportoitu virhe suuressa projektissa laski noin 17,5 sekunnista alle 1,3 sekuntiin, eli yli 13-kertainen nopeutus.

Nopeus ei ole koko tarina. Uusi julkaisu rinnakkaistaa työkaluketjun keskeisiä vaiheita: analysointi, tyyppitarkistus ja käännöstulo ajetaan nyt samanaikaisesti aina kun se on mahdollista. Muutos on merkittävä, koska nykyaikaiset koodikannat ovat samalla leveitä ja syviä. Rinnakkaisuus muuttaa laskentaa. Tiimit voivat säätää toimintaa uusilla lipuilla: --checkers ja --builders määrittävät, kuinka monta rinnakkaista työläistä ajetaan, ja --singleThreaded antaa kehittäjille mahdollisuuden pakottaa yksisäikeinen suoritus virheenetsintää tai heikkotehoisia ympäristöjä varten.

TypeScript 7 ei rullattu ulos vain laboratoriokokeiluna. Slack, Canva, Google, Bloomberg, Figma, Notion ja useat Microsoftin tiimit, mukaan lukien Teams, Office ja Xbox, osallistuivat testaukseen. Uusi kääntäjä vähensi kielipalvelimen virheilmoituksia yli 80 prosentilla ja vähensi palvelimen kaatumisia yli 60 prosentilla. Nämä ovat lukuja, jotka tarkoittavat vähemmän odottelua ja harvempia odottamattomia keskeytyksiä.

Todiste CI-putkessa on vakuuttava. Slack raportoi 40 prosentin vähennyksen merge-jonon odotusajoissa ja kertoo, että tyyppitarkistus CI:ssä laski noin 7,5 minuutista 1,25 minuuttiin. Microsoft News Services arvioi, että siirtyminen TypeScript 7:ään säästää noin 400 tuntia kuukaudessa vähentyneen CI-odotusajan ansiosta. Ne minuutit kertautuvat nopeasti monen kehittäjän kesken.

Kaikki ei kuitenkaan kytkeydy päälle automaattisesti. Työkalut ja ekosysteemin integraatiot tarvitsevat vielä aikaa. Microsoft ei ole vielä vakauttanut työkalujen API:ta uudelle suoritinympäristölle; tämän odotetaan saapuvan versiossa 7.1. Siihen asti jotkin kehykset ja työkalut eivät voi hyödyntää uusia sisäisiä rakenteita täysin. Vue, Svelte, Astro, MDX ja Angular ovat hankkeita, jotka saattavat tarvita päivityksiä ennen kuin ne voivat ottaa kaiken hyödyn irti.

Helpottaakseen siirtymää Microsoft julkaisi yhteensopivuuspaketin typescript/typescript6@, jotta tiimit voivat ajaa versioita 6 ja 7 rinnakkain päivitettäessä rakennustyökaluja ja lisäosia. Tämä pragmaattinen ratkaisu vähentää riskejä suurille organisaatioille, jotka eivät voi vaihtaa kääntäjiä yhdessä yössä.

Yhteenveto: TypeScript 7 lupaa merkittävästi nopeamman kehittäjäkokemuksen, mutta ekosysteemin on käytävä lyhyt päivitysvaihe, ennen kuin kaikki saavat täyden hyödyn.

Mitä kehitystiimien tulisi tehdä nyt? Kokeilla TypeScript 7:ää haarassa, mitata CI:n ja editorin reagointikykyä sekä suunnitella lisäosapäivitykset seuraaville kuukausille. Nopeushyödyt ovat todellisia, mutta siirtymä on kaksivaiheinen: ensin nopeampi kääntäjä ja sitten ekosysteemi mukautumassa sen tahtiin.

Lähdesmarti.live
Laura Niemi

"Olen digitaalisen markkinoinnin asiantuntija ja intohimoinen data-analytiikan seuraaja. Kirjoitan Diginissä siitä, miten teknologia vaikuttaa liiketoimintaan ja yhteiskuntaan."

Jätä kommentti

Kommentit

Ei vielä kommentteja. Ole ensimmäinen.