Ruby: un lenguaje dinámico moderno
Esteban Manchado Velázquez
[email protected]
12 de agosto de 2005
Índice
1 Introducción
Antes de nada...
Sobre el lenguaje
2 El lenguaje
A grandes rasgos
Más características
3 Extras del DVD
Mixin
Reflexión
Índice
1 Introducción
Antes de nada...
Sobre el lenguaje
2 El lenguaje
A grandes rasgos
Más características
3 Extras del DVD
Mixin
Reflexión
Sobre esta charla
• No se va a enseñar a programar
Sobre esta charla
• No se va a enseñar a programar
• Espero que eso sea un alivio
Sobre esta charla
• No se va a enseñar a programar
• Espero que eso sea un alivio
• Presentación a grandes rasgos (falta de tiempo)
Sobre esta charla
• No se va a enseñar a programar
• Espero que eso sea un alivio
• Presentación a grandes rasgos (falta de tiempo)
• Más en Rubíes (http://www.ruby.org.es)
Índice
1 Introducción
Antes de nada...
Sobre el lenguaje
2 El lenguaje
A grandes rasgos
Más características
3 Extras del DVD
Mixin
Reflexión
• Lo inventó un japonés llamado Yukihiro Matsumoto
Nacimiento de Ruby
Nacimiento de Ruby
• Lo inventó un japonés loco llamado Yukihiro Matsumoto
• Todo el mundo lo conoce como matz
Nacimiento de Ruby
• Lo inventó un japonés loco llamado Yukihiro Matsumoto
• Todo el mundo lo conoce como matz
• ((Ruby)) viene de Perl → Pearl
Nacimiento de Ruby
• Lo inventó un japonés loco llamado Yukihiro Matsumoto
• Todo el mundo lo conoce como matz
• ((Ruby)) viene de Perl → Pearl
• I wanted a scripting language that was more powerful than
Perl, and more object-oriented than Python
Nacimiento de Ruby
• Lo inventó un japonés loco llamado Yukihiro Matsumoto
• Todo el mundo lo conoce como matz
• ((Ruby)) viene de Perl → Pearl
• I wanted a scripting language that was more powerful than
Perl, and more object-oriented than Python
• They are focusing on machines. But in fact we need to focus
on humans, on how humans care about doing programming or
operating the application of the machines. We are the
masters. They are the slaves
Nacimiento de Ruby
• Lo inventó un japonés loco llamado Yukihiro Matsumoto
• Todo el mundo lo conoce como matz
• ((Ruby)) viene de Perl → Pearl
• I wanted a scripting language that was more powerful than
Perl, and more object-oriented than Python
• They are focusing on machines. But in fact we need to focus
on humans, on how humans care about doing programming or
operating the application of the machines. We are the
masters. They are the slaves
• Don’t underestimate the human factor. Even though we are in
front of computers, they are media. We are working for
human, with human
Nacimiento de Ruby
• Lo inventó un japonés loco llamado Yukihiro Matsumoto
• Todo el mundo lo conoce como matz
• ((Ruby)) viene de Perl → Pearl
• I wanted a scripting language that was more powerful than
Perl, and more object-oriented than Python
• They are focusing on machines. But in fact we need to focus
on humans, on how humans care about doing programming or
operating the application of the machines. We are the
masters. They are the slaves
• Don’t underestimate the human factor. Even though we are in
front of computers, they are media. We are working for
human, with human
• You want to enjoy life, don’t you? If you get your job done
quickly and your job is fun, that’s good, isn’t it? That’s the
purpose of life, partly. Your life is better
Características
• ((Perl moderno)), ((Perl orientado a objetos))
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
• Sintaxis limpia, modo poesía, ((sufijos)) de sentencias
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
• Sintaxis limpia, modo poesía, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
• Sintaxis limpia, modo poesía, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
• Sintaxis limpia, modo poesía, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
• Sintaxis limpia, modo poesía, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
• Documentación empotrada
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
• Sintaxis limpia, modo poesía, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
• Documentación empotrada
• Inmaduro (cambios, pocos módulos de desarrollo activo)
Características
• ((Perl moderno)), ((Perl orientado a objetos))
• Completamente orientado a objetos (¡hasta nil!)
• Sintaxis limpia, modo poesía, ((sufijos)) de sentencias
• Sangrado libre, marcas de fin de estructura
• Uso de mayúsculas y minúsculas (constantes, variables)
• Se usan mucho los bloques (funciones anónimas)
• Documentación empotrada
• Inmaduro (cambios, pocos módulos de desarrollo activo)
• Comunidad abierta (refugiados; RoR)
Para aprender...
• Entre Perl y Python en cuanto a integración
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
• Consulta de documentación, ayuda interactiva: ri e ihelp
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
• Consulta de documentación, ayuda interactiva: ri e ihelp
• Consulta de documentación en web:
http://www.ruby-doc.org/find/pickaxe/string
Para aprender...
• Entre Perl y Python en cuanto a integración
• Consola interactiva: irb
• Documentación empotrada de referencia: rdoc
• Consulta de documentación, ayuda interactiva: ri e ihelp
• Consulta de documentación en web:
http://www.ruby-doc.org/find/pickaxe/string
• En el caso de Rails y otros, de moda los vídeos
Índice
1 Introducción
Antes de nada...
Sobre el lenguaje
2 El lenguaje
A grandes rasgos
Más características
3 Extras del DVD
Mixin
Reflexión
Micro-intro a la OO
• Clases de objetos
Micro-intro a la OO
• Clases de objetos
• Los objetos responden a métodos
Micro-intro a la OO
• Clases de objetos
• Los objetos responden a métodos
• Los objetos tienen atributos
Micro-intro a la OO
• Clases de objetos
• Los objetos responden a métodos
• Los objetos tienen atributos
• Las clases heredan de otras
Micro-intro a la OO
• Clases de objetos
• Los objetos responden a métodos
• Los objetos tienen atributos
• Las clases heredan de otras
• Al menos teóricamente, la OO nos hace natural pensar en
términos que facilitan reducir el acoplamiento entre conceptos
diferentes
Micro-intro a la OO
• Clases de objetos
• Los objetos responden a métodos
• Los objetos tienen atributos
• Las clases heredan de otras
• Al menos teóricamente, la OO nos hace natural pensar en
términos que facilitan reducir el acoplamiento entre conceptos
diferentes
• No les culparé si no se lo tragan
OO en Ruby
• Simple, cómoda de escribir
OO en Ruby
• Simple, cómoda de escribir
• Es la forma natural de resolver los problemas
OO en Ruby
• Simple, cómoda de escribir
• Es la forma natural de resolver los problemas
• Herencia simple
OO en Ruby
• Simple, cómoda de escribir
• Es la forma natural de resolver los problemas
• Herencia simple
• Métodos terminados en ((!)) y ((?))
OO en Ruby
• Simple, cómoda de escribir
• Es la forma natural de resolver los problemas
• Herencia simple
• Métodos terminados en ((!)) y ((?))
• Métodos especiales ((=)) para caramelos sintácticos
OO en Ruby
• Simple, cómoda de escribir
• Es la forma natural de resolver los problemas
• Herencia simple
• Métodos terminados en ((!)) y ((?))
• Métodos especiales ((=)) para caramelos sintácticos
• No existen los atributos (desde fuera)
OO en Ruby
• Simple, cómoda de escribir
• Es la forma natural de resolver los problemas
• Herencia simple
• Métodos terminados en ((!)) y ((?))
• Métodos especiales ((=)) para caramelos sintácticos
• No existen los atributos (desde fuera)
• Se usa ((@)) y ((@@)) para los atributos de objeto/clase
OO en Ruby
• Simple, cómoda de escribir
• Es la forma natural de resolver los problemas
• Herencia simple
• Métodos terminados en ((!)) y ((?))
• Métodos especiales ((=)) para caramelos sintácticos
• No existen los atributos (desde fuera)
• Se usa ((@)) y ((@@)) para los atributos de objeto/clase
• Se puede escribir en estilo no OO, pero en realidad es OO
Estructuras
• Pocas, en parte por los bloques
Estructuras
• Pocas, en parte por los bloques
• if, case, while, loop, for
Estructuras
• Pocas, en parte por los bloques
• if, case, while, loop, for
• if tiene elsif aparte de else, y devuelve un valor
Estructuras
• Pocas, en parte por los bloques
• if, case, while, loop, for
• if tiene elsif aparte de else, y devuelve un valor
• if tiene then opt
Comentarios de: Ruby: un lenguaje dinámico moderno (0)
No hay comentarios