Libro 1:
"El vacío silencioso"Así habló el maestro programador:
"Cuando hayas aprendido a atrapar el código del error adecuado, será el momento de partir"
1.1
Algo misterioso se ha formado, nacido en el vacío silencioso. Esperando, solitario, está a la vez detenido y en movimiento constante. Es la fuente de todos los programas. No conocemos su nombre, así que lo llamaremos "El Tao de la Programación".
Si el Tao es bueno, entonces el Sistema Operativo es bueno.
Si el Sistema Operativo es bueno, entonces el compilador es bueno.
Si el compilador es bueno, entonces la aplicación es buena
El usuario está contento y habrá armonía en el mundo.
El Tao de la programación vuela lejos y regresa con el viento de la mañana.
1.2
El Tao dio nacimiento al lenguaje de máquina. El lenguaje de máquina dio nacimiento al assembler. El assembler dio nacimiento al compilador.
Ahora hay miles de lenguajes.
Cada lenguaje tiene su propósito. Cada lenguaje expresa el Yin y el Yang del software, como así también tiene su lugar dentro del Tao.
Pero no programe en COBOL si puede evitarlo.
1.3
En el comienzo fue el Tao. El Tao dio nacimiento al espacio y al tiempo. Así es que el espacio y el tiempo son el Yin y el Yang de la programación.
Los programadores que no comprenden el Tao están siempre quedándose sin tiempo ni espacio para sus programas. Cosa que no sucede con aquellos programadores que sí comprenden el Tao.
1.4
El programador astuto oye sobre el Tao y lo sigue. El programador promedio oye sobre el Tao y lo busca. El programador tonto se ríe del Tao.
Si no existiera la risa, no existiría el Tao.
Los sonidos más agudos son los más difíciles de escuchar. Ir hacia adelante es una forma de arrepentirse. Los grandes talentos se muestran tarde durante la vida. Aún un programa perfecto tiene errores.
Libro 2:
"Los viejos maestros"Así habló el maestro programador:
"Luego de tres días sin programar, la vida pierde sentido"
2.1
Los viejos programadores eran misteriosos y profundos. No podemos conocer sus pensamientos, de manera tal que describiremos su apariencia.
Atento, como el lobo cruzando el río. Alerta, como un general en el campo de batalla. Amable, como un anfitrión recibiendo a sus invitados.
¿Quién puede descifrar los secretos de sus mentes y sus corazones?
La respuesta sólo puede encontrarse en el Tao.
2.2
El Gran Maestro Turing soñó una vez que era una máquina. Al despertarse exclamó:
"No sé si soy Turing soñando que soy una máquina, o una máquina soñando que es Turing"..
2.3
Un programador de una gran compañía de computadoras asistió a una conferencia sobre software y volvió con este reporte para sus superiores:
"¿Qué tipo de personas trabajan programando para otras compañías? Pude observar que se comportaban antisocialmente y no les importaba su apariencia. Tenían pelos largos y mal cuidados, y sus ropas estaban desarregladas y raídas. No guardaban la formalidad adecuada e hicieron ruidos molestos durante la charla".
Su jefe dijo:
"No debería haberte enviado a esa conferencia. Los programadores, en general, viven más allá del mundo físico. Ellos consideran a la vida algo absurdo, una coincidencia accidental. Van y vienen sin conocer los límites. Sin importarles nada, viven solamente para sus programas. ¿Por qué deberían preocuparse por las convenciones sociales...?
"...Pero ellos viven dentro del Tao".
2.4
Un novicio le preguntó al Maestro: "He aquí un programador que nunca diseña, documenta o prueba sus programas. Sin embargo, todos los que lo conocen lo consideran uno de los mejores programadores del mundo. ¿Por qué?
El Maestro le respondió: "Ese programador ha aprehendido el Tao. Ha ido más allá de la necesidad del diseño; no se exalta cuando se cae el sistema. Ha ido más allá de la necesidad de la documentación; ya no le importa que alguien más vea su código. Ha ido más allá de la necesidad de testeo, cada uno de sus programas son perfectos en sí mismos, serenos y elegantes, son autoexplicativos y sus propósitos son evidentes. Verdaderamente, él ha entrado al misterio del Tao"
Libro 3:
"Diseño" (parte I)Así habló el maestro programador:
"Cuando el programa está siendo testeado,
ya es demasiado tarde para realizar cambios en el diseño".
3.1
Una vez había un hombre que asistió a una exposición de computadoras. Cada día, al entrar, le decía al guardia de la puerta: "Soy un gran ladrón. Así que están avisados: cuando salga, voy a llevarme conmigo muchas cosas robadas..." Así es que el guardia observó al hombre cuidadosamente, puesto que en la exposición había millones de dólares en equipamiento. Pero sólo pudo ver que paseaba tranquilamente por los stands, como cualquier otra persona.
Cuando el hombre salió, el guardia lo revisó cuidadosamente, sin encontrar nada.
Al día siguiente, el hombre volvió a asistir al evento, y le dijo al guardia: "Ayer pude escapar con un gran botín, pero hoy voy a robarme mucho más". Así es que el guardia lo observó aún más cuidadosamente, sin descubrir nada.
Al finalizar la exposición, el guardia no pudo resistir más la curiosidad, y le habló al hombre: "Señor ladrón" -le dijo (era educado)- "Dígame, por favor, ¿qué es lo que usted está robando?"
El hombre sonrió y dijo: "Estoy robando ideas".
3.2
Hubo una vez un programador que escribía programas desestructurados. Un programador novicio, queriendo imitarlo, comenzó también a escribir programas desestructurados. Cuando le pidió a su maestro que evaluara su progreso, el maestro lo criticó por escribir programas desestructurados, diciendo que "lo que es apropiado para el maestro no es apropiado para el novicio. Debes conocer al Tao antes de trascender la estructura".
Libro 3:
"Diseño" (parte II)Así habló el maestro programador:
"Cuando el programa está siendo testeado,
ya es demasiado tarde para realizar cambios en el diseño".
3.3
Una vez el Maestro Programador le preguntó a uno de sus aprendices: "¿Qué es más fácil de diseñar, un Sistema para Liquidar Sueldos o un Sistema Operativo?".
-"Un Sistema Operativo", contestó el aprendiz.
-"¡Cómo!" -exclamó el Maestro- "¡Un Sistema de Liquidación de Sueldos es trivial al lado de un Sistema Operativo!".
-"No tanto" -replicó el aprendiz- "al diseñar un Sistema Comercial, el programador debe operar como un mediador entre personas que tienen diferentes ideas y conceptos sobre cómo debe operar el sistema, cómo deben ser sus reportes, cómo debe lidiar el sistema con las leyes de impuestos, etc. Por el contrario, un Sistema Operativo no se encuentra limitado por las apariencias externas. Al diseñar un Sistema Operativo, el programador busca la armonía más simple entre la máquina y sus ideas. Así es como un Sistema Operativo es más fácil de diseñar".
El Maestro sonrió y dijo: "Está muy bien lo que dices, pero... ¿cuál de los dos sistemas es más fácil de debuggear?".
El aprendiz no respondió.
3.4
Un analista de sistemas se dirigió al Maestro Programador y le mostró la lista de requerimientos para el desarrollo de un nuevo programa. Luego le preguntó:
-"Cuánto tiempo llevará desarrollar este sistema si asigno cinco programadores al proyecto?"
-"Llevará un año", respondió el Maestro sin titubear.
-"¡Pero necesitamos este sistema mucho antes! ¿Cuánto tiempo llevará si le asigno diez programadores?"
-"Llevará dos años", fue la respuesta del Maestro.
-"¿Y si le asigno cien programadores al desarrollo?"
-"Entonces nunca se terminará"
Libro 4:
"Codificación"4.1
Un programa debe ser liviano y ágil. Sus subrutinas deben estar conectadas como las perlas de un collar. El espíritu y la intención de este programa debe mantenerse línea a línea. No debe haber ciclos innecesarios ni variables inútiles, ni observarse una falta de estructura.
Todo programa debe seguir la regla del "menor sorprendimiento". Esto es, el programa debe responder al usuario en la forma en que menos lo sorprenda.
Todo programa debe actuar como una unidad única y funcionar con lógica y no por su apariencia externa.
4.2
Un novicio le dijo al Maestro: "Tengo un programa que a veces funciona bien y a veces aborta la ejecución. He seguido todas las reglas de la programación y estoy completamente confundido. ¿Qué es lo que sucede?".
El Maestro contestó: "Estás confundido debido a que no comprendes el Tao. Sólo un tonto supone que una computadora, que ha sido diseñada por humanos imperfectos, tenga un comportamiento absolutamente perfecto. Sólo el Tao es perfecto".
4.3
El Maestro se hallaba explicando la naturaleza del Tao a uno de sus novicios:
-"El Tao puede estar presente en todo software". Dijo el Maestro. "Aún en el más pequeño. Su comportamiento es perfecto".
-"¿Está el Tao en una calculadora de bolsillo?" -Inquirió un novicio.
-"Por supuesto".
-"¿Está el Tao en un video juego?".
-"También lo está".
- "¿Y está el Tao en el Windows para las computadoras personales?".
El Maestro carraspeó y dijo: "La lección ha terminado por hoy".
4.4
El programador astuto oye sobre el Tao y lo sigue. El programador promedio oye sobre el Tao y lo busca. El programador tonto se ríe del Tao.
Si no existiera la risa, no existiría el Tao.
Los sonidos más agudos son los más difíciles de escuchar. Ir hacia adelante es una forma de arrepentirse. Los grandes talentos se muestran tarde durante la vida. Aún un programa perfecto tiene errores.