El Blog de Lito Steel

Comentarios, posturas y propuestas sobre Linux, Rock y Tecnología Java. Bienvenidos!

lunes, mayo 22, 2006

Bienvenido al nuevo Mundo, Bienvenido a Smalltalk

Durante años los lenguajes de programación tratarron de crear un Mundo con Objetos en el cual desarrollar las ideas mas modernas de la Computación y del 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 no permiten mas que comunicarse 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.

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ó.

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...

Los increible es que "La Magia" no aparecio en los 90's o 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 del 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 su Fender. Asi Smalltalk el lenguaje 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.

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

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).

Algunos interesantes links:
Gnu Smalltalk (mi favorito, con bindings GTK)
Squeak (bastante ogirinal)
Dolphin Smalltalk