Intrducción Informal a Smalltalk por Germán S. Arduino

 

Una vez, maravillado por todo lo que estaba y estoy conociendo en el mundo Smalltalk y objetos, le conté a un amigo, también programador sobre Smalltalk.

 

Ahí me di cuenta lo difícil que es transmitir esto de los objetos a quiénes no han tenido oportunidad de ver algo del tema.

 
Entonces, decidí escribir algo a grandes rasgos (esto que estás leyendo) que me sirva para darle a cada nueva persona a la que hablaba de Smalltalk y Objetos.
 
Yo, personalmente, empecé a ver algunas cosas de Smalltalk más o menos a mediados del 2000.
 
Sinceramente desde que me metí en el asunto, me deslumbró, a medida que fui "viendo" cosas distintas del resto que yo conocía.

 

Yo trabajé con muchas cosas diferentes, desde lenguajes de mainframe tan toscos como el assembler hasta entornos visuales, sin embargo siempre había tenido la idea de que ninguna herramienta estaba a la altura de lo que uno necesita para resolver sistemas.
 
Cómo me explico mejor? Siempre pensé que se puede tener un diseño o una idea bárbara que solucione el problema en cuestión, pero luego no existen herramientas para convertir esas ideas en software de una manera más o menos fácil, sino que todas tienen más complicaciones inherentes a la propia herramienta que al problema que se quiere resolver.

 

Primer ejemplo: Las bases de datos, existe alguna otra cosa tan difícil y tediosa de mantener como una base de datos? (Ni hablar de los viejos archivos indexados o secuenciales).
 
Smalltalk y las lista de smalltalk en general son listas más enfocadas a cómo resolver un problema en particular (ya sea un sistema contable, un sistema de producción, una simulación de funcionamiento de máquinas o lo que sea) que a las particularidades técnicas de la herramienta que se usa. Esta fue la primer gran diferencia que noté con otros entornos.
 
Los objetos son objetos y los datos no existen, eso si que fue revelador para mi!.
 
En Argentina hay varias personas muy pero muy calificadas en este tema que es el desarrollo con objetos (no solamente "orientado a objetos"), así que aprovechando la generosidad de las personas que están en Smalltalking (grupo argentino de estudio de objetos) empecé a preguntar y tratar de aprender. Ello no me resultó muy fácil (me refiero a borrar de mi cabeza la vieja manera de trabajar y reeemplazarla por el pensar en términos de objetos), por varios motivos, pero siempre creí que querer es poder, así que me puse manos a la obra a tratar de aprender.
 
Smalltalking tiene un sitio (http://www.smalltalking.net) y un swiki (un ambiente de trabajo colaborativo escrito en Smalltalk) en http://smalltalking.swiki.net.
 
En estos dos sitios se llevan adelante interesantes proyectos así como también recopilación de referencias bibliográficas, entre ellos dos artículos muy interesantes y recomendables para leer:
 
"Por qué objetos?" escrito por Alejandro Reimondo.
 
y la traducción del clásico:
 
"Principios de Diseño de Smalltalk" de Dan Ingalls (uno de los integrantes del grupo original que junto a Alan Kay diseñaron Smalltalk en los laboratorios Xerox de Palo Alto y que hoy trabajan en el desarrollo de Squeak).
 
Respecto de los distintos Smalltalks disponibles, estos son algunos de ellos:
 
Squeak: http://www.squeak.org (Squeak es un smalltalk open source hecho en tiempos modernos en los laboratorios Disney por casi el mismo equipo original (Kay, Ingalls, etc.)).
 
Es multiplataforma y tiene un original concepto de diseño de GUIs (Morphic).
 
Este es uno de los Smalltalks más revolucionarios, más distintos de lo que uno conoce, con mucho enfoque a multimedia y 3D, algunos links interesantes sobre Squeak son:
 
http://www.squeakdoc.org/.
 
http://www.squeakland.org.
 
http://minnow.cc.gatech.edu/squeak (Es el swiki de Squeak, punto de partida para mucha documentación).
 
La lista de Squeak, podés verse desde http://egroups.yahoo.com , ahí escriben muchas personas, entre ellas los mismísimos Ingalls y Kay.
 
Unos tutoriales de un amigo argentino (Diego Gómez Deck): http://www.consultar.com/Squeak/tutorial/.
 
http://www.small-land.org Proyecto también de Diego GD para castellanizar el Squeak y aplicarlo a la educación.
 
Visual Works (Es un st multiplataforma, caro, pero bueno, es comercial, pero también hay una versión No Comercial para probar. http://www.cincom.com).
 
Visual Age para Smalltalk (El st de IBM, también bastante caro).
 
Smalltalk/X (Recientemente se liberó gratuitamente, era caro, es multiplataforma http://www.exept.de).
 
Dolphin (http://www.object-arts.com es un st muy bueno, accesible (u$s 349 la versión más cara) pero sólo para  Windows y con completa integración con COM, ActiveX y demás "artefactos" Microsoft).
 
Estas son sólo algunas referencias, pero en las páginas, particularmente el swiki de Smalltalking, hay mucha más información, como urls, precios, proyectos, etc.
 

Smalltalking también tiene una lista que funciona en http://egroups.yahoo.com (Yo estoy en esa lista, buscala por su nombre, Smalltalking y unite ya!).

 
A nivel internacional, dos sitios muy interesantes son:
 
http://www.smalltalk.org
http://www.whysmalltalk.com
 
pero hay muchísimos recursos más para consultar.
 
Desde el punto de vista del diseño, dos grandes contribuyentes al diseño de software con objetos son Kent Beck y Ward Cunningham (http://www.c2.com) y una cosa muy interesante para investigar es Programación Extrema (XP, que no es lo mismo que la XP de Microsoft ;-): http://www.xprogramming.com.
 
Bueno, por último y muy modestamente, en el sitio de mi pequeño emprendimiento personal, hay bastantes links sobre estos temas (http://www.arsol.net/links.htm) y también tengo un swiki personal con mails que me parecieron relevantes y extracté de la lista de Smalltalking, la dirección es: http://gsa.swiki.net.
 
Por último y para redondear, te cuento que una de las principales ventajas que le veo al Smalltalk, entre tantas, es que no tenés que estar cambiando de herramienta cada dos años (o menos), como nos fuerzan en las otras tecnologías.
 
La gente que leo a diario y que trabaja en serio en Smalltalk, está afuera de todo eso, se dedican a sus sistemas y a medida que el tiempo pasa se capitalizan (sus sistemas siguen teniendo vigencia), al revés que los programadores de las tecnologías de moda, que con cada nueva "cosa" que sale, tienen que tirar años de trabajo a veces solamente para cambiar la interfaz.
 
Yo creo que encontré mi camino como desarrollador independiente, Smalltalk, creo que me da lo que siempre busqué: Productividad, estabilidad, protección ante los cambios tecnológicos, posibilidad de hacer cualquier tipo de software (no sólo administrativo) y muuuuchas cosas más.
 
Bueno, esto es todo por ahora, espero que te sirva y te interese, y a partir de estas pocas líneas puedas comenzar tu camino en el mundo de los objetos.
 
Fecha de Escritura del Artículo: 03/05/2002
Fecha Ultima Actualización: 10/10/2003
 

Germán Arduino (Sunchales, Argentina) es un Consultor Independiente que gestiona su pequeña compañía ArSol.net donde se dedica a la venta de hosting y servicios internet y al desarrollo de software. Tiene 20 años administrando sistemas desde IBM 360 hasta servidores Intel con Windows y Linux y productos asociados. Hace el mismo tiempo que también desarrolla todo tipo de aplicaciones para diferentes plataformas en lenguajes tan disímiles como Assembler, RPG, CSP, Cobol, FoxPro, Visual FoxPro, Visual Basic, JavaScript, PHP, ASP, Perl, Python y Smalltalk. Puede ver su sitio personal o contactarlo vía e-mail.