Jas: AI-Paired Engineering as a Revival of N-Version Programming
Este artigo apresenta um estudo de caso demonstrando que a engenharia pareada com IA, quando ancorada por uma especificação executável precisa e validada através de implementações paralelas de N-versões, permite que um único desenvolvedor produza cinco portas de software distintas em aproximadamente 120 horas, revivendo efetivamente a metodologia de programação de N-versões da década de 1980, que era proibitiva em termos de custo.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você queira construir cinco versões diferentes de um aplicativo de desenho complexo e de alto nível (como um mini-Adobe Illustrator). Nos velhos tempos, isso seria como contratar cinco arquitetos mestres diferentes, cada um falando uma língua diferente, para projetar a mesma casa. Levaria anos e custaria uma fortuna.
Jason Hickey, um único desenvolvedor, fez algo diferente. Ele construiu cinco versões funcionais deste aplicativo (para Rust, Swift, OCaml, Python e um navegador web) em apenas sete semanas, trabalhando apenas no período da noite. Ele não contratou uma equipe; ele usou a IA como sua parceira.
Aqui está como ele fez isso, explicado de forma simples:
1. O "Projeto Mestre" (A Especificação Executável)
Normalmente, quando você constrói software para diferentes plataformas, tem que escrever as regras do aplicativo do zero cinco vezes. Se você quiser mudar como um seletor de cores funciona, terá que atualizar cinco bases de código diferentes.
Hickey fez o oposto. Ele escreveu um único "Projeto Mestre" (um documento de 23.000 linhas escrito em uma linguagem chamada YAML).
- A Analogia: Pense neste projeto não como um PDF estático, mas como uma receita viva. Ele não diz apenas "faça um botão vermelho"; ele diz: "Aqui está exatamente como o botão se parece, como ele reage quando você clica nele e o que acontece em seguida".
- A Magia: Este projeto é "executável". O computador lê esta única receita e constrói automaticamente a interface do usuário para todos os cinco aplicativos. Se Hickey quiser mudar uma regra, ele a altera em um só lugar, e ela atualiza instantaneamente os cinco aplicativos.
2. O "Dragão de Cinco Cabeças" (Programação N-Versão)
Nos anos 1980, engenheiros tentaram um método chamado "Programação N-Versão". A ideia era: "Se construirmos cinco versões diferentes de um sistema de forma independente, e todas concordarem, então deve estar correto. Se elas discordarem, saberemos que algo está errado".
- O Problema: Era caro demais. Construir cinco versões diferentes de um código usando cinco equipes diferentes era um desperdelo de dinheiro.
- A Reviravolta da IA: Hickey reviveu essa ideia usando IA. Como a IA pode fazer o trabalho pesado de escrever o código para as diferentes linguagens, ele pôde se dar ao luxo de construir cinco versões sendo uma única pessoa.
- A Rede de Segurança: Essas cinco versões agem como um júri de cinco pessoas. Se a versão em "Rust" do aplicativo faz uma cor ficar vermelha, mas a versão em "Python" faz a cor ficar azul, o sistema imediatamente sinaliza um problema. Eles realizam o "teste diferencial" entre si. Se eles discordarem, significa que o Projeto Mestre estava obscuro ou que uma das versões cometeu um erro.
3. O "Escape Hatch" (Escotilha de Escape)
O Projeto Mestre cobre cerca de 90% do trabalho. Mas, às vezes, uma plataforma de computador específica (como um iPhone ou um navegador web) precisa de um truque especial que o projeto geral não consegue descrever.
- A Analogia: Imagine que o projeto é a planta de uma casa padrão. Mas a casa de "Rust" precisa de um porão reforçado especial porque o solo é rochoso. O projeto lida com as paredes e o telhado para todos, mas a equipe de "Rust" tem que construir seu próprio porão especial.
- Hickey chama isso de Escape Hatch. É a pequena quantidade de código personalizado necessária para cada plataforma específica, enquanto o restante é compartilhadamente utilizado.
4. Como o Processo Funcionou (O Ciclo)
Hickey não apenas digitou código e esperou que desse certo. Ele usou um ciclo específico:
- Design: Ele escreveu um plano em inglês simples.
- Revisão de IA: Ele pediu à IA para encontrar falhas no plano ("O que está faltando? O que está confuso?").
- Atualização do Projeto: Ele atualizou o Projeto Mestre com base nos conselhos da IA.
- Construção e Teste: A IA gerou o código para todos os cinco aplicativos.
- O "Olhar Humano": Esta foi a parte mais lenta. Hickey olhou manualmente para todos os cinco aplicativos lado a lado. Se um parecesse estranho, ele sabia que o Projeto precisava de ajustes.
O Resultado
- Tempo: ~120 horas de trabalho noturno (cerca de 7 semanas).
- Saída: Cinco aplicativos totalmente funcionais compartilhando a mesma lógica central.
- Custo: Em vez de "múltiplos anos de desenvolvedor", levou um único desenvolvedor alguns meses.
A Ressalva (Limitações)
O artigo é honesto sobre o que isso não faz:
- Não é um produto finalizado: Os aplicativos carecem de algumas funcionalidades avançadas encontradas em ferramentas profissionais (como malhas 3D complexas ou recursos de impressão profissional). É um "subconjunto substancial", não um clone perfeito.
- Depende da IA: Se a IA se confundir ou "alucinar" (inventar código falso), o sistema detecta porque as cinco versões irão discordar. Mas se a IA for ruim em uma tarefa específica, todo o processo desacelera.
- Precisa de um humano: A IA fez a digitação, mas um humano teve que verificar os resultados, corrigir a lógica e gerenciar a "memória" do projeto para que a IA não esquecesse o que decidiu no dia anterior.
A Grande Lição
Este artigo argumenta que a IA mudou a economia da engenharia de software. Anteriormente, construir múltiplas versões de um software para garantir a qualidade era caro demais. Agora, com a IA lidando com a codificação repetitiva, um único desenvolvedor pode construir um "júri" de cinco aplicativos para checar o trabalho uns dos outros. Isso transforma um método que foi abandonado na década de 1980 devido ao custo em uma ferramenta prática para uma pessoa hoje.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.