TypeScript 7 imefika ikiwa na compiler inayozingatia Go ambayo inapunguza muda wa ukaguzi wa aina (type-checking) hadi sehemu moja ya kumi ya muda wake wa awali na kupunguza matumizi ya kumbukumbu (memory footprint) kwa hadi robo, mabadiliko ambayo yataonekana mara tu anayefanya kazi (developer) anapobonyeza “save” kwenye VS Code.

Uamuzi wa Microsoft wa kuandika upya kiini cha huduma ya lugha (language service) kwa kutumia Go unakuja baada ya miaka ya malalamiko kwamba ukaguzi wa hatua kwa hatua (incremental checker) wa TypeScript unaweza kukwama kwenye monorepos kubwa. Kwa kuhamisha kazi nzito—uchambuzi (parsing) na ukaguzi wa aina (type-checking)—kutoka kwenye utekelezaji wa JavaScript wa muda mrefu, timu hiyo imefungua uwezo wa kufanya kazi kwa pamoja (parallelism) katika kiwango cha lugha na kupunguza mzigo wa Node.js runtime.

Kwa nini kuandika upya kuna umuhimu

Programu za kisasa za wavuti zinazojengwa kwa kutumia mifumo (frameworks) kama Next.js au Nuxt mara nyingi hutumia maelfu ya moduli. Katika mazingira hayo, muda wa kuonyesha kosa la kwanza la aina (type error) unaweza kuchukua sehemu kubwa ya mzunguko wa kuhariri-kukamilisha-kutatua (edit-compile-debug). Compiler mpya inapunguza muda wa kupata kosa la kwanza kwenye VS Code kutoka sekunde 17.5 hadi chini ya sekunde 1.3, ikiwa ni ongezeko la kasi mara 11.9 kwa edita hiyo pekee. Vipimo huru kutoka kwa miradi mbalimbali vinathibitisha mafanikio kama hayo:

  • VS Code: Kasi ya mara 11.9 zaidi
  • Sentry: Kasi ya mara 8.9 zaidi
  • Bluesky: Kasi ya mara 8.7 zaidi
  • Playwright: Kasi ya mara 8.7 zaidi
  • Tldraw: Kasi ya mara 7.7 zaidi

Matumizi ya kumbukumbu pia yameimarika. TypeScript server ya VS Code sasa inatumia RAM kwa asilimia 18 chini, Bluesky inaona upungufu wa asilimia 26, na Tldraw inaokoa asilimia 15.

Takwimu hizi zinatafsiriwa kuwa tija halisi: developer anayehifadhi faili kila baada ya sekunde chache sasa anaweza kufanya kazi mara kumi kwa kasi zaidi, akipunguza vikwazo vya kila siku kwenye misingi mikubwa ya kodi (large codebases) kwa kiasi kikubwa.

Vifaa vipya vya udhibiti wa kina

Go compiler inaleta seti ya bendera za mstari wa amri (command-line flags) zinazoziruhusu timu kurekebisha utendaji kulingana na vifaa vyao na mtiririko wa kazi:

  • Usindikaji wa pamoja (Parallel processing) (--checkers na --builders) unaendesha uchambuzi (parsing) na ukaguzi wa aina (type-checking) kwa wakati mmoja, ikiruhusu watumiaji kusawazisha kasi dhidi ya shinikizo la kumbukumbu.
  • Hali ya thread moja (Single-threaded mode) (--singleThreaded) inarahisisha utatuzi wa hitilafu (debugging) na inafaa kwa mazingira yenye rasilimali chache.
  • Wafanyakazi wanaoweza kupanuliwa (Scalable workers) inaruhusu wafanyakazi wa ukaguzi wa aina kupanuliwa kando na wafanyakazi wa ujenzi (builder workers), ikiruhusu mifumo ya ujenzi iliyobinafsishwa (custom build pipelines).
  • Hali ya uangalizi iliyoboreshwa (Improved watch mode) inachukua nafasi ya kiskana faili (file scanner) wa zamani wa Node na kuweka Go file watcher, ikiondoa ukaguzi wa mfuatano (recursive scans) wa gharama kubwa wa miti mikubwa ya node_modules.

Chaguzi hizi huwapa mashirika makubwa uwezo wa kupata utendaji wa ziada kutoka kwenye mifumo ya CI bila kuhitaji kubadilisha kodi yao iliyopo.

Hatari na upinzani

Kuandika upya kiungo muhimu katika lugha tofauti hakuna utata. Baadhi ya watengenezaji wana wasiwasi kwamba kuhamia kwenye Go kunaweza kuleta hitilafu mpya au kutokubaliana (incompatibilities) ambazo utekelezaji uliokomaa wa JavaScript tayari umeshazitatua. Mabadiliko haya pia yanaongeza utegemezi wa Go runtime kwenye TypeScript toolchain, jambo ambalo linaweza kuingiliana na mazingira yaliyofungwa sana kwenye Node.js. Watumiaji wa mapema watahitaji kuhakikisha kwamba programu zao za ziada (custom plugins) na nyongeza za huduma ya lugha (language server extensions) zinaendelea kufanya kazi bila mabadiliko.

Nini cha kufuatilia baadaye

Microsoft imefanya compiler inayozingatia Go kuwa chaguo la kawaida (default) katika toleo la umma, lakini injini ya zamani ya JavaScript bado inapatikana kama mbadala (fallback). Kufuatilia viwango vya upokeaji katika IDE kuu na huduma za CI kutakuonyesha ikiwa faida za utendaji zitazidi ugumu wa uhamiaji. Aidha, maoni ya jamii kuhusu bendera mpya zitaamua jinsi compiler itakavyoendelea kukua—ikiwa watengenezaji wataona chaguzi za pamoja (parallel options) ni ngumu kurekebisha, Microsoft inaweza kuanzisha mipangilio rahisi zaidi (higher-level presets).

Muhtasari: Kuandika upya kwa Go kwa TypeScript 7 kunaleta ukaguzi wa aina wenye kasi ya hadi mara kumi zaidi na uokoaji wa kumbukumbu unaoonekana, mabadiliko ambayo yanaweza kufanya maendeleo ya JavaScript ya kiwango kikubwa yahisiwe kuwa na kasi zaidi mara moja—mradi tu mfumo (ecosystem) uendane vizuri na runtime mpya.