ക്ലോജർ
ക്ലോജർ (/ˈkloʊʒər/, ക്ലോഷർ പോലെ)[11][12] എന്നത് ജാവ പ്ലാറ്റ്ഫോമിൽ ഉള്ള ലിസ്പ് പ്രോഗ്രാമിംഗ് ഭാഷയുടെ ഡൈനാമിക്കായ ഫങ്ഷണൽ ഡയലാക്ട് ഭാഷയാണ്.[13][14]
ശൈലി: | multi-paradigm: |
---|---|
രൂപകൽപ്പന ചെയ്തത്: | Rich Hickey |
ഡാറ്റാടൈപ്പ് ചിട്ട: | |
സ്വാധീനിച്ചത്: | |
അനുവാദപത്രം: | Eclipse Public License |
വെബ് വിലാസം: | clojure |
ചരിത്രവും വികസന പ്രക്രിയയും
തിരുത്തുകറിച്ച് ഹിക്കിയാണ് ക്ലോജർ ഭാഷയുടെ സ്രഷ്ടാവ്.[13] ക്ലോജറിന് മുമ്പ്, .നെറ്റ് പ്ലാറ്റ്ഫോമിനെ അടിസ്ഥാനമാക്കിയുള്ള ഡോട്ട് ലിസ്പ്(dotLisp), എന്ന പ്രോജക്റ്റ് അദ്ദേഹം വികസിപ്പിച്ചെടുത്തു,[15] കൂടാതെ ലിപ്സും ജാവയും തമ്മിൽ പരസ്പര പ്രവർത്തനക്ഷമത നൽകാനുള്ള മൂന്ന് ശ്രമങ്ങൾ നടത്തി: കോമൺ ലിസ്പ്(Common Lisp (jfli)),[16]വേണ്ടിയുള്ള ഒരു ജാവ ഫോറിൻ ലാങ്വേജ് ഇന്റർഫേസ്, ലിസ്പിന് വേണ്ടിയുള്ള ഫോറിൻ ഒബജക്ട് ഇന്റർഫേസ് (FOIL),[17]കൂടാതെ ജാവ സെർവ്ലെറ്റി(Java Servlets)-ലേക്കുള്ള ലിസ്പ്-ഫ്രണ്ട്ലി ഇന്റർഫേസും (Lisplets) ഉണ്ട്.[18]
2007 ഒക്ടോബറിൽ ക്ലോജർ പരസ്യമായി റിലീസ് ചെയ്യുന്നതിന് മുമ്പ് ഏകദേശം രണ്ടര വർഷത്തോളം ഹിക്കി ഇതിനായി ചിലവഴിച്ചു,[19]അക്കാലമത്രയും പുറമേ നിന്നുള്ള ധനസഹായമില്ലാതെ ക്ലോജറിൽ മാത്രം പ്രവർത്തിച്ചു. ഈ സമയത്തിനൊടുവിൽ, കോമൺ ലിസ്പ് കമ്മ്യൂണിറ്റിയിലെ ഹിക്കി ചില സുഹൃത്തുക്കൾക്ക് ഈ ഭാഷയെക്കുറിച്ചുള്ള ഒരു ഇമെയിൽ അയച്ചു.
ക്ലോജർ ജിആർഎ പ്രോജക്റ്റ് പേജിൽ പ്രശ്നങ്ങൾ പൊതുവായി കാണാമെങ്കിലും, ഇതിന്റെ വികസന പ്രക്രിയ ക്ലോജർ കോർ ടീമിന് മാത്രമായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.ask.clojure.org-ൽ ആർക്കും ചോദ്യങ്ങൾ ചോദിക്കാം അല്ലെങ്കിൽ പ്രശ്നങ്ങളും ആശയങ്ങളും സമർപ്പിക്കാം.[20][21]ഒരു പുതിയ പ്രശ്നം കണ്ടെത്തുകയും അത് മൂലം ജിറാ (JIRA) ടിക്കറ്റിന് അർഹതയുണ്ടെന്ന് കണ്ടെത്തിയാൽ, ഒരു കോർ ടീം അംഗം അത് പരീക്ഷിച്ച ശേഷം അത് ചേർക്കുകയും ചെയ്യും. ജിറായിലുണ്ടാകുന്ന പ്രശ്നങ്ങളെ പറ്റി ഒരു സംഘം സ്ക്രീനർമാർ പ്രോസസ്സ് ചെയ്യുകയും ഒടുവിൽ റിച്ച് ഹിക്കി അംഗീകരിക്കുകയും ചെയ്യുന്നു.[22][23]
ക്ലോജറിന്റെ പേര്, ഹിക്കിയുടെ അഭിപ്രായത്തിൽ, സി, എൽ, ജെ എന്നീ അക്ഷരങ്ങൾ യഥാക്രമം ക്ലോജറിന്റെ രൂപകൽപ്പനയിൽ വലിയ സ്വാധീനം ചെലുത്തിയ മൂന്ന് ഭാഷകളായ സി#, ലിസ്പ്, ജാവ എന്നിവയിൽ ഉപയോഗിക്കുന്ന "ക്ലോഷർ" എന്ന പ്രോഗ്രാമിംഗ് ആശയത്തെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു വേഡ് പ്ലേയാണിത്.[12]
ഡിസൈൻ ഫിലോസഫി
തിരുത്തുകറിച്ച് ഹിക്കി ക്ലോജർ വികസിപ്പിച്ചെടുത്തത്, ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗിനായി ഒരു ആധുനിക ലിസ്പ്പ്, എസ്റ്റാബ്ലിഷ്ഡായ ജാവ പ്ലാറ്റ്ഫോമുമായി സിമ്പിയോട്ടിക്(symbiotic), ഒപ്പം കൺകറൻസിക്ക് വേണ്ടി രൂപകല്പന ചെയ്തതു കൊണ്ടാണ്.[24][25][11]
ക്ലോജറിന്റെ സ്റ്റേറ്റ് അപ്പറോച്ച് ഐഡന്റിറ്റി ആശയങ്ങളിൽ അധിഷിഠിതമാണ്,[26] കാലക്രമേണ ഇമ്മ്യൂട്ടബിൾ സ്റ്റേറ്റുകളുടെ ഒരു പരമ്പരയായി അവ പ്രതിനിധീകരിക്കപ്പെടുന്നു. സംസ്ഥാനങ്ങൾ ഇമ്മ്യൂട്ടബിൾ മൂല്യങ്ങളായതിനാൽ, എത്ര വർക്കേഴ്സിനും അവയിൽ സമാന്തരമായി പ്രവർത്തിക്കാൻ കഴിയും, ഒപ്പം ഒരു സ്റ്റേറ്റിൽ നിന്ന് മറ്റൊന്നിലേക്കുള്ള മാറ്റങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള ഒരു ചോദ്യമായി ഒരേസമയം മാറുന്നു. ഈ ആവശ്യത്തിനായി, ക്ലോജർ നിരവധി മ്യൂട്ടബിൾ റഫറൻസ് ടൈപ്പുകൾ നൽകുന്നു, അവയിൽ ഓരോന്നിനും സ്റ്റേറ്റുകൾ തമ്മിലുള്ള പരിവർത്തനത്തിന് വേണ്ടി നിർവചിക്കപ്പെട്ട സെമാന്റിക്സ് ഉണ്ട്.[26]
ഭാഷാ അവലോകനം
തിരുത്തുകപതിപ്പ് | റിലീസ് തീയതി | പ്രധാന സവിശേഷതകൾ, മെച്ചപ്പെടുത്തലുകൾ |
---|---|---|
ഒക്ടോബർ 17, 2007[19] | പ്രാരംഭ പൊതു റിലീസ് | |
1.0 | മേയ് 4, 2009[27] | ആദ്യത്തെ സ്ഥിരതയുള്ള റിലീസ് |
1.1 | ഡിസംബർ 31, 2009[28] | ഫ്യുച്ചറേഴ്സ് |
1.2 | ഓഗസ്റ്റ് 19, 2010[29] | പ്രോട്ടോകോൾസ് |
1.3 | സെപ്റ്റംബർ 23, 2011[30] | പ്രിമിറ്റീവ് സപ്പോർട്ട് മെച്ചപ്പെടുത്തി |
1.4 | ഏപ്രിൽ 15, 2012[31] | റീഡർ ലിറ്ററൽസ് |
1.5 | മാർച്ച് 1, 2013[32] | റെഡ്യൂസേഴ്സ് |
1.5.1 | മാർച്ച് 10, 2013[33] | മെമ്മറി ലീക്ക് പരിഹരിക്കുന്നു |
1.6 | മാർച്ച് 25, 2014[34] | ജാവ എപിഐ, മെച്ചപ്പെട്ട ഹാഷിംഗ് അൽഗോരിതം |
1.7 | ജൂൺ 30, 2015[35] | ട്രാൻസ്ഡ്യൂസറുകൾ, റീഡർ കണ്ടീഷണൽസ് |
1.8 | ജനുവരി 19, 2016[36] | അധിക സ്ട്രിംഗ് പ്രവർത്തനങ്ങൾ, നേരിട്ടുള്ള ലിങ്കിംഗ്, സോക്കറ്റ് സെർവർ |
1.9 | ഡിസംബർ 8, 2017[37] | സ്പെക്, കമാൻഡ്-ലൈൻ ടൂളുകളുമായുള്ള സംയോജനം |
1.10 | ഡിസംബർ 17, 2018[38] | മെച്ചപ്പെടുത്തിയ എറർ റിപ്പോർട്ടിംഗ്, ജാവ കംപാറ്റിബിലിറ്റി |
1.10.1 | ജൂൺ 6, 2019[39] | ജാവ പെർഫോമൻസ് റിഗ്രഷനുമായി ബന്ധപ്പെട്ട് പ്രവർത്തിക്കുകയും എറർ റിപ്പോർട്ടിംഗ് മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു clojure.main
|
1.10.2 | ജനുവരി 26, 2021[40] | ജാവ ഇന്റർഓപ്പറബിളിറ്റി/കംപാറ്റിബിലിറ്റി മെച്ചപ്പെടുത്തലുകളും മറ്റ് പ്രധാന ഭാഷാ പരിഹാരങ്ങളും |
1.10.3 | മാർച്ച് 4, 2021[41] | റീഡർ കണ്ടീഷനലുകൾക്കുള്ള prepl സപ്പോർട്ട് |
1.11.0 | മാർച്ച് 22, 2022[42] | കീവേഡ് ആർഗ്യുമെന്റ് ഇൻവോക്കേഷനായുള്ള പുതിയ വാക്യഘടന, പുതിയ clojure.math നെയിംസ്പേസ്, ലോഡുചെയ്യാതെയുള്ള നെയിംസ്പേസ് ഏലിയാസിംഗ്, കൂടാതെ പുതിയ ഹെൽപ്പർ ഫംഗ്ഷനുകൾ ചേർത്തിട്ടുണ്ട് clojure.core
|
1.11.1 | ഏപ്രിൽ 5, 2022[43] | clojure.lang.Keyword , clojure.lang.ArraySeq എന്നീ തരത്തിലുള്ള ഒബ്ജക്റ്റുകളുടെ ബൈനറി സീരിയലൈസേഷനിലെ അൺഇന്റൻഡ് ചെയ്ഞ്ച് തിരികെ കൊണ്ടുവന്നു.
|
Latest version
|
അവലംബം
തിരുത്തുക- ↑ "Agents and Asynchronous Actions". Clojure.org. Retrieved 2019-07-07.
- ↑ "Concurrent Programming". Clojure.org. Retrieved 2019-07-07.
- ↑ Hickey, Rich; contributors. "core.async". GitHub.com. Retrieved 2019-07-07.
- ↑ "Functional Programming". Clojure.org. Retrieved 2019-07-07.
- ↑ Nolen, David; Hickey, Rich. "core.logic". GitHub.com. Retrieved 2019-07-07.
- ↑ "Macros". Clojure.org. Retrieved 2019-07-07.
- ↑ Esterhazy, Paulus. "Threading Macros Guide". Clojure.org. Retrieved 2019-07-07.
- ↑ Rose, Calvin; contributors. "Janet Language". Janet-Lang.org. Retrieved 2023-02-18.
- ↑ Baldridge, Timothy. "Pixie". PixieLang.org. Archived from the original on 2019-07-06. Retrieved 2019-07-07.
- ↑ Ramachandra, Ramkumar. "Rhine". GitHub.org. Retrieved 2019-07-07.
- ↑ 11.0 11.1 Edwards, Kathryn (2009-08-10). "The A-Z of Programming Languages: Clojure". Computerworld.com.au. Archived from the original on 2019-08-26.
- ↑ 12.0 12.1 Hickey, Rich (2009-01-05). "meaning and pronunciation of Clojure". Google.com.
- ↑ 13.0 13.1 Krill, Paul (2012-03-22). "Clojure inventor Hickey now aims for Android". InfoWorld.com.
- ↑ "Clojure". Clojure.org. Retrieved 2019-07-07.
- ↑ Hickey, Rich (2002-10-16). "[ANN] dotLisp – a Lisp dialect for .Net". Google.com.
- ↑ Hickey, Rich (2013-04-15). "jfli". SourceForge.net.
- ↑ Hickey, Rich (2013-04-03). "foil - Foreign Object Interface for Lisp". SourceForge.net.
- ↑ Hickey, Rich (2013-03-07). "Lisplets". SourceForge.net.
- ↑ 19.0 19.1 Hickey, Rich (2020-06-12). "A history of Clojure". Proceedings of the ACM on Programming Languages. 4 (HOPL): 1–46. doi:10.1145/3386321. S2CID 219603760. Retrieved 2022-05-07.
- ↑ "Clojure". Atlassian.net. Retrieved 2019-07-07.
- ↑ "Clojure Forum". clojure.org. Retrieved 2020-03-20.
- ↑ Hickey, Rich (2018-11-26). "Open Source is Not About You". GitHub.com.
- ↑ "Workflow". Clojure.org. Retrieved 2019-07-07.
- ↑ Hickey, Rich. "Rationale". Clojure.org. Retrieved 2019-07-07.
- ↑ Torre, Charles (2009-10-06). "Expert to Expert: Rich Hickey and Brian Beckman – Inside Clojure". MSDN.com.
- ↑ 26.0 26.1 "Values and Change: Clojure's approach to Identity and State". Clojure.org. Retrieved 2019-07-07.
- ↑ Hickey, Rich (2009-05-04). "Clojure 1.0". BlogSpot.com.
- ↑ Hickey, Rich (2009-12-31). "Clojure 1.1 Release". BlogSpot.com.
- ↑ Hickey, Rich (2010-08-19). "Clojure 1.2 Release". Google.com.
- ↑ Redinger, Christopher (2011-09-23). "[ANN] Clojure 1.3 Released". Google.com.
- ↑ Dipert, Alan (2012-04-17). "[ANN] Clojure 1.4 Released". Google.com.
- ↑ Halloway, Stuart (2013-03-01). "ANN: Clojure 1.5". Google.com.
- ↑ Halloway, Stuart (2013-03-10). "Clojure 1.5.1". Google.com.
- ↑ Miller, Alex (2014-03-25). "[ANN] Clojure 1.6". Google.com.
- ↑ Miller, Alex (2015-06-30). "Clojure 1.7 is now available". Clojure.org.
- ↑ Miller, Alex (2016-01-19). "Clojure 1.8 is now available". Clojure.org.
- ↑ Miller, Alex (2017-12-08). "Clojure 1.9 is now available". Clojure.org.
- ↑ Miller, Alex (2018-12-17). "Clojure 1.10 release". Clojure.org.
- ↑ Miller, Alex (2019-06-06). "Clojure 1.10.1 release". Clojure.org.
- ↑ Miller, Alex (2021-01-26). "Clojure 1.10.2 release". Clojure.org.
- ↑ Miller, Alex (2021-03-04). "Clojure 1.10.3 release". Clojure.org.
- ↑ Miller, Alex (2022-03-22). "Clojure 1.11.0 release". Clojure.org.
- ↑ Miller, Alex (2022-04-05). "Clojure 1.11.1 release". Clojure.org.