Donald Knuth, un Dios de la programación
Posiblemente Donald Ervin Knuth no os suene de nada. No es una de esas personas que aparecen frecuentemente en los medios de comunicación, ni siquiera en los medios más especializados a pesar de tener una trayectora envidiable en su campo y ser uno de los padres de la informática moderna.
A sus setenta y cuatro años podría decirse que Donald Knuth ya lo ha hecho todo en la vida. Ha ganado múltiples premios de gran prestigio internacional, ha desarrollado software de primera línea y ha escrito lo que para muchos es “una de las biblias de la programación”, si no la más importante. Sí, Knuth ha dedicado toda su vida a la programación, tanto teórica como práctica.
Biografía rápida
Donald Ervin Knuth, más conocido como Donald Knuth o D. Knuth, nació el 10 de enero de 1938 en Milwaukee, del estado de Wisconsin en Estados Unidos, y recibió una educación basada en el luteranismo desde su infancia, cuando aprendió a tocar múltiples instrumentos musicales. Entre ellos destacó un órgano heredado de su familia.
Ya en la Universidad se decantó por estudiar Física en vez de Música, y en 1958 creó uno de sus primeros programas informáticos. Por aquella época el concepto de Informática no existía y estas labores las realizaban físicos y matemáticos, con lo que no era ninguna sorpresa. Lo que sí llamó especialmente la atención fue que su programa fuera cubierto por los medios de la época, como el Newsweek o la CBS.
Knuth cursó Físicas en la actual Case Western Reserve University de Cleveland desde el año 1956, y se graduó en 1960 con el reconocimiento del profesorado. Entonces decidió continuar sus estudios y comenzó una nueva carrera de Matemáticas en el California Institute of Technology, la cual terminó en junio de 1963 como Doctor en Matemáticas. El nombre de su tésis fue “Finite Semifields and Projective Planes”.
Y ahora empieza el baile.
The Art of Computer Programming, su obra maestra… escrita
Si hay algo que ha caracterizado a Knuth ha sido The Art of Computer Programming. Cuando empezó a escribirlo allá por 1.962 iba a ser un único libro con doce capítulos de información sobre tipos de datos, algoritmos básicos y problemas y ejercicios clásicos del mundo de las matemáticas. Pero hubo un problema: se puso a escribir y llegó a redactar 3.000 páginas escritas a mano, una cifra desorbitada para un único tomo.
Entonces surgió la idea de hacer varios volúmenes, y así es como existe en la realidad: The Art of Computer Programming consiste en siete volúmenes de los cuales completos sólo tenemos los tres primeros. El cuarto es el que Knuth está actualmente editando y, dada su complejidad, ha decidido dividirlo en al menos cuatro subvolúmenes: 4A, 4B, 4C y 4D. De ellos sólo el primero está a la venta y los otros tres están previstos para los próximos años, aunque ni siquiera se sabe con certeza el número final.
¿Y los demás volúmenes? Quinto, sexto y séptimo están previstos para el futuro. Concretamente el quinto volumen podría finalizarse sobre el año 2020, cuando Knuth tenga 82 años. Y sí, por supuesto Knuth continúa escribiendo The Art of Computer Programming, y estoy seguro de que seguirá haciéndolo hasta el último día de su vida.
The Art of Computer Programming es considerada por muchos como la gran Biblia de la programación, una lectura obligatoria para cualquier creador de software del mundo que por supuesto sigue estando a la venta. Por ejemplo en Amazon la podemos encontrar por unos 187 dólares incluyendo los tres primeros volúmenes completos y el último 4A.
TeX, su obra maestra… programada
Si The Art of Computer Programming es su gran obra escrita, su ensayo sobre la programación, TeX es su obra mestra programada. Si Knuth escribió una Biblia sobre programación es evidente que tuvo que programar algo grande y de gran importancia para el mundo.
TeX nació precisamente gracias a sus libros: existía la necesidad de que editar texto en un ordenador fuese una tarea sencilla y que por supuesto diese resultados sobresalientes. En 1978 Knuth comenzó a desarrollar TeX y lanzó su primera versión, aunque fue algo más tarde cuando el software comenzó a tener éxito.
Pero ¿qué es TeX? Y digo bien: TeX. Ni Tex ni tampoco tex, ni por supuesto TEX. TeX podría definirse como un procesador de textos en modo código, cuyos resultados son bellos y precisos gracias en parte al uso de algoritmos que proporcionan un correcto espaciado de las letras y justificación del propio texto final, para que den el resultado más agradable a nuestra vista y hagan fácil la lectura. Para muchos la gran virtud de TeX está en las ecuaciones matemáticas, ya que permite editarlas con un resultado cercano a la perfección.
TeX nació de una necesidad y ha terminado siendo una excelente herramienta utilizada ampliamente por todo el globo, aunque casi restringida al mundo de la ciencia dada su mayor complejidad respecto de otros programas como Word de Microsoft Office. Sus resultados por defecto – por supuesto es ampliamente personalizable, pero casi nadie aplica modificaciones – son tan bellos estéticamente que se han convertido en un estándar en los exámenes de matemáticas de Universidades por todo el mundo, en los Proyectos de Final de Carrera y por supuesto en Másteres y Doctorados.
Curiosidades de Donald Knuth
Ya tenemos sus dos grandes obras, The Art of Computer Programming y TeX, pero Knuth ha aportado mucho más.
Gracias a sus estudios y su conocimiento se convirtió en Profesor de la Universidad de Standford, donde ha dado – y sigue dando, aunque cada vez con menos frecuencia – múltiples charlas. Precisamente en la web de Standford tiene colgada su página web oficial y su enorme curriculum, creado en TeX – por supuesto, ¿qué pensábais? – y con una longitud actual de 39 páginas.
A priori podríamos pensar que Knuth es el típico profesor vetusto y oxidado de una Universidad, un viejo cascarrabias que se ha dedicado a escribir sobre matemáticas y ciencia. Dejando de lado su personalidad, Knuth ha dejado dos grandes anécdotas en su vida:
El dólar hexadecimal
La primera de ellas es sobre errores en The Art of Computer Programming: cualquier persona que encuentre cualquier tipo de error en sus libros será recompensada económicamente con 2.56 dólares, lo que él denomina un dólar hexadecimal (abreviado como 0x$
). El sistema hexadecimal es junto al binario la base de los computadores, de forma que 2.56 dólares tienen cierta similitud con el número entero y decimal 256, que si lo convertimos a hexadecimal sería 0x100
, y en binario…. 100000000
.
Adicionalmente Knuth también ha repartido “premios” de 0.32 dólares para todas aquellas personas que proporcionan sugerencias a sus libros. Volvamos a jugar como antes: el decimal 32 sería el hexadecimal 0x20
y el binario 100000
.
¿Pensáis que esto es una broma? No. De hecho, Knuth enviaba un cheque con el respectivo valor (2.56 o 0.32 dólares, o la suma de los “premios” recibidos), pero tuvo que dejar de hacerlo desde 2006 debido a que la información escrita en el propio cheque no era segura. Desde entonces utiliza una cuenta bancaria para realizar un depósito a todos los agraciados y mantiene un pequeño historial en este apartado de su web. Fijaos que ese listado de 479 nombres se creó en 2006, ya que la información anterior (entre 1.965 y 2.005) era excesivamente larga como para plasmarla en una única página web. Los antiguos cheques actualmente son pequeñas joyas de museo para sus poseedores y pocos de ellos los han cobrado: en alguna ocasión Knuth ha indicado que sólo el 3% lo ha hecho.
Las versiones de TeX
TeX no se utiliza tal y como está diseñado. Es el núcleo de un software final llamado LaTeX y mucho más conocido, pero como todo software tiene su numeración en las versiones.
Tradicionalmente, esta numeración sigue un orden clásico. Por ejemplo, la versión 2.134 alude a la segunda versión final del software (’2′) y con 134 pequeñas mejoras, que pueden ser todas públicas o no. Cada nueva gran versión aumenta en la unidad el entero y cada nueva pequeña versión incrementará en uno la parte decimal.
Cuando Knuth empezó a desarrollar TeX y lanzó su primera versión en 1.978 seguía el orden natural: versión 1.0. Con el segundo gran cambio llegó la 2.0 y más tarde la tercera, 3.0. Hasta aquí todo correcto, siguiendo los cánones. Pero desde entonces TeX es un software final y sólo ha sufrido pequeños cambios que se han numerado como 3.1, luego 3.14 y más tarde 3.141. ¿Adivináis como sigue? La versión actual de TeX con fecha de marzo de 2008 es la 3.1415926, en un pequeño homenaje al número Pi: cada nueva versión de TeX se va acercando al valor real de Pi, una constante matemática que como sabéis tiene infinitos decimales sin que estos sigan ninguna serie, pareciendo ‘aleatorios’.
Otras curiosidades de Knuth
La vida de Donald Knuth se ha centrado en ‘su Biblia’ y TeX, pero ha seguido dando charlas por todo el mundo y clases en la Universidad. En 1990, la propia Universidad de Standford decidió otorgarle el título de Profesor Emérito de The Art of Computer Programming, creando así una asignatura coincidente con el nombre de su libro, en agradecimiento a toda su carrera.
Knuth no utiliza el correo electrónico. En su página web indica que tiene una cuenta desde 1.975 y que lo abandonó el 1 de enero de 1.990, indicando que “quince años de email son suficientes para una vida”. Desde entonces se puede contactar con él por correo postal o por fax a través de las direcciones descritas en su página web, aunque advierte que sólo lee estos mensajes cada tres o seis meses, respectivamente. El propio Knuth dice que tomó esta medida para poder terminar su libro, tarea para la que necesitará muchos años y en la que sigue centrado.
Desde siempre se ha dicho que Knuth utiliza el ordenador de pié, si bien esto podría ser una vieja leyenda urbana puesto que no he encontrado fuente oficial que lo confirme.
Donald Knuth, uno de los padres de la informática moderna
La computación tal y como la conocemos hoy en día nació en el siglo XX y tiene como gran nombre a Alan Turing, creador de la Máquina de Turing sobre la que posteriormente se basaron los ordenadores más modernos. Turing es sin duda alguna uno de los principales protagonistas de la informática, y su trágina muerte en 1.954 (se suicidó envenenado con cianuro) lo ha convertido en un mito para muchos.
Por ejemplo Steve Jobs es famoso por ser la cara visible de Apple, una de las empresas que más está dando de qué hablar en la actualidad, y ha sido descrito como una de las personas más influyentes en los ordenadores desde los años 70. Bill Gates es para muchos un enemigo a batir, pero hay que reconocer que ha sabido forjar el enorme imperio Microsoft, actualmente una de las más grandes empresas de software de todo el mundo. A él tenemos que agradecer los ordenadores que tenemos en nuestras casas.
Y hay muchos nombres más, claro: Dijkstra, Stallman, Wozniak, Minsky, Tanenbaum, Torvalds, Berners-Lee, Church, Kay, von Neumann o Pascal son algunos de ellos, sin olvidar a Ada Lovelace que es considerada como la primera programadora de la historia allá por el siglo XIX.
Donald Knuth ha pasado desapercibido por muchos y quizá sea el momento de empezar a acordarse de él, de sus creaciones y del legado que nos ha dejado. Sirva este artículo para rendirle un pequeño homenaje y enviarle toda la fuerza del mundo para terminar con su mangífica obra.
BONUS: “My advice to young people”, parte de una entrevista a Donald Knuth que todos deberíamos ver al menos una vez en la vida.
Imágenes | Portada de Flickr de Robert Scoble, Cheque de Flickr de Baishampayan Ghose, Salón de Flickr de Stanford Engineering, junto a Alcorn y Wozniak de Flickr de vonguard
COMENTARIOS
10