Tres virtudes de un gran programador

Las famosas “tres virtudes” de Larry Wall para un programador —pereza, impaciencia y soberbia— se revisitan mientras los desarrolladores debaten si sigue teniendo sentido reinterpretar vicios como virtudes hoy en día. Los comentaristas discuten el significado de “soberbia”, proponen alternativas como curiosidad, miedo y orgullo, y exploran cómo estos rasgos pueden impulsar la automatización, el rendimiento y la calidad del código cuando se equilibran adecuadamente. Otros reflexionan sobre cómo estas ideas se relacionan con el agotamiento, las habilidades de comunicación, el cambio de herramientas (Perl, Python, Ruby) y la diferencia entre programar por diversión y construir sistemas mantenibles en entornos profesionales.

Replanteamiento de las Tres Virtudes

  • Muchos ven la “pereza” como un impulso para automatizar el trabajo tedioso, entregar soluciones mínimamente viables y evitar la sobrecomplicación; para algunos, esto se ha convertido en su mejor rasgo profesional.
  • La “impaciencia” se relaciona con querer ciclos de compilación/prueba más rápidos y sistemas más eficientes, pero otros ven que se solapa con la pereza más que ser algo distinto.
  • La “soberbia” es la más controvertida: las interpretaciones van desde el orgullo por el propio trabajo, querer que otros no critiquen el código o creer que uno puede ir más allá de las reglas estándar de “no reinventes la rueda”, hasta verla como una arrogancia destructiva que rechaza críticas válidas.

Virtudes Alternativas o Complementarias

  • Las sugerencias incluyen: curiosidad (como motor del aprendizaje y la mejora), miedo a la complejidad (para contener la soberbia), vacilación (diseño inicial cuidadoso), estupidez/olvido (que motiva pruebas, tipos y documentación), discernimiento, sabiduría, humildad y habilidades de comunicación.
  • Algunos sostienen que el encuadre original como “vicios convertidos en virtudes” es retóricamente importante; otros prefieren términos positivos más convencionales.

Diseño, Reescrituras y YAGNI

  • Un punto de vista: dedicar más tiempo a la planificación y la discusión evitaría reescrituras costosas causadas por diseños iniciales incompletos.
  • Réplica: la retrospección y el sesgo del superviviente; no puedes acertar perfectamente desde el principio, así que conviene favorecer diseños simples, decisiones reversibles y refactorización en lugar de una arquitectura “completa” al inicio.
  • Se enfatiza YAGNI: evita construir para requisitos futuros especulativos, pero cuidado con diseños “ingenuamente simples” que bloqueen el crecimiento.

Hábitos de Trabajo, Agotamiento y Motivación

  • El exceso de trabajo se plantea como una debilidad real, que contribuye al agotamiento y a problemas de salud; algunos diferencian entre “trabajar duro” y “pasar mucho tiempo” e indican que el significado del trabajo y los rasgos personales influyen.
  • Varios comentarios señalan que amar programar lleva a algunos a seguir programando fuera del horario laboral; otros rechazan las horas extra corporativas no pagadas.

Perl, Historia y Otros Lenguajes

  • La discusión recuerda cómo estas virtudes encajaban con la cultura de Perl: potente, conciso, bueno para automatización y a menudo usado por programadores no “oficiales”.
  • Perl es criticado como “de solo escritura” y poco disciplinado; algunos describen que en la práctica fue reemplazado por herramientas como awk/sed, Tcl, Ruby y Python.
  • Se elogia Python por su ubicuidad y su comodidad para scripting, pero también se critica porque permite una gran cantidad de código de mala calidad.

Comunicación y Metadiscusión

  • La programación se presenta como algo fundamentalmente ligado a la comunicación escrita clara; se considera que el dominio del lenguaje (cualquier lengua) está fuertemente correlacionado con una buena programación.
  • Las clásicas preguntas de entrevista sobre fortalezas y debilidades son ridiculizadas; las respuestas simplistas de “virtudes como defectos” se ven por algunos como señales de alerta.
  • Dar consejos en línea se considera arriesgado porque atrae críticas, aunque esto también puede sacar a la luz enfoques mejores.