Virtudes y defectos

Hubo varias respuestas a la pregunta del viernes, sobre las tres virtudes del programador, según Larry Wall, pereza, impaciencia y orgullo (o soberbia).

Una respuesta me llegó directamente por email:

“La pereza? Nos confiamos en lo que sabemos... Lo sacamos en un par de dias cuando lo programamos en un mes. La impaciencia? No nos dormimos hasta que vemos una subrutina hacer lo que queremos que haga. Función, librería, clase... Nooo, que lo haga la subrutina. El orgullo? Yo hice este programa y ningun otro se le compara... Y si se le compara tiene errores, asi que ni lo compare ni lo menos precie. Ya quisiera un programador como yo.”

Tres de las virtudes del programador propuestas por Larry Wall corresponden a 2 de los  pecados capitales capitales: la pereza, y el orgullo. Y la impaciencia, hay veces que también puede ser considerada un defecto. Así que en principio hay una cierta ambigüedad  en estas tres virtudes.

En la segunda edición de Programming Perl, se aclara que es lo que Wall quiere decir con respecto a estas tres virtudes del buen programador:

  1. Pereza: La cualidad que te hace invertir a un gran esfuerzo para reducir el consumo total de energía.  Te hace escribir programas que permiten ahorrar trabajo que otras personas encuentren útiles, y documentar lo que has escrito, de modo que no tengas que responder muchas preguntas al respecto.

  2. Impaciencia: La ira que se siente cuando el computador está siendo perezoso. Esto te hace escribir programas que no sólo reaccionan a tus necesidades, sino que las anticipan. O al menos pretenden hacerlo.

  3. Soberbia: El orgullo excesivo, el tipo de cosas por las que Zeus te lanza un rayo. También la calidad que te hace escribir (y mantener) programas que no permiten que la gente diga cosas malas sobre tí.

Así que ese es el espíritu de estas tres virtudes.

La pereza no se trata de procrastinar, o hacer las cosas en forma apurada, o tratando de ahorrarse trabajo. No, hay que hacer todo lo necesario para evitar trabajar adicionalmente en forma posterior. La impaciencia tiene que ver con hacer que los programas sean óptimos, eficientes, que se anticipan a las condiciones de error, y no te hacen perder tiempo tratando de entender por qué fallaron, porque los programadores queremos vivir tranquilos creando, no depurando, así que la pereza y la impaciencia empujan hacia la calidad. Finalmente la soberbia tiene que ver con el orgullo de saber que entregamos un producto de calidad, de modo que esperamos felicitaciones de nuestros usuarios y colegas por la excelencia de nuestro trabajo.

No es fácil practicar estas tres virtudes, y la razón, paradójicamente ocurre porque la Pereza, la Impaciencia y la Soberbia, como defectos, hacen que la gente no los respete.

Los tres defectos del mal programador

  1. La pereza hace que la gente no documente, haga las cosas a última hora, en forma rápida, sin preocuparse por que el código sea fácil de mantener.

  2. La impaciencia empuja a entregar productos rápido, sin revisar, que cumplen la funcionalidad, pero a costa del desempeño, o se deja el problema a la infraestructura, se programa una función o algoritmo ineficiente, para entregar rápido, pero que consume los recursos de la máquina en forma indiscriminada.

  3. Y finalmente, la soberbia que hace que los programadores no acepten que su código se revise, que se nieguen a admitir que sus programas tienen defectos (¡pónganle  más RAM al servidor!), o que rehusen documentar.

Como ven, todo tiene dos caras, las tres virtudes del buen progarmador se ven amenazadas por los tres defectos del mal  programador, que finalmente son las misma cosa.

Autor

Ingeniero, autor, emprendedor y apasionado programador. Mantengo este blog desde 2005.

comments powered by Disqus
Siguiente
Anterior

Relacionado

¿Te gustó?

Puedes apoyar mi trabajo en Patreon:

O puedes apoyarme con un café.