Ruby
{{otros usos|Caráuter ruby|la notación d'ayuda a la llectura|el llinguaxe de programación}}
{{Ficha de software}}

'''Ruby''' ye un [[llinguaxe de programación]] [[Llinguaxe de programación interpretáu|interpretáu]], [[Reflexón (informática)|reflexivu]] y [[Programación empobinada a oxetos empobináu a oxetos]], creáu pol programador [[Xapón|xaponés]] [[Yukihiro Matsumoto|Yukihiro "Matz" Matsumoto]], quien empezó a trabayar en Ruby en [[1993]], y presentar públicamente en [[1995]]. Combina una sintaxis inspirada en [[Python]] y [[Perl]] con carauterístiques de programación empobinada a oxetos similares a [[Smalltalk]]. Comparte tamién funcionalidad con otros llinguaxes de programación como [[Lisp]], [[Lua]], [[Dylan (llinguaxe de programación)|Dylan]] y [[CLU]]. Ruby ye un llinguaxe de programación interpretáu nuna sola pasada y la so implementación oficial ye distribuyida so una [[Ruby#Llicencia|llicencia]] de [[software llibre]].

== Historia ==
El llinguaxe foi creáu por [[Yukihiro Matsumoto|Yukihiro "Matz" Matsumoto]], quien empezó a trabayar en Ruby el [[24 de febreru]] de [[1993]], y presentar al públicu nel añu [[1995]]. Nel círculu d'amigos de Matsumoto púnxose-y el nome de Ruby (n'asturianu ''[[rubín]]'') como chancia aludiendo al llinguaxe de programación Perl (''perlla'' n'inglés). La última versión estable de la caña 1.8 ye la 1.8.7_p248, de la caña 1.9 ye la 1.9.2_p180 . La versión en 1.9 qu'incorpora meyores sustanciales nel rendimientu del llinguaxe, que s'espera queden reflexaes na próxima versión estable de producción del llinguaxe, Ruby 1.9.0.1 Diferencies en rendimientu ente l'actual implementación de Ruby (1.8.6) y otros llinguaxes de programación más enraigonaos llevaron al desenvolvimientu de delles máquines virtuales pa Ruby. Ente éses atópase [[JRuby]], un intentu de llevar Ruby a la plataforma [[Llinguaxe de programación Java|Java]], y [[Rubinius]], un [[intérprete (informática)|intérprete]] modeláu basáu nes máquines virtuales de [[Smalltalk]].
Los principales desarrolladores sofitaron la máquina virtual apurrida pol proyeutu [[YARV]], que se fundió nel árbol de códigu fuente de Ruby el [[31 d'avientu]] de [[2006]], y diose a conocer como Ruby 1.9

== Filosofía ==
[[Ficheru:Yukihiro Matsumoto.JPG|miniaturadeimagen|[[Yukihiro Matsumoto]], el creador de Ruby]]

El creador del llinguaxe, [[Yukihiro Matsumoto|Yukihiro "Matz" Matsumoto]], dixo que Ruby ta diseñáu pa la productividá y la diversión del desarrollador, siguiendo los principios d'una bona interfaz d'usuariu.<ref>{{cita web |url=http://www.informit.com/articles/article.asp?p=18225 |títulu=El llinguaxe de programación Ruby, por Yukihiro Matsumoto |fechaaccesu=7 d'ochobre de 2016 |apellíu= |nome= |fecha= |sitiuweb=informit.com |editorial= |idioma=inglés }}</ref> Sostién que'l diseñu de sistemes precisa enfatizar les necesidaes humanes más que les de la máquina:<ref name="artima">{{cita web|url=http://www.artima.com/intv/ruby4.html|títulu=La filosofía de Ruby, una conversación con Yukihiro Matsumoto, Parte I|fecha=29 de setiembre de 2003|autor=Bill Venners|editor=Artima|fechaaccesu=2 de mayu de 2015|idioma=inglés}}</ref>

{{cita|De cutiu la xente, especialmente los inxenieros en computación, centrar nes máquines. Ellos piensen, "Faciendo esto, la máquina va funcionar más rápidu. Faciendo esto, la máquina va funcionar de manera más eficiente. Faciendo esto..." Tán centraos nes máquines, pero en realidá precisamos centranos nes persones, en cómo faen programes o cómo remanen les aplicaciones n'el ordenadores. Nós somos los xefes. Ellos son los esclavos.}}

Ruby sigue'l ''principiu de la menor sorpresa'', lo que significa que'l llinguaxe tien de portase de tal manera qu'embriva'l tracamundiu de los usuarios esperimentaos. Matz dixo que'l so principal oxetivu yera faer un llinguaxe que-y prestara a él mesmu, embriviendo'l trabayu de programación y el posible tracamundiu. Él dixo que nun aplicó'l principiu de menor sorpresa al diseñu de Ruby,<ref name="artima"/> sicasí, la frase acomuñóse al llinguaxe de programación Ruby. La frase en sí mesma foi fonte de discutiniu, una y bones los ensin empecipiar pueden tomala como que les carauterístiques de Ruby intenten ser similares a les carauterístiques d'otros llinguaxes conocíos. En mayu de 2005 nun discutiniu nel grupu de noticies comp.lang.ruby, Matz trató d'alloñar Ruby de la mentada filosofía, esplicando que cualquier eleición de diseñu va ser sorprendente pa daquién, y que él usa un estándar personal d'evaluación de la sorpresa. Si esi estándar personal caltiénse consistente va haber poques sorpreses p'aquellos familiarizaos col estándar.<ref>{{Cita web |url=http://www.rubyweeklynews.org/20050529 |títulu=Ruby Weekly News 23rd – 29th May 2005 |urlarchivu=https://web.archive.org/web/20170704073422/http://www.rubyweeklynews.org/20050529 |fechaarchivu=2017-07-04 }}</ref>

Matz definir d'esta manera nuna entrevista:<ref name="artima"/>
{{cita|Tol mundu tien un pasáu personal. Daquién puede venir de Python, otru de Perl, y pueden trate sorprendíos por distintos aspeutos del llinguaxe. Entós podríen dicir 'Toi sorprendíu por esta carauterística del llinguaxe, asina que Ruby viola'l principiu de la menor sorpresa.' Espera, espera. El principiu de la menor sorpresa nun ye namái pa ti. El principiu de la menor sorpresa significa'l principiu de 'el mio' menor sorpresa. Y significa el principiu de la menor sorpresa dempués de qu'apriendes bien Ruby. Por casu, fui programador de C++ antes d'empezar a diseñar Ruby. Programé puramente en C++ mientres dos o trés años. Y dempués de dos años de programar en C++, inda me sorprendía.}}

== Semántica ==
Ruby ye [[empobináu a oxetos]]: tolos tipos de datos son un oxetu, incluyíes les clases y tipos qu'otros llinguaxes definen como primitives, (como [[enteru|enteros]], booleanos, y ''nil''). Toa [[función (programación)|función]] ye un [[Métodu (programación empobinada a oxetos)|métodu]]. Les variables siempres son referencies a oxetos, non los oxetos mesmos. Ruby soporta [[Heriedu (programación empobinada a oxetos)|heriedu]] con [[enllaz dinámicu]], [[mixin|''mixins'']] y [[singleton|métodos ''singleton'']] (pertenecientes y definíos por una sola [[Instancia (programación)|instancia]] más que definíos pola clase). A pesar de que Ruby nun soporta [[heriedu múltiple]], la clases pueden importar [[Módulu (programación)|módulos]] como ''mixins''. Ye compatible cola sintaxis procedimental, pero tolos métodos definíos fora del ámbitu d'un oxetu son realmente métodos de la clase Object. Como esta clase ye padre de toles demás, los cambeos son visibles pa toles clases y oxetos.

Ruby foi descritu como un [[llinguaxe de programación multiparadigma]]: dexa [[Programación por procedimientos|programación procedimental]] (definiendo funciones y variables fora de les clases faciéndoles parte del oxeto raigañu Object), con orientación a oxetos, (tou ye un oxetu) o [[Programación funcional|funcionalmente]] (tien funciones anónimes, [[Clausura (informática)|clausures]] y [[continuaciones]]; toles sentencies tien valores, y les funciones devuelven la última evaluación). Soporta [[Introspeición de tipo|introspección]], [[Reflexón (informática)|reflexón]] y [[metaprogramación]], amás de soporte pa [[Filo d'ejecución|hilo d'execución]] xestionaos pol intérprete. Ruby tien [[tipu de datu|tipado]] dinámicu, y soporta [[Polimorfismu (programación empobinada a oxetos)|polimorfismu]] de tipos (dexa tratar a subclases utilizando la interfaz de la clase padre). Ruby nun riquir de [[Polimorfismu (programación empobinada a oxetos)|polimorfismu]] de funciones (sobrecarga de funciones) al ser dinámicamente tipado (los parámetros d'una función pueden ser de distintu tipu en cada llamada, encargándose dicha función de determinar el tipu y actuar en consecuencia).

Acordies coles entrugues frecuentes de Ruby,<ref>{{Cita web |url=http://faq.rubygarden.org/ |títulu=Ruby FAQ |urlarchivu=https://web.archive.org/web/20071209000940/http://faq.rubygarden.org/ |fechaarchivu=2007-12-09 }}</ref> "Si te gusta [[Perl]], te va gustar Ruby y la so sintaxis. Si te gusta [[Smalltalk]], te va gustar Ruby y la so semántica. Si te gusta [[Python]], la enorme diferencia de diseñu ente Python y Ruby/Perl pue que te convenza o pue que non".<ref>[https://web.archive.org/web/20080122094748/http://faq.rubygarden.org/entry/show/14 ¿Cómo se compara Ruby con Python? (FAQ) (n'inglés)]</ref>

== Carauterístiques ==
* [[Empobináu a oxetos]]
* Cuatro niveles d'ámbitu de [[Variable (programación)|variable]]: global, clase, instancia y local.
* [[Manexu d'esceiciones]]
* [[Iterador (patrón de diseñu)|iteradores]] y [[Clausura (informática)|clausures o closures]] (pasando bloques de códigu)
* [[Espresión regular|espresiones regulares]] natives similares a les de [[Perl]] a nivel del llinguaxe *
Posibilidá de redefinir los operadores (sobrecarga d'operadores)
* [[Pañador de basura|recoyida de basura automática]]
* Altamente [[portable]]
* Filos d'execución simultáneos en toles plataformes usando ''[[filos verdes]]'', o non xestionaos pol sistema operativu.
* Carga dinámica de [[Biblioteca d'enllaz dinámicu|DLL]]/[[Biblioteca (programación)|biblioteques compartíes]] na mayoría de les plataformes
* Introspeición, [[Reflexón (informática)|reflexón]] y [[metaprogramación]]
* Amplia llibrería estándar
* Soporta [[inyeición de dependencies]]
* Soporta alteración d'oxetos en tiempu d'execución
* [[continuación|continuaciones]] y [[xeneradores]]

Ruby anguaño nun tien soporte completu d'[[Unicode]],<ref>[https://web.archive.org/web/20110721202615/http://redmine.ruby-lang.org/issues/show/2034 Feature #2034 Consider the ICU Library for Improving and Expanding Unicode Support]</ref> a pesar de tener soporte parcial para [[UTF-8]].

=== Interacción ===

La distribución oficial de Ruby inclúi <code>irb</code> (Interactive Ruby Shell), un intérprete interactivo de llinia de comandos que puede ser usáu pa probar códigu de manera rápida. El siguiente fragmentu de códigu representa una muestra d'una sesión usando <code>irb</code>:

<syntaxhighlight lang="ruby">
$ irb
irb(main):001:0> puts "Hola mundu"
Hola mundu =>
nil
irb(main):002:0> 1+2
=> 3
</syntaxhighlight>

== Sintaxis ==
La sintaxis de Ruby ye similar a la de Perl o Python. La definición de clases y métodos ta definida por pallabres clave. Sicasí, en Perl, les variables nun lleven prefixos. Cuando s'usa, un prefixu indica l'ámbitu de les variables. La mayor diferencia con C y Perl ye que les pallabres clave son usaes pa definir bloques de códigu ensin llaves. Los saltos de llinia son significativos y son interpretaos como'l final d'una sentencia; el puntu y coma tien el mesmu usu. De forma distinta que Python, la indentación nun ye significativa.

Una de les diferencies ente Ruby y Python y Perl ye que Ruby caltién toes los sos variables d'instancia privaes dientro de les clases y solo esponer al traviés de métodos d'accesu (<code>attr_writer</code>, <code>attr_reader</code>, etc.). A diferencia de los métodos ''get'' y ''set'' d'otros llinguaxes como C++ o Java, los métodos d'accesu en Ruby pueden ser escritos con una sola llinia de códigu. Como la invocación d'estos métodos nun riquir l'usu de paréntesis, ye trivial camudar una variable d'instancia nuna función ensin tocar una sola llinia de códigu o refactorizar dichu códigu. Los descriptores de propiedaes de Python son similares pero tienen una desventaxa nel procesu de desenvolvimientu. Si unu empieza en Python usando una instancia de variable espuesta públicamente y dempués camuda la implementación pa usar una instancia de variable privada espuesta al traviés d'un descriptor de propiedaes, el códigu internu de la clase va precisar ser afechu pa usar la variable privada en cuenta de la propiedá pública. Ruby esanicia ta decisión de diseñu obligando a toles variables d'instancia a ser quitaes, pero tamién apurre una manera senciella de declarar métodos <code>set</code> y <code>get</code>. Esto caltién el principiu de qu'en Ruby nun puede aportase a los miembros internos d'una clase dende fora d'esta; en llugar d'esto pasa un mensaxe (invócase un métodu) a la clase y recibe una respuesta.

== Llicencia ==
L'intérprete y les [[biblioteca (programación)|biblioteques]] tán llicenciaes de forma dual (indixebrable) so les llicencies de [[software llibre]] [[Llicencia pública xeneral de GNU|GPL]] y [[Llicencia Ruby]].<ref>{{Cita web |url=http://www.ruby-lang.org/en/LICENSE.txt |títulu=Llicencia Ruby |urlarchivu=https://web.archive.org/web/20110826175927/http://www.ruby-lang.org/en/LICENSE.txt |fechaarchivu=2011-08-26 }}</ref>

A partir de la versión 1.9.3 optar por una llicencia dual so les llicencies [[Llicencia BSD|BSD]] de dos cláusula y Llicencia pública Ruby.<ref>{{Cita web |url=http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_0/NEWS |títulu=Novedaes de Ruby 1.9.3 |urlarchivu=https://web.archive.org/web/20151106023210/http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_0/NEWS |fechaarchivu=2015-11-06 }}</ref>

== Ver tamién ==

* [[RubyGems]] (xestor de paquetes pa Ruby)
* [[Ruby on Rails]] (redolada de trabayu empobináu a aplicaciones web en Ruby)
* [[JRuby]] (implementación en Java del intérprete de Ruby)
* [[Rubinius]] (implementación en Ruby del intérprete de Ruby)
* [[Empobináu a oxetos]] (Programación empobinada a oxetos)

== Referencies ==
{{llistaref|2}}

== Enllaces esternos ==
{{commonscat|Ruby programming language}}
{{wikillibros|nome = Programación en Ruby|etiqueta = Programación en Ruby|oxeto = un manual}}
* [http://www.ruby-lang.org/es/ Sitio web principal de Ruby], n'español
* [https://web.archive.org/web/20040729154145/http://rubycentral.com/ Ruby central] Recursos sobre Ruby n'Inglés
* [http://rubytutorial.wikidot.com/ Ruby Tutorial] tutorial en castellán de Ruby
* [http://rubysur.org rubysur] sitiu de los usuarios de Ruby y Ruby On Rails de Llatinoamérica *
[http://rubyargentina.soveran.com/home Ruby Arxentina] {{Webarchive|url=https://web.archive.org/web/20100606044106/http://rubyargentina.soveran.com/home |date=2010-06-06 }} Comunidá Arxentina de Ruby
* [https://web.archive.org/web/20080901082153/http://www.rubylit.com.ar/wiki/show/HomePage RubyLit] Comunidá de la Mariña Arxentina de Ruby
* [https://archive.today/20070517233550/http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials Full Ruby on Rails Tutorial]
* [http://www.netbeans.org/features/ruby/index.html NetBEANS IDE] {{Webarchive|url=https://web.archive.org/web/20181116045737/http://www.netbeans.org/features/ruby/index.html |date=2018-11-16 }}
* [http://bitnami.org/stack/rubystack Instalador de Ruby On Rails] {{Webarchive|url=https://web.archive.org/web/20080220094420/http://bitnami.org/stack/rubystack/ |date=2008-02-20 }} de BitNami










{{Tradubot|Ruby}}

{{control d'autoridaes}}
[[Categoría:Ruby| ]]
[[Categoría:Llinguaxes de programación]]
[[Categoría:Llinguaxes interpretaos]]
[[Categoría:Compiladores y interpretadores llibres]]
[[Categoría:Software llibre programáu en C]]
[[Categoría:Ciencia y teunoloxía de Xapón]]
[[Categoría:Wikipedia:Páxines con enllaces interllingüísticos]]
Ruby ye un llinguaxe de programación interpretáu, reflexivu y Programación empobinada a oxetos empobináu a oxetos, creáu pol programador xaponés Yukihiro "Matz" Matsumoto, quien empezó a trabayar en Ruby en 1993, y presentar públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con carauterístiques de programación empobinada a oxetos similares a Smalltalk. Comparte tamién funcionalidad con otros llinguaxes de programación como Lisp, Lua, Dylan y CLU. Ruby ye un llinguaxe de programación interpretáu nuna sola pasada y la so implementación oficial ye distribuyida so una llicencia de software llibre.

 Historia 
El llinguaxe foi creáu por Yukihiro "Matz" Matsumoto, quien empezó a trabayar en Ruby el 24 de febreru de 1993, y presentar al públicu nel añu 1995. Nel círculu d'amigos de Matsumoto púnxose-y el nome de Ruby (n'asturianu rubín) como chancia aludiendo al llinguaxe de programación Perl (perlla n'inglés). La última versión estable de la caña 1.8 ye la 1.8.7_p248, de la caña 1.9 ye la 1.9.2_p180 . La versión en 1.9 qu'incorpora meyores sustanciales nel rendimientu del llinguaxe, que s'espera queden reflexaes na próxima versión estable de producción del llinguaxe, Ruby 1.9.0.1 Diferencies en rendimientu ente l'actual implementación de Ruby (1.8.6) y otros llinguaxes de programación más enraigonaos llevaron al desenvolvimientu de delles máquines virtuales pa Ruby. Ente éses atópase JRuby, un intentu de llevar Ruby a la plataforma Java, y Rubinius, un intérprete modeláu basáu nes máquines virtuales de Smalltalk.
Los principales desarrolladores sofitaron la máquina virtual apurrida pol proyeutu YARV, que se fundió nel árbol de códigu fuente de Ruby el 31 d'avientu de 2006, y diose a conocer como Ruby 1.9

 Filosofía 
miniaturadeimagen|Yukihiro Matsumoto, el creador de Ruby

El creador del llinguaxe, Yukihiro "Matz" Matsumoto, dixo que Ruby ta diseñáu pa la productividá y la diversión del desarrollador, siguiendo los principios d'una bona interfaz d'usuariu. Sostién que'l diseñu de sistemes precisa enfatizar les necesidaes humanes más que les de la máquina:

Ruby sigue'l principiu de la menor sorpresa, lo que significa que'l llinguaxe tien de portase de tal manera qu'embriva'l tracamundiu de los usuarios esperimentaos. Matz dixo que'l so principal oxetivu yera faer un llinguaxe que-y prestara a él mesmu, embriviendo'l trabayu de programación y el posible tracamundiu. Él dixo que nun aplicó'l principiu de menor sorpresa al diseñu de Ruby, sicasí, la frase acomuñóse al llinguaxe de programación Ruby. La frase en sí mesma foi fonte de discutiniu, una y bones los ensin empecipiar pueden tomala como que les carauterístiques de Ruby intenten ser similares a les carauterístiques d'otros llinguaxes conocíos. En mayu de 2005 nun discutiniu nel grupu de noticies comp.lang.ruby, Matz trató d'alloñar Ruby de la mentada filosofía, esplicando que cualquier eleición de diseñu va ser sorprendente pa daquién, y que él usa un estándar personal d'evaluación de la sorpresa. Si esi estándar personal caltiénse consistente va haber poques sorpreses p'aquellos familiarizaos col estándar.

Matz definir d'esta manera nuna entrevista:

 Semántica 
Ruby ye empobináu a oxetos: tolos tipos de datos son un oxetu, incluyíes les clases y tipos qu'otros llinguaxes definen como primitives, (como enteros, booleanos, y nil). Toa función ye un métodu. Les variables siempres son referencies a oxetos, non los oxetos mesmos. Ruby soporta heriedu con enllaz dinámicu, mixins y métodos singleton (pertenecientes y definíos por una sola instancia más que definíos pola clase). A pesar de que Ruby nun soporta heriedu múltiple, la clases pueden importar módulos como mixins. Ye compatible cola sintaxis procedimental, pero tolos métodos definíos fora del ámbitu d'un oxetu son realmente métodos de la clase Object. Como esta clase ye padre de toles demás, los cambeos son visibles pa toles clases y oxetos.

Ruby foi descritu como un llinguaxe de programación multiparadigma: dexa programación procedimental (definiendo funciones y variables fora de les clases faciéndoles parte del oxeto raigañu Object), con orientación a oxetos, (tou ye un oxetu) o funcionalmente (tien funciones anónimes, clausures y continuaciones; toles sentencies tien valores, y les funciones devuelven la última evaluación). Soporta introspección, reflexón y metaprogramación, amás de soporte pa hilo d'execución xestionaos pol intérprete. Ruby tien tipado dinámicu, y soporta polimorfismu de tipos (dexa tratar a subclases utilizando la interfaz de la clase padre). Ruby nun riquir de polimorfismu de funciones (sobrecarga de funciones) al ser dinámicamente tipado (los parámetros d'una función pueden ser de distintu tipu en cada llamada, encargándose dicha función de determinar el tipu y actuar en consecuencia).

Acordies coles entrugues frecuentes de Ruby, "Si te gusta Perl, te va gustar Ruby y la so sintaxis. Si te gusta Smalltalk, te va gustar Ruby y la so semántica. Si te gusta Python, la enorme diferencia de diseñu ente Python y Ruby/Perl pue que te convenza o pue que non".¿Cómo se compara Ruby con Python? (FAQ) (n'inglés)

 Carauterístiques 
 Empobináu a oxetos
 Cuatro niveles d'ámbitu de variable: global, clase, instancia y local.
 Manexu d'esceiciones
 iteradores y clausures o closures (pasando bloques de códigu)
 espresiones regulares natives similares a les de Perl a nivel del llinguaxe *
Posibilidá de redefinir los operadores (sobrecarga d'operadores)
 recoyida de basura automática
 Altamente portable
 Filos d'execución simultáneos en toles plataformes usando filos verdes, o non xestionaos pol sistema operativu.
 Carga dinámica de DLL/biblioteques compartíes na mayoría de les plataformes
 Introspeición, reflexón y metaprogramación
 Amplia llibrería estándar
 Soporta inyeición de dependencies
 Soporta alteración d'oxetos en tiempu d'execución
 continuaciones y xeneradores

Ruby anguaño nun tien soporte completu d'Unicode,Feature #2034 Consider the ICU Library for Improving and Expanding Unicode Support a pesar de tener soporte parcial para UTF-8.

 Interacción 

La distribución oficial de Ruby inclúi irb (Interactive Ruby Shell), un intérprete interactivo de llinia de comandos que puede ser usáu pa probar códigu de manera rápida. El siguiente fragmentu de códigu representa una muestra d'una sesión usando irb:

$ irb
irb(main):001:0> puts "Hola mundu"
Hola mundu =>
nil
irb(main):002:0> 1+2
=> 3

 Sintaxis 
La sintaxis de Ruby ye similar a la de Perl o Python. La definición de clases y métodos ta definida por pallabres clave. Sicasí, en Perl, les variables nun lleven prefixos. Cuando s'usa, un prefixu indica l'ámbitu de les variables. La mayor diferencia con C y Perl ye que les pallabres clave son usaes pa definir bloques de códigu ensin llaves. Los saltos de llinia son significativos y son interpretaos como'l final d'una sentencia; el puntu y coma tien el mesmu usu. De forma distinta que Python, la indentación nun ye significativa.

Una de les diferencies ente Ruby y Python y Perl ye que Ruby caltién toes los sos variables d'instancia privaes dientro de les clases y solo esponer al traviés de métodos d'accesu (attr_writer, attr_reader, etc.). A diferencia de los métodos get y set d'otros llinguaxes como C++ o Java, los métodos d'accesu en Ruby pueden ser escritos con una sola llinia de códigu. Como la invocación d'estos métodos nun riquir l'usu de paréntesis, ye trivial camudar una variable d'instancia nuna función ensin tocar una sola llinia de códigu o refactorizar dichu códigu. Los descriptores de propiedaes de Python son similares pero tienen una desventaxa nel procesu de desenvolvimientu. Si unu empieza en Python usando una instancia de variable espuesta públicamente y dempués camuda la implementación pa usar una instancia de variable privada espuesta al traviés d'un descriptor de propiedaes, el códigu internu de la clase va precisar ser afechu pa usar la variable privada en cuenta de la propiedá pública. Ruby esanicia ta decisión de diseñu obligando a toles variables d'instancia a ser quitaes, pero tamién apurre una manera senciella de declarar métodos set y get. Esto caltién el principiu de qu'en Ruby nun puede aportase a los miembros internos d'una clase dende fora d'esta; en llugar d'esto pasa un mensaxe (invócase un métodu) a la clase y recibe una respuesta.

 Llicencia 
L'intérprete y les biblioteques tán llicenciaes de forma dual (indixebrable) so les llicencies de software llibre GPL y Llicencia Ruby.

A partir de la versión 1.9.3 optar por una llicencia dual so les llicencies BSD de dos cláusula y Llicencia pública Ruby.

 Ver tamién 

 RubyGems (xestor de paquetes pa Ruby)
 Ruby on Rails (redolada de trabayu empobináu a aplicaciones web en Ruby)
 JRuby (implementación en Java del intérprete de Ruby)
 Rubinius (implementación en Ruby del intérprete de Ruby)
 Empobináu a oxetos (Programación empobinada a oxetos)

 Referencies 

 Enllaces esternos 

 Sitio web principal de Ruby, n'español
 Ruby central Recursos sobre Ruby n'Inglés
 Ruby Tutorial tutorial en castellán de Ruby
 rubysur sitiu de los usuarios de Ruby y Ruby On Rails de Llatinoamérica *
Ruby Arxentina  Comunidá Arxentina de Ruby
 RubyLit Comunidá de la Mariña Arxentina de Ruby
 Full Ruby on Rails Tutorial
 NetBEANS IDE 
 Instalador de Ruby On Rails  de BitNami

 
Categoría:Llinguaxes de programación
Categoría:Llinguaxes interpretaos
Categoría:Compiladores y interpretadores llibres
Categoría:Software llibre programáu en C
Categoría:Ciencia y teunoloxía de Xapón
Categoría:Wikipedia:Páxines con enllaces interllingüísticos