Ruby: Diferenzas entre revisións
Contido eliminado Contido engadido
m →Ligazóns externas: Arranxos varios |
+{{Linguaxes de programación}}; WP:COR |
||
Liña 23:
== Historia ==
[[Ficheiro:Yukihiro Matsumoto.JPG|miniatura|Yukihiro Matsumoto, creador de Ruby.]]
A linguaxe foi creado por [[Yukihiro Matsumoto|Yukihiro "Matz" Matsumoto]], quen comezou a traballar o Ruby en [[24 de febreiro]] de [[1993]], e lanzouno ó público no
<!--Queda Traducir: The main developers have thrown their weight behind the virtual machine provided by the [[YARV]] project, which was merged into the Ruby source tree on [[31 December]] [[2006]], and will be released as Ruby 2.0.-->.
Liña 41:
Ruby é [[orientado a obxectos]]: tódolos tipos de datos son un obxecto, incluídas as clases e tipos que outras linguaxes definen como primitivas, (como [[enteiro]]s, booleanos, e "nil"). Toda [[función (programación)|función]] é un [[Método (programación orientada a obxectos)|método]]. As variables sempre son referencias a obxectos, non os obxectos mesmos. Ruby soporta [[Herdanza (programación orientada a objetos)|herdanza]] con [[enlace dinámico]], [[mixin]]s e [[singleton|patróns singleton]] (pertencentes e definidos por unha soa [[Instancia (programación)|instancia]] máis que definidos poa clase). A pesar de que Ruby non soporta [[herdanza múltiple]], as clases poden importar [[Módulo (programación)|módulos]] como mixins. A sintaxe procedural esta soportada, pero tódolos métodos definidos fora do ámbito dun obxecto son realmente métodos da clase Object. Como esta clase é pai de todas as demais, os cambios son visibles para tódalas clases e obxectos.
Ruby describiuse coma unha [[linguaxe de programación multiparadigma]]: permite programación procedural (definindo funcións e variables fora das clases facéndoas parte do obxecto raíz Object), con orientación a obxectos, (todo é un obxecto) ou [[Programación funcional|funcionalmente]] (ten funcións anónimas, [[Clausura (informática)|clausuras ou closures]], e [[continuation]]s; tódalas
De acordo coas preguntas frecuentes de Ruby
▲De acordo coas preguntas frecuentes de Ruby <ref>[http://faq.rubygarden.org/ Ruby FAQ]</ref>, "Se che gusta [[Perl]], gustarache Ruby e a súa sintaxe. Se che [[Smalltalk]], gustarache Ruby e a súa semántica. Se che gusta [[Python]], a enorme diferencia de deseño entre Python y Ruby/Perl pode que che convenza ou pode que non."
== Características ==
* [[orientado a obxectos]].
Liña 50 ⟶ 51:
* [[Iterador (patrón de deseño)|iteradores]] e [[Clausura (informática)|clausuras ou closures]] (pasando bloques de código).
* [[expresión regular|expresións regulares]] nativas similares ás de [[Perl]] a nivel de linguaxe.
* posibilidade de redefinir
* [[recolector de lixo|recolección de lixo automática]].
* altamente [[portable]].
Liña 83 ⟶ 84:
== Falla ==
=== Características da linguaxe ===
En termos de velocidade, Ruby ten un rendemento inferior a algunhas linguaxes compiladas (xa que é unha linguaxe interpretada) e outras linguaxes maioritarias de script como [[Python]] e [[Perl]]<ref name="alioth">[http://shootout.alioth.debian.org/ The Computer Language Benchmarks Game]</ref>.
A omisión dos parénteses nos argumentos dos métodos poden levar a resultados inesperados se os métodos recollen parámetros múltiples. Nótese que os desenvolvedores de Ruby advertiron que a omisión de parénteses en métodos multi-parametrais será eliminado en futuras versións de Ruby, o intérprete de Ruby actualmente (Feb 2007) volta unha advertencia que advirte ó escritor de ''non'' omitir os <code>()</code>, para evitar significados ambiguos no código. O non emprego dos <code>()</code> así e todo é tamén unha práctica moi común, e pode ser especialmente boa para empregar Ruby coma unha linguaxe de máis lexible polas persoas, ademais do método chamado <code>method_missing()</code>.
Liña 124 ⟶ 125:
A versión 1.8, a actual versión estable do interprete, ten algunhas limitacións, que inclúen:
* '''Rendemento''' -- o rendemento do
* '''Threading''' -- o modelo de fios de ruby emprega [[fios verdes]] [http://www.headius.com/rubyspec/index.php/Ruby_Threading], e este modelo ten algunhas limitacións inherentes que acarrexan a dificultade de empregalo ou de non ter seguranza en escenarios específicos.[http://www.killersites.com/blog/2007/standalone-ruby-on-rails/].
* '''Unicode''' -- Ruby non ten aínda soporte nativo para [[Unicode]] ou cadeas multibyte [http://headius.blogspot.com/2006/06/unicode-in-ruby-unicode-in-jruby.html].
Liña 142 ⟶ 143:
== Licenza ==
O intérprete e as [[biblioteca (programación)|bibliotecas]] están licenciadas de forma dual (inseparable) baixo as
== Notas ==
{{
== Véxase tamén ==
Liña 159 ⟶ 160:
* [http://search.cpan.org/perldoc?Syntax::Highlight::Engine::Kate::Ruby Syntax::Highlight::Engine::Kate::Ruby] módulo Perl en CPAN para o coloreado sintáctico de Ruby dentro de [[Kate]] (en inglés)
* [http://search.cpan.org/perldoc?Inline::Ruby::dRuby::Client Inline::Ruby::dRuby::Client] módulo Perl en CPAN, delegador de obxectos dRuby (en inglés)
{{Linguaxes de programación}}
{{Control de autoridades}}
|