Três virtudes de um grande programador
As famosas “três virtudes” de Larry Wall — preguiça, impaciência e hubris — são revisitadas enquanto desenvolvedores debatem se ainda faz sentido reinterpretrar vícios como virtudes hoje em dia. Os comentaristas discutem o significado de “hubris”, propõem alternativas como curiosidade, medo e orgulho, e exploram como esses traços podem impulsionar automação, desempenho e qualidade de código quando equilibrados corretamente. Outros refletem sobre como essas ideias se relacionam com burnout, habilidades de comunicação, mudanças nas ferramentas (Perl, Python, Ruby) e a diferença entre programar por diversão e construir sistemas mantíveis em ambientes profissionais.
Reenquadrando as Três Virtudes
- Muitos veem a “preguiça” como um impulso para automatizar trabalho tedioso, entregar soluções mínimas viáveis e evitar complicações desnecessárias; para alguns, isso se tornou sua melhor característica profissional.
- A “impaciência” é associada ao desejo por ciclos de compilação/teste mais rápidos e sistemas mais performáticos, mas outros a veem como algo que se sobrepõe à preguiça, em vez de ser distinta.
- A “hubris” é a mais contestada: as interpretações vão desde orgulho no próprio trabalho, querer código que os outros não critiquem, ou acreditar que se pode ir além das regras padrão de “não reinvente a roda”, até vê-la como arrogância destrutiva que rejeita críticas válidas.
Virtudes Alternativas ou Complementares
- As sugestões incluem: curiosidade (como motor de aprendizado e melhoria), medo da complexidade (para conter a hubris), hesitação (projeto cuidadoso desde o início), estupidez/esquecimento (motivando testes, tipos e documentação), discernimento, sabedoria, humildade e habilidades de comunicação.
- Alguns argumentam que o enquadramento original como “vícios transformados em virtudes” é importante do ponto de vista retórico; outros preferem termos positivos mais convencionais.
Design, Reescritas e YAGNI
- Uma visão: mais tempo gasto em planejamento e discussão evitaria reescritas caras causadas por projetos iniciais incompletos.
- Contraponto: retrospectiva e viés de sobrevivência; não é possível acertar perfeitamente desde o início, então prefira designs simples, decisões reversíveis e refatoração em vez de arquitetura “abrangente” antecipada.
- YAGNI é enfatizado: evite construir para requisitos futuros especulativos, mas tenha cuidado com designs “ingenuamente simples” que bloqueiam o crescimento.
Hábitos de Trabalho, Burnout e Motivação
- O excesso de trabalho é apresentado como uma fraqueza genuína, contribuindo para burnout e problemas de saúde; alguns distinguem “trabalhar duro” de “passar muito tempo trabalhando” e apontam o significado do trabalho e traços pessoais como fatores.
- Vários comentários observam que amar programar leva algumas pessoas a continuar programando fora do horário; outros reagem contra horas extras corporativas não remuneradas.
Perl, História e Outras Linguagens
- A discussão relembra como essas virtudes se encaixavam na cultura do Perl: poderoso, conciso, bom para automação, frequentemente usado por programadores não “oficiais”.
- O Perl é criticado como “write-only” e indisciplinado; alguns descrevem sua substituição, na prática, por ferramentas como awk/sed, Tcl, Ruby e Python.
- O Python é elogiado por sua ubiquidade e conveniência para scripts, mas também criticado por permitir um grande volume de código de baixa qualidade.
Comunicação e Meta-Discussão
- Programar é enquadrado como algo fundamentalmente ligado à comunicação escrita clara; o domínio da linguagem (qualquer língua) é visto como fortemente correlacionado a uma boa programação.
- As clássicas perguntas de entrevista sobre pontos fortes e fracos são ridicularizadas; respostas espertas do tipo “virtudes como defeitos” são vistas por alguns como sinais de alerta.
- Dar conselhos online é visto como arriscado porque atrai críticas, embora isso também possa revelar abordagens melhores.