Esta charla, presentada en Onward! 2025, explora una conexión inusual entre dos sistemas de programación muy diferentes: Unix y Smalltalk. Joel Jakubovic argumenta que, a pesar de sus diferencias superficiales, existen similitudes fundamentales que pueden aprovecharse para mejorar a Unix sin comprometer sus ventajas. La idea central es una analogía sorprendente: un ejecutable de Unix puede considerarse como un método de Smalltalk disfrazado.
Tradicionalmente, Unix se ha visto como un sistema de metaprogramación, un conjunto de herramientas y procesos que permiten ejecutar otros sistemas de programación. Smalltalk, por otro lado, es conocido por su entorno de programación integrado y su lenguaje dinámico. El artículo de Steven Kell, al que hace referencia Jakubovic, destaca cómo Unix, a pesar de su popularidad, carece de algunas de las características de diseño coherentes y uniformes que se encuentran en Smalltalk. Jakubovic toma este análisis un paso más allá, sugiriendo que la identificación de un ejecutable Unix con un método Smalltalk abre la puerta a una nueva forma de programar en Unix, permitiendo la integración de características de Smalltalk sin imponer un lenguaje o estructura de programación específica.
Esta analogía tiene implicaciones técnicas significativas. Si un ejecutable de Unix es un método de Smalltalk, entonces una implementación de la máquina virtual (VM) de Smalltalk podría construirse directamente sobre el sistema de archivos de Unix. Esto significa que el código de Smalltalk podría ejecutarse como archivos regulares dentro del sistema de archivos, eliminando la necesidad de una VM separada y potencialmente reduciendo la sobrecarga. Sin embargo, Jakubovic reconoce que la sobrecarga asociada con los procesos de Unix podría ser un obstáculo para la implementación práctica de esta idea. A pesar de esto, sugiere que existen soluciones alternativas para mitigar este problema.
En resumen, la propuesta de Jakubovic no es una reescritura completa de Unix en Smalltalk, sino una forma de aprovechar las fortalezas de ambos sistemas. Permite la incorporación de características de Smalltalk, como la coherencia y la uniformidad, dentro del ecosistema Unix, sin abandonar la flexibilidad y la adaptabilidad que han hecho a Unix tan exitoso. El proyecto 'Smalltix' (disponible en GitHub) explora más a fondo esta conexión y ofrece una implementación inicial de la idea. La presentación invita a reconsiderar la naturaleza fundamental de los sistemas de programación y a explorar nuevas formas de combinar diferentes paradigmas para crear soluciones más eficientes y elegantes.
