Kuzaliwa na Kifo cha JavaScript
JavaScript hufanya kazi kwenye kivinjari (browser) ikiwa na ruhusa ndogo. Hata hivyo, huendesha seva, zana za ujenzi (build tools), na mifumo ya usambazaji (pipelines). Hili halikuwa mpango. Lilikuwa mfululizo wa marekebisho (patches) kwenye uamuzi wa mwaka 1995.
Kuelewa kwa nini hili lilitokea kunabadilisha jinsi unavyounda stack yako leo.
Hotuba ya Gary Bernhardt ya mwaka 2014 si kuhusu kumbukumbu za kale. Ni uchunguzi wa msuguano wa usanifu (architectural friction). Alibainisha mzunguko wa kichekesho: JavaScript ilikuwa lugha ya mchezo ambayo ilinusurika kwa sababu ilikuwa na monopoli kwenye kivinjari. Monopoli hiyo iliifanya kuwa lugha inayotumiwa zaidi duniani.
Mgogoro ni rahisi. Kivinjari lazima kiendeshe kodi kwa usalama na kwa haraka. Malengo haya mawili yanapingana.
Mnamo 2014, iliaminiwa kuwa WebAssembly ingechukua nafasi ya JavaScript. Hilo halikutokea kikamilifu. WebAssembly ni thabiti na ina manufaa kwa vitu kama Figma au Google Earth. Lakini haikuchukua nafasi ya JavaScript kama lugha ya programu (application language).
Badala yake, JavaScript ilibadilika (mutated). TypeScript, bundlers, na runtimes mpya kama Bun zipo ili kurekebisha misuguano ambayo Bernhardt alibainisha.
Usitumie hotuba hii ili kuepuka kujifunza JavaScript. Usitumie kuhalalisha kuhamia WebAssembly bila kuwa na tatizo la utendaji (performance).
Itumie kama orodha ya ukaguzi (checklist) kwa stack yako:
- Je, ninatumia hii kwa sababu ndiyo zana bora zaidi?
- Au kwa sababu ndiyo kitu pekee kinachofanya kazi hapa?
- Je, mzigo wa ziada (overhead) wa zana hizi unatatua msuguano au unauhamisha tu?
- Kama ningeanza upya leo, ningechagua hii?
- Je, ukomo wa utendaji (performance ceiling) unakubalika kwa matumizi yangu?
TypeScript husaidia na aina za data (types) wakati wa kuunda programu (compile time). Haifanyi marekebisho ya pengo kati ya aina zako za data na data inayopokelewa kupitia mtandao. Bado unahitaji uhakiki wa wakati wa uendeshaji (runtime validation).
Somo muhimu zaidi ni hili: jua ikiwa teknolojia yako ipo kwa sababu ya ubora wake au kwa sababu ya monopoli.
Usibadilishe runtime yako kulingana na utabiri wa mwaka 2014. Ubadilishe unapokuwa na data iliyopimwa inayoonyesha kikwazo (bottleneck).
Chanzo: https://dev.to/jtorchia/the-birth-and-death-of-javascript-2014-what-still-holds-and-what-doesnt-2hae