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 xx (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 reflexionando 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 comprobar, 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.
7. Manuel Blum. Creador de varios avances en la criptografía y la computació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 desarrollo 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 distribuidos. Fue artífice de algunos de los algoritmos más interesantes que existen, que, a través de bellas metáforas, pudo reducir la complejidad 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 gestores de bases de datos novedosos e interesantes; para dar respuesta a los problemas de analizar y manipular grandes cantidades de datos. Algunas de sus obras fueron Postgres y H-Store.
12. Tim Berners-Lee. Creador de la web y un gran defensor de la privacidad 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 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 personas 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 entrega 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 posibilidades 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.
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 influyentes que, naturalmente, usted podría leer. Esta estructura se repite para cada uno de los personajes.
Tenga presente que la vida de una persona,