La semana pasada, en nuestra sección Historia del Software, les contamos sobre GUI (Graphical User Interface) o interfaz gráfica de usuario. En ese mismo texto, también les mencionamos la existencia de Smalltalk, uno de los primeros lenguajes de programación gráficos que fue implementado en el modelo Alto salido de Xerox PARC. Eventualmente, Smalltalk serviría de inspiración para los sistemas operativos orientados a objetos de Apple Computers, pero nos estamos adelantando a la historia. Les prometimos contarles sobre Smalltalk, y aquí estamos, así que nos remontaremos al principio.

La primera versión de Smalltalk se conoce como Smalltalk-80, aunque hay una gran cantidad de variantes aún utilizadas hoy en día. El primer Smalltalk fue el resultado del trabajo de una investigación liderada por Alan Kay, un miembro del equipo de Xerox PARC. Primero, se desarrolló Smalltalk-71, creada por un desarrollador llamado Dan Ingalls que pensó un lenguaje de programación basado en la idea de mensajes y que se podía reducir a una página de código. Pero estas versiones de Smalltalk eran bastante diferentes a lo que luego sería el producto final.

Luego, se lanzó la versión Smalltalk-76. Esta versión contenía elementos ya conocidos por todos y que significaron un avance importante. Por ejemplo, herramientas importantes como una librería y editor de código, metaclases que mantenían la idea de que “todo es un objeto”, y más. Pero Smalltalk-80 fue el primer lenguaje que se hizo disponible fuera de Xerox PARC, repartido a compañías como Hewlett-Packard y, por supuesto, Apple, que para ese entonces ya era cercana a las investigaciones en el Centro.

¿Por qué es importante Smalltalk en la historia del software? No solamente es importante, sino que podríamos decir que es fundamental para comprender a la computación de usuarios como la conocemos hoy en día. El concepto central de Smalltalk es el de objeto. Cuando ingresamos a un entorno de Smalltalk, no estamos haciendo una interacción directa con código sino que lo hacemos en un entorno de objetos virtuales. Lo que hacemos es enviarles “mensajes” para esperar una respuesta. Justo lo que Ingalls imaginaba con su primera versión, que sorprendentemente fue bocetada en tan sólo una mañana. Así era cómo fluían las ideas en Xerox PARC.

Por ende, Smalltalk consiste solamente de objetos. Todos los elementos del programa son considerados objetos que tienen 4 características comunes:

  • Memoria propia

  • Comunicación con otros objetos

  • Posibilidad de “heredar” las características de otros objetos

  • Posibilidad de procesamiento

Smalltalk, entonces, es considerado el primer lenguaje de programación orientado a objetos, que fue implementado en algunos productos importantes como Squeak, VisualWorks, Dolphin, y más. La herencia de Smalltalk es una de las más importantes de la programación, y no debería ser olvidada.