Ruby
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. HistoriaLengoaia 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. FilosofiaLegoaiaren 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]
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]:
SemantikaRuby 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. ErreferentziakKanpo estekak
|