Resumen
- El libro de Adele Goldberg y David Robson de 1983 definió una interfaz concreta entre la Imagen Virtual de Smalltalk-80 y la Máquina Virtual propia de cada equipo: memoria de objetos, bytecodes, contextos de ejecución, despacho de mensajes y primitivas.
- Goldberg hizo que la especificación respondiera ante implementaciones reales. Apple, DEC, Hewlett-Packard y Tektronix construyeron versiones, compartieron discrepancias con Xerox PARC y compararon su ejecución con trazas de referencia.
- El resultado demostró portabilidad dentro de esa frontera. No demostró igualdad de rendimiento, pausas, métricas de fuente, ventanas, dispositivos, archivos ni calidad interactiva.
Una especificación que tenía que arrancar
Smalltalk-80 no era solo un lenguaje. Era un entorno persistente en el que clases, compilador, navegador, depurador, gráficos e interfaz convivían como objetos. Llevarlo a otra computadora exigía trasladar ese mundo, no limitarse a reconocer programas válidos.
En Smalltalk-80: The Language and Its Implementation, Adele Goldberg y David Robson establecieron una separación. La Imagen Virtual contenía los objetos y herramientas del sistema. Debajo, una Máquina Virtual específica de cada plataforma aportaba el intérprete, la memoria de objetos y las primitivas que enlazaban la imagen con cálculo, almacenamiento, pantalla, puntero y archivos. Los métodos fuente se compilaban en bytecodes de ocho bits; un intérprete de pila los ejecutaba y los contextos representaban cálculos activos.
El pacto de portabilidad era modesto y decisivo: implementar bien un núcleo dependiente del hardware y cargar después una imagen compartida. El Blue Book no sustituyó el software por prosa. Expuso suficiente comportamiento observable para que otro equipo reconstruyera la capa inferior sin depender de conocimiento tácito de PARC.
La aportación organizativa de Goldberg fue someter esa definición a personas obligadas a hacerla funcionar fuera de PARC.
Los equipos externos también medían el estándar
En su historia oral de 2010 para el Computer History Museum, Goldberg cuenta que primero consiguió permiso corporativo para publicar. Con el apoyo de Bert Sutherland, reclutó a Tektronix, Hewlett-Packard, DEC y Apple. La regla exigía que un equipo interno de software trabajara con el equipo de hardware. No se preguntaba si gustaba el lenguaje, sino qué rasgos del equipo favorecían o perjudicaban su rendimiento.
El relato incluido en Smalltalk-80: Bits of History, Words of Advice detalla el procedimiento. Se invitó a seis empresas y cuatro llegaron a la fase de implementación. Compartirían errores y sugerencias. Xerox entregó varias imágenes, memorandos sobre punteros, espacio de objetos, contextos, métodos compilados y clases, y asistencia cuando la especificación y la ejecución no coincidían.
Cada port se convirtió en una prueba del documento. Una dependencia invisible del Alto o del Dorado aparecía cuando los ingenieros de DEC, HP, Tektronix o Apple no podían reproducirla. La diversidad de equipos no era una molestia: obligaba a separar requisito portable y accidente local.
Los participantes no validaron un texto cerrado. Cambiaron primitivas y asignaciones; la imagen creció. La primera conferencia de implementadores debatió recuento de referencias, recolección de basura y cachés de métodos. Goldberg explicó que se descartó y reescribió casi toda una versión anterior del libro. Lo que sobrevivió fue la especificación formal de la VM ya depurada por las implementaciones.
Las trazas daban significado a la conformidad
Una apariencia familiar no bastaba. Xerox distribuyó trazas con distintos niveles de detalle. La más fina mostraba referencias de memoria, asignaciones, bytecodes, envíos, retornos e invocaciones de primitivas. Otras observaban ejecuciones más largas con menor detalle. Cada equipo podía comparar su VM con un comportamiento esperado.
El Blue Book definía la memoria de objetos mediante accesos separados a punteros, palabras y bytes. Precisaba cómo el intérprete encontraba clases y métodos, construía contextos, mantenía la pila, resolvía un fallo de búsqueda y enviaba doesNotUnderstand:. Clasificaba los bytecodes en cargas, almacenamientos, envíos, retornos y saltos. Sus primitivas cubrían aritmética, colecciones, memoria, control, entrada/salida y servicios del sistema.
Los gráficos hacían visible la frontera. Mucho de BitBlt, el texto y la composición se expresaba en objetos de la imagen. En cambio, cursor, teclado, pantalla y archivos terminaban encontrándose con un dispositivo físico. Las primitivas unían ambos mundos. Dos equipos podían respetar la misma petición de la imagen usando controladores, memorias o instrucciones completamente diferentes.
El éxito significaba “leer y adoptar” la Imagen Virtual y reproducir la conducta esperada. Cuando las implementaciones capaces de ejecutar la tercera entrega cargaron la cuarta sin modificar su VM, la estabilidad de la interfaz quedó demostrada. La equivalencia completa de las máquinas, no.
La compatibilidad terminaba antes de la experiencia
Goldberg distingue la adopción de la imagen de una medida más subjetiva: el rendimiento real en el hardware de cada fabricante. Una imagen compartida produce familiaridad. Aparecen las mismas clases, se compilan los mismos métodos y se abren herramientas semejantes. Sin embargo, todo lo que rodea la frontera altera la experiencia.
La búsqueda de métodos puede tener otra caché. La memoria puede recuperarse con referencias, trazado o un sistema híbrido. Una primitiva puede estar microprogramada, escrita en ensamblador o delegada a una rutina lenta. La planificación y el sondeo de entradas afectan a la latencia. La geometría de pantalla, los mapas de bits, las fuentes, el cursor y los archivos cambian la presentación. Dos VM correctas pueden conservar el significado del objeto y producir pausas o redibujos muy distintos.
Hasta el alfabeto reveló el coste. Goldberg recordó que tuvieron que adoptar ASCII estándar porque no todos los participantes controlaban sus fuentes. Abrir el sistema a más equipos implicó reducir esa superficie a un denominador común.
El propio Blue Book advertía que el hardware de la época no tenía potencia suficiente para toda la ambición interactiva. El contrato definía qué significaba enviar un mensaje o leer un objeto. No podía convertir un procesador lento en un Dorado, agrandar una pantalla ni eliminar cada pausa del recolector.
Por eso una prueba de compatibilidad solo vale en la capa que observa. Superar una prueba de imagen o una traza de bytecodes demuestra el acuerdo Imagen/VM. No demuestra tiempos, tipografías, ventanas, periféricos ni experiencia idénticos.
Una publicación compuesta por varias piezas
La difusión de Smalltalk-80 fue más amplia que un libro. El número especial de BYTE de agosto de 1981 ofreció la introducción pública. El volumen de Goldberg y Robson de 1983 enlazó lenguaje y VM. Smalltalk-80: The Interactive Programming Environment, de 1984, explicó el trabajo dentro del entorno. Glenn Krasner editó el libro en el que los equipos narraron su experiencia de implementación.
Goldberg y Robson organizaron juntos el libro del lenguaje. Ella recordó un proceso de decisión en el que Dan Ingalls y ella llevaban las cuestiones al grupo y decidían, mientras Robson escuchaba objeciones como mediador. Ingalls atribuyó después a Robson la mayor parte del intérprete de referencia. Documento, modelo ejecutable y gobierno del diseño tenían que coincidir.
La genealogía también debe conservarse. Simula y Sketchpad influyeron en la visión de Alan Kay; Kay formuló el horizonte de mensajes y computación personal. Dan Ingalls construyó y evolucionó los intérpretes. Diana Merry trabajó en texto y edición gráfica. Ted Kaehler aportó gráficos y, más tarde, memoria. Larry Tesler intervino en Notetaker y el entorno. David Robson dio rigor al libro y al intérprete. El resto del equipo de PARC y los equipos externos hicieron operativa la especificación.
Situada ahí, la labor de Goldberg no se reduce a edición: obtuvo permiso, organizó la comunidad de revisión, hizo que la experiencia del hardware regresara al documento, coescribió el contrato y llevó el sistema a una publicación pública y comprobable.
Un contrato capaz de sobrevivir a otra maquinaria
La historia posterior muestra qué se ganó. Hubo Smalltalks derivados de imágenes licenciadas y otros creados desde la documentación. En Apple, Ingalls ajustó la interfaz a otro ratón y otras pantallas; una máquina con más CPU y mayor resolución cambió radicalmente la sensación sin romper la continuidad del sistema.
Squeak utilizó el intérprete de referencia publicado y una imagen APDA para arrancar una implementación nueva. Después, el equipo sustituyó la tabla de objetos por punteros directos, adoptó recolección generacional y generó C desde un subconjunto de Smalltalk. Ted Kaehler e Ingalls rehacieron memoria; John Maloney creó el traductor; Scott Wallace trabajó en archivos. La compatibilidad útil no exigía conservar el mecanismo original.
Ese es el valor de un buen contrato: protege una unión, no congela la historia. Permite cambiar la parte inferior y ofrece pruebas para detectar cuándo el cambio rompe la parte superior. El Smalltalk Zoo del Computer History Museum hace visible hoy esa diversidad. El Blue Book permitió viajar a la familia porque decía qué debía cruzar la frontera y qué podía seguir siendo local.
Fuentes
- Historia oral de Adele Goldberg, Computer History Museum, 2010.
- Adele Goldberg y David Robson, Smalltalk-80: The Language and Its Implementation, 1983.
- Adele Goldberg y David Robson (eds.), Smalltalk-80: Bits of History, Words of Advice, 1983.
- Adele Goldberg, Smalltalk-80: The Interactive Programming Environment, 1984.
- Daniel H. H. Ingalls, “The Evolution of Smalltalk: From Smalltalk-72 through Squeak”, 2020.
- Alan C. Kay, “The Early History of Smalltalk”, 1993.
- Número de BYTE dedicado a Smalltalk, agosto de 1981.
- Smalltalk Zoo del Computer History Museum.
Informe para miembros
Contexto ampliado del perfil
Inicia sesión con el nivel de membresía adecuado para desbloquear el informe completo y las notas de las fuentes.
Solo para Strategic Circle
Strategic Circle
Abierto a todos los lectores. Desbloquea informes de perfil después de unirte e iniciar sesión.
Únete a Strategic CircleSolo para Leadership Alliance
Leadership Alliance
Para propietarios y directivos cualificados de activos de propiedad intelectual; inicia sesión para desbloquear los informes de la alianza.
Unirse a Leadership Alliance
