റൂബി (പ്രോഗ്രാമിങ് ഭാഷ)

സചേതനവും, ഒബ്ജക്റ്റ് ഓറിയന്റഡുമായിട്ടുള്ള ഒരു പ്രോഗ്രാമിങ് ഭാഷയാണ്‌ **റൂബി**. പേളിന്റേയും സ്മാൾടോക്കിന്റെയും സവിശേഷതകളാണ്‌ പ്രധാനമായി ഈ ഭാഷയുടെ നിർമ്മാണത്തിൽ സ്വാധീനിച്ചിരിക്കുന്നത്. 1990 കളുടെ മധ്യത്തിൽ ജപ്പാനിലാണ്‌ ഇതിന്റെ ഉത്ഭവം, ഇതിനെ ആദ്യം രൂപകല്പനം ചെയ്തതും വികസിപ്പിച്ചെടുത്തതും യുകിഹിറോ മാത്സുമോട്ടോ ആണ്‌. പേൾ സ്മാൾടോക്ക്, ഈഫെൽ, അഡ, ലിസ്പ്, ബേസിക്ക് തുടങ്ങിയവയാണ്‌ ഇതിനെ സ്വാധീനിച്ച പ്രധാന പ്രോഗ്രാമിങ് ഭാഷകൾ.

ഫങ്ഷനൽ, ഒബ്ജക്റ്റ് ഓറിയന്റഡ്, ഇമ്പെറേറ്റീവ്, റിഫ്ലെക്റ്റീവ് തുടങ്ങിയ പ്രോഗ്രാമിങ്ങ് രീതികളെയെല്ലാം റൂബി പിന്തുണക്കുന്നുണ്ട്. പ്രോഗ്രാമിലെ വാരിയബിളുകൾക്ക് സചേതനമായി അതിന്റെ തരം മാറാനുള്ള ഡൈനാമിക് ടൈപ്പ് സിസ്റ്റം സങ്കേതവും മെമ്മറി തനിയേ പരിപാലിക്കപ്പെടുന്നതും ഇതിന്റെ വിശേഷണങ്ങളിൽ പെടുന്നു, അതിനാൽ തന്നെ ഇത് പൈത്തൺ, പേൾ, ലിസ്പ്, ഡൈലൻ, പൈക്ക്, സി.എൽ.യു. തുടങ്ങിയ ഭാഷകളുമായി സാമ്യത പങ്കുവയ്ക്കുന്നു.

1.8.7 വരെയുള്ള പതിപ്പുകൾ സി യിൽ എഴുതപ്പെട്ട ഒരു സിംഗിൾ-പാസ്സ് ഇന്റർപ്രെറ്റഡ് ഭാഷയായാണ്‌ പ്രത്യക്ഷവൽക്കരിക്കപ്പെട്ടിരിക്കുന്നത്. നിലവിൽ റൂബി ഭാഷയ്ക്കുവേണ്ടിയുള്ള നിർദ്ദേശകമൊന്നുമില്ല (specification), അതിനാൽ തന്നെ മൂലരൂപം തന്നെ ഇതിന്റെ പൊതുവായ റെഫെറെൻസ് ആയി എടുക്കുന്നു. 2010 പ്രകാരം മറ്റ് വ്യത്യസ്തങ്ങളായ പ്രത്യക്ഷവൽക്കരണങ്ങളും പുറത്തിറങ്ങിയിട്ടുണ്ട്, യാർവ്, ജെറൂബി, റൂബിനിയസ്, അയൺ‌റൂബി, മാൿ‌റൂബി, ഹോട്ട്‌റൂബി എന്നിവ അവയില്പെടുന്നു. ഇതിൽ അയൺ‌റൂബി, ജെറൂബി, മാൿ‌റൂബി എന്നിവ ജസ്റ്റ്-ഇൻ-ടൈം കമ്പൈലേഷൻ സങ്കേതം ഉപയോഗിക്കുന്നു, മാൿ‌റൂബി എഹെഡ്-ഓഫ്-ടൈം കമ്പൈലേഷനും പിന്തുണക്കുന്നുണ്ട്. വേഗത കുറഞ്ഞ എം.ആർ.ഐ.ക്ക് പകരം 1.9 മുതലുള്ള റൂബിയുടെ പതിപ്പ് യാർവാണ് ഉപയോഗപ്പെടുത്തുന്നത്.

## ചരിത്രം
### ആദ്യകാല ആശയം
റൂബി എന്ന പ്രോഗ്രാമിംഗ് ഭാഷ 1993 ൽ ഈ ആശയം രൂപംകൊണ്ടതാണെന്ന്  മാറ്റ്സുമോട്ടോ പറഞ്ഞു. റൂബി-ടോക്ക് മെയിലിംഗ് പട്ടികയിലെ 1999 ലെ ഒരു പോസ്റ്റിൽ, ഭാഷയെക്കുറിച്ചുള്ള തന്റെ ആദ്യകാല ആശയങ്ങൾ അദ്ദേഹം വിവരിക്കുന്നു:

ഫങ്ഷനൽ പ്രോഗ്രാമിങ്ങും ഇമ്പെറേറ്റീവ് പ്രോഗ്രാമിങ്ങും തുല്യമായി ഉപയോഗപ്പെടുത്തുന്ന ഒരു പുതിയ പ്രോഗ്രാമിങ് ഭാഷ വേണമെന്ന് ആഗ്രഹിച്ച യുകിഹിറോ മാത്സുമോട്ടോയാണ്‌ 1993 ഫെബ്രുവരി 24 ന്‌ റൂബി സൃഷ്ടിച്ചത്. ഇതിനെകുറിച്ച് മസ്തുമോട്ടൊയുടെ വാക്കുകൾ ഇങ്ങനെയാണ്‌, "പേളിനേക്കാൾ ശക്തമായതും പൈത്തണിനേക്കാൾ മികച്ചതും, ഒബ്ജക്റ്റ് ഓറിയന്റഡുമായ ഒരു സ്ക്രിപ്റ്റിങ് ഭാഷ വേണമെന്ന് ഞാൻ ആഗ്രഹിച്ചു. അതിനാൽ തന്നെ സ്വന്തമായി ഒന്ന് രൂപകല്പന ചെയ്യാൻ ഞാൻ തീരുമാനിക്കുകയായിരുന്നു".

മാബിസുമോട്ടോ റൂബിയുടെ രൂപകൽപ്പനയെ അതിന്റെ കോർഭാഗം ലളിതമായ ലിസ്പ് ഭാഷ പോലെയാണ്, സ്മാൾ‌ടോക്ക് പോലുള്ള ഒബ്ജക്റ്റ് സിസ്റ്റം, ഹയർ ഓർഡർ ഫംഗ്ഷനുകളിൽ നിന്ന് പ്രചോദനം ഉൾക്കൊള്ളുന്ന ബ്ലോക്കുകൾ, പേൾ പോലുള്ള പ്രാക്ടിക്കൽ യൂട്ടിലിറ്റി എന്നിവ ഉൾപ്പെടുന്നു.
#### "റൂബി" എന്ന പേര്
ഈ ഭാഷയ്‌ക്കായി ഏതെങ്കിലും കോഡ് എഴുതുന്നതിനുമുമ്പ് 1993 ഫെബ്രുവരി 24 ന് മാറ്റ്സുമോട്ടോയും കെയ്‌ജു ഇഷിത്സുകയും തമ്മിലുള്ള ഒരു ഓൺലൈൻ ചാറ്റ് സെഷനിലാണ് "റൂബി" എന്ന പേര് ഉത്ഭവിച്ചത്. തുടക്കത്തിൽ രണ്ട് പേരുകൾ നിർദ്ദേശിക്കപ്പെട്ടു: "കോറൽ", "റൂബി". മാറ്റ്സുമോട്ടോ പിന്നീടുള്ള ഇ-മെയിലിൽ ഇഷിത്സുകയ്ക്ക് അയച്ചു."റൂബി" എന്ന പേര് തിരഞ്ഞെടുക്കുന്നതിനുള്ള ഒരു ഘടകം എന്താണെന്ന് പിന്നീട് മാറ്റ്സുമോട്ടോ വിശദീകരിച്ചു -- ഇത് അദ്ദേഹത്തിന്റെ സഹപ്രവർത്തകന്റെ ജന്മനക്ഷത്രകല്ലായിരുന്നു (birthstone).

### ആദ്യ പ്രസിദ്ധീകരണം
റൂബി 0.95 ന്റെ ആദ്യ പൊതു പ്രകാശനം 1995 ഡിസംബർ 21 ന് ജാപ്പനീസ് ആഭ്യന്തര വാർത്താ ഗ്രൂപ്പുകളിൽ പ്രഖ്യാപിച്ചു. തുടർന്ന്, റൂബിയുടെ മൂന്ന് പതിപ്പുകൾ കൂടി രണ്ട് ദിവസത്തിനുള്ളിൽ പുറത്തിറങ്ങി. ഇതിന്റെ റിലീസ് യാദ്യശ്ചികമായിരുന്നു, ജാപ്പനീസ് ഭാഷായിലുള്ള റൂബി-ലിസ്റ്റ് മെയിലിംഗ് ലിസ്റ്റ് സമാരംഭിച്ചതോടെ, പുതിയ ഭാഷയ്‌ക്കായുള്ള ആദ്യത്തെ മെയിലിംഗ് ലിസ്റ്റായി ഇത് മാറി.

ഒബ്ജക്റ്റ്-ഓറിയെന്റഡ് ഡിസൈൻ, ഇൻഹെറിറ്റൻസ് ക്ലാസുകൾ, മിക്സിനുകൾ, ഇറ്ററേറ്ററുകൾ, ക്ലോസ്സേഴ്സ്, എക്സെപ്ക്ഷൻ ഹാൻഡലിംഗ്, ഗാർബ്ബേജ് കളക്ടർ എന്നിവ ഉൾപ്പെടെ റൂബിയുടെ പിന്നീടുള്ള പതിപ്പുകളിൽ പരിചിതമായ നിരവധി സവിശേഷതകൾ ഇതിനകം തന്നെ വികസനത്തിന്റെ ഈ ഘട്ടത്തിൽ ഉണ്ടായിരുന്നു.

## അവലംബം

## പുറം കണ്ണികൾ
* 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 
* Collingbourne, Huw (April 18 2009), The Book Of Ruby, free PDF eBook 2.9MB, pp. 425 
* Ruby.on-page.net — simple Ruby manual with many samples
* 
* Ruby User Guide  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 വാസ്തുവിദ്യ