En mi laburo la semana que viene voy a hacer una presentación de Ruby
de aproximadamente una hora. El público son principalmente gente que
sea programar bien en C++ y/o Python, incluyendo algunos viejos
smalltalkers.
Mi idea para hacer la presentación es no usar Powerpoint (solo un
pizarrón, ejecutar ruby de línea de comando y un irb, quizás también
usando el eclipse con el plug-in para ruby) y codear en vivo todo lo
que muestre. Voy a evitar hablar mucho de rails, porque podría
gastarme la hora entera en rails y no entra. Si quiero mostrar algunas
librerías bien "rubyescas" tipo markaby, rake y quizás ActiveRecord
(no tengo claro la última). El objetivo de la presentación no es que
aprendan Ruby en una hora sino volarles la cabeza con cosas que no se
pueden hacer en otros lenguajes y que se queden con ganas de probar
como andan todas esas cosas locas.
Mi idea es organizarlo así:
Minuto 0: Me presento, doy la agenda de la presentación.
Minuto 1: Historia de ruby y comparación con Perl, Smalltalk y Python.
Minuto 5: Abro el irb y muestro el uso básico del lenguaje.
Operaciones con enteros y strings. Muestro un toque que es un symbol.
Minuto 10: Abro un editor de texto (quizás rubyeclipse) y codeo la
primera clase. Muestro herencia. Muestro el acceso de variables de
instancia con @var.
Minuto 15: Hago un modulo y lo incluyo en una clase (mixin).
Minuto 20: Abro el irb de nuevo y agrego/overrideo un método en un
objeto de la clase de recién. Hablo sobre como se pueden overridear
objetos sin necesariamente tener que definir clases nuevas.
Minuto 25: Muestro como usar un closure con los Enumerables (each,
inject, filter y sus amigos).
Minuto 30: Empieza el show de verdad. Empiezo a mostrar la
maleabilidad del lenguaje. En la clase Object defino el método self
así:
def self
this
end
Digo que extraño java :D (voy a mentir un poquito) y lo uso 2 minutos
en vez de self.
Minuto 35: Muestro los métodos attr_* y los uso en mi clase.
Minuto 38: Empiezo a definir métodos nuevos y overrideados en String,
Object y sus amigos.
Minuto 43: Defino mis propios métodos similares a los attr_* en Module
y los uso en la clase (hablo de metaprogramación, digo que rails hace
algo parecido para un montón de cosas).
Minuto 48: Uso method_missing y hago algo que muestre como se llaman
los métodos que llamo y no están definidos. Hablo de markaby y lo
muestro. Hablo de los dsls.
Minuto 53: Muestro como usar una biblioteca que tiene 200 líneas de
código (está en http://snippets.dzone.com/posts/show/2190) como para
reemplazar el yacc. Digo que Ruby es más poderoso que C/C++ porque en
C/C++ necesitás salir fuera del lenguaje para hacer eso.
Minuto 58: Hablo de rake (quizás muestro un ejemplito de como compilar
un Hello World en C con rake).
Minuto 60: Descanso.
¿Les parece que puedo sacar algo? ¿Pondrían algo? ¿Tienen alguna
experiencia haciendo presentaciones de ese tipo?
Escucho comentarios,
Aureliano.
_______________________________________________
ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar