Barbara Liskov

Barbara Liskov: La primera arquitecta de la abstracción de datos

En 1968, Barbara Liskov se convirtió en una de las primeras mujeres en los Estados Unidos en obtener un doctorado de un departamento de ciencias de la computación. Cuatro décadas después, el rector del MIT dijo al mundo que cada vez que alguien consultaba el saldo bancario en línea o realizaba una búsqueda, estaba «aprovechando el impulso de su investigación». Entre esos dos momentos, construyó el andamiaje conceptual —la abstracción de datos, los tipos de datos abstractos, una regla formal para saber cuándo un tipo puede sustituir a otro de forma segura— que subyace silenciosamente en casi todos los lenguajes de programación escritos desde entonces.

Un comienzo improbable en la computación

Barbara Jane Huberman nació el 7 de noviembre de 1939 en Los Ángeles y fue la mayor de cuatro hermanos. Se especializó en matemáticas con una subespecialización en física en la UC Berkeley, graduándose en 1961 como una de las dos únicas mujeres de su clase que estudiaban matemáticas. En lugar de seguir un camino fácil hacia una carrera técnica en un momento en el que casi no existían para las mujeres, aceptó un puesto como programadora en la Mitre Corporation antes de que Stanford la aceptara en un incipiente programa de ciencias de la computación. Su tesis doctoral de 1968 abordó la programación de finales de ajedrez y produjo la «heurística asesina», una técnica de poda de búsqueda todavía debatida en la inteligencia artificial. Su asesor doctoral fue John McCarthy, uno de los fundadores de la IA como campo. Es reconocida como la primera mujer en los Estados Unidos en recibir un doctorado de un departamento de ciencias de la computación.

CLU y la idea de la abstracción de datos

Liskov se unió al MIT en 1972 para dirigir lo que se convirtió en el Grupo de Metodología de Programación, y fue allí, a mediados de la década de 1970, donde diseñó CLU. En ese momento, la mayoría de los programadores organizaban el software de forma procedimental, escribiendo secuencias de instrucciones que manipulaban estructuras de datos directamente y dejaban ambas cosas entrelazadas en todas partes. CLU introdujo los «clústeres» (clusters): módulos autónomos que agrupaban un tipo de datos junto con las únicas operaciones permitidas para interactuar con él, ocultando por completo la representación interna al resto de un programa. Esto fue la abstracción de datos, y es difícil exagerar hasta qué punto remodeló la ingeniería de software: las estructuras de clases en el corazón de Java, C++, C# y Ada rastrean su linaje hasta los clústeres de CLU. Liskov construyó el lenguaje esencialmente como un argumento, realizado en código funcional, de que los grandes sistemas de software solo podían construirse de forma fiable si se dividían en piezas pequeñas, verificables de forma independiente y con interfaces limpias.

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 →

Argus, la tolerancia a fallos bizantinos y los sistemas distribuidos

Liskov no se detuvo en los programas de una sola máquina. En la década de 1980 lideró el desarrollo de Argus, el primer lenguaje de programación de alto nivel creado específicamente para dar soporte a la computación distribuida (programas que se ejecutan correctamente incluso cuando están divididos en varias máquinas que se comunican a través de una red), una idea ahora fundamental para todos los servicios en la nube y aplicaciones web. Más tarde se ocupó de un problema aún más difícil: cómo un sistema distribuido sigue funcionando correctamente incluso cuando algunas de sus máquinas componentes fallan de forma arbitraria o se comportan de manera maliciosa, un escenario que los científicos de la computación llaman «fallo bizantino». Las técnicas prácticas que ella y sus estudiantes desarrollaron para la tolerancia a fallos bizantinos están ahora integradas en la infraestructura que mantiene la fiabilidad de los servicios de Internet a gran escala y, posteriormente, sirven de base para algunos protocolos de consenso de blockchain.

El principio que lleva su nombre

En una conferencia magistral de 1987, Liskov articuló lo que se conocería como el principio de sustitución de Liskov, formalizado más tarde con Jeannette Wing: si un programa está escrito para utilizar objetos de un tipo determinado, debería poder utilizar objetos de cualquier subtipo de ese tipo sin que se rompa la corrección del programa. Suena casi evidente al exponerlo claramente, que es exactamente por lo que importa: convierte una vaga intuición de que «las subclases deberían comportarse como su clase padre» en un criterio riguroso y verificable para un diseño orientado a objetos correcto. El principio se convirtió en uno de los cinco pilares «SOLID» que se enseñan a casi todos los estudiantes de ingeniería de software, un caso raro en el que el nombre de un investigador individual entra en el vocabulario de trabajo de toda una industria.

Premio Turing y reconocimiento

En 2008, la Association for Computing Machinery otorgó a Liskov el Premio A.M. Turing, el máximo honor de la computación, «por sus contribuciones a los fundamentos prácticos y teóricos del diseño de lenguajes y sistemas de programación, especialmente en relación con la abstracción de datos, la tolerancia a fallos y la computación distribuida». Fue solo la segunda mujer en ganarlo. La presidenta del MIT en ese momento, Susan Hockfield, calificó sus contribuciones como «un ideal del MIT: investigación innovadora con beneficios profundos», mientras que el homenaje del rector L. Rafael Reif fue más concreto: «Cada vez que intercambias correos electrónicos, consultas tu extracto bancario en línea o realizas una búsqueda en Google, estás aprovechando el impulso de su investigación». Ya había recibido la Medalla IEEE John von Neumann en 2004; el Salón de la Fama Nacional de Inventores la incluyó en 2012, y más tarde recibió la Medalla Benjamin Franklin en 2023. Sigue siendo profesora del Instituto MIT, la máxima distinción docente de la universidad, otorgada en 2008.

Por qué Barbara es llamada una genio

El caso de genio de Liskov es un caso sobre la propia abstracción: la habilidad intelectual específica de encontrar el límite correcto que debe trazarse dentro de un sistema complicado para que cada pieza pueda ser comprendida y confiada por sí misma. Los clústeres de CLU y el principio de sustitución que lleva su nombre no son inventos llamativos; son respuestas precisas a un problema que la mayoría de los programadores en la década de 1970 aún no habían aprendido a enunciar claramente, lo que es parte de la razón por la que su nombre se unió permanentemente a la solución en un campo que rara vez acredita a los individuos de esta manera. El lenguaje del comité del Premio Turing —«fundamentos prácticos y teóricos»— señala exactamente esto: no un artefacto único, sino una forma de pensar sobre la corrección que se generalizó a través de lenguajes y décadas. El contraargumento honesto es que Liskov trabajó dentro de una tradición de investigación que ya se movía hacia la modularidad y los tipos abstractos —Tony Hoare, Niklaus Wirth y otros estaban persiguiendo ideas relacionadas simultáneamente— y el propio CLU nunca se convirtió en un lenguaje de producción ampliamente utilizado; su influencia llegó de segunda mano, a través de los lenguajes posteriores que adoptaron sus conceptos. Su genio, según la evidencia, fue menos una invención pura que una claridad poco común: conseguir la abstracción exacta antes que nadie.

Legado

Las ideas de Liskov se asientan ahora de forma invisible bajo el software que hace funcionar teléfonos, bancos y motores de búsqueda, y su nombre sobrevive como taquigrafía —«¿esto viola la sustitución de Liskov?»— dentro de las revisiones de código realizadas por ingenieros que quizás nunca hayan leído sus artículos. Pocos investigadores logran esa forma particular y poco glamurosa de inmortalidad: estar tan completamente integrados en el sentido común de un campo que la gente deja de recordar que alguna vez hubo un nombre asociado.

Compara con los grandes

Johann Sebastian Bach vs John LockeKurt G Del vs Pierre De FermatGottfried Wilhelm Leibniz vs Wolfgang Amadeus MozartAlan Turing vs Confucius
Ver el Ranking →Todas las comparaciones →

Niños prodigio

Erik DemaineErik DemaineEntered university at twelve and became MIT's youngest-ever…Tanishq AbrahamThree Associate Degrees by 11 — Med School at 14, MD-Candidate…Leia ZhuLeia ZhuMade her solo debut before 2,000 people at age four and the BBC…Cleopatra StratanCleopatra StratanYoungest Person to Score a #1 Hit and Earn Professional Singer…
Niños prodigio →

Juega y vuelve mañana

Desafío diario del genio · Word riddle
Forward I am heavy, but backward I am not. What word am I?
Toca tu respuesta ↓
¿Qué genio eres? Test de CI gratis