por qué ruby
DESCRIPTION
Basada en la presentación The Top 10 Reasons The Ruby Programming Language Sucks! pero en EspañolTRANSCRIPT
El Lenguaje de Programación Ruby
No debe haber librerías
• Ruby cuenta con:
• 96 librerías estandar
• Ruby Application Archive (RAA) cuenta con más de 1,200 aplicaciones y librerías
• RubyForge hospeda más de 800 proyectos open sources
• RubyGems tiene más de 900,000 gems, las librerías de Ruby
96 librerías estándar
Read/WriteRead/Write CSV XML YAML
Talk toTalk to Email FTP Web
ServeServe Code Servlets XML-RPC
Work withWork with MathTemplate
sThreads
Tools forTools forDebuggin
gDocs Testing
No debe tener soporte• Documentación
• Ruby Core está 100% documentado
• La documentación de las librerías Standard library está en progreso
• Tutoriales disponibles en diferentes niveles de dificultad
• E-Books de Ruby
• Comunidades
• Listas de correo en diferentes lenguajes
• Usenet groups
• Foros
Nadie lo utiliza ¿no?• Compañias que actualmente utilizan Ruby
• HP, Intel, NASA
• Usos para Ruby
• Simulación, generación de código, procesamiento de imágenes, prototipado y más.
• Aplicaciones finales
• Ruby on Rails
• Web services como Basecamp y Blinksale lo utilizan
Sintáxis Opcional
• No se necesita el ;
• Paréntesis opcionales
Sintáxis de Objetos
• obj.atributo = metodo
• dangerous! y query? metodos
Sintáxis simple y flexible
• Declaraciones simples:
• local_var = ...
• @instance_var = ...
• do...end or {...}
• Manejo de excepciones como en Java
• Interpolación de código Rugy dentro de un String cualquier código dentro de #{...}
Una comparación con otros lenguajes
• Ruby: puts “Hello world!”
• Java: tresLargasLíneas.queEsperamosNoHaberTipeado mal...
• Perl: #$<!&;
• Lisp: ((a(((b)))(c)))
Ciclos en Ruby
La MayoríaLa Mayoría RubyRuby
while { ... }until { ... }
while ... enduntil ... end
do { ... } whiledo { ... } until
begin ... end while
begin ... end untilforeach { ... } each do ... end
for(...;...;...) { ... }
Iteradores
• Los Objetos saben recorrerse a sí mismos
• No más errores de “N + 1”
Las Clases están abiertas
• Se pueden agregar métodos a las clases en cualquier momento
• Inclusive a las clases base de Ruby
• Sobrecarga de operadores