Bienvenido al Mundo Ruby

(Actualice este artículo sobre uno que escribí hace mucho tiempo acerca de Smalltalk cuando aun no conocía Ruby)

Durante años los lenguajes de programación trataron de crear un Mundo con Objetos en el cual desarrollar las ideas mas modernas de la Computación y Desarrollo de Sistemas.

Apareció un extraño híbrido llamado C++, el cual se presento en la misma piel del Cordero ( en forma de C ) para “agradar” a los Conocedores y ofrecerles los fabulosos conceptos de la OOP (programacion orientada a objetos). Pero su farsa se fue descubriendo poco a poco. El Lobo en piel de Cordero comenzo a “Morder” a los programadores Confiados.
Punteros voladores, memoria corrupta, métodos debiles y una Herencia a medias por los Tipos, si esos mismos que acompañaron durante años al venerable Pascal y que permiten comunicarse únicamente entre ellos mismos.

Un jugador mas moderno aparecio en escena. Con influencias “Oscuras” trató de conquistar la posición del Lenguaje de los Objetos (write once, run everywhere) “Escribelo una vez, ejecutelo donde sea” era su leyenda. La magia del santo grial. Solo hay que aprenderse estos Tipos Básicos, estas estructuras de Control, las Interfaces, los manejadores de Eventos, el AWT, el Swing, usar el Compilador, empaquetar las clases, Modularizar, etc, etc.

Java prometio lo increible, sistemas empotrados, páginas Web interactivas de contenido dinámico, computación distribuida, bla bla bla. No puede negarse que la industria se dejo convencer, de hecho su popularidad actual es mayúscula sin duda, pero…

El sueño terminó poco a poco y algunos “Atrevidos” escribieron sus propios lenguajes de “Script”. Perl (arghhh), Python, Ruby y una decena mas de sistemas de Prototipos (C#, Eiffel) para solventar los grandes problemas de Programación que Java no resolvió.

Asi escribí en esa época los párrafos siguientes (sin intención de lastimar).

“Pero alguien ya estuvo ahi, hace muchos años ya habia llegado, creo su propio mundo; Vivo, lleno de Objetos dispuestos a rendirse ante las manos de los magos y obedecer a todos y cada uno de los mensajes que les fueran enviados para realizar todos los trucos aprendidos y de paso nunca olvidarlos, guardarlos en la Memoria Colectiva de la “Imagen” del sistema. Asi al regresar los magos, toda su hechicería estaría celosamente guardada, impenetrable, tan solo accesible mediante los conjuros sagrados del Smalltalker, de aquellos que aprendieron esas 5 palabras mágicas… nil, super, self, true y false. Para ordenar, para ser obedecidos por sus objetos. Para crear la magia de Smalltalk…

Lo increible es que “La Magia” no aparecio en los 90’s o ni en los Tiempos de Cindy Lauper (80’s) sino mucho antes cuando las letras del Rey Lagarto aun causaban Furor, cuando el Heavy Metal era apenas una Clase de Objeto de Culto al Rock creada por los Magos de Led Zepellin, cuando Jimmy Hendrix Miraba hacia abajo a los pobres mortales que aun no podian entender La Magia de su Fender. Asi Smalltalk el lenguaje de programación orientada a Objetos mas puro del Mundo ya existía.

Alan Kay tuvo una brillante Idea despues de Ver Simula y Sketchpad. Porque no construir Objetos que entiendan su propio Mundo y solo Obedezcan cuando les das el Mensaje correcto.

Pelota gira; bota; cambiaColor: azul; desinflate.

Y la pelota gira y Bota y cambia su color ante los admirados ojos del Expectador. Y la magia esta ahi dentro, solo hay que leerla, solo hay que absorberla, beberla. No aprenderla ni recordarla. La magia esta ahi y se da sola.

Smalltalk es “El lenguaje”, es la magia de los objetos en forma real, subyugante, atrevida y fantastica. “Para conocer el Futuro solo hay que Inventarlo”, Alan Kay.”

Me ilusione tanto con Smaltalk que pasaba por alto los que estaba sucediendo en el Mundo Actual de la computación. Asi que llegue al extremo.

“Sigo sin entender Java ni C++, menos C#. Sigo sin entender para que hacer tantos y tantos lenguajes pudiendo extender la metáfora de Objetos Puros. “Al infinito y más alla, Buzz Lightyear 2002”

Sigo sin creer que el Lenguaje mas simple de Manipulación de Objetos, que admiró a Steve Jobs y lo inspiró para crear la “Mac”, que invento las Ventanas (windows) el Mouse y el ambiente Gráfico no domine al Mundo. (Smalltalk dominate: World; subyugate: Windows; conquer: Linux)”

Intente durante años utilizar Smalltalk en sus diversas presentaciones, Squeak, Dolphin, GNUSmalltalk, hasta lo utilice con Windows, eso si fue radical, abandonar mi sistema favorito (Linux) solo para probar si Smalltal podía darme lo que ofrecía, o al menos lo que yo creia que ofrecía.

Oh desilusión, Alan Kay tal vez tenía razón, El futuro hay que inventarlo, y en esencia Matsumoto hizo precisamente eso, sin dudarlo mezcló la Pureza de Objetos de Smaltalk con algunas ideas de Lisp asi como de Perl para procesar texto, para crear el Futuro, para crear Ruby.

No tengo una gran experiencia en Ruby todavía, aun se me dificulta Ruby on Rails y me peleo con los manuales de Ruby-Gnome y Gtk para crear mis interfases pero eso es solo cuestión de tiempo y controlar mi paciencia. Realmente Ruby revive la Ilusión de la programación con objetos.

Se que algunos dirán que Python podría también ser esa solución pero el solo hecho de utilizar los Tabs para controlar la estructura del código me remonta a mis días como Programador de COBOL, un formato basado en espacios predeterminados y todo eso, además de el famoso “self” por aqui y por alla y la constante aparición de símbolos con __subguiones__ es casi “chocante”.

Repitamos la esencia de lo que crei tener con smalltalk pero que Ahora si está en Ruby…

Bienvenido al Nuevo Mundo Bienvenido a Ruby…

Esperemos que se cumpla con la nueva generación de Compiladores, Interpretes y Nuevos Ambientes como Yarv, Rubinius, JRuby y pueda yo escribir mi sentencia favorita de control:  ruby.dominar(mundo).subyugar(linux).conquistar(internet).

¡Lean por favor la página de tutoriales que estoy empezando y aprendamos juntos el camino hacia el futuro!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: