Microsoft po e ribenton kompajlerin TypeScript në gjuhën Go.

Anders Hejlsberg, arkitekti kryesor i gjuhës TypeScript, i cili për një kohë të gjatë krijoi gjuhët C#, Delphi dhe Turbo Pascal, paraqiti një projekt për krijimin e një kompajleri të ri për TypeScript - typescript-go (tsgo), i zhvilluar në gjuhën Go. Ashtu si kompajleri i vjetër, projekti i ri shpërndahet nën licencën Apache 2.0.

Kompajleri origjinal i TypeScript është shkruar në gjuhën TypeScript dhe shndërrohet në JavaScript, gjë që krijon probleme me shkallëzimin kur përdoret në projekte shumë të mëdha. D developers duhet të pranojnë vonesa të mëdha në ngarkimin dhe verifikimin e kodit në ambientet e integruara të zhvillimit, duke sakrifikuar komoditetin e zhvillimit për të zvogëluar vonesat duke çaktivizuar mundësitë e kontrollit të kodit në redaktorët e tyre. Në ekosistem gjithashtu ka lindur nevoja për një mjet linje komande që lejon ndërtimin e shpejtë të kodit për të kontrolluar funksionalitetin e tij.

Pritet që krijimi i një kompajleri natyror dhe mjeteve për TypeScript do të rrisë ndjeshëm shpejtësinë e ndërtimit, do të reduktojë konsumin e memories dhe do të shkurtëzojë kohën e ngarkimit të redaktorëve të kodit. Performanca e lartë e mjeteve do ta bëjë më të lehtë procesin e zhvillimit në redaktorët modernë të kodit, duke lejuar kontrollin e shpejtë të kodit të gjithë projektit, dhe do të japë mundësinë për të implementuar teknika më të avancuara të ristrukturimit dhe analizës së kodit, të cilat më parë ishin tepër të shtrenjta në termat e konsumit të burimeve.

Sipas vlerësimeve të zhvilluesve të TypeScript, mjeti i ri do të lejojë një reduktim të kohës së ndërtimit deri në përmasat. Në formën aktuale, varianti i ri i kompajlerit tsc përpunon bazën e kodit të projektit VS Code për 7.5 sekonda, ndërsa kompajleri i vjetër kishte nevojë për 77.8 sekonda për këtë operacion. Në rastin e bazës së kodit të Playwright, ngarkimi u shkurtua nga 11.1 në 1.1 sekondë, TypeORM - nga 17.5 në 1.3 sekondë, date-fns nga 6.5 në 0.7 sekondë, tRPC nga 5.5 në 0.6 sekondë, dhe rxjs nga 1.1 në 0.1 sekondë.

Zhvillimi i kompajlerit të ri po kryhet që nga tetori 2024 nga një ekip prej 9 punonjësish të Microsoft. Në fazën aktuale, një prototip funksional është tashmë i disponueshëm për testim. Një version paraprak i mjeteve të linjës së komandës me implementimin e ri tsc, që mbështet kontrollin e tipeve, planifikon të publikohet deri në mes të vitit. Publikimi i versionit të parë funksional, i cili mund të ndërtojë projekte dhe ofron shërbime LSP për ambientet e zhvillimit, është parashikuar për fundin e vitit.

Degëzimi i TypeScript 6.x do të vazhdojë të jepet me kompajlerin e vjetër dhe do të përfshijë ndryshime të veçanta për t'u përgatitur për migrimin në implementimin e ri. Publikimi i parë që do të kalojë në mjete të reja do të jetë TypeScript 7. Për një periudhë, bazat e kodit të TypeScript 6.x dhe TypeScript 7.x do të përkrahën paralelisht dhe do të coexisto, derisa dega TypeScript 7 të arrijë një gjendje të pjekur, gati për të zëvendësuar plotësisht mjetin e vjetër.

Para fillimit të punës në projekt, zhvilluesit shqyrtuan mundësinë e përdorimit të gjuhëve të ndryshme programimi dhe eksperimenti me prototipat në gjuhë të ndryshme. Në fund, për krijimin e kompajlerit të ri u zgjodh gjuha Go, si opsioni optimal për të përfunduar punën e riprogramimit të bazës së kodit të kompajlerit të vjetër. Krahasuar me gjuhë si Rust, Go është më afër TypeScript në semantikë dhe strukturën e kodit, duke lejuar ruajtjen e modeleve ekzistuese gjatë portimit. Përdorimi i Go lehtëson transferimin e ndryshimeve midis bazave të kodit dhe zvogëlon punën e nevojshme për mbështetje për versionet e vjetra dhe të reja anash.

Gjuha Go siguron performancë të mirë, zhvillohet me vëmendje ndaj programimit shumëfishtë dhe punës efektive në sisteme multi-core, ka mjete të ndërtuara për mbrojtjen nga problemet me memorinë. Kostoja e sigurimit të operimeve të sigurta me memorie është një mbledhës mbetje, i cili mund të sjellë vonesa gjatë funksionimit, por për kompajlerin, shfaqja e këtyre vonesave nuk ka rëndësi.

Si një alternative ishin shqyrtuar edhe gjuhë të tjera, si Rust, por ato ndryshojnë shumë konceptualisht nga TypeScript dhe duke i përdorur, portimi do të kthehej në zhvillimin e një kompajleri nga e para, i cili do ta bënte të vështirë arritjen e përputhshmërisë së plotë me kompajlerin e vjetër, do të duhej të rishtrohej problemet që ishin zgjidhur tashmë në bazën e kodit të vjetër dhe projekti do të kërkonte shumë më shumë kohë dhe burime.

Gjuha TypeScript zgjeron funksionalitetin e JavaScript, duke mbetur plotësisht e prapakompatshme, çka e bën më të lehtë kalimin në TypeScript të aplikacioneve ekzistuese. Aplikacioni përfundimtar në TypeScript kompilohet në JavaScript të zakonshëm, i cili mund të ekzekutohet në çdo shfletues modern të webit ose të përdoret me platformat Node.js, Bun dhe Deno. Nga JavaScript, gjuha TypeScript dallon për mjetet për përcaktimin e qartë të tipeve, si dhe mbështetje për përdorimin e klasave dhe moduleve të plota. Tipizimi statik ndihmon në shmangien e shumë gabimeve gjatë procesit të zhvillimit, ofron mundësinë e aplikimit të teknikave të shumta optimizimi, lehtëson debuggimin, e bën kodin më të lexueshëm dhe më të thjeshtë për ta përmirësuar dhe mbështetur.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster