O argumento do código finito de Raymond não nos ajuda a contornar isso. Mesmo se congelarmos uma base de código e admitirmos que seus defeitos são finitos, isso não significa que as ferramentas atuais possam encontrar todos eles, muito menos provar que sim. Ah, e PS: não congelamos software de produção. Na verdade. Alteramos códigos, atualizamos dependências e conectamos sistemas que seus desenvolvedores originais nunca esperaram encontrar. Nosso comentarista otimista na postagem de Raymond reconheceu que os bugs permanecerão nas interações entre os sistemas e em seus comportamentos complexos. Isso é uma grande exceção. Enorme, até. Para uma empresa, essas interações representam grande parte do software do qual ela realmente depende.
Nada disso torna as correções inúteis. A Mozilla disse que todas as 22 vulnerabilidades de segurança foram corrigidas por publicação, com a ajuda de relatórios com casos de teste pequenos e reproduzíveis. Podemos tornar-nos mais seguros sem chegar a um estado permanente de segurança. Mas alguém ainda precisava validar as descobertas e consertar o software que as pessoas pudessem usar. É aí que o argumento do código aberto fica mais forte. Ferramentas melhores continuarão encontrando coisas que perdemos. Um projeto compartilhado nos permite levar adiante as soluções juntos, em vez de cada empresa pagar para redescobrir e reparar os mesmos problemas em sua própria versão privada.
Software legível é apenas o começo
Há um argumento relacionado de que a engenharia reversa assistida por IA torna o acesso à fonte irrelevante. Ou seja, se uma máquina pode reconstruir código útil a partir de um binário, não tornamos tudo efetivamente de código aberto? Bem, não. O software executado nos servidores de outra pessoa não fornece necessariamente um binário para inspecionar. E uma reconstrução plausível não é automaticamente fiel. Uma pré-impressão de pesquisa de setembro descobriu que algumas funções descompiladas do LLM passaram nos testes fornecidos, embora se comportassem de maneira diferente em outras entradas legítimas. O código de aparência limpa e o programa original não são necessariamente a mesma coisa.
