**Ruby** Yukihiro Matsumoto japoniarrak 1993an sortutako objektuei orientatutako programazio lengoaia bat da. Perl eta Python lengoaiaren antzekoa den sintaxia erabiltzen du, Smalltalk bezalako lengoaien objektuei zuzendutako ezaugarriak bilduz. Beste lengoaien ezaugarriak dauzka, besteak beste Lisp, Lua, Dylan eta CLU. Ruby interpretatutako programazio lengoaia bat da, eta software libre bezala banatzen da.

Historia
--------

Lengoaia Yukihiro "Matz" Matsumotok sortutakoa da, 1993ko otsalilaren 24an hasi zen Rubyn lan egiten Ruby, eta 1995 kaleratu zuen. Lagun baten jatorrizko hilabeteari dagokio harriak eman zion "Ruby" izena lengoaiari. Gaur egun 2008ko ekaina, azken bertsioa 1.8.6 da; 2007ko abenduaren 26an Ruby 1.9.0 kaleratu zen: garapen bertsioa da askoz azkarrago lan egiten duena, datorren bertsioan (Ruby 2.0) egongo den ezaugarria. Gaur egun daukagun bertsioa (1.8.6) beste lengoai batzuen konparatuz nahiko astiro lan egiten duenez, makina birtual batzuk sortu dira. Besteak beste JRuby, Java plataformara Ruby emateko saioa eta Rubinius, Smalltalken makina birtualen onarrituta interpretea.

Filosofia
---------

Legoaiaren sortzaileak, Yukihiro "Matz" Matsumoto, programatzailea dibertitzeko eta bere produktibitatea zabaltzeko diseinatuta dagoela esan du, erabiltzaileentzat interface ona diseinuko printzipioa jarraituz Gizakien beharrak makinenak baino gehiago kontuan hartu behar direla pentsatzen du:

|  |  |  |
| --- | --- | --- |
| « | Batzuetan jendeak, informatiko ingenieroak batez ere, bakarrik makinak kontuan hartzen dituzte. Haiek esten dute, "Hori egiten badut, makinak azkarrago lan egingo du. Hori egiten badut, makinak hobe lan egingo du. Hori egingo badut..." Makinetan onarrituta daude, baina benetan behar duguna pertsonak kontuan hartzea da, programak nola egiten duten edo nola erabiltzen dituzten aplikazioak. Gu gara nagusiak, haiek (makinak) esklabuak. |  » |

Rubyk ahalik eta sorpresa txikien printzipioa dauka, hau da, lengoaiak eskarmentu handiko erabiltzaileen nahasketa gutxitu behar du. Matzek esan du bere xedea bera diberti dezan lengoaia egitea zela, lana eta nahasketa gutxituz.

Matzek horrela definitu zuen elkarrizketa batean :

|  |  |  |
| --- | --- | --- |
| « | Mundu guztiak bere iragana dauka. Baten batek Python-etik etor daiteke, beste batek Perl-etik, eta haiei lengoaiaren zati desberdinek harritu diezaieke. Orduan haiek esan dezakete: 'Harrituta nago ezaugarri honekin, beraz Rubyk ez du bete ahalik eta sorpresa gutxien printzipioa'. Itxaron, itxaron. Ahalik eta sorpresa gutxien printzipioa ez da zuretzat bakarrik. Ahalik eta sorpresa gutxien printzipioa esan nahi du 'nire' sorpresa txikia, eta hori Ruby ondo ikasi eta gero. Ni C++ erabili nuen bi urteren zehar, eta denbora hori pasa eta gero, oraindik harritu ninduen. |  » |

Semantika
---------

Ruby objektuei orientatutakoa da: Datu mota guztiak objektuak dira, beste lenguaietan Datu motak eta klaseak primitibak bezala definitzen direnak barne (osoak, logikoak, eta "nil"). Funzioak beti metodoak dira. Aldagaiak beti erreferentziak dira, ez objetuak. Rubyk herentzia lotura dinamikoarekin dauka. Nahiz eta heretzia anizkuna ez izan, klaseak moduluak inporta ditzakete. Sintaxi prozedurala dauka, baina objektu baten arloaren kanpo definituta diren metodo guztiak Object klasekoak dira azken finean. Klase hau guztien aita denez, aldaketak klase eta objektu guztietan erabil daitezke.

Erreferentziak
--------------

1. ↑  Ruby programazio lenguaia Yukihiro Matsumoto(informit.com)
2. ↑  Rubyen filosofia, Yukihiro Matsumotorekin elkarrizketa, Lehen zatia Bill Venners 2003-09-29 (Artima Developer)

Kanpo estekak
-------------

* Ruby Rubyren web orrialdea.

|  |  |
| --- | --- |
| Autoritate kontrola | 
* **Wikimedia proiektuak**
* Wd Datuak: Q161053
* Commonscat Multimedia: Ruby programming language

---

* **Identifikadoreak**
* BNE: XX4424926
* BNF: 144105976 (data)
* GND: 4653817-3
* LCCN: sh00000128
* NKC: ph503938
* SUDOC: 07705802X

 |

* Wd Datuak: Q161053
* Commonscat Multimedia: Ruby programming language