Blog de Diego Gómez Deck
La magia del Smalltalk: CapÃtulo 2 - ¿IDE? no gracias
Julio 27th, 2005 - [Enlace local]
Es muy difÃcil mostrar las diferencias que tiene Smalltalk con los lenguajes de programación “tradicionalesâ€?.
Una de las cosas que cuesta trabajo ver es la diferencia que implica el hecho que Smalltalk sea un ambiente. Un ambiente de Smalltalk no es un nuevo tipo de IDE (Integrated Development Environment). En Smalltalk los objetos sobreviven al hecho de salir del Smalltalk. Todos los objetos que tengamos instanciados son grabados, en el estado exacto que están, al disco rÃgido en el momento de grabar la imagen (se llama imagen porque queda en el disco una imagen de la memoria de la máquina).
Este hecho nos expone a ciertas caracterÃsticas que ni soñamos cuando usamos lenguajes con el clásico ciclo de desarrollo: vi/emacs > compilar > ejecutar el código > depurar > vi/emacs. Los nuevos IDEs (como el Eclipse) disimulan ese ciclo, pero no lo mejoran.
La diferencia fundamental es que, en Smalltalk, los objetos están siempre “vivos�, y no mueren cuando uno tiene que escribir código. Este implica, entre otras cosas, que los objetos sobreviven a los cambios en las clases.
Una de las primeras cosas que suelo mostrar cuando explico Smalltalk es lo siguiente:
Este simple ejercicio muestra una caracterÃstica fundamental de la programación con Smalltalk. Ahora imaginemos que salimos (grabando) del Squeak después del segundo paso, que nos vamos de vacaciones por 15 dÃas, y que abrimos el Squeak y hacemos los otros 2 pasos.... ¿Qué es lo que ocurre? Nada. Sólo ocurrió que nuestro objeto (la única instancia de Customer) se "durmió" una siesta de 15 dÃas esperando hasta que lo despertemos (¡Al mejor estilo de Walt Disney!).
De hecho, en cualquier Squeak actual, hay objetos que llevan casi 30 años instanciados (desde el Smalltalk/76).
Una de las cosas que cuesta trabajo ver es la diferencia que implica el hecho que Smalltalk sea un ambiente. Un ambiente de Smalltalk no es un nuevo tipo de IDE (Integrated Development Environment). En Smalltalk los objetos sobreviven al hecho de salir del Smalltalk. Todos los objetos que tengamos instanciados son grabados, en el estado exacto que están, al disco rÃgido en el momento de grabar la imagen (se llama imagen porque queda en el disco una imagen de la memoria de la máquina).
Este hecho nos expone a ciertas caracterÃsticas que ni soñamos cuando usamos lenguajes con el clásico ciclo de desarrollo: vi/emacs > compilar > ejecutar el código > depurar > vi/emacs. Los nuevos IDEs (como el Eclipse) disimulan ese ciclo, pero no lo mejoran.
La diferencia fundamental es que, en Smalltalk, los objetos están siempre “vivos�, y no mueren cuando uno tiene que escribir código. Este implica, entre otras cosas, que los objetos sobreviven a los cambios en las clases.
Una de las primeras cosas que suelo mostrar cuando explico Smalltalk es lo siguiente:
- Creo una clase vacÃa, sin nada.
- Instancio un objeto de esa clase y lo inspecciono.
- Con el inspector a la vista, sin cerrarlo, modifico la estructura de la clase (por ejemplo agregando una variable de instancia).
- Ahora el inspector muestra la instancia actualizada a la nueva forma de la clase.
Este simple ejercicio muestra una caracterÃstica fundamental de la programación con Smalltalk. Ahora imaginemos que salimos (grabando) del Squeak después del segundo paso, que nos vamos de vacaciones por 15 dÃas, y que abrimos el Squeak y hacemos los otros 2 pasos.... ¿Qué es lo que ocurre? Nada. Sólo ocurrió que nuestro objeto (la única instancia de Customer) se "durmió" una siesta de 15 dÃas esperando hasta que lo despertemos (¡Al mejor estilo de Walt Disney!).
De hecho, en cualquier Squeak actual, hay objetos que llevan casi 30 años instanciados (desde el Smalltalk/76).



