Todo mundo já viu um aplicativo travar. Você fecha, abre de novo e segue a vida. Mas algumas falhas de programação não terminam assim. Elas derrubaram foguetes, pararam bancos, cancelaram voos e, em casos extremos, mataram pessoas.
Continua após a publicidade
Esses episódios ganharam nome próprio: são os bugs históricos de software. E entender por que eles importam ajuda a compreender como a tecnologia que usamos hoje ficou (um pouco) mais segura.
O que é um bug, afinal?
Bug é um erro no código de um programa. O software faz exatamente o que foi escrito — só que o que foi escrito não era o que o programador queria dizer. O computador não erra: ele obedece.
A palavra virou lenda por causa de uma mariposa presa em um computador da Universidade de Harvard, em 1947, registrada em um caderno de anotações da equipe de Grace Hopper. O termo “bug” para falhas técnicas, porém, já era usado bem antes, inclusive por Thomas Edison.
Cinco desastres que mudaram as regras
Alguns casos entraram para os livros de engenharia justamente porque forçaram mudanças profundas:
- Mariner 1 1962: a sonda da NASA foi destruída pouco após o lançamento. A causa apontada foi um erro em uma fórmula transcrita para o código, algo como um símbolo faltando.
- Therac-25: uma máquina de radioterapia aplicou doses muito acima do previsto em pacientes. Houve mortes. O problema envolvia uma condição rara no software, que só aparecia quando o operador digitava comandos muito rápido.
- Ariane 5: o foguete europeu explodiu cerca de 40 segundos após decolar. O código de navegação havia sido reaproveitado do modelo anterior, mais lento, e não suportou os novos números. O prejuízo é estimado em US$ 370 milhões.
- Mars Climate Orbiter: a sonda se perdeu porque duas equipes usavam sistemas de medida diferentes — uma em unidades métricas, outra em imperiais.
- Bug do milênio (Y2K): sistemas antigos guardavam o ano com apenas dois dígitos. A virada para 2000 poderia ser lida como 1900. Governos e empresas gastaram algo entre 300 e 600 bilhões de dólares para corrigir o problema antes da data.
Não é coisa do século passado
É tentador achar que esses erros pertencem à era dos computadores de fita magnética. Não pertencem.
Em 2012, a corretora Knight Capital perdeu 460 milhões de dólares em minutos por causa de um código antigo reativado por engano. Em julho de 2024, uma atualização defeituosa da empresa de segurança CrowdStrike travou milhões de computadores com Windows no mundo todo, afetando aeroportos, hospitais e bancos.
Quanto mais o mundo depende de software, maior o estrago que uma linha errada consegue causar.
Por que isso importa para você
Cada desastre virou regra. Depois do Therac-25, a área de saúde passou a exigir travas físicas e não apenas digitais em equipamentos médicos. Depois do Ariane 5, virou padrão testar código reaproveitado nas condições reais do novo projeto. Depois do Y2K, empresas aprenderam a mapear sistemas legados antes que eles quebrem.
Continua após a publicidade
Existe um raciocínio comum a todos os casos: o problema quase nunca foi só o programador. Foi o processo. Faltou revisão, faltou teste, faltou alguém perguntar “e se der errado?”.
Por isso os bugs históricos continuam sendo estudados em cursos de engenharia de software. Eles são a memória de uma indústria jovem. Sem essa memória, o mesmo erro volta — só que em um sistema maior, mais rápido e com mais gente dependendo dele.
Da próxima vez que um app travar no seu celular, lembre-se: você está diante de um parente distante e inofensivo de acidentes que já custaram vidas e foguetes inteiros.
!function(f,b,e,v,n,t,s){
if(f.fbq)return;
n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)
}(window, document,’script’, ‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘1221644929160171’);
fbq(‘track’, ‘PageView’);












