33 pontos por GN⁺ 2026-02-10 | 2 comentários | Compartilhar no WhatsApp
  • Diante da aceitação entusiasmada da indústria pelas ferramentas de geração de código com LLM, este texto enfatiza a importância do pensamento no desenvolvimento de software
  • Código gerado automaticamente é não determinístico (non-deterministic) e seu funcionamento interno é opaco, sendo, em essência, diferente da mecanização que garante o mesmo resultado todas as vezes
  • Os LLMs aprendem com código existente de baixa qualidade, repetem os mesmos erros e depois reaprendem isso novamente, criando o problema da "epistemologia da centopeia humana (human centipede epistemology)"
  • Quando a geração de código é delegada a agentes, o contexto compartilhado e a responsabilização durante a revisão de PRs enfraquecem, o que afeta negativamente a qualidade do software
  • LLMs são úteis em usos limitados, como prototipagem, mas é arriscado para o desenvolvedor terceirizar o próprio ato de pensar, e sem compreensão não há manutenção possível

O desconforto com a geração de código por LLM

  • Mesmo tendo acompanhado por muito tempo as tendências mais recentes do setor e compartilhado com colegas novidades de CSS e JS, houve uma sensação de estar ficando para trás com a rápida disseminação da geração de código baseada em LLM
  • Copilot e Claude vinham sendo usados como "spicy autocomplete" e como ferramentas auxiliares de depuração, mas, quando recebem qualquer tarefa um pouco mais complexa, o resultado sai uma bagunça
  • É preciso fornecer contexto suficiente, mas contexto demais causa sobrecarga, e surge a situação de escrever prompts longos para massagear o ego do LLM, como "você é um especialista em sistemas distribuídos"
  • Em muitos casos, escrever o código diretamente é mais rápido do que gastar tempo refinando prompts
  • Questiona-se o fenômeno de engenheiros quererem abandonar a parte divertida, que é programar, e ficar apenas com a parte tediosa, que é revisar

Contestando a ideia de que isso seria uma "reencenação da Revolução Industrial"

  • Assim como a Revolução Industrial contribuiu para a mudança climática, vê-se um padrão semelhante no enorme consumo de energia dos data centers de IA
    • Nem toda a eletricidade vem de combustíveis fósseis, mas ainda assim há um desperdício imenso de recursos para gerar coisas como imagens de "Jesus camarão"
  • A mecanização tornou produtos mais baratos e difundidos, mas também levou à queda de qualidade, resultando numa realidade em que se pode comprar uma calça na SHEIN por menos do que o preço de um café
    • Isso foi agravado pela erosão do trabalho qualificado, pela transferência de fábricas para países de baixos salários e pela exploração de trabalhadores
  • Código gerado se parece com fast fashion: à primeira vista parece aceitável, mas com o tempo fica cheio de buracos, muitas vezes aproveita indevidamente código de outras pessoas e também prejudica o meio ambiente
  • A diferença central: a mecanização produzia o mesmo resultado toda vez e, quando havia problema, era possível inspecionar o interior; já a saída de um LLM é não determinística e seu funcionamento interno é opaco
    • Um processo mecanizado que entrega resultados diferentes a cada vez e ainda mistura alucinações (hallucinations) não seria útil

Contestando a ideia de que isso seria uma "nova camada de abstração"

  • É verdade que, ao usar Java ou Go, deixou de ser necessário aprender assembly, e que o runtime lida com coleta de lixo e alocação de memória
  • Porém, arquitetura de sistemas, impacto no caminho crítico, trade-offs entre manutenibilidade e velocidade de entrega, compatibilidade entre navegadores, acessibilidade, segurança e desempenho continuam sendo áreas em que o desenvolvedor precisa pensar por conta própria
  • O ponto em que o LLM mais causa dano é quando o engenheiro terceiriza o próprio pensamento necessário ao desenvolvimento de software
    • Como o LLM não tem capacidade de raciocínio, se o desenvolvedor não pensa e o LLM também não pensa, então ninguém está pensando
  • Caso do escândalo Horizon: por causa de bugs no software dos Correios, funcionários inocentes foram presos, e 13 pessoas se suicidaram
    • A responsabilização (accountability) sobre software é mais importante do que nunca

O problema fundamental é o código de baixa qualidade

  • Desenvolvedores humanos também escrevem código com baixa acessibilidade, baixo desempenho e dependência excessiva de JavaScript
  • Os LLMs são treinados com esse código de baixa qualidade como dado de treinamento (sem consentimento explícito) e passam a reproduzir os mesmos erros
  • Forma-se um ciclo em que código ruim gerado por LLM é reaprendido por outro LLM, o que se chamou de "epistemologia da centopeia humana (human centipede epistemology)"
  • Considerando usuários de tecnologias assistivas, usuários em condições precárias de internet e vítimas do racismo em softwares de reconhecimento facial, a qualidade atual do software está longe de ser suficiente
  • Em vez de aprender e melhorar como humanos, estamos terceirizando nossos erros para algoritmos sem pensamento

Revisão de PR e enfraquecimento do contexto compartilhado

  • Mensagem central da apresentação de Jessica Rose e Eda Eren na FFConf: "código que você não escreveu é código que você não entende, e código que você não entende não pode ser mantido"
  • Um PR escrito por um colega carrega certo nível de confiança e processo de pensamento, mas um PR gerado por LLM não oferece essa garantia
  • Maintainers de open source vêm enfrentando uma explosão de PRs de baixa qualidade gerados por LLM
  • Algumas empresas usam um método em que pedem alterações de código ao Claude via chat no Slack, e a mesma pessoa aprova o PR gerado automaticamente
    • Nesse caso, a responsabilidade fica concentrada em apenas um revisor, e perde-se um dos dois pares de olhos
    • O contexto compartilhado (shared context) dentro da equipe também diminui
  • Revisar PR não é só verificar bugs, mas também compartilhar entendimento sobre o código e as mudanças

Não é oposição ao progresso, e sim ao hype

  • A oposição não é aos LLMs em si, e sim ao branding de "inteligência artificial"
    • LLMs não são inteligentes; são uma forma de machine learning
    • "IA generativa" é uma cadeia de Markov muito bem construída sobre a qual as pessoas projetam expectativas excessivas
  • Usar isso para criar rapidamente protótipos, wireframes ou demos interativas é razoável
  • O problema é acreditar que "vibe code" pode produzir software pronto para produção, ou delegar o próprio processo de pensamento por trás da programação
  • Posição de Mikayla Maki no blog da Zed sobre programar com agentes: agentes devem ser tratados como contribuidores externos não confiáveis, usados apenas em tarefas cuja execução você já sabe como fazer, e entender o código é obrigatório
  • O "spicy autocomplete" continuará sendo usado, mas pensar não será terceirizado, e é preciso lembrar por que esse trabalho era amado no começo

2 comentários

 
crawler 2026-02-10

> Código gerado automaticamente é não determinístico (non-deterministic)
> Sou contra o branding de "inteligência artificial"

Realmente são as palavras mais importantes...
No GeekNews também tem gente que faz analogias com calculadora e câmera, mas se até os desenvolvedores têm essa percepção, parece sério pensar como deve ser para o público em geral.

 
GN⁺ 2026-02-10
Comentários no Hacker News
  • Enquanto a IA for vista não como uma “bicicleta para a mente”, mas apenas como um produto para maximizar os lucros das grandes empresas, é difícil justificar o estado atual da IA
    Uma estrutura que raspa dados, os processa e os devolve sem um processo real de aprendizado é desfavorável ao crescimento mental humano

    • Não concordo. A discussão sobre “comoditização” é uma questão de sustentabilidade econômica, e hoje a indústria de IA está em um estado economicamente instável
      No fim, o essencial é estabelecer um modelo de receita; caso contrário, não dá para manter LLMs de alta qualidade
    • O problema de escanear livros e depois queimá-los não é culpa da lei de direitos autorais?
  • Agora eu quase não faço edição manual. Só de jogar a URL do ticket no Claude Code, ele resolve a maior parte de uma vez
    Acredito que equipes que investirem nesse jeito de trabalhar terão uma produtividade muito maior do que as que não fizerem isso
    LLM é uma tecnologia que proporciona experiências completamente diferentes para cada pessoa, e a liberdade de prompt é enorme

    • Isso só funciona quando você não olha o código diretamente. Pedi para gerar código em Svelte 5 num projeto novo e ele entregou código misturando versões
      Quando é para implementar um design específico, muitas vezes escrever eu mesmo acaba sendo mais rápido
    • Quem não usa Claude Code ou Cursor corre o risco de ficar para trás
    • Eu sou quem revisa código feito por IA, e a qualidade é péssima, então isso me irrita
    • Eu penso a mesma coisa. Parece que essas pessoas nunca usaram as ferramentas que eu uso
  • A frase “não consigo entender código que eu não escrevi” não é realista
    O objetivo da revisão de código não é a identidade de quem escreveu, mas garantir a confiabilidade sistêmica
    Tanto faz se foi um humano, uma IA ou até um golden retriever que digitou

    • Mesmo sem escrever o código diretamente, dá para ler, depurar e entender
      Mas, em vez de gastar tempo tentando entender um PR feito por IA, sinto que é melhor eu mesmo mandar o prompt e obter o resultado
    • Se revisão de código, pair programming e TDD não funcionam, então fico curioso sobre o que seria eficaz
    • O ponto aqui é “o problema de o autor não entender o código”
      Se depender de LLM, o desenvolvedor perde a oportunidade de aprender a estrutura do projeto e acaba tratando o sistema como uma caixa-preta
      Essa tendência transforma o desenvolvedor em um “prompt kiddie
  • Eu concordo com a frase “em vez de desperdiçar tempo refinando prompt, prefiro escrever o código direto”

    • Mas a história muda se o prompt se tornar uma habilidade reutilizável
      O problema não é a “geração”, mas a geração não estruturada
      Em vez de prompts improvisados, é preciso abordar isso com uma composição em unidades claras de habilidade
  • Dizer para a IA “você é um especialista em sistemas distribuídos” é coisa da era do GPT-3
    Hoje, graças a fine-tuning e técnicas de pós-processamento, esse tipo de prompt baseado em papel já não é necessário

  • Ao ver a febre da geração de código por LLM, fiquei ansioso pensando se eu não estava ficando para trás
    Eu vinha usando Copilot e Claude apenas como assistentes de autocomplete, e código complexo continuava uma bagunça
    Mas hoje em dia as ferramentas baseadas em agentes pesquisam no codebase, buscam material na web e ajustam o contexto por conta própria
    No fim, o problema são “as pessoas que reclamam sem realmente entender a tecnologia”

    • Se você olhar a thread anterior no HN, as pessoas que dizem “o LLM não consegue reproduzir meu algoritmo” não mostram o prompt
      Na prática, é bem possível que seja falta de habilidade com prompts
    • LLM não é um ser que pensa, mas um modelo estatístico
      Só parece que “pensa” porque as ferramentas ao redor automatizam busca e execução
      No fim, isso é automação, não inteligência
    • Faz uma sátira à era centrada em agentes, dizendo que “prompts baseados em papel agora estão ultrapassados”
    • Brinca: “então você só escreveu o prompt errado?”
  • Hoje em dia, muitos posts e comentários no HN parecem ter sido escritos por LLM
    Não têm nada de novo, e em sua maioria só repetem generalizações superficiais

    • (Em tom sarcástico) “Isso mesmo, está absolutamente certo”
    • Retruca com “você sequer está lendo direito?”
    • Termina com a piada: “já chega, vamos lá fora tocar na grama
  • Pelas notícias recentes, a IA ainda não amadureceu o suficiente
    Ex.: Microsoft reduz meta de receita do Copilot e
    problema de segurança do Moltbook
    No fim, a maioria das pessoas não confia em IA
    IA é útil para explorar ideias ou escrever boilerplate, mas capacidade de pensar continua sendo o principal

    • A capacidade de pensar é uma ferramenta instintiva de sobrevivência do ser humano
      IA é a maior tentação para substituir o pensamento humano, mas no longo prazo pode enfraquecer os músculos do pensamento
      Se, depois de um tempo usando isso, você voltar a programar com as próprias mãos, vai sentir que perdeu fluência
    • Ainda é difícil julgar
      Pode ser que o Claude seja melhor que o Copilot, e o problema de segurança do Moltbook talvez seja o destino inevitável de serviços em fase inicial
      No fim, o resultado vai aparecer na taxa de sobrevivência de empresas que adotam IA e das que não adotam
  • Eu também achava que “IA é uma caixa-preta burra”, mas nos últimos 6 meses minha visão mudou completamente
    Se aprender direito, dá para obter resultados surpreendentes
    Hoje vejo a IA como um amplificador e a uso como ferramenta para expandir minhas capacidades