Microsoft Compiler TypeScript-ро дар Go аз нав менависад

Андерс Ҳейлсберг, сармеъмори забони TypeScript, ки забонҳои C#, Delphi ва Turbo Pascal-ро офаридааст, лоиҳаи эҷоди компилятори нав барои TypeScript - typescript-go (tsgo), ки бо забони Go таҳия шудааст, пешниҳод кард. Мисли компилятори кӯҳна, лоиҳаи нав таҳти иҷозатномаи Apache 2.0 паҳн карда мешавад.

Тартибдиҳандаи аслии TypeScript дар TypeScript навишта шудааст ва ба JavaScript тарҷума шудааст, ки ҳангоми истифода дар лоиҳаҳои хеле калон мушкилоти миқёсро ба вуҷуд меорад. Таҳиягарон бояд ҳангоми боркунӣ ва тафтиши код дар IDE ба таъхирҳои тӯлонӣ тоб оваранд ва таҷрибаи таҳиягарро барои кам кардани таъхир тавассути хомӯш кардани қобилияти санҷиши код дар муҳаррирон қурбон кунанд. Инчунин дар экосистема ба абзорҳои сатри фармон эҳтиёҷоти афзоянда вуҷуд дорад, ки имкон медиҳанд кодро барои санҷиши кори он зуд сохта шаванд.

Интизор меравад, ки эҷоди як компилятори ватанӣ ва асбобҳо барои TypeScript суръати сохтмонро ба таври назаррас афзоиш медиҳад, истеъмоли хотираро коҳиш медиҳад ва вақти оғози муҳаррирони кодро кам мекунад. Фаъолияти баланди маҷмӯаи асбобҳо раванди таҳияро дар муҳаррирони кодҳои муосир қулайтар мекунад, барои тафтиши зуди коди тамоми лоиҳа имкон медиҳад ва имкон медиҳад, ки усулҳои пешрафтаи рефакторинг ва таҳлили код, ки ворид кардани онҳо қаблан аз ҷиҳати истеъмоли захираҳо хеле гарон буд.

Ба гуфтаи таҳиягарони TypeScript, асбоби нав вақти сохтмонро бо тартиби миқёс кам мекунад. Дар шакли ҳозираи худ, компилятори нави tsc метавонад базаи коди лоиҳаи VS Code-ро дар 7.5 сония коркард кунад, дар ҳоле ки компилятори кӯҳна барои иҷрои ин кор 77.8 сония вақт сарф кардааст. Дар мавриди базаи рамзии Playwright, вақти боркунӣ аз 11.1 то 1.1 сония, TypeORM аз 17.5 то 1.3 сония, санаи fns аз 6.5 то 0.7 сония, tRPC аз 5.5 то 0.6 сония ва rxjs аз 1.1 то 0.1 сония коҳиш ёфт.

Компилятори нав аз моҳи октябри соли 2024 аз ҷониби як гурӯҳи 9 корманди Microsoft таҳия карда мешавад. Дар ин марҳила, прототипи корӣ аллакай барои санҷиш дастрас аст. Намоиши пешнамоиши абзори сатри фармон бо татбиқи нави tsc, ки санҷиши намудро дастгирӣ мекунад, то нимаи сол бароварда мешавад. Нахустин версияи комилан функсионалӣ, ки қодир ба сохтани лоиҳаҳо ва пешниҳоди хидматҳои LSP барои муҳитҳои рушд мебошад, бояд то охири сол бароварда шавад.

Филиали TypeScript 6.x интиқолро бо компилятори кӯҳна идома медиҳад ва баъзе тағйиротҳоро барои омодагӣ ба муҳоҷират ба татбиқи нав дар бар мегирад. Нахустин релиз, ки ба силсилаи асбобҳои нав интиқол дода мешавад, TypeScript 7 хоҳад буд. Муддате пойгоҳҳои коди TypeScript 6.x ва TypeScript 7.x нигоҳ дошта мешаванд ва дар баробари ҳамзистӣ то он даме, ки шохаи TypeScript 7 ба ҳолати баркамол расад, ки барои пурра иваз кардани асбобҳои кӯҳна омода аст.

Пеш аз оғози кор дар лоиҳа, таҳиягарон имкони истифодаи забонҳои гуногуни барномасозиро омӯхтанд ва бо прототипҳо бо забонҳои гуногун таҷриба карданд. Дар натиҷа, забони Go барои эҷоди компилятори нав интихоб шуд, ки беҳтарин вариант барои иҷрои кори азнавнависии пойгоҳи коди компилятори кӯҳна мебошад. Дар муқоиса бо забонҳо ба монанди Rust, Go дар семантика ва сохтори код ба TypeScript наздиктар аст ва имкон медиҳад, ки ҳангоми интиқол намунаҳои мавҷуда нигоҳ дошта шаванд. Истифодаи Go интиқоли тағиротро байни пойгоҳҳои рамзӣ осонтар мекунад ва вазифаи заҳматталаби нигоҳ доштани версияҳои кӯҳна ва навро дар паҳлӯ коҳиш медиҳад.

Забони Go иҷрои хубро таъмин мекунад, бо дарназардошти барномасозии чанд ришта ва кори муассир дар системаҳои бисёраслӣ таҳия шудааст ва аз мушкилот ҳангоми кор бо хотира муҳофизати дохилӣ дорад. Нархи бехатарии хотира дар он аст, ки коллектори ахлот метавонад дар давоми иҷро таъхирҳоро ҷорӣ кунад, аммо компилятор ба чунин таъхирҳо аҳамият намедиҳад.

Забонҳои дигар ба монанди Rust низ ҳамчун вариант баррасӣ карда шуданд, аммо онҳо аз TypeScript аз ҷиҳати консептуалӣ хеле фарқ мекунанд ва истифодаи онҳо боиси интиқоли компилятор аз сифр мешуд ва ба даст овардани мутобиқати пурра бо компилятори кӯҳна, ҳалли масъалаҳои аллакай дар базаи коди кӯҳна ҳалшуда душвор мегардид ва вақт ва захираҳои бештарро талаб мекунад.

Забони TypeScript имкониятҳои JavaScript-ро васеъ карда, дар ҳоле ки комилан ба ақиб мувофиқ боқӣ мемонад ва интиқоли барномаҳои мавҷударо ба TypeScript осон мекунад. Замимаи TypeScript дар натиҷа ба JavaScript-и оддӣ тартиб дода мешавад, ки онро метавон дар ҳама гуна браузери муосири веб иҷро кард ё бо платформаҳои Node.js, Bun ва Deno истифода бурд. TypeScript аз JavaScript бо он фарқ мекунад, ки он асбобҳоро барои ба таври возеҳ муайян кардани намудҳо, инчунин дастгирии истифодаи синфҳо ва модулҳои мукаммал таъмин менамояд. Навиштани статикӣ ба шумо имкон медиҳад, ки дар ҷараёни таҳия аз хатогиҳои зиёд канорагирӣ кунед, имкон медиҳад, ки усулҳои иловагии оптимизатсияро истифода баред, хатогиҳоро соддатар мекунад, кодро хондантар ва тоза кардан ва нигоҳдорӣ осонтар мекунад.

Манбаъ: opennet.ru

Илова Эзоҳ