Programar um novo sistema é como projetar seu próprio mundo. É preciso descrever como as coisas vão interagir e como as mudanças vão se propagar no ambiente. Os programadores podem começar com nada mais que uma idéia, materializá-la em código e produzir algo vivo. Como bônus extra, suas criações podem ainda ajudar a resolver algum problema do mundo real. Ao projetar seus sistemas eles têm a oportunidade de experimentar a alegria da criação, a surpresa da descoberta, o prazer da invenção e tudo que houver no meio.
Ter seu próprio mundo de faz-de-conta e ainda usá-lo para resolver problemas do mundo real parece tão divertido que deve ser praticamente impossível de se tornar um trabalho chato.
Mas a verdade é que muitas vezes se torna. Afinal de contas a vida não é um conto de fadas. Mais cedo ou mais tarde, vem aquela vontade de repetir estruturas de código familiares, aplicar soluções não muito apropriadas e — pasmem! — copiar e colar código. O pior problema das soluções sujas é a capacidade de atrair mais janelas quebradas. Para se afundar na lama do código ruim, basta cometer a primeira transgressão. As demais virão naturalmente simplesmente porque o código já está sujo e as pessoas vão começar a pensar que uma gambiarra a mais ou a menos não vai fazer mal a ninguém.
A boa notícia é que existe um detector natural para quando se está fazendo besteira. Algo como um canário em uma mina de carvão. Este algo é o tédio. Escrever código repetido é chato. Tentar adaptar uma solução onde ela não se encaixa muito bem é chato. Copiar código de um lugar para outro é chato. Tédio é um subproduto natural do trabalho impensado, então basta eliminar suas causas para evitar boa parte dos danos ao código.
Programar pode ser um dos exercícios intelectuais mais desafiadores. Quando o desafio e a diversão são substituídos pelo tédio, alguma coisa está errada. A solução para boa parte dos casos é procurar uma forma de eliminar a repetição e — adivinhe só — computadores foram feitos justamente para isso. Se trabalhamos para evitar que os outros façam trabalho repetido, por que iríamos nós mesmos nos repetir? Por que se entediar quando a máquina pode executar a mesma tarefa indefinidamente sem cansar nem reclamar?
Eliminar repetição não é fácil e justamente por isso é divertido. Da próxima vez que estiver programando, imagine que você não pode repetir a mesma idéia duas vezes. Veja repetição onde ninguém está prestando atenção. Observe o que é chato de ser feito. Procure resolver estes problemas sem criar outros. A sua solução pode vir em vários sabores: talvez haja uma nova abstração pronta para ser codificada, uma biblioteca querendo nascer ou uma nova linguagem escondida em algum lugar. Tente descobrir o que se aplica ao seu caso. Enquanto estiver fazendo isso, tenha em mente que você não deve se entediar em nenhum momento.
Mantenha o ânimo em alta para manter a sujeira em baixa.
