Ken Thompson

Ken Thompson: El arquitecto silencioso de todo

Cuando los Laboratorios Bell abandonaron el proyecto Multics en 1969, Ken Thompson se quedó con una obsoleta minicomputadora PDP-7 en un rincón y sin mandato oficial. Aun así, la utilizó para construir un sistema operativo. Unix funciona ahora, en alguna forma descendiente, en casi todos los servidores, teléfonos y dispositivos integrados del planeta. Dennis Ritchie, el colaborador más cercano de Thompson y una figura importante por derecho propio, dijo de esa primera versión que "la mayoría de las ideas, y la mayor parte del trabajo, de hecho, fueron suyas".

Aritmética en binario

Kenneth Lane Thompson nació el 4 de febrero de 1943 en Nueva Orleans, Luisiana. Su relato sobre su propia infancia es característicamente sencillo: "Siempre me fascinó la lógica e incluso en la escuela primaria trabajaba en problemas aritméticos en binario, cosas así. Simplemente porque me fascinaba". Esa última frase define al hombre en su totalidad: un apetito intelectual sin ningún propósito instrumental asociado.

Obtuvo una licenciatura en 1965 y un máster en 1966, ambos en ingeniería eléctrica y ciencias de la computación, en la Universidad de California, Berkeley, donde su director de tesis fue el teórico de la codificación Elwyn Berlekamp. Los Laboratorios Bell lo contrataron en 1966 para el Centro de Investigación de Ciencias de la Computación en Murray Hill, Nueva Jersey.

Unix

Entre 1967 y 1969, Thompson trabajó en Multics, el ambicioso proyecto conjunto de tiempo compartido entre los Laboratorios Bell, el MIT y General Electric. Multics era enorme, lento y llegó tarde; los Laboratorios Bell se retiraron. Lo que Thompson extrajo de ello fue la convicción de que las ideas eran correctas, pero la ejecución era errónea.

La historia del origen está bien documentada y es ligeramente absurda. Quería seguir jugando a Space Travel, un juego que había escrito, y quería un entorno decente en el que trabajar. En una PDP-7 desechada, con recursos mínimos y sin apoyo institucional, construyó el núcleo de un sistema operativo: un sistema de archivos jerárquico, procesos, archivos de dispositivo tratados como archivos ordinarios, un intérprete de línea de comandos separado del núcleo y tuberías (pipes) para encadenar programas. Cada uno de ellos es ahora tan estándar que cuesta verlos como elecciones.

La filosofía de diseño fue la compresión. En lugar de un sistema que anticipara todas las necesidades, Unix ofrecía un pequeño número de primitivas componibles y dejaba que los usuarios ensamblaran lo que quisieran. Para 1973 existían más de veinte instalaciones. Para escribir más fácilmente las partes ajenas al núcleo, Thompson creó el lenguaje de programación B, derivado de BCPL, que Ritchie desarrolló posteriormente hasta convertirlo en C, el lenguaje en el que todavía está escrito la mayor parte del software de infraestructura del mundo.

LA PRUEBA GRATUITA
¿Cuánto es el tuyo?

Veinte preguntas, ocho minutos de reloj y un percentil medido frente a todos los que la han hecho. Sin registro.

Hacer la prueba de CI →

Pequeñas herramientas, raíces profundas

El resto del trabajo de Thompson tiene la misma firma: una idea compacta que resulta ser fundamental. Implementó las expresiones regulares en los editores QED y ed, y diseñó la construcción de Thompson, el algoritmo para convertir una expresión regular en un autómata finito. Casi todos los motores de expresiones regulares en uso hoy en día son descendientes de esa notación.

Construyó un programa de ajedrez en 1971 y, junto con Joseph Condon, creó Belle, una máquina de ajedrez de propósito especial que dominó el ajedrez por computadora en su época. Posteriormente, generó las bases de datos de finales completas para finales de cuatro, cinco y seis piezas: soluciones exhaustivas para clases enteras de posiciones de ajedrez, un cuerpo de trabajo que cambió permanentemente la teoría de los finales.

En 1992, junto con Rob Pike, diseñó UTF-8, la codificación de caracteres que permite que un flujo de bytes lleve cualquier escritura de la Tierra permaneciendo compatible con ASCII. Ahora representa más del 90 por ciento de la web. También fue fundamental en Plan 9, el sistema operativo distribuido que los Laboratorios Bell construyeron a mediados de los ochenta para llevar las ideas de Unix más allá de lo que el propio Unix podía llegar.

Su conferencia de Turing de 1983, "Reflexiones sobre la confianza", describió un compilador que inserta una puerta trasera en los programas que compila, y también en versiones futuras de sí mismo, de modo que el código malicioso no aparezca en ninguna fuente que nadie pueda leer. El hack de Thompson es un documento fundamental de la seguridad informática; el código fuente fue anotado y publicado en 2023.

Google y Go

Thompson se retiró de los Laboratorios Bell a finales de 2000 y se unió a Google en 2006, donde junto con Rob Pike y Robert Griesemer diseñó el lenguaje de programación Go. Su relato de la motivación es contundente: "Los tres nos juntamos y decidimos que odiábamos C++", un lenguaje que ha calificado como "un vertedero de ideas que son mutuamente excluyentes". Go se construyó bajo la regla de que los tres diseñadores debían estar convencidos de cada característica, lo cual es una disciplina para mantener un lenguaje pequeño.

Los honores se acumularon constantemente: elección para la Academia Nacional de Ingeniería en 1980, el Premio IEEE Emanuel R. Piore en 1982, el Premio ACM Turing junto con Ritchie en 1983, la Academia Nacional de Ciencias en 1985, la Medalla IEEE Richard W. Hamming en 1990, el Premio Pionero de la Computación en 1994, una beca del Museo de Historia de la Computación en 1997, la Medalla Nacional de Tecnología en 1998, el Premio inaugural Tsutomu Kanai en 1999 y el Premio Japón de Información y Comunicaciones en 2011.

Por qué se llama genio a Ken

La mención de la ACM al Premio Turing hace una afirmación inusualmente precisa, y vale la pena citarla porque localiza la cualidad con exactitud: "El éxito del sistema UNIX proviene de su selección de buen gusto de unas pocas ideas clave y su elegante implementación... El genio del sistema Unix es su marco de trabajo, que permite a los programadores apoyarse en el trabajo de los demás".

El buen gusto es la palabra operativa. El talento de Thompson es sustractivo: una capacidad para identificar el conjunto más pequeño de conceptos que generará el mayor espacio de comportamiento útil, y luego rechazar todo lo demás. Las tuberías (pipes) son el ejemplo canónico: un mecanismo trivial para conectar la salida de un programa a la entrada de otro, lo que convierte una colección de pequeñas herramientas en un sistema combinatorio. Las expresiones regulares, UTF-8 y Go muestran el mismo patrón de diseño mínimo suficiente. Se le nombra habitualmente entre los mejores programadores que han existido, y el juicio proviene de personas que escriben código para ganarse la vida en lugar de comités de premios.

El caso en contra es más débil que para la mayoría en esta lista, pero existe. Unix fue colaborativo: Ritchie, Brian Kernighan, Douglas McIlroy, quien propuso las tuberías, y otros lo moldearon profundamente, y el Premio Turing fue compartido. Muchas ideas de Unix fueron adaptadas de Multics en lugar de inventadas desde cero. Thompson no ha producido ningún resultado teórico en ciencias de la computación, y su influencia reside enteramente en los artefactos y el juicio de diseño. Si eso constituye genialidad o un oficio extraordinariamente bien desarrollado es una pregunta justa. La respuesta más honesta es que, en el software, ambos son difíciles de separar, y el oficio de Thompson ha demostrado ser más consecuente que las teorías de la mayoría.

Legado

Linux, macOS, Android, iOS y el software que ejecuta prácticamente todos los servidores de Internet descienden de las decisiones que Thompson tomó solo en una máquina desechada en 1969. Su codificación de caracteres transporta casi todo el texto escrito en línea. Su algoritmo de expresiones regulares reside dentro de cada editor de texto. Grabó una larga historia oral para el Museo de Historia de la Computación en 2024 y ha pasado sus últimos años, tras abandonar los productos de Apple, utilizando Raspberry Pi OS.

Compara con los grandes

Kim Ung Yong vs Srinivasa RamanujanAugustine Of Hippo vs Louis PasteurFriedrich Nietzsche vs Isaac NewtonAristotle vs Linus Pauling
Ver el Ranking →Todas las comparaciones →

Niños prodigio

Tathagat Avatar TulsiTathagat Avatar TulsiEarned a BSc at 11, an MSc at 12, and became an IIT professor…Lydia SebastianMensa Score 162 at Age 12 — Indian-British Doctor's Daughter…Colin CarlsonBegan university courses at nine and now forecasts the next…Rayssa LealRayssa LealViral 'Fairy of Skate' who won Olympic street silver at age 13
Niños prodigio →

Juega y vuelve mañana

Desafío diario del genio · Brain teaser
A farmer has 17 sheep. All but 9 run away. How many are left?
Toca tu respuesta ↓
¿Qué genio eres? Test de CI gratis