റൂബി (പ്രോഗ്രാമിങ് ഭാഷ)
ശൈലി: | multi-paradigm |
---|---|
പുറത്തുവന്ന വർഷം: | 1995 |
രൂപകൽപ്പന ചെയ്തത്: | Yukihiro Matsumoto |
വികസിപ്പിച്ചത്: | Yukihiro Matsumoto, et al. |
ഏറ്റവും പുതിയ പതിപ്പ്: | 1.9.1-p376/ ഡിസംബർ 7 2009 |
ഡാറ്റാടൈപ്പ് ചിട്ട: | duck, dynamic, strong |
പ്രധാന രൂപങ്ങൾ: | Ruby MRI, JRuby, YARV |
സ്വാധീനിക്കപ്പെട്ടത്: | Smalltalk, Perl, Lisp, Scheme, Python, CLU, Eiffel, Ada, Dylan, T-RAY |
സ്വാധീനിച്ചത്: | Groovy, Nu, Falcon, Ioke |
ഓപറേറ്റിങ്ങ് സിസ്റ്റം: | Cross-platform |
അനുവാദപത്രം: | Ruby License GNU General Public License |
വെബ് വിലാസം: | www.ruby-lang.org |
സചേതനവും, ഒബ്ജക്റ്റ് ഓറിയന്റഡുമായിട്ടുള്ള ഒരു പ്രോഗ്രാമിങ് ഭാഷയാണ് റൂബി. പേളിന്റേയും സ്മാൾടോക്കിന്റെയും സവിശേഷതകളാണ് പ്രധാനമായി ഈ ഭാഷയുടെ നിർമ്മാണത്തിൽ സ്വാധീനിച്ചിരിക്കുന്നത്. 1990 കളുടെ മധ്യത്തിൽ ജപ്പാനിലാണ് ഇതിന്റെ ഉത്ഭവം, ഇതിനെ ആദ്യം രൂപകല്പനം ചെയ്തതും വികസിപ്പിച്ചെടുത്തതും യുകിഹിറോ മാത്സുമോട്ടോ ആണ്. പേൾ സ്മാൾടോക്ക്, ഈഫെൽ, അഡ, ലിസ്പ്, ബേസിക്ക് തുടങ്ങിയവയാണ് ഇതിനെ സ്വാധീനിച്ച പ്രധാന പ്രോഗ്രാമിങ് ഭാഷകൾ.
ഫങ്ഷനൽ, ഒബ്ജക്റ്റ് ഓറിയന്റഡ്, ഇമ്പെറേറ്റീവ്, റിഫ്ലെക്റ്റീവ് തുടങ്ങിയ പ്രോഗ്രാമിങ്ങ് രീതികളെയെല്ലാം റൂബി പിന്തുണക്കുന്നുണ്ട്. പ്രോഗ്രാമിലെ വാരിയബിളുകൾക്ക് സചേതനമായി അതിന്റെ തരം മാറാനുള്ള ഡൈനാമിക് ടൈപ്പ് സിസ്റ്റം സങ്കേതവും മെമ്മറി തനിയേ പരിപാലിക്കപ്പെടുന്നതും ഇതിന്റെ വിശേഷണങ്ങളിൽ പെടുന്നു, അതിനാൽ തന്നെ ഇത് പൈത്തൺ, പേൾ, ലിസ്പ്, ഡൈലൻ, പൈക്ക്, സി.എൽ.യു. തുടങ്ങിയ ഭാഷകളുമായി സാമ്യത പങ്കുവയ്ക്കുന്നു.
1.8.7 വരെയുള്ള പതിപ്പുകൾ സി യിൽ എഴുതപ്പെട്ട ഒരു സിംഗിൾ-പാസ്സ് ഇന്റർപ്രെറ്റഡ് ഭാഷയായാണ് പ്രത്യക്ഷവൽക്കരിക്കപ്പെട്ടിരിക്കുന്നത്. നിലവിൽ റൂബി ഭാഷയ്ക്കുവേണ്ടിയുള്ള നിർദ്ദേശകമൊന്നുമില്ല (specification), അതിനാൽ തന്നെ മൂലരൂപം തന്നെ ഇതിന്റെ പൊതുവായ റെഫെറെൻസ് ആയി എടുക്കുന്നു. 2010 പ്രകാരം മറ്റ് വ്യത്യസ്തങ്ങളായ പ്രത്യക്ഷവൽക്കരണങ്ങളും പുറത്തിറങ്ങിയിട്ടുണ്ട്, യാർവ്, ജെറൂബി, റൂബിനിയസ്, അയൺറൂബി, മാൿറൂബി, ഹോട്ട്റൂബി എന്നിവ അവയില്പെടുന്നു. ഇതിൽ അയൺറൂബി, ജെറൂബി, മാൿറൂബി എന്നിവ ജസ്റ്റ്-ഇൻ-ടൈം കമ്പൈലേഷൻ സങ്കേതം ഉപയോഗിക്കുന്നു, മാൿറൂബി എഹെഡ്-ഓഫ്-ടൈം കമ്പൈലേഷനും പിന്തുണക്കുന്നുണ്ട്. വേഗത കുറഞ്ഞ എം.ആർ.ഐ.ക്ക് പകരം 1.9 മുതലുള്ള റൂബിയുടെ പതിപ്പ് യാർവാണ് ഉപയോഗപ്പെടുത്തുന്നത്.
ചരിത്രം
[തിരുത്തുക]ആദ്യകാല ആശയം
[തിരുത്തുക]റൂബി എന്ന പ്രോഗ്രാമിംഗ് ഭാഷ 1993 ൽ ഈ ആശയം രൂപംകൊണ്ടതാണെന്ന് മാറ്റ്സുമോട്ടോ പറഞ്ഞു. റൂബി-ടോക്ക് മെയിലിംഗ് പട്ടികയിലെ 1999 ലെ ഒരു പോസ്റ്റിൽ, ഭാഷയെക്കുറിച്ചുള്ള തന്റെ ആദ്യകാല ആശയങ്ങൾ അദ്ദേഹം വിവരിക്കുന്നു:[1]
ഫങ്ഷനൽ പ്രോഗ്രാമിങ്ങും ഇമ്പെറേറ്റീവ് പ്രോഗ്രാമിങ്ങും തുല്യമായി ഉപയോഗപ്പെടുത്തുന്ന ഒരു പുതിയ പ്രോഗ്രാമിങ് ഭാഷ വേണമെന്ന് ആഗ്രഹിച്ച യുകിഹിറോ മാത്സുമോട്ടോയാണ് 1993 ഫെബ്രുവരി 24 ന് റൂബി സൃഷ്ടിച്ചത്.[2] ഇതിനെകുറിച്ച് മസ്തുമോട്ടൊയുടെ വാക്കുകൾ ഇങ്ങനെയാണ്, "പേളിനേക്കാൾ ശക്തമായതും പൈത്തണിനേക്കാൾ മികച്ചതും, ഒബ്ജക്റ്റ് ഓറിയന്റഡുമായ ഒരു സ്ക്രിപ്റ്റിങ് ഭാഷ വേണമെന്ന് ഞാൻ ആഗ്രഹിച്ചു. അതിനാൽ തന്നെ സ്വന്തമായി ഒന്ന് രൂപകല്പന ചെയ്യാൻ ഞാൻ തീരുമാനിക്കുകയായിരുന്നു".[3]
മാബിസുമോട്ടോ റൂബിയുടെ രൂപകൽപ്പനയെ അതിന്റെ കോർഭാഗം ലളിതമായ ലിസ്പ് ഭാഷ പോലെയാണ്, സ്മാൾടോക്ക് പോലുള്ള ഒബ്ജക്റ്റ് സിസ്റ്റം, ഹയർ ഓർഡർ ഫംഗ്ഷനുകളിൽ നിന്ന് പ്രചോദനം ഉൾക്കൊള്ളുന്ന ബ്ലോക്കുകൾ, പേൾ പോലുള്ള പ്രാക്ടിക്കൽ യൂട്ടിലിറ്റി എന്നിവ ഉൾപ്പെടുന്നു.[4]
"റൂബി" എന്ന പേര്
[തിരുത്തുക]ഈ ഭാഷയ്ക്കായി ഏതെങ്കിലും കോഡ് എഴുതുന്നതിനുമുമ്പ് 1993 ഫെബ്രുവരി 24 ന് മാറ്റ്സുമോട്ടോയും കെയ്ജു ഇഷിത്സുകയും തമ്മിലുള്ള ഒരു ഓൺലൈൻ ചാറ്റ് സെഷനിലാണ് "റൂബി" എന്ന പേര് ഉത്ഭവിച്ചത്.[5] തുടക്കത്തിൽ രണ്ട് പേരുകൾ നിർദ്ദേശിക്കപ്പെട്ടു: "കോറൽ", "റൂബി". മാറ്റ്സുമോട്ടോ പിന്നീടുള്ള ഇ-മെയിലിൽ ഇഷിത്സുകയ്ക്ക് അയച്ചു.[6]"റൂബി" എന്ന പേര് തിരഞ്ഞെടുക്കുന്നതിനുള്ള ഒരു ഘടകം എന്താണെന്ന് പിന്നീട് മാറ്റ്സുമോട്ടോ വിശദീകരിച്ചു -- ഇത് അദ്ദേഹത്തിന്റെ സഹപ്രവർത്തകന്റെ ജന്മനക്ഷത്രകല്ലായിരുന്നു (birthstone).[7][8]
ആദ്യ പ്രസിദ്ധീകരണം
[തിരുത്തുക]റൂബി 0.95 ന്റെ ആദ്യ പൊതു പ്രകാശനം 1995 ഡിസംബർ 21 ന് ജാപ്പനീസ് ആഭ്യന്തര വാർത്താ ഗ്രൂപ്പുകളിൽ പ്രഖ്യാപിച്ചു.[9][10] തുടർന്ന്, റൂബിയുടെ മൂന്ന് പതിപ്പുകൾ കൂടി രണ്ട് ദിവസത്തിനുള്ളിൽ പുറത്തിറങ്ങി. ഇതിന്റെ റിലീസ് യാദ്യശ്ചികമായിരുന്നു, ജാപ്പനീസ് ഭാഷായിലുള്ള റൂബി-ലിസ്റ്റ് മെയിലിംഗ് ലിസ്റ്റ് സമാരംഭിച്ചതോടെ, പുതിയ ഭാഷയ്ക്കായുള്ള ആദ്യത്തെ മെയിലിംഗ് ലിസ്റ്റായി ഇത് മാറി.
ഒബ്ജക്റ്റ്-ഓറിയെന്റഡ് ഡിസൈൻ, ഇൻഹെറിറ്റൻസ് ക്ലാസുകൾ, മിക്സിനുകൾ, ഇറ്ററേറ്ററുകൾ, ക്ലോസ്സേഴ്സ്, എക്സെപ്ക്ഷൻ ഹാൻഡലിംഗ്, ഗാർബ്ബേജ് കളക്ടർ എന്നിവ ഉൾപ്പെടെ റൂബിയുടെ പിന്നീടുള്ള പതിപ്പുകളിൽ പരിചിതമായ നിരവധി സവിശേഷതകൾ ഇതിനകം തന്നെ വികസനത്തിന്റെ ഈ ഘട്ടത്തിൽ ഉണ്ടായിരുന്നു.[11]
അവലംബം
[തിരുത്തുക]- ↑ Shugo Maeda (17 December 2002). "The Ruby Language FAQ". Retrieved 2 March 2014.
- ↑ http://www.ruby-lang.org/en/about/ Ruby-Lang About Ruby
- ↑ http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html An Interview with the Creator of Ruby
- ↑ Matsumoto, Yukihiro (13 February 2006). "Re: Ruby's lisp features". Archived from the original on 2013-11-20. Retrieved 15 February 2020.
- ↑ "History of Ruby".
- ↑ "[FYI: historic] The decisive moment of the language name Ruby. (Re: [ANN] ruby 1.8.1)" (E-mail from Hiroshi Sugihara to ruby-talk). Archived from the original on 2011-07-17. Retrieved 2021-02-01.
- ↑ "The Ruby Language FAQ – 1.3 Why the name 'Ruby'?". Ruby-Doc.org. Retrieved April 10, 2012.
- ↑ Yukihiro Matsumoto (June 11, 1999). "Re: the name of Ruby?". mailing list. Archived from the original on 2018-12-25. Retrieved 2021-02-01.
- ↑ "More archeolinguistics: unearthing proto-Ruby". Archived from the original on 6 November 2015. Retrieved 2 May 2015.
- ↑ "[ruby-talk:00382] Re: history of ruby". Archived from the original on 2011-07-16. Retrieved 2 May 2015.
- ↑ "[ruby-list:124] TUTORIAL - ruby's features". Archived from the original on 2003-05-24. Retrieved 2 May 2015.
പുറം കണ്ണികൾ
[തിരുത്തുക]- Ruby language home page
- Ruby documentation site
- The Great Ruby Shootout (December 2008): Ruby implementations comparison.
- Collingbourne, Huw (June 17 2006), The Little Book Of Ruby, free PDF eBook 1.1MB, pp. 87 Archived 2013-10-09 at the Wayback Machine.
- Collingbourne, Huw (April 18 2009), The Book Of Ruby, free PDF eBook 2.9MB, pp. 425 Archived 2010-07-22 at the Wayback Machine.
- Ruby.on-page.net — simple Ruby manual with many samples
- Ruby ഓപ്പൺ ഡയറക്റ്ററി പ്രൊജക്റ്റിൽ
- Ruby User Guide Archived 2010-07-21 at the Wayback Machine. By Matz, the creator of Ruby. Translated into English.
- Ruby From Other Languages
- Ruby language spec
- Writing C Extensions to Ruby (MRI 1.8)
- RubyFlow: Community Filtered Ruby News
- Ruby ലെ Microservices വാസ്തുവിദ്യ