← Últimos artigos
💻 computer science

A Large-Scale Comprehensive Measurement of AI-Generated Code in Real-World Repositories A Large-Scale Comprehensive Measurement of AI-Generated Code in Real-World Repositories

Este artigo apresenta um estudo empírico de larga escala que analisa as características e o impacto do código gerado por IA em repositórios reais, utilizando um novo conjunto de dados e filtros heurísticos para comparar métricas de código e de commits com o código escrito por humanos.

Autores originais: Tianhao Mao, Dongfang Zhao, Haixu Tang, Xiaofeng Wang, Hang Zhang

Publicado 2026-03-31
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Tianhao Mao, Dongfang Zhao, Haixu Tang, Xiaofeng Wang, Hang Zhang

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ê tem um assistente de programação superinteligente, como um "copiloto" que escreve código para você. Nos últimos anos, ferramentas como o GitHub Copilot e o ChatGPT tornaram-se muito populares. Mas a grande pergunta que os pesquisadores queriam responder era: quando esse assistente escreve o código e o coloca em um projeto real, como ele se compara ao código escrito por humanos?

Muitos estudos anteriores olhavam para o código gerado em laboratórios (como se fosse um teste de prova), mas este estudo foi diferente. Eles foram até os "grandes armazéns" de código do mundo (o GitHub) e analisaram projetos reais que já estão sendo usados por pessoas.

Aqui está o resumo do que eles descobriram, usando analogias do dia a dia:

1. O Código do Robô é "Verboso" (Muito Falante)

Imagine que você precisa explicar como fazer um sanduíche.

  • Humano: "Pegue o pão, passe o requeijão, coloque o presunto e feche." (Direto e eficiente).
  • IA: "Primeiro, pegue uma fatia de pão. Em seguida, pegue outra fatia. Aplique uma camada uniforme de requeijão na primeira fatia. Em seguida, coloque uma fatia de presunto sobre o requeijão. Finalmente, coloque a segunda fatia de pão sobre o presunto."

A Descoberta: O código gerado pela IA tende a ser mais longo e mais detalhado. Ele não é necessariamente mais complexo, mas é menos "compacto". A IA gosta de escrever tudo de forma explícita, passo a passo, como se tivesse medo de que você não entendesse. O código humano, por outro lado, tende a ser mais resumido e usa atalhos que os programadores experientes já conhecem.

2. A Estrutura: Torres vs. Blocos de Construção

  • Humano: Tende a criar "torres" altas e interconectadas. O código humano muitas vezes usa recursão (uma função que chama a si mesma) e organiza as coisas em funções grandes e poderosas que fazem muito trabalho de uma vez.
  • IA: Tende a construir "blocos" menores e mais organizados em camadas. A IA prefere criar muitas funções pequenas e simples, uma dentro da outra, em vez de uma função gigante. É como se a IA preferisse fazer uma escada de degraus pequenos em vez de um salto grande.

A Analogia: Se o código fosse uma casa, o humano constrói com vigas grandes e poucos pilares. A IA constrói com muitos tijolos pequenos e bem alinhados, mas a casa acaba ficando um pouco mais alta e com mais corredores do que o necessário.

3. O "Lixo" e os Erros de Segurança

A IA não comete mais erros graves (como fazer o prédio desabar), mas ela deixa mais "poeira" e pequenos problemas.

  • Segurança: O código da IA tem mais alertas de segurança de nível médio. É como se a IA deixasse mais janelas entreabertas ou portas mal trancadas, mesmo que não deixe a porta da frente destrancada.
  • Senhas: Humanos tendem a deixar senhas óbvias (como "123456"). A IA, curiosamente, tende a deixar chaves de API e tokens expostos. São tipos diferentes de "vazamentos".

4. O Comportamento do Programador (O "Commit")

Aqui está uma das descobertas mais interessantes sobre como os humanos trabalham com a IA:

  • Tamanho do Trabalho: Quando um humano usa a IA, ele não escreve o projeto inteiro de uma vez. Ele usa a IA para fazer pequenos ajustes rápidos. São commits (salvamentos de código) menores e mais focados.
  • Horário: Os programadores usam a IA mais fora do horário de expediente (à noite ou fins de semana), como se fosse uma ferramenta para "desafogar" o trabalho quando estão sozinhos.
  • O Preço da Manutenção: Embora a IA ajude a começar rápido, o código que ela gera demora mais para se estabilizar.
    • Analogia: É como pedir para um robô montar um móvel. Ele monta rápido e fica de pé. Mas, depois de uma semana, você percebe que precisa apertar alguns parafusos, ajustar uma perna que ficou torta e trocar uma peça. O código da IA precisa de mais revisões e ajustes ao longo do tempo do que o código feito puramente por humanos.

5. A Linguagem Importa

A IA não se comporta igual em todas as linguagens de programação.

  • Em JavaScript, a IA gera código com muitos mais problemas de segurança de alto risco.
  • Em Java, o código da IA é muito parecido com o humano.
  • Isso mostra que a IA aprende os "vícios" e padrões de cada linguagem, e às vezes ela aprende os maus hábitos também.

Conclusão: O Que Isso Significa para Nós?

A IA não está substituindo os programadores, mas está mudando como eles trabalham.

  • O Benefício: A IA é ótima para gerar rascunhos rápidos e fazer pequenas tarefas repetitivas.
  • O Custo: O trabalho não desaparece; ele apenas se move. Em vez de gastar tempo escrevendo o código do zero, o programador gasta mais tempo revisando, limpando e organizando o código que a IA gerou.

A Lição Final: A IA é como um estagiário muito rápido e detalhista, mas que às vezes escreve demais e precisa de supervisão para não deixar o código bagunçado. O programador humano continua sendo o arquiteto que precisa garantir que a casa fique sólida, segura e bem organizada a longo prazo.

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.

Experimentar Digest →