React-ന്റെ യഥാർത്ഥ പ്രശ്നം React അല്ല. അത് Vercel ആണ്.
ഡെവലപ്പർമാർ React-നോട് നിരാശരാണ്. ആർക്കെങ്കിലും ഇത് ഇപ്പോഴും ഇഷ്ടമാണോ എന്ന് ചോദിച്ചുകൊണ്ടുള്ള പോസ്റ്റുകൾ നിങ്ങൾ കാണാറുണ്ട്. മിക്കപ്പോഴും ഉത്തരങ്ങൾ നെഗറ്റീവ് ആയിരിക്കും.
നിങ്ങൾ ഒരുപക്ഷേ തെറ്റായ ദിശയിലാണ് നോക്കുന്നത്.
React മോശമായിപ്പോയതല്ല. അത് പിടിച്ചെടുക്കപ്പെട്ടതാണ്. ഈ മാറ്റത്തിന് പിന്നിലെ കമ്പനിയാണ് Vercel.
Vercel, React ടീമിലെ പ്രധാന അംഗങ്ങളെ നിയമിച്ചു. അവർ React Server Components പുറത്തിറക്കി. ഈ കമ്പോണന്റുകൾ ഉപയോഗിക്കാനുള്ള ഏറ്റവും പ്രശസ്തമായ മാർഗ്ഗം Next.js വഴിയാണ്. Next.js എന്നത് ഒരു Vercel ഉൽപ്പന്നമാണ്. അത് Vercel ഹോസ്റ്റിംഗിൽ ആണ് ഏറ്റവും മികച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നത്.
ഇതൊരു ബിസിനസ് തന്ത്രമാണ്.
React ഒരു ലൈബ്രറി ആയിരുന്നതുകൊണ്ടാണ് നിങ്ങൾ അതിനെ സ്നേഹിച്ചിരുന്നത്. നിങ്ങൾ സ്വന്തമായി റൂട്ടറുകൾ (router) തിരഞ്ഞെടുക്കുമായിരുന്നു. സ്വന്തം സ്റ്റേറ്റ് മാനേജ്മെന്റും (state management) ബിൽഡ് ടൂളുകളും (build tools) നിങ്ങൾ തന്നെ തീരുമാനിച്ചിരുന്നു. എന്ത് ചെയ്യണമെന്ന് React നിങ്ങളോട് പറഞ്ഞിരുന്നില്ല.
ഇപ്പോൾ React വ്യത്യസ്തമാണ്. ഔദ്യോഗിക ഡോക്യുമെന്റുകൾ Next.js ഉപയോഗിച്ച് തുടങ്ങാനാണ് നിർദ്ദേശിക്കുന്നത്. നിങ്ങൾക്ക് React മാത്രം എളുപ്പത്തിൽ ഉപയോഗിക്കാൻ കഴിയില്ല. സന്ദേശം വ്യക്തമാണ്: നിങ്ങൾക്ക് ഒരു ഫ്രെയിംവർക്ക് (framework) ആവശ്യമാണ്. നിങ്ങളുടെ കോഡ് എവിടെയാണ് ഡെപ്ലോയ് (deploy) ചെയ്യേണ്ടത് എന്നതിനെക്കുറിച്ച് ആ ഫ്രെയിംവർക്കിന് കൃത്യമായ ഒരു അഭിപ്രായമുണ്ട്.
React ഇപ്പോൾ വെറുമൊരു ലൈബ്രറി മാത്രമല്ല. ഒരു പ്രത്യേക പ്ലാറ്റ്ഫോമിലേക്കുള്ള ഒരു വഴി പോലെയാണ് അത് അനുഭവപ്പെടുന്നത്.
ഒരു VC-പിന്തുണയുള്ള കമ്പനി ഒരു ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റിനെ നിയന്ത്രിക്കുമ്പോൾ, ലക്ഷ്യങ്ങൾ മാറുന്നു. ഫീച്ചറുകൾ നിർമ്മിക്കുന്നത് നിങ്ങളുടെ ആവശ്യങ്ങൾക്കല്ല, മറിച്ച് ഒരു പ്ലാറ്റ്ഫോമിനെ കൂടുതൽ മികച്ചതാക്കാൻ സഹായിക്കാനാണ്.
Server Components ലോജിക് സെർവറിലേക്ക് മാറ്റുന്നു. ഇത് ഹോസ്റ്റിംഗ് തിരഞ്ഞെടുപ്പുകളെ കൂടുതൽ പ്രധാനപ്പെട്ടതാക്കുന്നു.
Vercel കഴിവുള്ള ഒരു കമ്പനിയാണ്. എന്നാൽ അവരുടെ ലക്ഷ്യങ്ങൾ നിങ്ങളുടേതിൽ നിന്ന് വ്യത്യസ്തമാണ്. അവർക്ക് ഇക്കോസിസ്റ്റം ഡിപെൻഡൻസി (ecosystem dependency) വേണം. നിങ്ങൾക്ക് സ്വാതന്ത്ര്യവും വഴക്കവും (flexibility) വേണം. ഈ രണ്ട് ലക്ഷ്യങ്ങളും തമ്മിൽ ഏറ്റുമുട്ടാൻ സാധ്യതയുണ്ട്.
ആളുകൾ React-നെ വെറുക്കുന്നു എന്ന് പറയുമ്പോൾ, അവർ സാധാരണയായി ഉദ്ദേശിക്കുന്നത് അതിന്റെ സങ്കീർണ്ണതയെയാണ് (complexity). ഒരു ലളിതമായ ആപ്പിന് പോലും ഇപ്പോൾ edge runtimes-നെ കുറിച്ച് അറിവ് ആവശ്യമായി വരുന്നത് എന്തുകൊണ്ടാണെന്ന് അവർ അത്ഭുതപ്പെടുന്നു. സെർവർ കമ്പോണന്റുകളും ക്ലയന്റ് കമ്പോണന്റുകളും തമ്മിൽ നിരന്തരം തീരുമാനങ്ങൾ എടുക്കേണ്ടി വരുന്നത് എന്തുകൊണ്ടാണെന്നും അവർ ചിന്തിക്കുന്നു.
പ്രശ്നം ഇക്കോസിസ്റ്റത്തിലാണ്. ഒരു കമ്പനിയുടെ വരുമാന ലക്ഷ്യങ്ങൾ ഇപ്പോൾ നിങ്ങൾ ഉപയോഗിക്കുന്ന ടൂളുകളെ സ്വാധീനിക്കുന്നു.
ഞാൻ ഇപ്പോൾ ഫ്രെയിംവർക്കുകൾ മാറ്റുന്നില്ല. പക്ഷേ ഞാൻ കൂടുതൽ ബോധപൂർവ്വം കാര്യങ്ങൾ ചെയ്യുന്നു. എനിക്ക് Next.js ആവശ്യമാണോ അതോ Vite-ഉം React Router-ഉം മാത്രം മതിയോ എന്ന് ഞാൻ സ്വയം ചോദിക്കുന്നു.
React ഇപ്പോഴും മികച്ചൊരു റെൻഡറിംഗ് ലൈബ്രറിയാണ് (rendering library). അതിനു മുകളിൽ ചേർക്കപ്പെട്ട പാളികളാണ് പ്രശ്നം. ഈ പ്രതിസന്ധി സാങ്കേതികമല്ല, മറിച്ച് രാഷ്ട്രീയമാണ്.
ദശലക്ഷക്കണക്കിന് ആളുകൾ ഉപയോഗിക്കുന്ന ഒരു ലൈബ്രറിയെ സാമ്പത്തിക താൽപ്പര്യങ്ങളുള്ള ഒരു കമ്പനി നിയന്ത്രിക്കുന്നു. അത് നിങ്ങളെ അസ്വസ്ഥമാക്കേണ്ടതാണ്.
React ഡെവലപ്പർമാരെയാണ് സേവിക്കേണ്ടത്, ഡെപ്ലോയ്മെന്റ് പ്ലാറ്റ്ഫോമുകളെയല്ല.
React-ന് അതിന്റെ സ്വാതന്ത്ര്യം തിരിച്ചുപിടിക്കാൻ കഴിയുമോ? അതോ ഈ നിയന്ത്രണം ശാശ്വതമാണോ?
സ്രോതസ്സ്: https://dev.to/adioof/reacts-real-problem-isnt-react-its-vercel-a7l
