Hay lenguajes que nacen para resolver un problema. Otros nacen para conquistar el mercado. Y unos pocos nacen para demostrar una idea.
Smalltalk pertenece a esta última categoría.
Más de cuarenta años después de su aparición sigue siendo, probablemente, el ejemplo más coherente de orientación a objetos que existe. No porque sea el lenguaje más rápido, ni el más popular, ni el que uno elegiría para comenzar un proyecto comercial. Sigue siendo especial porque pocas veces un lenguaje llevó una idea hasta sus últimas consecuencias con tan pocas concesiones.
Y eso sigue siendo interesante.
Cuando hoy hablamos de orientación a objetos solemos pensar en Java, C#, Python, Kotlin o Ruby. Todos ellos incorporan conceptos fundamentales del paradigma, pero también mezclan ideas provenientes de otros modelos. Tipos primitivos, funciones especiales, operadores con semántica propia, construcciones que escapan al modelo de objetos. No es una crítica; es el resultado natural de décadas de evolución y de necesidades prácticas.
Smalltalk toma otro camino. En lugar de negociar constantemente con otros paradigmas, decide mantenerse extraordinariamente fiel a una única filosofía. Todo participa del mismo modelo. No hay excepciones conceptuales. Uno puede estar de acuerdo o no con esa decisión, pero es difícil no admirar la consistencia con la que fue llevada adelante.
Como alguien que disfruta diseñando lenguajes, encuentro ahí una lección que muchas veces pasamos por alto. La simplicidad no siempre consiste en tener menos características; muchas veces consiste en que todas las características respondan a la misma idea. Un lenguaje coherente reduce la cantidad de modelos mentales que el programador necesita mantener al mismo tiempo. Esa coherencia tiene un valor enorme, aunque no siempre sea fácil de medir.
Sin embargo, la historia de la industria rara vez premia la pureza. Premia la integración con otras tecnologías, la disponibilidad de bibliotecas, el rendimiento, la compatibilidad con sistemas existentes, la facilidad para contratar desarrolladores y la existencia de un ecosistema sólido. Los lenguajes que terminan dominando el mercado suelen ser excelentes negociadores: aceptan contradicciones si eso les permite resolver mejor un problema práctico.
Quizás ahí aparece una de las grandes paradojas de Smalltalk. Cuanto más coherente resulta su diseño, más difícil es integrarlo con un mundo que no comparte esa misma filosofía. La consistencia que tanto admiramos como diseñadores puede convertirse en una desventaja cuando el objetivo es conquistar la industria.
Y, sin embargo, Smalltalk está lejos de ser una pieza de museo. Implementaciones como Pharo o Squeak continúan evolucionando y mantienen comunidades activas. Siguen apareciendo proyectos, investigaciones y herramientas construidas sobre estas plataformas. Su presencia es pequeña si la medimos por cantidad de desarrolladores, pero sigue siendo enorme si la medimos por la calidad de las ideas que produce.
Hay algo que siempre me resulta curioso. Cada pocos años aparece un nuevo lenguaje anunciando alguna característica revolucionaria: entornos interactivos, herramientas de inspección, programación en vivo, refactorizaciones integradas, exploración dinámica de objetos. Muchas de esas ideas no son nuevas. Simplemente dejamos de mirar a Smalltalk.
Quizás por eso Alan Kay sigue siendo una figura tan vigente. Cuando insistía en que los objetos eran, ante todo, entidades que colaboraban mediante el envío de mensajes, estaba describiendo una filosofía completa de construcción de software. Con el tiempo, la industria adoptó las clases, la herencia y el polimorfismo, pero muchas veces olvidó la conversación original sobre qué significa realmente construir sistemas compuestos por objetos.
No creo que Smalltalk sea el futuro. Tampoco creo que deba reemplazar a los lenguajes que usamos todos los días. Pero sí creo que sigue siendo uno de los mejores lugares para estudiar qué ocurre cuando un lenguaje decide ser completamente fiel a una idea. Sus virtudes aparecen con una claridad extraordinaria. Sus limitaciones también. Y pocas cosas enseñan tanto sobre diseño como observar una idea llevada hasta sus últimas consecuencias.
A veces olvidamos que un lenguaje no es solamente una herramienta. También es una opinión sobre cómo debería construirse el software.
Y, más de cuarenta años después, Smalltalk sigue teniendo una de las opiniones más interesantes.
.jpeg)








