Posts Nós programadores
Post
Cancel

Nós programadores

Como primeiro post nesse blog eu resolvi colocar a tradução de um post recente que o Uncle Bob fez em seu blog CleanCoder. Este post fala sobre a importância que o desenvolvimento de software possui em nosso atual momento, em nossa sociedade pois praticamente tudo hoje em dia depende de tecnologia. Talvez nós ‘programadores’ como ele fala no post, ainda não tenhamos percebido o quão importante podem ser as linhas de código que escrevemos, e o tanto de falta de atenção e compromisso que as vezes temos com o que desenvolvemos. É claro que nem todos desenvolvem softwares que literalmente podem retirar vidas, como controladores de vôo, gerenciadores de aparelhos médicos que provêm vida artifical, mas o fato é que todo software em produção serve a algum propósito, e se ele não funcionar como deveria provavelmente estará causando um grande impacto na vida de algum usuário, que no final das contas é uma pessoa com um objetivo em mãos. Talvez isso não tenha a proporção exata quando se está desenvolvendo, mas talvez aquele bug no sistema de compras da agência de viagens que você está desenvolvendo pode ter sido o responsável por acabar com a viagem dos sonhos de um casal procurando um destino de lua de mel que acreditou no preço que era mostrado no site, mas pra você era só um if no lugar errado.

Acho legal pensarmos mais sobre isso na próxima vez que sentarmos na frente do PC para programar :)

Nós programadores, by Robert C. Martin (Uncle Bob)

O bom

Há um pequeno carro esportivo vermelho indo em direção ao cinturão de asteróides, e nós programadores o colocamos lá. Ah, eu não pretendo dar pouco crédito a Elon Musk e a todos os cientistas e engenheiros de foguetes da SpaceX. Foi sua visão e sua realização. Mas eles não poderiam ter feito isso sem nós.

Pense, por um momento, sobre todo o software envolvido nesse projeto. Pense na automação da espaçonave em si. Pense na capacidade desses propulsores aterrissarem juntos. Pense nas palhetas de direção, nas alavancas do motor e nos manetes. Pense no controle de solo, nos protocolos de comunicação…

Pense em como os engenheiros trabalharam. Pense no softwares CAD/CAM. Pense nas máquinas e no software de modelagem 3D. Pense nas simulações de dinâmica de fluidos, nas análises de elementos finitos, nos cálculos orbitais, nas planilhas, nos processadores de texto, no e-mail, nas mensagens de texto, nos telefonemas…

Eu acho que você vê onde eu quero chegar com isso. Cada passo minúsculo ao longo do caminho, do sonho até a realização foi lubrificado, ativado, aprimorado e simplificado pelo software. Bilhões e bilhões de linhas de código que nós programadores escrevemos.

Agora pense sobre o que este evento significa para nossa civilização. Sim, foi um sinal, um gesto, uma mera gotícula no mar de potenciais. Mas que gota! Basta pensar na pura ousadia, no desperdício colossal, arrogante, exuberante e alegre! Foi o pavão espalhando suas opulentas penas da cauda. Era o antílope de chifre de pombo saltando no ar por puro entusiasmo. Foi uma expressão de nossa rejeição aos limites e nossa disposição de gastar maciçamente recursos para alcançar uma pequena porção de um sonho apaixonado.

Foi uma mensagem que enviamos a nós mesmos e ao universo em geral, dizendo que estamos chegando e que nada neste universo nos impedirá. E fomos nós, programadores que, mais do que ninguém, permitiram o envio dessa mensagem. Isso é algo que você, eu e todos os programadores em todos os lugares devem se sentir bem por isso.

O mal

Elaine Herzberg está morta. Ela foi atingida por um carro “autônomo” enquanto andava de bicicleta pela rua. E nós programadores a matamos. Ah, eu não quero dizer que qualquer programador, maliciosamente ou mesmo negligentemente escreveu o código que a matou. Mas não se enganem sobre isso, foi o código que a matou.

Talvez houvesse uma instrução if em algum lugar naquele código que, se o valor booleano estivesse no estado oposto, teria evitado a colisão. Ou talvez tenha sido uma função que gerou um número que, se o número fosse diferente por alguns bits, teria impedido a colisão.

Talvez nunca consigamos identificar essa instrução if ou essa função. As redes neurais de aprendizado de máquina são difíceis de entender. Mesmo que os arquivos de registro do carro contenham todas as entradas e nós possamos repetir o evento várias vezes, nunca poderemos realmente entender, no turbilhão de pesos e médias, e loops de feedback, o motivo pelo qual o carro se comportou da maneira que fez.

Mas o que podemos dizer é que nós programadores escrevemos o código que a matou. E isso é algo que você, eu e todos os programadores em todos os lugares, devemos nos sentir muito mal sobre isso.

O feio

Há um sentimento entre os programadores de que os argumentos de ética e moralidade não devem fazer parte de nossas discussões sobre disciplinas e práticas. Aqueles que sustentam esse sentimento sugerem que nossas práticas e disciplinas devem ser uma questão de pura lógica e economia. Dados os dois cenários acima, acho isso perturbador. Parece-me que a ética e a moralidade se tornaram intrínsecos a tudo que nós programadores fazemos, porque depende muito da qualidade do nosso trabalho.

Nosso lema

Já passou do tempo em que nós, programadores, podemos nos isolar com segurança do resto do mundo. Nós programadores não devemos mais nos esconder em nossas pequenas bolhas tecnológicas. O código que nós programadores escrevemos importa. Importa para as esperanças e sonhos de nossa sociedade e civilização. É importante para as pessoas andarem de bicicleta do outro lado da rua. É importante para todos, porque o código que nós programadores escrevemos lubrifica, habilita, aprimora e simplifica praticamente todos os aspectos da vida diária. De algo tão pequeno quanto uma jovem mãe verificando seu monitor de bebês até algo tão grande quanto a política internacional de armas nucleares e viagens interplanetárias, nosso código é importante.

Recentemente, Grady Booch twittou algo que eu acho que os programadores deveriam adotar como nosso lema:

Cada linha de código representa uma decisão ética e moral.

Post original aqui.

Este post está licenciado sob a CC BY 4.0 pelo autor.