JavaScript-ന്റെ ജനനവും മരണവും

JavaScript ബ്രൗസറിൽ കുറഞ്ഞ പ്രിവിലേജുകളോടെയാണ് (low privileges) പ്രവർത്തിക്കുന്നത്. എന്നിരുന്നാലും ഇത് സെർവറുകളും, ബിൽഡ് ടൂളുകളും, പൈപ്പ്‌ലൈനുകളും പ്രവർത്തിപ്പിക്കുന്നു. ഇതൊരു ആസൂത്രിതമായ പദ്ധതിയല്ലായിരുന്നു. 1995-ലെ ഒരു തീരുമാനത്തിന്മേൽ വരുത്തിയ കൂട്ടിച്ചേർക്കലുകളുടെ (patches) ഒരു പരമ്പര മാത്രമായിരുന്നു ഇത്.

എന്തുകൊണ്ടാണ് ഇത് സംഭവിച്ചതെന്ന് മനസ്സിലാക്കുന്നത് നിങ്ങളുടെ സ്റ്റാക്ക് (stack) ഇന്ന് എങ്ങനെ രൂപകൽപ്പന ചെയ്യണം എന്നതിനെ മാറ്റുന്നു.

ഗാരി ബെർൺഹാർഡിന്റെ (Gary Bernhardt) 2014-ലെ പ്രഭാഷണം കേവലം പഴയകാല സ്മരണകൾ (nostalgia) കുറിച്ചുള്ളതല്ല. അത് ആർക്കിടെക്ചറൽ ഘർഷണങ്ങളെക്കുറിച്ചുള്ള (architectural friction) ഒരു വിശകലനമാണ്. അദ്ദേഹം ഒരു വൈരുദ്ധ്യം ചൂണ്ടിക്കാട്ടി: ബ്രൗസറിൽ കുത്തകാവകാശം (monopoly) ഉള്ളതുകൊണ്ട് മാത്രം അതിജീവിച്ച ഒരു കളിപ്പാട്ട ഭാഷയായിരുന്നു (toy language) JavaScript. ആ കുത്തകാവകാശം അതിനെ ലോകത്ത് ഏറ്റവും കൂടുതൽ ഉപയോഗിക്കപ്പെടുന്ന ഭാഷയാക്കി മാറ്റി.

ഇതിലെ സംഘർഷം ലളിതമാണ്. ബ്രൗസർ കോഡ് സുരക്ഷിതമായും വേഗത്തിലും പ്രവർത്തിപ്പിക്കണം. ഈ രണ്ട് ലക്ഷ്യങ്ങളും പരസ്പരം വൈരുദ്ധ്യമാണ്.

2014-ൽ, WebAssembly JavaScript-നെ മാറ്റിസ്ഥാപിക്കുമെന്ന് കരുതിയിരുന്നു. എന്നാൽ അത് പൂർണ്ണമായും സംഭവിച്ചില്ല. Figma അല്ലെങ്കിൽ Google Earth പോലുള്ള കാര്യങ്ങൾക്ക് WebAssembly സ്ഥിരതയുള്ളതും ഉപയോഗപ്രദവുമാണ്. എന്നാൽ ഒരു ആപ്ലിക്കേഷൻ ഭാഷ എന്ന നിലയിൽ അത് JavaScript-നെ മാറ്റിസ്ഥാപിച്ചില്ല.

പകരം, JavaScript പരിണമിച്ചു (mutated). ബെർൺഹാർഡ് തിരിച്ചറിഞ്ഞ ഘർഷണങ്ങൾ പരിഹരിക്കുന്നതിനായി TypeScript, bundlers, Bun പോലുള്ള പുതിയ runtimes എന്നിവ നിലവിൽ വന്നു.

JavaScript പഠിക്കുന്നത് ഒഴിവാക്കാൻ ഈ പ്രഭാഷണത്തെ ഉപയോഗിക്കരുത്. പെർഫോമൻസ് പ്രശ്നങ്ങളില്ലാതെ WebAssembly-ലേക്ക് മാറുന്നതിനെ ന്യായീകരിക്കാനും ഇത് ഉപയോഗിക്കരുത്.

നിങ്ങളുടെ സ്റ്റാക്കിനായുള്ള ഒരു ചെക്ക്‌ലിസ്റ്റ് ആയി ഇതിനെ ഉപയോഗിക്കുക:

കംപൈൽ സമയത്ത് (compile time) ടൈപ്പുകൾ കൈകാര്യം ചെയ്യാൻ TypeScript സഹായിക്കുന്നു. എന്നാൽ നിങ്ങളുടെ ടൈപ്പുകളും നെറ്റ്‌വർക്ക് വഴി വരുന്ന ഡാറ്റയും തമ്മിലുള്ള വ്യത്യാസം ഇത് പരിഹരിക്കുന്നില്ല. നിങ്ങൾക്ക് ഇപ്പോഴും റൺടൈം വാലിഡേഷൻ (runtime validation) ആവശ്യമാണ്.

ഏറ്റവും പ്രധാനപ്പെട്ട പാഠം ഇതാണ്: നിങ്ങളുടെ സാങ്കേതികവിദ്യ നിലനിൽക്കുന്നത് അതിന്റെ ഗുണമേന്മ കൊണ്ടാണോ അതോ കുത്തകാവകാശം കൊണ്ടാണോ എന്ന് തിരിച്ചറിയുക.

2014-ലെ ഒരു പ്രവചനത്തിന്റെ അടിസ്ഥാനത്തിൽ നിങ്ങളുടെ റൺടൈം മാറ്റരുത്. ഒരു തടസ്സം (bottleneck) ഉണ്ടെന്ന് തെളിയിക്കുന്ന കൃത്യമായ ഡാറ്റ ലഭിക്കുമ്പോൾ മാത്രം അത് മാറ്റുക.

Source: https://dev.to/jtorchia/the-birth-and-death-of-javascript-2014-what-still-holds-and-what-doesnt-2hae