Ruby
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. HistoriaEl 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íaEl 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.[2] Sostién que'l diseñu de sistemes precisa enfatizar les necesidaes humanes más que les de la máquina:[3]
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,[3] 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.[4] Matz definir d'esta manera nuna entrevista:[3]
SemánticaRuby 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,[5] "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".[6] Carauterístiques
Posibilidá de redefinir los operadores (sobrecarga d'operadores)
Ruby anguaño nun tien soporte completu d'Unicode,[7] a pesar de tener soporte parcial para UTF-8. InteracciónLa distribución oficial de Ruby inclúi $ irb
irb(main):001:0> puts "Hola mundu"
Hola mundu =>
nil
irb(main):002:0> 1+2
=> 3
SintaxisLa 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 ( LlicenciaL'intérprete y les biblioteques tán llicenciaes de forma dual (indixebrable) so les llicencies de software llibre GPL y Llicencia Ruby.[8] 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.[9] Ver tamién
Referencies
Enllaces esternos
Ruby Arxentina Archiváu 2010-06-06 en Wayback Machine Comunidá Arxentina de Ruby
|
Portal di Ensiklopedia Dunia