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