28 de febrero de 2010
Yo leo a Donald Knuth
Después del genial K&R sobre la programación en C, decidí hace dos semanas comprar The Art of Computer Programming de Donald Knuth. Este libro está considerado como una biblia de las verdades eternas de la informática, si bien a veces parece las pajas mentales de un pitagorín collejeable que viene de la olimpiada matemática. Está claro que complica por complicar, que busca la definición más obtusa posible, que nunca dice dos si puede decir ocho más dieciséis partido por doce. Siempre intenta arrimar el ascua informática a su sardina matemática; cuando no puede meterlas a base de sumatorios para calcular el rendimiento o el uso de memoria lo hace a través de los ejemplos. Cuando explicaba las listas enlazadas tuve que mirar en otro libro para no quedarme allí atascado dando vueltas y vueltas al mismo párrafo. La chorrada más grande la estira, la oscurece y le da un retruécano. Supongo que los lectores más formados en matemáticas no tendrán esos problemas.

He leído de momento el primer tomo y he aprendido algoritmos de entrada y salida con tarjetas perforadas y casetes, el concepto de "buffer" y lo jodido que era hacer un malloc antes de Dennis Ritchie. Otras cosas o ya las sabía o las he saltado. La introducción con las matemáticas del COU, la especificación de su propio lenguaje ensamblador y los ejercicios me los he saltado.

La parte en la que habla de los árboles es extensa en el primer volumen y luego tiene dedicada la mitad del tercer volumen. Parece que con eso ya sabes todo lo que hay que saber: árboles binarios y no binarios, secuencialización de esos árboles de tres maneras distintas, varias formas de representación gráfica, búsquedas, inserciones, borrados, etc. Pero si le pido que me indique las farmacias de guardia en un radio de diez kilómetros desde mi geoposición no lo va a saber hacer porque sólo trabaja con claves y no con rangos de búsqueda.

Se puede perder un año con este tío, acabar y no saber hacer un programa útil. Porque él tampoco ha hecho ningún programa de relevancia. Ni se preocupa por explicar los posibles usos de sus algoritmos.

Creo que el verdadero talento del informático que se forra es acercar las máquinas al ser humano y no intentarlo al revés. Claridad de pensamiento y capacidad de síntesis.

Una cosa buena sí que le voy a reconocer: cuando acabas un tomo coges un libro sobre Linux y parece el prospecto de una lavadora. El crecimiento conceptual que te propicia es innegable. Esto creo que es la razón del poderoso atractivo de este libro. Y supongo que también un cierto esnobismo a favor de lo sesudo.

Así que me he quedado un poco como Faemino y Cansado:
Qué va, qué va:
yo leo a Donald Knuth
Actualización:
Ya sabía yo que algo me recordaba la escolástica medieval:
The process should perhaps be called ordering, no sorting; but anyone who tries to call it "ordering" is soon led into confusion because of the many different meanings attached to that word. Consider de following sentence, for example: "Since only two or our tape drives were in working order, I was ordered to order more tape units in short order, in order to order the data several orders of magnitud faster".
"La razón de la sinrazón que a mi razón se hace, de tal manera mi razón enflaquece, que con razón me quejo de la vuestra fermosura".

No vale un pimiento este tío.

12:37:33 ---------------------  



© A. Noguera

"Mirar el río hecho de tiempo y agua
y recordar que el tiempo es otro río,
saber que nos perdemos como el río
y que los rostros pasan como el agua".
Jorge Luis Borges


Leer los archivos

Entradas destacadas:
Pepito Relámpago - Pepita Nuncabaja - Seis meses en meetic - Etapas de la burbuja