ഓരോ ഫ്രെയിംവർക്കും ഒരു ഭാഷയായി മാറുന്നു

ഡെവലപ്പർമാർ പലപ്പോഴും ഫ്രെയിംവർക്ക് ഫീച്ചറുകളിലാണ് ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്.

അവർ റൂട്ടിംഗ് (routing), സ്റ്റേറ്റ് മാനേജ്‌മെന്റ് (state management), ബിൽഡ് ടൂളുകൾ (build tools) എന്നിവ പരിശോധിക്കുന്നു. ഈ ഭാഗങ്ങൾ പ്രധാനമാണ്. എന്നാൽ ദീർഘകാലം നിലനിൽക്കുന്ന ഒരു ഫ്രെയിംവർക്കിന്റെ ഏറ്റവും പ്രധാനപ്പെട്ട ഭാഗം ഫീച്ചറുകൾ മാത്രമല്ല.

ഒടുവിൽ ഒരു ഫ്രെയിംവർക്ക് ഒരു ഭാഷയായി മാറുന്നു.

ഇതൊരു പ്രോഗ്രാമിംഗ് ഭാഷയല്ല. ആശയങ്ങളുടെയും (ideas), പാറ്റേണുകളുടെയും (patterns), ഉദ്ദേശ്യങ്ങളുടെയും (intent) ഒരു ഭാഷയാണിത്. ഈ ഭാഷ കോഡിനേക്കാൾ മൂല്യമുള്ളതായി മാറുന്നു.

മിക്ക ഫ്രെയിംവർക്കുകളും സാങ്കേതിക പ്രശ്നപരിഹാരങ്ങളായാണ് തുടങ്ങുന്നത്. റിക്വസ്റ്റുകൾ എങ്ങനെ റൂട്ട് ചെയ്യണമെന്നോ കോഡ് എങ്ങനെ ക്രമീകരിക്കണമെന്നോ അവ പരിഹരിക്കുന്നു. ഈ ഘട്ടത്തിൽ, ഫ്രെയിംവർക്ക് എന്നത് ഫീച്ചറുകളുടെ ഒരു പട്ടിക മാത്രമാണ്.

പിന്നീട്, എന്തോ ഒന്ന് മാറുന്നു.

കൂടുതൽ ആളുകൾ ആ ടൂൾ ഉപയോഗിക്കുമ്പോൾ, പാറ്റേണുകൾ രൂപപ്പെടുന്നു. ആളുകൾ ഒരേ പരിഹാരങ്ങളും രീതികളും (conventions) ഉപയോഗിക്കാൻ തുടങ്ങുന്നു. എങ്ങനെ ചിന്തിക്കണമെന്ന് ഫ്രെയിംവർക്ക് നിങ്ങളെ പഠിപ്പിക്കാൻ തുടങ്ങുന്നു.

നിങ്ങൾ വെറും APIs മാത്രമല്ല പഠിക്കുന്നത്. നിങ്ങൾ അതിന്റെ തത്വശാസ്ത്രവും (philosophy) അടിസ്ഥാനപരമായ സങ്കൽപ്പങ്ങളും (assumptions) പഠിക്കുന്നു.

പരിചയസമ്പന്നരായ ഡെവലപ്പർമാരിൽ നിങ്ങൾക്ക് ഇത് കാണാൻ കഴിയും. അവരുടെ സിന്റാക്സ് (syntax) നോക്കിയല്ല, മറിച്ച് അവരുടെ മെന്റൽ മോഡലുകൾ (mental models) നോക്കിയാണ് നിങ്ങൾ അവരെ തിരിച്ചറിയുന്നത്. അവർ അവരുടെ ഇക്കോസിസ്റ്റത്തിന്റെ (ecosystem) ഭാഷ സംസാരിക്കുന്നു.

സിന്റാക്സ് മാറുന്നു. വേർഷനുകൾ മാറുന്നു. ഫീച്ചറുകൾ മാറുന്നു. എന്നാൽ അടിസ്ഥാനപരമായ ആ ഭാഷ നിലനിൽക്കുന്നു.

പങ്കിട്ട പദാവലി (shared vocabulary) സങ്കീർണ്ണത കുറയ്ക്കുന്നു. ഒരു പദം കൊണ്ട് ഒരു വലിയ ആശയം വിശദീകരിക്കാം. ഒരു രീതി (convention) കൊണ്ട് ഒരു മുഴുവൻ വർക്ക്ഫ്ലോയും (workflow) വിശദീകരിക്കാം. ഇത്തരത്തിലാണ് ഡെവലപ്പർമാർ ആശയങ്ങൾ വേഗത്തിൽ കൈമാറുന്നത്.

ഇത് നിങ്ങൾ ഡോക്യുമെന്റേഷൻ (documentation) എഴുതുന്ന രീതിയെ മാറ്റുന്നു.

നല്ല ഡോക്യുമെന്റേഷൻ പദാവലിയും ആശയങ്ങളും പഠിപ്പിക്കുന്നു. സിസ്റ്റം എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് മനസ്സിലാക്കാൻ അത് ഉപയോക്താക്കളെ സഹായിക്കുന്നു. മോശം ഡോക്യുമെന്റേഷൻ ഫീച്ചറുകൾ മാത്രം നിരത്തുന്നു. ഒന്ന് അറിവിലേക്കും മറ്റൊന്ന് മനഃപാഠമാക്കുന്നതിലേക്കും നയിക്കുന്നു.

യഥാർത്ഥ പ്രോജക്റ്റുകളാണ് ഈ ഭാഷയെ രൂപപ്പെടുത്തുന്നത്. ഒറ്റപ്പെട്ട അവസ്ഥയിൽ നിങ്ങൾക്ക് ഒരു ഭാഷ രൂപകൽപ്പന ചെയ്യാൻ കഴിയില്ല. യഥാർത്ഥ ഉപയോഗത്തിൽ നിന്നും നേരിടുന്ന വെല്ലുവിളികളിൽ നിന്നുമാണ് അത് രൂപപ്പെടുന്നത്. ഉപയോഗപ്രദമായ ആശയങ്ങൾ നിലനിൽക്കുന്നു, മോശം ആശയങ്ങൾ ഇല്ലാതാകുന്നു.

ഇത് എല്ലാ മേഖലകളിലും സംഭവിക്കുന്നു. ബിസിനസ്സ്, സംഗീതം, ആർക്കിടെക്ചർ എന്നിവയെല്ലാം സ്വന്തം ഭാഷകൾ വികസിപ്പിക്കുന്നു. പങ്കിട്ട പദാവലി സഹകരണം എളുപ്പമാക്കുന്നു.

സോഫ്റ്റ്‌വെയർ നിർമ്മിക്കുമ്പോൾ, അടുത്തതായി ഏത് ഫീച്ചർ ചേർക്കണം എന്ന് ചോദിക്കുന്നത് നിർത്തുക. പകരം ഈ ചോദ്യങ്ങൾ ചോദിക്കുക:

  • ഇത് ആ ഭാഷയ്ക്ക് അനുയോജ്യമാണോ?
  • ഇത് തത്വശാസ്ത്രത്തെ ശക്തിപ്പെടുത്തുന്നുണ്ടോ?
  • ഇത് സിസ്റ്റം മനസ്സിലാക്കാൻ എളുപ്പമാക്കുന്നുണ്ടോ?

ഫീച്ചറുകൾ ടൂളുകളെ നിർമ്മിക്കുന്നു. ഭാഷകൾ ഇക്കോസിസ്റ്റങ്ങളെ നിർമ്മിക്കുന്നു. ഏറ്റവും വിജയകരമായ ഫ്രെയിംവർക്കുകൾ വെറും സോഫ്റ്റ്‌വെയർ മാത്രമല്ല നൽകുന്നത്. അവ ആശയങ്ങൾ പ്രകടിപ്പിക്കാനുള്ള ഒരു മാർഗ്ഗം കൂടിയാണ് നൽകുന്നത്.

Source: https://dev.to/stinklewinks/every-framework-eventually-becomes-a-language-1b4h