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.

 Ruby
Jatorria
Sorrera-urtea1995
Mugimenduasoftware librearen mugimendua
Azken bertsioa3.3.1
Honen izena daramaErrubi
Ezaugarriak
Programazio-lengoaiaC
Programazio paradigmaProgramazio funtzional, Programazio inperatibo, Objektuetara bideratutako programazioa eta reflective programming (en) Itzuli
Media motaapplication/x-ruby eta text/x-script.ruby
Irakur dezakeMicrosoft Windows, Linux, BSD eta macOS
Egile-eskubideakcopyrightduna
LizentziaRuby License (en) Itzuli, GPLv2 eta 2-clause BSD License (en) Itzuli
Deskribapena
Honen eragina jaso duAda, Dylan (en) Itzuli, Perl, Python, Smalltalk (en) Itzuli, C++, CLU (en) Itzuli, Eiffel (en) Itzuli, Lisp, BASIC, Lua eta Emacs
Ekoizpena
DiseinatzaileaYukihiro Matsumoto (en) Itzuli
GaratzaileaYukihiro Matsumoto (en) Itzuli
ruby-lang.org
GitHub: ruby
Iturri-kodeahttps://git.ruby-lang.org/ruby.git eta https://github.com/ruby/ruby.git

Historia aldatu

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 aldatu

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

« 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 [1]:

« 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 aldatu

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 aldatu

Kanpo estekak aldatu

  • Ruby Rubyren web orrialdea.