domingo, 7 de agosto de 2016

Historia del Smalltalk

Smalltalk (no se escribe SmallTalk, ni Small-talk, ni Small-Talk) es un proyecto que lleva más de 30 años de desarrollo. Fue inventado por un grupo de investigadores liderados por Alan Kay, en Xerox PARC (Palo Alto Research Center), durante los años 70s.  El proyecto de investigación produjo varios resultados intermedios que fueron conocidos como Smalltalk/71, Smalltalk/72, Smalltalk/76 y Smalltalk/80.



El Smalltalk usado hoy en día es un descendiente directo del Smalltalk/80 y conserva prácticamente todas sus características.

El proyecto ha generado una cantidad muy grande de invenciones que llegaron a nuestros días.

Por razones que desconozco el proyecto Smalltalk no cuenta con la reputación y la fama que se merece.  Es muy frecuente encontrarse con profesionales de la informática que no saben del proyecto ni de sus aportes. Sin embargo utilizamos a diario varias ideas que fueron desarrolladas en el proyecto Smalltalk.

Computadora Personal: La idea de que cada persona pueda disponer de una computadora de uso personal, con una potencia de cálculo suficiente para ser la herramienta de acceso a la información, tiene sus raíces en las ideas de la Dynabook de Alan Kay.

Interfaces gráficas de usuario: Smalltalk, desde sus inicios, contó con una rica interfaz de usuario gráfica manejada por un ratón.  Las ventanas superpuestas, las barras de desplazamiento, el copiar y pegar, los menús de contexto, etc son todos desarrollos del proyecto Smalltalk que años más tarde Apple ayudó a masificar.


Informática: Son innumerables la cantidad de aportes que el Smalltalk ha hecho a la informática.  Empezando con el paradigma de orientación a objetos y terminando con cosas muy técnicas como la operación BitBlt (http://en.wikipedia.org/wiki/Bit_blit). La lista continua con las metodologías ágiles (http://en.wikipedia.org/wiki/Extreme_Programming), los patrones de diseño (http://en.wikipedia.org/wiki/Design_Patterns), el concepto de entorno de desarrollo, etc.

El proyecto Smalltalk también ayudó a afianzar el uso de los lenguajes dinámicos, los recolectores de basura, el uso de máquinas virtuales, etc.

La lista continua: Unit Testing (http://en.wikipedia.org/wiki/Unit_test), Refactoring y Refactoring Browser (http://en.wikipedia.org/wiki/Refactoring), y un gran etc.