ക്ലോജർ

ക്ലോജർ (/ˈkloʊʒər/, ക്ലോഷർ പോലെ) എന്നത് ജാവ പ്ലാറ്റ്‌ഫോമിൽ ഉള്ള ലിസ്‌പ് പ്രോഗ്രാമിംഗ് ഭാഷയുടെ ഡൈനാമിക്കായ ഫങ്ഷണൽ ഡയലാക്ട് ഭാഷയാണ്.
ചരിത്രവും വികസന പ്രക്രിയയും
റിച്ച് ഹിക്കിയാണ് ക്ലോജർ ഭാഷയുടെ സ്രഷ്ടാവ്. ക്ലോജറിന് മുമ്പ്, .നെറ്റ് പ്ലാറ്റ്‌ഫോമിനെ അടിസ്ഥാനമാക്കിയുള്ള ഡോട്ട് ലിസ്പ്(dotLisp), എന്ന പ്രോജക്റ്റ് അദ്ദേഹം വികസിപ്പിച്ചെടുത്തു, കൂടാതെ ലിപ്സും ജാവയും തമ്മിൽ പരസ്പര പ്രവർത്തനക്ഷമത നൽകാനുള്ള മൂന്ന് ശ്രമങ്ങൾ നടത്തി: കോമൺ ലിസ്പ്(Common Lisp (jfli)),വേണ്ടിയുള്ള ഒരു ജാവ ഫോറിൻ ലാങ്വേജ് ഇന്റർഫേസ്, ലിസ്പിന് വേണ്ടിയുള്ള ഫോറിൻ ഒബജക്ട് ഇന്റർഫേസ് (FOIL),കൂടാതെ ജാവ സെർവ്ലെറ്റി(Java Servlets)-ലേക്കുള്ള ലിസ്പ്-ഫ്രണ്ട്ലി ഇന്റർഫേസും (Lisplets) ഉണ്ട്.

2007 ഒക്ടോബറിൽ ക്ലോജർ പരസ്യമായി റിലീസ് ചെയ്യുന്നതിന് മുമ്പ് ഏകദേശം രണ്ടര വർഷത്തോളം ഹിക്കി ഇതിനായി ചിലവഴിച്ചു,അക്കാലമത്രയും പുറമേ നിന്നുള്ള ധനസഹായമില്ലാതെ ക്ലോജറിൽ മാത്രം പ്രവർത്തിച്ചു. ഈ സമയത്തിനൊടുവിൽ, കോമൺ ലിസ്പ് കമ്മ്യൂണിറ്റിയിലെ ഹിക്കി ചില സുഹൃത്തുക്കൾക്ക് ഈ ഭാഷയെക്കുറിച്ചുള്ള ഒരു ഇമെയിൽ അയച്ചു.

ക്ലോജർ ജിആർഎ പ്രോജക്റ്റ് പേജിൽ പ്രശ്നങ്ങൾ പൊതുവായി കാണാമെങ്കിലും, ഇതിന്റെ വികസന പ്രക്രിയ ക്ലോജർ കോർ ടീമിന് മാത്രമായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.ask.clojure.org-ൽ ആർക്കും ചോദ്യങ്ങൾ ചോദിക്കാം അല്ലെങ്കിൽ പ്രശ്നങ്ങളും ആശയങ്ങളും സമർപ്പിക്കാം.ഒരു പുതിയ പ്രശ്നം കണ്ടെത്തുകയും അത് മൂലം ജിറാ (JIRA) ടിക്കറ്റിന് അർഹതയുണ്ടെന്ന് കണ്ടെത്തിയാൽ, ഒരു കോർ ടീം അംഗം അത് പരീക്ഷിച്ച ശേഷം അത് ചേർക്കുകയും ചെയ്യും. ജിറായിലുണ്ടാകുന്ന പ്രശ്‌നങ്ങളെ പറ്റി ഒരു സംഘം സ്‌ക്രീനർമാർ പ്രോസസ്സ് ചെയ്യുകയും ഒടുവിൽ റിച്ച് ഹിക്കി അംഗീകരിക്കുകയും ചെയ്യുന്നു.

ക്ലോജറിന്റെ പേര്, ഹിക്കിയുടെ അഭിപ്രായത്തിൽ, സി, എൽ, ജെ എന്നീ അക്ഷരങ്ങൾ യഥാക്രമം ക്ലോജറിന്റെ രൂപകൽപ്പനയിൽ വലിയ സ്വാധീനം ചെലുത്തിയ മൂന്ന് ഭാഷകളായ സി#, ലിസ്പ്, ജാവ എന്നിവയിൽ ഉപയോഗിക്കുന്ന "ക്ലോഷർ" എന്ന പ്രോഗ്രാമിംഗ് ആശയത്തെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു വേഡ് പ്ലേയാണിത്.
ഡിസൈൻ ഫിലോസഫി
റിച്ച് ഹിക്കി ക്ലോജർ വികസിപ്പിച്ചെടുത്തത്, ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗിനായി ഒരു ആധുനിക ലിസ്‌പ്പ്, എസ്റ്റാബ്ലിഷ്ഡായ ജാവ പ്ലാറ്റ്‌ഫോമുമായി സിമ്പിയോട്ടിക്(symbiotic), ഒപ്പം കൺകറൻസിക്ക് വേണ്ടി രൂപകല്പന ചെയ്തതു കൊണ്ടാണ്. 

ക്ലോജറിന്റെ സ്റ്റേറ്റ് അപ്പറോച്ച് ഐഡന്റിറ്റി ആശയങ്ങളിൽ അധിഷിഠിതമാണ്, കാലക്രമേണ ഇമ്മ്യൂട്ടബിൾ സ്റ്റേറ്റുകളുടെ ഒരു പരമ്പരയായി അവ പ്രതിനിധീകരിക്കപ്പെടുന്നു. സംസ്ഥാനങ്ങൾ ഇമ്മ്യൂട്ടബിൾ മൂല്യങ്ങളായതിനാൽ, എത്ര വർക്കേഴ്സിനും അവയിൽ സമാന്തരമായി പ്രവർത്തിക്കാൻ കഴിയും, ഒപ്പം ഒരു സ്റ്റേറ്റിൽ നിന്ന് മറ്റൊന്നിലേക്കുള്ള മാറ്റങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള ഒരു ചോദ്യമായി ഒരേസമയം മാറുന്നു. ഈ ആവശ്യത്തിനായി, ക്ലോജർ നിരവധി മ്യൂട്ടബിൾ റഫറൻസ് ടൈപ്പുകൾ നൽകുന്നു, അവയിൽ ഓരോന്നിനും സ്റ്റേറ്റുകൾ തമ്മിലുള്ള പരിവർത്തനത്തിന് വേണ്ടി നിർവചിക്കപ്പെട്ട സെമാന്റിക്സ് ഉണ്ട്.

ഭാഷാ അവലോകനം
 പതിപ്പ് റിലീസ് തീയതി പ്രധാന സവിശേഷതകൾ, മെച്ചപ്പെടുത്തലുകൾ  പ്രാരംഭ പൊതു റിലീസ് 1.0  ആദ്യത്തെ സ്ഥിരതയുള്ള റിലീസ് 1.1  ഫ്യുച്ചറേഴ്സ് 1.2  പ്രോട്ടോകോൾസ് 1.3  പ്രിമിറ്റീവ് സപ്പോർട്ട് മെച്ചപ്പെടുത്തി 1.4  റീഡർ ലിറ്ററൽസ് 1.5  റെഡ്യൂസേഴ്സ് 1.5.1  മെമ്മറി ലീക്ക് പരിഹരിക്കുന്നു 1.6ജാവ എപിഐ, മെച്ചപ്പെട്ട ഹാഷിംഗ് അൽഗോരിതം 1.7  ട്രാൻസ്‌ഡ്യൂസറുകൾ, റീഡർ കണ്ടീഷണൽസ് 1.8  അധിക സ്ട്രിംഗ് പ്രവർത്തനങ്ങൾ, നേരിട്ടുള്ള ലിങ്കിംഗ്, സോക്കറ്റ് സെർവർ 1.9  സ്പെക്, കമാൻഡ്-ലൈൻ ടൂളുകളുമായുള്ള സംയോജനം 1.10  മെച്ചപ്പെടുത്തിയ എറർ റിപ്പോർട്ടിംഗ്, ജാവ കംപാറ്റിബിലിറ്റി 1.10.1  ജാവ പെർഫോമൻസ് റിഗ്രഷനുമായി ബന്ധപ്പെട്ട് പ്രവർത്തിക്കുകയും എറർ റിപ്പോർട്ടിംഗ് മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു clojure.main 1.10.2  ജാവ ഇന്റർഓപ്പറബിളിറ്റി/കംപാറ്റിബിലിറ്റി മെച്ചപ്പെടുത്തലുകളും മറ്റ് പ്രധാന ഭാഷാ പരിഹാരങ്ങളും 1.10.3  റീഡർ കണ്ടീഷനലുകൾക്കുള്ള prepl സപ്പോർട്ട് 1.11.0  കീവേഡ് ആർഗ്യുമെന്റ് ഇൻവോക്കേഷനായുള്ള പുതിയ വാക്യഘടന, പുതിയ clojure.math നെയിംസ്‌പേസ്, ലോഡുചെയ്യാതെയുള്ള നെയിംസ്‌പേസ് ഏലിയാസിംഗ്, കൂടാതെ പുതിയ ഹെൽപ്പർ ഫംഗ്‌ഷനുകൾ ചേർത്തിട്ടുണ്ട് clojure.core   clojure.lang.Keyword, clojure.lang.ArraySeq എന്നീ തരത്തിലുള്ള ഒബ്‌ജക്‌റ്റുകളുടെ ബൈനറി സീരിയലൈസേഷനിലെ അൺഇന്റൻഡ് ചെയ്ഞ്ച് തിരികെ കൊണ്ടുവന്നു. 

അവലംബം