BookPDF Available

Mentes geniales. La vida y obra de 12 grandes informáticos

Authors:

Abstract

¿Quién acuñó por primera vez el término inteligencia artificial? ¿Quién fue el legendario informático que se negó a usar un ordenador al final de su vida? ¿Quién escribió uno de los artículos más populares de la historia de la informática a través de una metáfora? ¿Quién creó uno de los sistemas informáticos más populares y que reside en cada móvil? ¿Quién fue la mujer que logró el mayor reconocimiento por sus contribuciones al desarrollo de software? Estas y muchas otras preguntas se responden a lo largo de este libro. Con su lectura iniciará un viaje hacia el corazón de la informática, las ideas, las contribuciones, las personas que dieron origen a gran parte de lo que conocemos hoy como tecnología. Todas ellas fueron ganadoras del “nobel de la informática”, el premio Turing, excepto uno, el que lleva el nombre del premio: Alan Turing. Encontrará historias de creatividad, voluntad y perseverancia. Sus vidas, sus anécdotas y sus principales contribuciones intelectuales son presentadas en este libro en un lenguaje ameno, sin caer en excesivos tecnicismos. ¿Cuál es el objetivo de este libro? Motivar a una nueva generación de informáticos (y profesionales de áreas similares) a seguir el camino de estas grandes mentes. Después de todo, la informática necesita de personas así.
CAMILO CHACÓN SARTORI
MENTES GENIALES
LA VIDA Y OBRA DE 12 GRANDES INFORMÁTICOS
MENTES GENIALES
Contenidos
Web
¿Quién acuñó por primera vez el término inteligencia articial?
¿Quién fue el legendario informático que se negó a usar un
ordenador al nal de su vida? ¿Quién escribió uno de los
artículos más populares de la historia de la informática a través
de una metáfora? ¿Quién creó uno de los sistemas informáticos
más populares y que reside en cada móvil? ¿Quién fue la mujer
que logró el mayor reconocimiento por sus contribuciones al
desarrollo de software? Estas y muchas otras preguntas se
responden a lo largo de este libro.
Con su lectura iniciará un viaje hacia el corazón de la
informática, las ideas, las contribuciones, las personas que
dieron origen a gran parte de lo que conocemos hoy como
tecnología. Todas ellas fueron ganadoras del «nobel de la
informática», el premio Turing, excepto uno, el que lleva el
nombre del premio: Alan Turing.
Encontrará historias de creatividad, voluntad y perseverancia.
Sus vidas, sus anécdotas y sus principales contribuciones
intelectuales son presentadas en este libro en un lenguaje
ameno, sin caer en excesivos tecnicismos.
¿Cuál es el objetivo de este libro? Motivar a una nueva
generación de informáticos (y profesionales de áreas similares)
a seguir el camino de estas grandes mentes. Después de todo,
la informática necesita de personas así.
Camilo Chacón Sartori fue elegido escritor destacado por
Quora en español durante cuatro años seguidos, 2018-
2021, por sus más de 800 respuestas sobre ciencias de la
computación. Actualmente tiene un pódcast llamado Había
una vez un algoritmo, donde trata temas losócos, prácticos y
teóricos sobre la computación. Obtuvo su licenciatura y máster
en Ingeniería Informática, ambos, con distinción máxima.
Alan Turing
John McCarthy
Edsger Dijkstra
Antony Hoare
Niklaus Wirth
Richard Karp
Manuel Blum
Donald Knuth
Barbara Liskov
Leslie Lamport
Michael Stonebraker
Tim Berners-Lee
Síganos en:
ÍNDICE
PRÓLOGO 1
INTRODUCCIÓN 3
Justificaciones previas ......................................................................................5
Nota para los lectores .......................................................................................6
1. ALAN MATHISON TURING (1912-1954) 9
1.1 Primeros años ............................................................................................9
1.2 El problema de la decisión .....................................................................11
1.3 Sobre lo que es computable ...................................................................12
1.4 Inteligencia artificial ...............................................................................16
1.5 El juego de la imitación ..........................................................................17
1.6 Muerte y legado .......................................................................................19
1.7 Conclusión ...............................................................................................21
1.8 Obras recomendadas ...............................................................................21
1.9 Trabajos sobre Turing ..............................................................................22
2. JOHN MCCARTHY (1927-2011) 23
2.1 Primeros años ..........................................................................................23
2.2 El advenimiento de un nuevo término: inteligencia artificial ..........24
2.3 Lisp ............................................................................................................26
2.4 Tiempo compartido ................................................................................31
2.5 Técnicas de programación y el ajedrez .................................................31
2.6 SAIL (Stanford Artificial Intelligence Laboratory) ..............................32
2.7 Filosofía ....................................................................................................34
2.8 Conclusión ...............................................................................................34
2.9 Obras recomendadas ...............................................................................35
3. EDSGER WYBE DIJKSTRA (1930-2002) 37
3.1 Primeros años .........................................................................................37
3.2 Decisiones difíciles .................................................................................38
3.3 Su vida como programador ....................................................................40
3.4 ALGOL-60 y THE ....................................................................................42
3.5 GOTO ........................................................................................................43
3.6 La programación como una disciplina matemática ............................45
3.7 EWD ..........................................................................................................46
3.8 Conclusión ...............................................................................................47
3.9 Obras recomendadas ...............................................................................48
4. CHARLES ANTONY RICHARD HOARE (TONY HOARE) (1934-) 51
4.1 Primeros años ..........................................................................................52
4.2 Quicksort .................................................................................................53
4.3 ALGOL .......................................................................................................54
4.4 La invención de la referencia nula (NULL) ..........................................56
4.5 Axiomatizar la programación (lógica de Hoare) ..................................57
4.6 Comunicando procesos secuenciales ...................................................58
4.7 Teoría unificada de la programación .....................................................59
4.8 Conclusión ...............................................................................................60
4.9 Obras recomendadas ...............................................................................61
5. NIKLAUS EMIL WIRTH (1934-) 63
5.1 Primeros años ..........................................................................................63
5.2 ALGOL .......................................................................................................64
5.3 Pascal ........................................................................................................66
5.4 Programación sistemática ......................................................................68
5.5 Algoritmos + Estructuras de datos = Programas ..................................68
5.6 Modula ......................................................................................................69
5.7 Proyecto Oberon ......................................................................................70
5.8 Conclusión ...............................................................................................71
5.9 Obras recomendadas ...............................................................................72
6. RICHARD MANNING KARP (1935-) 75
6.1 Primeros años ..........................................................................................75
6.2 Optimización, heurísticas y problemas combinatorios ......................76
6.3 Los 21 problemas NP-completos ...........................................................78
6.4 Aleatoriedad y probabilidades para diseñar algoritmos eficientes ...81
6.5 Biología computacional ..........................................................................82
6.6 Conclusión ...............................................................................................84
6.7 Obras recomendadas ...............................................................................84
7. MANUEL BLUM (1938-) 87
7.1 Primeros años ..........................................................................................87
7.2 Complejidad computacional ..................................................................89
7.3 Criptografía ..............................................................................................91
7.4 Generadores de números pseudoaleatorios .........................................93
7.5 Prueba de conocimiento cero ................................................................95
7.6 CAPTCHA .................................................................................................95
7.7 Consejos a los nuevos estudiantes de posgrado .................................97
7.8 Conclusión ...............................................................................................99
7.9 Obras recomendadas ............................................................................ 100
8. DONALD ERVIN KNUTH (1938-) 101
8.1 Primeros años ....................................................................................... 101
8.2 ALGOL .................................................................................................... 102
8.3 Programación estructurada ................................................................. 106
8.4 El debate sobre GOTO .......................................................................... 107
8.5 El arte de la programación .................................................................. 108
8.6 TeX y METAFONT ................................................................................. 110
8.7 Análisis de algoritmos ......................................................................... 112
8.8 Conclusión ............................................................................................ 114
8.9 Obras recomendadas ............................................................................ 115
9. BARBARA LISKOV (1939-) 117
9.1 Primeros años ....................................................................................... 117
9.2 Diseño de sistemas .............................................................................. 118
9.3 Una crítica a ALGOL ............................................................................ 122
9.4 CLU y el tipo abstracto de dato (TDA) .............................................. 123
9.5 Argus y los sistemas distribuidos ....................................................... 124
9.6 Tolerancia a fallos ................................................................................. 125
9.7 Subtipos (la sustitución de Liskov) .................................................... 126
9.8 Conclusión ............................................................................................ 127
9.9 Obras recomendadas ............................................................................ 128
10. LESLIE LAMPORT (1941-) 129
10.1 Primeros años ..................................................................................... 129
10.2 Su inicio en la industria .................................................................... 130
10.3 El algoritmo de la panadería ............................................................. 131
10.4 Su trabajo más popular ...................................................................... 132
10.5 El problema de los generales bizantinos ......................................... 134
10.6 LaTeX .................................................................................................. 138
10.7 Paxos .................................................................................................... 139
10.8 TLA+ ..................................................................................................... 141
10.9 La distinción entre algoritmo y programa ...................................... 142
10.10 Conclusión ........................................................................................ 143
10.11 Obras recomendadas ....................................................................... 144
11. MICHAEL STONEBRAKER (1943-) 147
11.1 Primeros años ..................................................................................... 147
11.2 INGRES ................................................................................................ 149
11.3 Postgres ............................................................................................... 152
11.4 Nuevos tipos de bases de datos ........................................................ 155
11.5 Bases de datos relacionales y no relacionales ................................ 157
11.6 Big data ................................................................................................ 159
11.7 Conclusión .......................................................................................... 160
11.8 Obras recomendadas ......................................................................... 161
12. TIMOTHY «TIM» JOHN BERNERS-LEE (1955-) 163
12.1 Primeros años ..................................................................................... 163
12.2 La invención de la World Wide Web (WWW) ................................ 165
12.3 El ecosistema de la web ..................................................................... 167
12.4 El consorcio W3C ............................................................................... 169
12.5 Web semántica ................................................................................... 171
12.6 Noticias falsas (fake news) y Solid .................................................... 172
12.7 Conclusión .......................................................................................... 174
12.8 Obras recomendadas ......................................................................... 175
EPÍLOGO: SOBRE LA GENIALIDAD Y ALGUNAS LECTURAS
RECOMENDADAS 177
AGRADECIMIENTOS 179
REFERENCIAS 181
ÍNDICE ALFABÉTICO 185
1
PRÓLOGO
La informática se ha extendido en el siglo . Se aprecia, con cierta nos-
talgia, en los grandes logros del siglo pasado. Las personas, sus obras y
cómo todas ellas en conjunto dieron forma a lo que conocemos en la
actualidad: artefactos computacionales construidos con una delicada
armonía entre el software y el hardware. Ya no solo contamos con or-
denadores clásicos, también podemos acceder a ordenadores cuánticos
que nos ayudan a resolver problemas específicos. Pero todo ello se lo
debemos a una persona.
Por este motivo es que, en mi afamado libro anterior «El más grande infor-
mático de la primera mitad del siglo » (2049), que nunca escribí y que
tampoco fue afamado, traté la vida y obra del más relevante informático
de la actualidad. La persona que dio un giro de 360° a todo el campo. Sin
embargo, posteriormente a su publicación he recibido un sinnúmero de
e-mails de lectores molestos conmigo por haber tenido la osadía y el descaro
de omitir a los informáticos que lo precedieron, quienes, con justa razón,
fueron la piedra angular de su obra. No mencioné a quién leyó y por quién
fue influenciado. En cambio, solo me dediqué a describir sus logros como
si la informática hubiera nacido con él. Grave error. Pues bien, este libro es
una forma de redimirme con mis lectores. Viajaré, pues, al siglo , cuando
la informática nació, y conoceremos a algunos de los grandes personajes
que influyeron, inspiraron y dieron forma al área1.
Antes bien, debo confesarle algo, y es que, hace muchos años, me di cuenta
de que para profundizar en la informática, debía aprender sobre la historia
de esta. Porque es necesario un contexto previo. Para ello hay al menos
dos caminos. Uno es simplemente leer los libros de historiadores que se
dedican a estos menesteres; y otro es a través de la vida de las personas que
1. Con esto espero ya no tener que mover ningún otro e-mail a mi carpeta spam.
2
Mentes geniales. La vida y obra de 12 grandes informáticos
la crearon. Cualquiera de las dos maneras es respetable. Así, en este libro he
querido seguir el segundo camino porque he advertido que no existe nada
similar en español.
Ha sido un trabajo grato; es más, he conocido con mayor profundidad a
personas de las que solo sabía sus nombres por el uso de la herramienta
que crearon. Saber sus anécdotas, dificultades y cómo se gestó su obra fue
maravilloso e inspirador.
Recuerdo que en mi primer libro —publicado casi tres décadas atrás, en el
año 2021— titulado Computación y programación funcional2, reparé en esta
falencia. Por ello, en él quise dar un contexto histórico sobre los aspectos
técnicos que se enseñan. Sin esto, un profesional carece de profundidad
para entender por qué y cómo evoluciona su área de estudio. Es, en defini-
tiva, esta obra una forma de continuar la senda trazada en ese libro. Espero
disfrute la lectura.
Camilo Chacón Sartori
En alguna cafetería de Barcelona, España.
Junio del 2050
2. Publicado por Marcombo, enero del 2021. https://www.marcombo.com/computacion-
y-programacion-funcional-9788426732439/
3
INTRODUCCIÓN
¿Quién acuñó por primera vez el término inteligencia artificial? ¿Quién fue
el legendario informático que se negó a usar un ordenador al final de su
vida? ¿Quién escribió uno de los artículos más populares de la historia de
la informática a través de una metáfora? ¿Quién diseñó uno de los sistemas
informáticos que usamos cada día en el móvil? ¿Quién fue la mujer que
logró el más alto reconocimiento por sus aportes al desarrollo de software?
Esta y muchas otras preguntas responde este libro. Un viaje hacia el núcleo
de la informática, las ideas, las contribuciones, las personas que dieron
origen a gran parte de lo que conocemos en tecnología.
Todos ellos ganadores del «nobel de la informática», el Premio Turing (en-
tregado por ACM)3. Excepto uno, el que lleva el nombre del premio: Alan
Turing. Historias de creatividad, voluntad y perseverancia. Sus vidas, sus
anécdotas y sus principales contribuciones intelectuales son presentadas
en este libro en un lenguaje ameno, sin caer en excesivos tecnicismos.
Nadie había reparado en tratar el tema de los grandes informáticos de la histo-
ria en nuestra lengua. Quizá por ser un área aún nueva, quizá porque muchos
de los personajes hicieron su obra en inglés o quizá, simplemente, no se había
dado la oportunidad. Aparte de los motivos, era algo que hacía falta, pues un
área que omite a las personas que la forjaron es similar a renunciar a su propia
historia, no es admisible, ya que, para ser mejores profesionales, debemos
conocer la historia de nuestro campo. Esa es la premisa de este libro.
Esta obra trata sobre una historia de la informática o computación contada
a través de grandes personajes que la dieron forma, en particular de las per-
sonas que hicieron sus aportes luego de la aparición de los primeros orde-
nadores digitales; a través de sus ideas, creatividad, voluntad, perseverancia
3. Association for Computing Machinery.
4
Mentes geniales. La vida y obra de 12 grandes informáticos
y, por qué no decirlo, también de su suerte. Entre ellos hay creadores de
lenguajes de programación, una pieza que es fundamental para entender
la informática. Por otro lado, tenemos personas que inventaron algoritmos,
algunos muy sofisticados, otros muy simples, pero no por ello menos efec-
tivos. Además, tenemos algunas personas que trabajaron en componentes
complejos, a saber, de inteligencia artificial, sistemas distribuidos, gestores
de bases de datos y criptografía.
Cada uno con una historia, en algunos casos se entrelazan ya sea por tiempo
o espacio, pues todos ellos son personas que hicieron su carrera durante el
siglo  (en concreto en la segunda mitad), en su mayoría en EE. UU., e
incluso, en algunos casos, llegaron a colaborar. Sin embargo, debo señalar
que en cualquier parte pueden surgir grandes voluntades; solo se deben dar
las condiciones necesarias.
A continuación, doy una breve reseña de cada uno de los personajes que
están presentes en este libro, con el fin de que usted pueda observar el
camino de lo que encontrará en los siguientes capítulos:
1. Alan Turing. Uno de los padres de la informática. Creador del modelo
matemático que explica lo que es computable, y uno de los primeros
en describir cómo podría funcionar un programa inteligente.
2. John McCarthy. Impulsor de la inteligencia artificial, y la persona que
acuñó dicho término. Además, hizo valiosas contribuciones a los
lenguajes de programación al crear Lisp.
3. Edsger Dijkstra. Creador de uno de los algoritmos más populares: el
camino más corto. Asimismo, escribió innumerables documentos re-
flexionando sobre la actividad de programar y de la informática, sobre
la necesidad del rigor. Fue una persona apasionada de la escritura y de
las matemáticas. Buscó hacer de la programación un área científica.
4. Tony Hoare. Uno de los creadores de la verificación formal, cuando
presentó la —hoy llamada—lógica de Hoare. Esta permite compro-
bar, a priori, el comportamiento de los programas, verificando sus
resultados, lo cual es muy útil al diseñar algoritmos específicos. Y
fue además el creador de «null».
5. Niklaus Wirth. Una persona que ha dedicado su vida al diseño de
lenguajes de programación; que procura que sean sencillos, fáciles
de usar y, en general, elegantes. Algunas de sus creaciones fueron
Pascal, Modula y Oberon.
6. Richard Karp. Trabajó en problemas de combinatoria y aspectos teó-
ricos de la computación. A él le debemos uno de los trabajos más
influyentes de su área, el que permitió comprobar, a través de un
marco de trabajo, qué problemas son NP-completos.
5
Introducción
7. Manuel Blum. Creador de varios avances en la criptografía y la com-
putación teórica. A su vez, fue inventor del CAPTCHA y, además,
fue un excelente supervisor doctoral, que dejó una estela de grandes
alumnos, todos ellos destacados profesionales en sus respectivos
campos. Incluso se ha adentrado en el problema de la conciencia.
8. Donald Knuth. Una de las personas que escribió una opera magna de
la computación. Extremadamente prolífico. Inventor de múltiples
algoritmos y padre del área llamada «análisis de algoritmos».
9. Barbara Liskov. Una de las mujeres que más ha aportado al desarro-
llo de software, al tratar temas como los tipos abstractos de datos.
Algo fundamental para comprender el buen diseño de programas,
sobre todo si hablamos de la orientación a objetos.
10. Leslie Lamport. Destacado por sus aportes a los sistemas distribui-
dos. Fue artífice de algunos de los algoritmos más interesantes que
existen, que, a través de bellas metáforas, pudo reducir la comple-
jidad de la explicación usando la simplicidad. Un gran defensor del
uso de las matemáticas en la programación.
11. Michael Stonebraker. Investigador y empresario que ha creado ges-
tores de bases de datos novedosos e interesantes; para dar respuesta
a los problemas de analizar y manipular grandes cantidades de da-
tos. Algunas de sus obras fueron Postgres y H-Store.
12. Tim Berners-Lee. Creador de la web y un gran defensor de la privaci-
dad de las personas en la red.
JUSTIFICACIONES PREVIAS
No es menos importante mencionar que verme en la tarea de escoger a los
12 personajes sobre los que trata este libro fue una tarea ingrata. ¿Por qué?
Pues una elección trae consigo dejar fuera a otros. Hay muchas más mentes
que han hecho posible la informática tal y como la conocemos. Por ello,
me veo en la obligación de presentar mis excusas, que al menos me sirvan
de justificación con usted, pues no es de extrañar que vea con desazón que
falten algunos de los personajes que admira. Pero tenga en cuenta que mi
elección ha sido honesta y se funda en fuertes motivos, aunque eso no
significa que esté libre de sesgos.
Así, los criterios para la elección de los personajes de este libro fueron los
siguientes:
1. Información disponible. En la búsqueda de personajes destacados me
encontré con el dilema de que muchos de ellos no tenían muchas
entrevistas ni tampoco se contaba con información más allá de su
6
Mentes geniales. La vida y obra de 12 grandes informáticos
obra. Por este motivo, y como es de esperar, irremediablemente
tuve que escoger a las personas sobre las que hubiera más datos
disponibles, no tan solo de su obra, sino de su vida.
2. Afinidad. Para mí, los lenguajes de programación y los algoritmos
son el corazón de la informática. Así pues, no es de extrañar un
cierto sesgo por mi parte a favor de personas que hayan creado o
investigado en algo relacionado. Sin embargo, hay excepciones, por
ejemplo: Michael Stonebraker y Tim Berners-Lee, ambos fueron
creadores de sistemas, es decir, múltiples programas que colaboran
entre sí para crear un ecosistema de software.
3. Prioridad a la investigación. He querido dedicar un libro a las per-
sonas que investigaron y con su trabajo influyeron en la industria.
Por este motivo, este no es un libro sobre grandes programadores,
aunque todos ellos programaban, sus ideas residen más bien en
cuestiones abstractas, teóricas, especialmente relacionadas con la
aplicabilidad.
4. Ganadores del Premio Turing. En la actualidad se le conoce como el
premio más importante en la informática, creado por la ACM. Y se en-
trega a las personas que hayan hecho un aporte sobresaliente al área.
5. Importancia. Cuando se ve el nombre de Alan Turing en un libro de
grandes informáticos, me parece que no es preciso, pues él no fue
un informático, fue más bien un lógico-matemático. Aunque no por
elección, sino porque él estaba creando, indirectamente, la informá-
tica. Por este motivo es difícil explicar la historia de la informática
sin Turing.
6. Límite de espacio. Cuando se comienza un libro, hay una restricción
de páginas que no puedo superar. Ante tal situación me he visto en
la necesidad de ser selectivo.
Creo que con estos motivos he retrasado mi sentencia y tengo más posibi-
lidades de que me conceda su perdón.
NOTA PARA LOS LECTORES
El libro se divide en 12 capítulos —cada uno representa un personaje—,
ordenados por la fecha de nacimiento de la persona (menor a mayor). Se
puede leer cada uno de manera independiente, es decir, no es necesario que
lea un capítulo tras otro.
7
Introducción
También es importante añadir que algunos capítulos tienen una breve
parte técnica que explica algo específico de la obra de la persona, usted
puede identificarlo, pues el texto tiene un marco y fondo gris. Por ende,
en caso de no estar interesado en ello, lo puede saltar.
La estructura de cada capítulo es cronológica; así, por ejemplo, el capítulo
dedicado a Alan Turing comienza desde sus primeros años, cómo se formó
intelectualmente, cuáles fueron sus trabajos más importantes, hasta llegar
al final del capítulo, donde le recomiendo algunas de sus obras más influ-
yentes que, naturalmente, usted podría leer. Esta estructura se repite para
cada uno de los personajes.
Tenga presente que la vida de una persona, y más cuando ha sido prolífica
en su vida, no puede ser sintetizada en pocas páginas. Justo por eso, he
decidido presentar lo que yo considero más interesante. Por este motivo
es que, al final de cada capítulo, entrego algunas recomendaciones que,
según mi punto de vista, pueden ser de utilidad para usted, pues, en ellas,
usted podrá comprender mejor la obra de cada personaje. Profundizar en
su trabajo.
Por otro lado, hay una cuestión que debo aclarar: los términos «informáti-
ca», «ciencia de la computación» y «computación» los uso como sinónimos
en este libro. Solo elijo una u otra palabra en función del personaje que
estoy tratando: si es más cercano a la teoría, privilegiaré las dos últimas; en
cambio, si su trabajo se centra en algo más aplicado, usaré la primera.
Finalmente, también le pido que no omita las notas que aparecen, con
cierto empeño, en este libro, pues en ellas hay mucha información relevan-
te, varias aclaraciones, información adicional y sugerencias de libros.
Para más información, puede visitar mi sitio web:
www.camilochacon.com
i
Book
Full-text available
¿Cuáles son los principios subyacentes a toda herramienta en programación? Si quiere conocer los ocho principios, técnicos y conductuales, que dan respuesta a esta pregunta, ha llegado al libro indicado. En una época donde cada día surgen nuevas tecnologías, el beneficio de conocer conceptos transversales a todas ellas no solo es imprescindible, sino también necesario. Además, con la llegada de sofisticadas aplicaciones de inteligencia artificial, la pregunta ya no reside en qué herramienta aprender, sino en qué tienen en común para poder integrarlas. Gracias a la lectura de este libro, descubrirá los cinco tomos que lo componen y que dan soporte a la nueva forma de entender la programación.
4 CLU y el tipo abstracto de dato (TDA)
  • Una
  • . . . Algol
Una crítica a ALGOL............................................................................ 122 9.4 CLU y el tipo abstracto de dato (TDA).............................................. 123