Upload
angelalegna
View
2.632
Download
2
Embed Size (px)
DESCRIPTION
Basada en la presentación The Top 10 Reasons The Ruby Programming Language Sucks! pero en Español
Citation preview
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