Programar é uma droga [2014]
(stilldrinking.org)- Um ensaio que explica o caos do desenvolvimento de software por meio da analogia da construção de pontes, com a confissão autodepreciativa de que todas as equipes de programação são compostas por malucos e, ainda assim, é em cima do resultado disso que rodam o software dos bancos e a internet
- O código perfeito só existe em arquivos que fazem uma única coisa e foram escritos por uma pessoa só; no mundo real, a operação funciona como apoiar Picasso em cima de um monte de flocos de neve derretidos, sob a ordem de entregar 600 deles de sexta até terça
- Desenvolvedores web precisam aprender uma tecnologia nova por semana enquanto verificam se centenas de ferramentas existentes não quebraram, e mesmo para especialistas é um mundo em que levar 6 horas para descobrir a causa de um problema já é lucro
- A internet depende trilhões de dólares em cima de acordos informais e código de 10 anos com comentários dizendo "TODO: FIX THIS", e se todos os administradores de sistema forem almoçar ao mesmo tempo, a civilização entra em colapso
- Programadores passam 10 a 15 horas por dia fazendo um trabalho para o qual o cérebro humano não foi projetado e estão enlouquecendo aos poucos, esse é o preço da carreira que escolheram em vez de levantar 50 libras
Todas as equipes de programação são compostas por malucos
- Amigos que fazem trabalho braçal sempre começam a conversa com algo como "você tem vida fácil, eu cavei um túnel com uma perfuratriz debaixo de Mordor"
- Se você concorda que estresse e sofrimento mental são coisas ruins,
bem-vindo ao mundo da programação - Analogia da construção da ponte: você entrou num projeto de ponte em uma grande cidade e a situação é a seguinte
- Mary é a líder do projeto; Fred só trabalha com madeira, mas ficou responsável pela passarela de uma ponte a 200 pés de altura sobre corredeiras
- Dave teve o suéter roubado e depois disso instalou um sistema de segurança com 15 etapas de verificação
- Phil não é engenheiro, mas impôs uma regra que proíbe corrimãos; ninguém sabe o que Phil faz, mas como ele tem ligação com a diretoria, deixam para lá
- Sara colocou no projeto várias tecnologias de pavimentação de ponta ("hemorrhaging-edge")
- Tom e Harry estão há anos brigando por sistema métrico vs. sistema imperial, e a unidade usada é a de quem começou primeiro
- A ponte foi projetada como uma ponte suspensa, mas ninguém sabia construir uma, então adicionaram pilares de sustentação no meio, e os cabos de suspensão ficaram lá porque provavelmente sustentam alguma coisa
- Pedem ao novato para trazer ideias novas, mas ele é na verdade engenheiro de propulsão e não sabe nada sobre pontes
- Se perguntarem se você atravessaria essa ponte, ninguém atravessaria, mas é assim que todo o software bancário, os sites e os programas de segurança da internet foram feitos
Todo código é ruim
- Todo programador tem um arquivo de Good Code que tira da gaveta quando não tem ninguém em casa e lê chorando
- Os nomes de funções e variáveis são consistentes, concisos, não fazem nenhuma idiotice óbvia e nunca foram expostos ao mundo real nem às exigências do time de vendas
- Foi escrito por uma única pessoa, ninguém mais encostou nele e soa como um poema escrito por alguém com mais de 30 anos
- A realidade: quando mandam você fazer 600 flocos de neve de sexta para terça, você começa a improvisar de todo jeito, um colega derrete tudo, tudo se mistura numa massa disforme, você apoia um Picasso em cima disso e, na semana seguinte, joga mais neve por cima para o Picasso não cair
- Existe a teoria de que seguir padrões resolveria isso, mas há mais padrões do que coisas que um computador realmente consegue fazer, e como cada um adapta tudo ao gosto pessoal, o resultado real é um codebase em que a mesma tarefa é feita de dezenas de maneiras diferentes
- As primeiras semanas em qualquer emprego novo são gastas tentando entender como o programa funciona, mesmo que você conheça todas as linguagens, frameworks e padrões, porque padrões são unicórnios
Sempre existe escuridão
- Analogia do armário na infância: você entra e a parede recua, vira uma prateleira, e quando olha para cima de novo existe o vazio absoluto de um crawlspace onde a luz não chega, e você sente que é ali que mora o monstro que toda noite tentava manter longe com uma lanterna e bonecos
- Aprender programação é igual: você aprende uma ferramenta útil, olha em volta e encontra outra, e essa nova ferramenta revela o terror sem fundo que sempre esteve ao lado da sua cama
- A realidade de um desenvolvedor web mediano
- Mesmo conhecendo 12 linguagens de programação e incontáveis bibliotecas, padrões e protocolos, ainda precisa aprender uma nova toda semana
- Precisa verificar se centenas de ferramentas existentes foram atualizadas ou quebraram, e também se aquele bug que você explorou de forma esperta num fim de semana bêbado não foi corrigido
- Você acha que está tudo atualizado e, de repente, absolutamente tudo para de funcionar
- Exemplo de causa de falha: alguém decidiu que 1/0 deveria virar Infinity, outra pessoa transformou isso em erro no compilador sem avisar ninguém, e o resultado é que até um especialista leva 6 horas para descobrir o motivo
- Até o conhecimento especializado da própria área é uma parte minúscula da ciência da computação como um todo, e não existe uma única pessoa que saiba como funciona um MacBook de 5 anos
- É por isso que dizem "tenta desligar e ligar de novo": porque ninguém faz ideia do que deu errado, então colocam o computador em coma e deixam a equipe médica automática interna resolver
A internet é um inferno especial por conta própria
- Até um site no nível de um carrinho de compras com 3 páginas dinâmicas é mantido por uma equipe 24 horas por dia, porque tudo quebra o tempo todo, em todo lugar, para todo mundo
- Neste exato momento, funcionários do Facebook estão lidando com dezenas de milhares de mensagens de erro, uma equipe em algum escritório do Google está há 3 dias sem dormir, e em algum lugar um programador de banco de dados cercado por garrafas vazias de Mountain Dew acha que o marido morreu
- Se todos os administradores de sistema saírem para almoçar ao mesmo tempo, antes mesmo de chegarem à delicatéssen já estarão lutando contra hordas mutantes por uma lata de comida
- Trilhões de dólares dependem de acordos informais e de código escrito há 10 anos com comentários como "TODO: FIX THIS IT'S A REALLY DANGEROUS HACK"
- Existem grupos atacando a internet inteira por espionagem, lucro ou puro tédio, e o 4chan pode destruir a vida e os negócios de alguém numa tarde ruim, mas ninguém nem se preocupa porque isso é só mais uma bomba caindo em pleno inverno nuclear
- Na internet, se você disser "acho que isso funciona às vezes", isso vira parte da internet, e com algumas centenas de dólares e um computador qualquer pessoa pode subir um código de hack horrível e piorar um pouco mais tudo
- Regra secreta da internet: 5 minutos depois de abrir o navegador, uma criança russa já tem o seu CPF; se você se cadastra em algum lugar, a NSA começa a rastrear sua localização; se você envia um e-mail, seu endereço vai parar num outdoor na Nigéria
- Isso não acontece por desleixo, e sim porque tudo está quebrado e não existe código bom, então todo mundo só está tentando desesperadamente fazer a coisa continuar funcionando
Não estamos loucos, estamos enlouquecendo
ERROR: Attempted to parse HTML with regular expression; system returned Cthulhu— se isso te faz rir, ainda está tudo bem, mas se alguém pergunta se é "arrayReverse" e você respondes/camel/_/, então você já entrou na fase de falar em código- O cérebro humano não é especialmente bom em lógica básica, e mesmo assim existe uma profissão que exige passar o dia inteiro executando lógica extremamente complexa
- Quando você passa o dia inteiro vasculhando cadeias gigantescas de condições e requisitos abstratos para achar algo como uma vírgula faltando, chega ao ponto de olhar para o rosto de uma pessoa sem saber se ela terminou de falar — porque não havia ponto e vírgula
- Exemplos de linguagens de programação esotéricas (esolang) para demonstrar o efeito destrutivo no cérebro
- Existem programas que imprimem exatamente o mesmo "Hello World" do C++ usando Brainfuck, Ook!, ou código Perl que representa numerais maias como arte ASCII girada em 90 graus
- O programa com numerais maias venceu uma competição, e num mundo assim ninguém acha estranho fumar um maço de cigarro por dia
- Todo programador força o cérebro a fazer, por 10 a 15 horas por dia, 5 a 7 dias por semana, um trabalho para o qual ele não foi projetado, e todos estão enlouquecendo aos poucos
- Conclusão: em vez de levantar objetos de 50 libras, você ganhou a chance de servir a Satanás enquanto apara os pelos corporais dele e faz uma refeição sobre um crânio aberto, e em troca disso uma parte da internet continua funcionando por mais alguns dias
Ainda não há comentários.