domingo, 4 de septiembre de 2016

A desarrollar con Smalltalk!!

Vamos a introducirnos de lleno en la programación con Smalltalk.  Aprender a programar con Smalltalk es mucho más que aprender una sintaxis y una librería de clases; es mucho más importante conocer como utilizar el ambiente en nuestro beneficio y entender que implica utilizar un ambiente de objetos vivos.

Smalltalk no es sólo un lenguaje de computación,  Smalltalk es un ambiente donde conviven objetos y estos interactúan entre sí enviándose mensajes.  Toda la computación ocurre como el resultado del envío de mensajes a los objetos.  Cuando un usuario interactúa con un ambiente Smalltalk, este ambiente se ve modificado como efecto de esa interacción.

Recordemos que en Smalltalk todo es un objeto. Las clases, los métodos, etc (obviamente) también son objetos y para impactar sobre ellos debemos enviarles mensajes. Esto implica que la tarea de programación no es diferente a cualquier otra cosas que se haga en un ambiente Smalltalk: Objetos que reciben mensajes y que reaccionan como efecto de ese envío de mensajes.

En Smalltalk no existe diferencia entre “desarrollo” y “ejecución”, sino que la programación se hace modificando objetos mientras estos están funcionando.  Para ilustrar mejor esta idea vamos a desarrollar, paso a paso, un ejemplo sencillo.  El ejemplo, también, nos servirá para tomar un primer contacto con las principales herramientas de desarrollo con Smalltalk.

Entonces empecemos descargando Pharo, recuerden el post de recursos sobre Pharo.

Si no tuvieron problema lo pudieron abrir y vieron algo como esto:


Cerramos esta ventana de bienvenida y hacemos click con lo que se abrira un menu en el cual podemos seleccionar System browser y nos abrirá la siguiente ventana:


El browser está compuesto principalmente por 4 paneles superiores y un panel inferior. En los paneles superiores encontraremos - de izquierda a derecha - las Categorías de Clases, las Clases, las Categorías de Métodos y los Métodos.

Podemos hacer un nuevo package si seleccionamos add package.

Luego si hacemos click en el panel de objetos aparecerá el siguiente menú:



Programar con Smalltalk es enviar mensajes a objetos que viven en un ambiente. Programar, con Smalltalk, no es más que modificar un ambiente de objetos y adaptarlo a nuestra necesidad.

Al crear una nueva categoría, esta se selecciona automáticamente y vemos en el panel inferior una plantilla (un template) para crear una clase nueva.  Para crear una nueva clase tenemos que enviarle un mensaje a la superclase, para eso nos podemos valer de la plantilla que el Browser de Clases nos ofrece.  Simplemente reemplazamos donde dice NameOfSubclass por el nombre de la clase que queremos crear. Y de esta forma tenemos una nueva clase.


En un próximo post veremos crear un método.