Vous êtes sur la page 1sur 10

El Tao de la Programacin por Geoffrey James LIBRO PRIMERO: EL VACO SILENCIOSO As habl el maestro programador: Cuando hayas aprendido

a extraer el cdigo del error desde un trap frame, ser la hora de marcharte 1.1 Algo misterioso se forma, nace en el vaco silencioso. Esperando solo e inmvil, al mismo tiempo detenido y en movimiento constante. Es la fuente de todos los programas. Yo no s su nombre, as que lo llamar el Tao de la Programacin. Si el Tao es grandioso, entonces el sistema operativo es grandioso. Si el sistema operativo es grandioso, entonces el compilador es grandioso. Si el compilador es grandioso, entonces la aplicacin es grandiosa. El usuario est complacido y hay armona en el mundo. El Tao de la Programacin fluye lejos y regresa con el viento de la maana. 1.2 El Tao engendr al lenguaje mquina. El lenguaje mquina dio vida al ensamblador. El ensamblador se la dio al compilador. Ahora hay diez mil lenguajes. Cada lenguaje tiene su propsito, aunque sea humilde. Cada lenguaje expresa el Yin y el Yang del software. Cada lenguaje tiene su lugar dentro del Tao. Pero no programes en COBOL si puedes evitarlo. 1.3 En el principio era el Tao. El Tao engendr el Espacio y Tiempo. Por tanto Espacio y Tiempo son el Yin y el Yang de la programacin. Los programadores que no comprenden el Tao siempre siempre se quedan sin tiempo y espacio para sus programas. Los programadores que comprenden el Tao siempre tienen tiempo y espacio suficiente para lograr sus objetivos. Cmo podra ser de otra manera? 1.4 Al programador sabio le hablan del Tao y lo sigue. Al programador medio le hablan del Tao y lo busca. El programador necio se re cuando le hablan del Tao. Si no fuera por la risa, no existira el Tao. Los sonidos ms altos son los ms difciles de or. Avanzar es un camino para la retirada. El gran talento se muestra tarde en la vida. Incluso un programa perfecto todava tiene errores. LIBRO SEGUNDO: LOS MAESTROS ANCIANOS As habl el maestro programador: Despus de tres das sin programar, la vida pierde sentido 2.1

Los programadores de la antigedad eran misteriosos y profundos. No podemos comprender sus pensamientos, as que todo lo que hacemos es describir su apariencia. Consciente, cual zorro cruzando el agua. Alerta, como un general en el campo de batalla. Amable, como una anfitriona saludando a sus invitados. Simple, como bloques de madera sin tallar. Opaco, como negras piscinas en cuevas oscuras. Quin puede contar los secretos de sus corazones y mentes? La respuesta slo existe en el Tao. 2.2 El Gran Maestro Turing una vez so que era una mquina. Cuando se despert, exclam: No s si soy Turing soando que soy una mquina, o una mquina soando que soy Turing!' 2.3 Un programador de una gran compaa fue a una conferencia de software y luego regres para informar a su jefe, diciendo: Qu clase de programadores trabajan en otras empresas? Se comportan mal y no se preocupan por las apariencias. Su cabello era largo y despeinado y sus ropas arrugadas y viejas. Destrozaron nuestra hospitalidad e hicieron ruidos groseros durante mi presentacin''. El director dijo: Nunca deb haberte enviado a la conferencia. Esos programadores viven ms all del mundo fsico. Consideran que la vida es absurda, una coincidencia accidental. Ellos van y vienen sin conocer limitaciones. Sin cuidado, ellos viven slo para sus programas. Por qu deberan preocuparse por las convenciones sociales? Ellos viven dentro del Tao. 2.4 El discpulo pregunt al Maestro: Este es un programador que nunca disea, documenta o prueba sus programas. Sin embargo, todos los que lo conocen lo consideran uno de los mejores programadores del mundo. Por qu es esto? El Maestro responde: Ese programador ha alcanzado la maestra del Tao. Ha ido ms all de la necesidad de un diseo; no se enoja cuando el sistema se cae, pero acepta al universo sin preocupacin. Ha ido ms all de la necesidad de documentacin; no le importa si alguien ms ve su cdigo. Ha ido ms all de la necesidad de pruebas; cada uno de sus programas son perfectos en s mismos, serenos y elegantes, su propsito es auto-evidente. Realmente, l ha penetrado en el misterio del Tao''. LIBRO TERCERO: DISEO As habl el maestro programador: Cuando el programa est siendo testeado, es demasiado tarde para hacer hacer cambios de diseo 3.1 Hubo una vez un hombre que fue a una feria de informtica. Cada da, al entrar le deca al guarda de la puerta: soy un gran ladrn reconocido por mis hazaas de robo. Ests prevenido de que esta feria no escapar sin ser saqueada.

Estas palabras incomodaron mucho al guardia, porque dentro haba millones de dlares en equipamiento informtico, as que observ cuidadosamente al hombre. sin embargo, el hombre simplemente vagaba de stand en stand, murmurando para s. Cuando el hombre se iba, el guardia se lo llev aparte y busc entre sus ropas, pero nada fue encontrado. Al siguiente da de la feria, el hombre regres y rega al guardia diciendo: "Ayer escap con un gran botn, pero hoy ser todava mejor". As que el guardia lo observ incluso ms de cerca, pero sin resultados. En el ltimo da de la feria, el guardia no pudo resistir ms su curiosidad. "Seor Ladrn", dijo, "estoy tan confuso que no puedo vivir en paz. Por favor ilumneme. Qu es lo que est robando?" El hombre sonri. "Estoy robando ideas", dijo. 3.2 Haba una vez un maestro programador que escriba programas no estructurados. Un programador novicio, buscando imitarlo, tambin comenz a escribir programas no estructurados. Cuando el novicio le pidi al maestro que evaluara su progreso, el maestro lo critic por escribir programas no estructurados, diciendo: Lo que es apropiado para el maestro no es apropiado para los principiantes. Debes entender el Tao antes de trascender la estructura. 3.3 Hubo una vez un maestro programador en la corte del seor de Wu. El seor pregunt al programador: qu es ms fcil de disear, un paquete de contabilidad o un sistema operativo?. Un sistema operativo, respondi el programador. El seor lanz una exclamacin de incredulidad. Sin duda, un paquete de contabilidad es trivial al lado de la complejidad de un sistema operativo, dijo. No es as, dijo el programador, cuando se disea un paquete de contabilidad, el programador acta como mediador entre personas con distintas ideas: cmo debe operar, cmo deben aparecer sus informes, y cmo se deben cumplir las leyes de impuestos". Por el contrario, un sistema operativo no est limitado por las apariencias externas. En el diseo de un sistema operativo, el programador busca la armona ms simple entre mquina e ideas. Esta es la razn por la que el sistema operativo es ms fcil de disear. El seor de Wu asinti y sonri. Eso est bien, pero, qu es ms fcil de depurar?. El programador no respondi. 3.4

Un gerente fue al maestro programador y le mostr el documento de requisitos para una nueva aplicacin. El gerente pregunt al maestro: Cunto tiempo se tarda en disear este sistema si le asigno cinco programadores?. Tomar un ao, dijo el maestro rpidamente. Pero necesitamos este sistema inmediatamente o incluso antes! Cunto se tarda si le asigno diez programadores?. El maestro programador frunci el ceo. En este caso, se tardar dos aos. Y si le asigno cien programadores? El maestro programador se encogi de hombros. Entonces el diseo no se completar jams, dijo. LIBRO CUARTO: CODIFICACIN As habl el maestro programador: Un programa bien escrito es su propio cielo; un programa mal escrito, su propio infierno 4.1 Un programa debe ser ligero y gil, sus subrutinas conectadas como las perlas de un collar. El espritu e intencionalidad del programa debe mantenerse en todo momento. No debe ser ni mucho ni poco, ni bucles innecesarios ni variables sin utilidad, ni ausencia de estructura ni rigidez excesiva. Un programa debe seguir la Ley de la menor sorpresa. Qu es esta Ley? Simplemente que el programa debe responder siempre de la forma que menos sorprenda al usuario. Un programa, no importa cun complejo sea, debera actuar como una sola unidad. El programa debe ser dirigido por la lgica interna en lugar de por las apariencias externas. Si el programa falla en estos requisitos, se llegar a un estado de desorden y confusin. La nica manera de corregir esto es reescribiendo el programa. 4.2 Un discpulo pregunt al maestro: Tengo un programa que a veces funciona y veces aborta. He seguido las reglas de la programacin, y estoy totalmente desconcertado. Cul es la razn?. El maestro respondi: Ests confuso porque no entiendes el Tao. Slo un necio espera un comportamiento racional de sus semejantes humanos. Por qu ibas a esperarlo de una mquina que los humanos han construido? Los ordenadores simulan determinismo; slo el Tao es perfecto. Las reglas de la programacin son transitorias; slo el Tao es eterno. Por tanto, debes contemplar el Tao antes de ser iluminado. Pero, cmo sabr que he sido iluminado?, pregunt el discpulo.

Tu programa funcionar correctamente, respondi el maestro. 4.3 Un maestro estaba explicando la naturaleza del Tao a uno de sus discpulos. El Tao est presente en todo el software, independientemente de su insignificancia, dijo el maestro. Est el Tao en una calculadora de bolsillo?, pregunt el novicio. Est, fue la respuesta. Est el Tao en un videojuego?, continu el discpulo. Incluso en un videojuego, dijo el maestro. Y est en el sistema operativo de un ordenador personal? El maestro tosi y cambi levemente de posicin. La leccin ha acabado por hoy, dijo. 4.4 El programador del Prncipe Wang estaba codificando software. Sus dedos bailaban sobre el teclado. El programa compil sin errores y se ejecut cual ligera brisa. Excelente!, exclam el Prncipe, Tu tcnica es infalible!. Tcnica?, dijo el programador girndose desde su terminal, Lo que yo sigo es el Tao ms all de toda tcnica! Cuando empec a programar, vea ante m el problema completo como un todo. Despus de tres aos ya no vea ese bloque: empec a usar subrutinas. Pero ahora no veo nada. Mi ser existe en un vaco sin forma. Mis sentidos estn ociosos. Mi espritu, libre para trabajar sin un plan, sigue su propio instinto. En resumen, mi programa se escribe a s mismo. Es cierto que a veces hay problemas complejos. Los veo acercarse, me detengo, observo en silencio. Entonces cambio una nica lnea de cdigo y las dificultades se desvanecen como una voluta de humo. Compilo mi programa. Me quedo quieto y dejo que el gozo del trabajo llene mi ser. Cierro los ojos un momento, y entonces cierro mi sesin. El Prncipe Wang dijo Ojal todos mis programadores fueran tan sabios. LIBRO QUINTO: MANTENIMIENTO As habl el maestro programador: Incluso un programa de tres lneas algn da tendr que se mantenido 5.1 Una puerta bien usada no necesita aceite en sus bisagras. Un ro que fluye veloz no se estanca. Ni el sonido ni los pensamientos pueden viajar a travs del vaco. El software se pudre si no se utiliza. Son grandes misterios.

5.2 Un gerente pregunt a un programador que cunto tiempo le llevara terminar el programa en el que trabajaba. Se acabar maana, respondi rpidamente el programador. Creo que no ests siendo realista, dijo el gerente, De verdad, cunto tiempo tardar?. El programador pens un instante. Tengo algunas caractersticas que me gustara aadirle. Me llevar al menos dos semanas, dijo finalmente. Incluso eso es demasiado esperar, insisti el gerente, me basta si simplemente me avisas cuando el programa est completo. El programador asinti. Varios aos ms tarde, el gerente se retir. De camino hacia su almuerzo de jubilacin descubri al programador dormido sobre su terminal. Haba estado programando toda la noche. 5.3 Un programador novicio fue una vez asignado a la codificacin de un sencillo paquete financiero. El novicio trabaj furiosamente muchos das, pero cuando su maestro revis su programa descubri que contena un editor de pantallas, un conjunto de rutinas grficas generales, y una interfaz de inteligencia artificial, pero ni la ms mnima mencin de nada financiero. Cuando el maestro le pregunt acerca de ello, el novicio se indign. No seas tan impaciente, dijo, Incluir los temas financieros al final. 5.4 Acaso un buen agricultor descuidara un cultivo que ha plantado? Acaso descuidara un buen profesor incluso al estudiante ms humilde? Acaso un buen padre permitira que uno de sus hijos murieran de hambre? Acaso un buen programador rechazara mantener su propio cdigo? LIBRO SEXTO: GESTIN As habl el maestro programador: Sean los programadores muchos y gestores pocos; todos ellos sern entonces productivos 6.1 Cuando los gestores tienen reuniones infinitas, los programadores escriben juegos. Cuando los financieros hablan de beneficios cuatrimestrales, el presupuesto de desarrollo est a punto de ser recortado. Cuando los cientficos hablan de cielo azul, las nubes estn a punto de aparecer. Ciertamente, esto no es el Tao de la Programacin.

Cuando los gestores de comprometen, los juegos son ignorados. Cuando los financieros hacen planes a largo plazo, la armona y el orden son restaurados. Cuando los cientficos se centran en los problemas cercanos, los problemas estarn a punto de resolverse. Ciertamente, esto es el Tao de la Programacin. 6.2 Por qu los programadores son improductivos? Porque pierden su tiempo en reuniones. Por qu los programadores son rebeldes? Porque la gestin interfiere mucho. Por qu los programadores reniegan unos de otros? Porque estn quemados. Despus de haber trabajado para un mal gestor, ya no valoran sus empleos. 6.3 Un gerente estaba a punto de ser despedido, pero un programador que trabajaba para l invent un nuevo programa que se hizo popular y se vendi bien. Como consecuencia, el gerente conserv su empleo. El gerente intent darle al programador una bonificacin, pero ste se neg diciendo yo escrib el programa porque pens que era un concepto interesante, por lo que no espero ninguna recompensa. Al or esto, el gerente coment: Este programador, a pesar de su baja autoestima, entiende bien los deberes de un empleado. Vamos a promocionarlo hacia la posicin de consultor de gestin!. Pero cuando se le dijo esto, el programador lo rechaz una vez ms diciendo: Vivo para la programacin. Si fuera ascendido no hara ms que desperdiciar el tiempo de todos. Me puedo ir? Tengo un programa en el que trabajar. 6.4 Un gerente se dirigi a sus programadores: En cuanto a sus horas de trabajo, van a tener que venir desde las nueve de la maana hasta las cinco de la tarde. En ese momento todos se enfadaron y muchos de ellos renunciaron en el acto. As que el gerente dijo: Bien, pues en ese caso podis establecer vuestros propios horarios de trabajo, siempre que terminis los proyectos a tiempo. Los programadores, ahora satisfechos, comenzaron a llegar a medioda y trabajar hasta altas horas de la madrugada. LIBRO SPTIMO: CONOCIMIENTO CORPORATIVO As habl el maestro programador: Puedes mostrar un programa a un ejecutivo de la empresa, pero no puedes hacerlo experto en informtica 7.1

Un discpulo pregunt al maestro: En el Este hay una gran estructura con forma de rbol que los hombres llaman sede corporativa. Est excesivamente inflada con vicepresidentes y contables. Generan una gran cantidad de notas diciendo ve aqu o ve all y nadie sabe lo que significa. Cada ao se colocan nuevos nombres en las ramas, todo en vano. Cmo puede existir una entidad tan innatural?. El maestro respondi: Percibes esta inmensa estructura y te perturba que no tenga un propsito racional. No puedes encontrar entretenimiento con sus giros sin fin? No disfrutas de la facilidad de programar sin problemas refugiado bajo sus ramas? Por qu te molesta su inutilidad?. 7.2 En el Este hay un tiburn que es mayor que todos los otros peces. Se transforma en ave cuyas alas son como nubes llenando el cielo. Cuando es ave, se mueve por toda la tierra y trae un mensaje desde la sede corporativa. Este mensaje cae entre los programadores como una gaviota dejando su huella en la playa. Entonces el pjaro remonta el vuelo y, con el cielo azul a sus espaldas, vuelve a casa. El programador novicio mira sorprendido el ave porque no lo entiende. El programador intermedio teme la llegada del ave porque teme su mensaje. El maestro programador contina trabajando en su terminal, no sabe que el ave ha llegado y se ha marchado. 7.3 El Mago de la Torre de Marfil llev su ltimo invento para que lo examinara el maestro programador. El Mago acarre una gran caja negra a la oficina del maestro, mientras ste esperaba en silencio. Esto es una estacin de trabajo de propsito general integrada y distribuida, comenz el Mago, diseada ergonmicamente con un sistema operativo propietario, lenguajes de sexta generacin y mltiples interfaces de usuario de tecnologa punta. Construirlo cost a mis asistentes varios cientos de aos/hombre . No es sorprendente?. El maestro alz sus cejas ligeramente. Sin duda es increble, dijo. La sede corporativa ha ordenado, continu el Mago, que todos usen esta estacin de trabajo como plataforma para los nuevos programas. Est de acuerdo con esto? . Ciertamente, respondi el maestro, Lo transportar al centro de datos inmediatamente. Y el Mago retorn complacido a su torre. Varios das despus, un novicio vagaba por la oficina del maestro programador y le dijo: No puedo encontrar el listado de mi nuevo programa. Sabes dnde puede estar?. S, respondi el maestro, los listados estn apilados sobre la plataforma del centro de datos. 7.4

El maestro programador se mueve de un programa a otro sin miedo. Ningn cambio en los gestores puede daarle. No ser despedido, ni siquiera aunque el proyecto en el que trabaja sea cancelado. Por qu es esto? El Tao est en l. LIBRO OCTAVO: HARDWARE Y SOFTWARE As habl el maestro programador: Sin el viento, el pasto no se mueve. Sin software, el hardware es intil 8.1 Un discpulo pregunt al maestro: Percibo que una compaa de ordenadores es mucho mayor que todas las dems. Se eleva por encima de su competencia como un gigante entre enanos. Cualquiera de sus divisiones podra abarcar todo el negocio. Por qu es esto as?. El maestro respondi: Por qu haces preguntas tan necias? Esa compaa es as de grande porque es grande. Si slo fabricara hardware nadie lo comprara. Si slo hiciera software, nadie lo usara. Si slo mantuviera sistemas, la gente los tratara como a sirvientes. Pero al combinar todas esas cosas, la gente piensa que son dioses. Al no buscar la confrontacin conquista sin esfuerzo. 8.2 Un maestro programador pas un da junto a un novicio. El maestro not la preocupacin del novicio con un juego en un dispositivo porttil. Disculpe, dijo, me permite examinarlo?. El novicio atendi y pas el dispositivo al maestro. Veo que el aparato afirma tener tres niveles de juego: fcil, intermedio y difcil, dijo el maestro. Pero an cada dispositivo tiene otro nivel de juego, donde el apartado no busca conquistar al humano, ni ser conquistado por el humano. Ruego, gran maestro, implor el novicio, cmo hace uno para encontrar esa misteriosa configuracin?. El maestro arroj el dispositivo al suelo y lo aplast bajo su pie. Y de pronto, el novicio fue iluminado. 8.3 Haba una vez un programador que trabajaba con microordenadores. Mira lo bien que estoy aqu, dijo a un programador de mainframes que lo fue a visitar. Tengo mi propio sistema operativo y dispositivo de almacenamiento de archivos. No tengo que compartir mis recursos con nadie. El software es consistente y fcil de usar. Por qu no dejas tu trabajo actual y te vienes conmigo? Entonces, el programador de mainframes comenz a describir su sistema a su amigo, diciendo: El mainframe est sentado como un antiguo sabio meditando en el centro de datos. Sus discos se encuentran de extremo a extremo como un gran ocano de maquinaria. El software es tan polifactico como un diamante, y enrevesado como una selva virgen. Los programas, cada uno nico, se mueven a travs del sistema como un ro de corriente rpida. Por eso estoy feliz donde estoy.

El programador de microordenadores, al or esto, se qued en silencio. Pero los dos programadores siguieron siendo amigos hasta el final de sus das. 8.4 Hardware y Software se encontraron en el camino hacia Changtse. Software dijo: T eres Yin y yo soy Yang. Si viajamos juntos nos haremos famosos y ganaremos vastas sumas de dinero. Y as, el equipo se uni, pensando que conquistaran el mundo. Actualmente se encontraron con Firmware, que estaba vestido con harapos y cojeaba apoyado en un palo espinoso. Firmware les dijo: El Tao est ms all del Yin y Yang. Es silencioso y quieto como un estanque de agua. No busca la fama, por tanto, nadie sabe de su presencia. No busca fortuna, porque es completo en s mismo. Existe ms all del espacio y del tiempo. Software y hardware, avergonzados, regresaron a sus hogares. LIBRO NOVENO: EPLOGO As habl el maestro programador: Es hora de que partas

Vous aimerez peut-être aussi