Smalltalk
Un lenguaje orientado a objetos temprano en el que todo es un objeto y todo cómputo es paso de mensajes.
31 pasos en 1 tours, desde lo básico hasta programas completos.
Los tours
- Primera versión
- 1972
- Creado por
- Alan Kay, Dan Ingalls, and Adele Goldberg at Xerox PARC
- Tipado
- Dinámico y puro; la gramática entera cabe en una postal
- Los fragmentos siguen
- Pharo 13
- Extensiones de archivo
- .st
Para qué sirve
Smalltalk es el lenguaje que le dio nombre a la programación orientada a objetos: construido en Xerox PARC en los años 70 por el Learning Research Group de Alan Kay, junto a la GUI de mapa de bits, las ventanas superpuestas y el IDE vivo — inventos que el resto de la computación tardó décadas en absorber. El diseño es radicalmente uniforme: todo es un objeto, todo cómputo es envío de mensajes, y los condicionales y bucles no son sintaxis sino mensajes que booleanos y bloques responden.
Su entorno de trabajo sigue sin parecerse a nada: la imagen, una foto viviente de cada objeto del sistema, editada desde adentro con navegadores e inspectores, donde el depurador te deja arreglar un método y continuar a mitad de excepción. La práctica moderna se centra en Pharo, un descendiente open source en desarrollo activo, con Squeak cargando el linaje directo de Smalltalk-80 y GemStone corriéndolo en la industria; Cincom e Instantiations sirven sistemas comerciales longevos en seguros, transporte y manufactura.
Su influencia pesa un orden de magnitud más que su cuota de mercado: Objective-C es C vistiendo su sintaxis de mensajes, Ruby toma prestados sus bloques y su modelo de objetos, el linaje de VMs y JITs de Java pasa por implementaciones de Smalltalk, y el desarrollo guiado por pruebas más la familia xUnit empezaron como SUnit. Aprenderlo es leer el código fuente de media cultura moderna de programación.
De dónde viene
Smalltalk-72 surgió de la visión del Dynabook de Alan Kay — computación personal para la infancia — en Xerox PARC, con Dan Ingalls implementando la primera versión a partir de una apuesta de que un lenguaje podía definirse en una página de código. Durante los 70 evolucionó dentro de PARC junto a la estación Alto, creciendo la GUI, el navegador de clases y el entorno de objetos vivos como un solo artefacto.
Smalltalk-80 fue la salida al público: licenciado a cuatro empresas, documentado en el 'libro azul' de Adele Goldberg, y mostrado célebremente a Apple — la demo que moldeó la Lisa y la Macintosh. Los 80 y 90 trajeron Smalltalks comerciales (ParcPlace, Digitalk, IBM VisualAge) y adopción empresarial seria, hasta que la llegada de Java a mediados de los 90 absorbió buena parte de ese mercado — irónicamente, con el VisualAge para Java de IBM construido sobre tecnología Smalltalk.
Squeak (1996) reabrió el linaje como open source, liderado por el equipo original de PARC; Pharo se bifurcó de él en 2008 con una visión más limpia y de movimiento rápido y se volvió el centro del Smalltalk moderno — entregas anuales, una comunidad de investigación entre Europa y Sudamérica, y usuarios industriales que nunca se fueron. Los descendientes de SUnit, mientras tanto, volvieron universal el término 'prueba unitaria'.
Cómo se siente teclearlo
Smalltalk se escribe como conversación por escrito: mensajes de palabra clave largos — at:ifAbsent:, inject:into:, do:separatedBy: — se intercalan con sus argumentos, así que los dos puntos caen constantes y el camelCase corre largo. Las cascadas encadenan con punto y coma, las temporales se declaran entre barras verticales, los bloques abren con corchete y argumento con dos puntos, y := hace la asignación. Casi no existe otra puntuación: sin llaves, sin paréntesis de llamada, puntos cerrando sentencias como oraciones. El ritmo corre más lento que en la familia C porque las palabras son frases enteras — tipeo deliberado y legible.
31 pasos en 1 tours, desde lo básico hasta programas completos.