1 pontos por GN⁺ 2025-11-11 | 1 comentários | Compartilhar no WhatsApp
  • Biblioteca de implementação do protocolo SWD para depurar o núcleo RP2350 RISC-V, com uma arquitetura em que um Raspberry Pi Pico2 é usado para transformar outro Pico em probe
  • Cerca de 80% do código foi gerado por IA (Claude); o autor criou o protótipo básico com um osciloscópio e a documentação, depois deixou a IA expandir o código
  • Durante o projeto, o autor vivenciou forte repulsa e ceticismo por causa da estrutura de tokens sem sentido do código gerado por IA, da perda de contexto e da perda do senso de pertencimento ao código
  • Por outro lado, teve experiências positivas ao usar a IA como ferramenta auxiliar para análise de documentação, decodificação de dados e geração de structs
  • Este caso expõe os problemas de qualidade, sensibilidade e propriedade no código gerado por IA e levanta questões fundamentais sobre a essência da programação e o papel humano

0. VIBE CODE WARNING

  • Cerca de 80% de todo o código foi gerado por IA (vibe coded), e grande parte do README também foi gerada automaticamente
  • O autor implementou diretamente, com base no osciloscópio e na documentação, itens como SBA, leitura/escrita de registradores, comandos abstratos e PROGBUF, e depois delegou à IA a transformação disso em biblioteca
  • À medida que o código cresceu de 1 mil para 4 mil linhas, ele perdeu completamente a estrutura e o significado do código, e deixou de sentir que era algo escrito por ele
  • A IA interpretou dap_read_mem32 de forma errada, o que gerou em massa erros de protocolo e código ilógico
  • No fim, quase 10 mil linhas de código ficaram prontas em 10 horas, mas não houve qualquer sensação de realização ou crescimento

A diferença entre código humano e código de IA

  • O código escrito por humanos é composto de tokens com intenção e propósito, o que permite compreendê-lo; já os tokens do código de IA parecem combinações sem significado, difíceis de ler
  • Parte do código de IA mostra qualidade superior à humana, mas a linha logo abaixo pode ser um código errado que só parece plausível à primeira vista
  • Essa falta de uniformidade e a perda de confiança sensorial paralisam a capacidade de julgamento do programador
  • Quanto maior o código, mais desaparece a sensibilidade (taste) para perceber se ele é bom ou ruim, e o modelo mental e o senso de propriedade entram em colapso

Emoções humanas e ceticismo

  • O autor levanta a pergunta: “Isso é programação?”, expressando repulsa e vergonha
  • Na era em que a IA escreve código no lugar das pessoas, ele relata uma confusão existencial sobre o que os humanos ainda criam e até onde devem intervir
  • Ele já não tem certeza nem de que simplesmente “não escrever código” seja progresso, nem de que “não modelar o problema” seja eficiência
  • Diz que ainda quer construir algo com as próprias mãos, mas que, em um ambiente de desenvolvimento centrado em IA, esse significado ficou nebuloso

Experiências positivas com o uso da IA

  • O autor avalia como eficiente e satisfatório o uso da IA em análise de documentação, decodificação de dados de osciloscópio e geração automática de structs em C
  • Em especial, ao ler o primeiro registrador e acessar a memória via SBA, ele sentiu uma verdadeira sensação de realização
  • Ou seja, é possível ter uma experiência positiva quando a IA é usada como assistente, e não como autora do código

Reflexão final

  • A geração de código por IA é rápida, mas provoca a perda de significado, sensibilidade e propriedade
  • Quando desaparece a “sensibilidade para o gosto de um bom código (taste)” que os humanos têm, a própria essência da programação também vacila
  • O autor encerra dizendo esperar que esse fenômeno seja apenas uma fase transitória, e admite que ele mesmo não sabe o que seria uma “programação melhor”

As seções técnicas posteriores do texto original (1~20) são uma documentação detalhada da implementação do protocolo de depuração RISC-V do RP2350, incluindo a hierarquia SWD, registradores DAP/DAPC, execução via PROGBUF, acesso SBA, controle de hart, tracing, reset e estrutura dual-hart, cobrindo uma especificação técnica completa de toda a pilha de depuração.
No entanto, o tema central é um estudo de caso pessoal (Vibe Code Warning) sobre a desconexão entre o código gerado por IA e a sensibilidade humana.

1 comentários

 
GN⁺ 2025-11-11
Comentários do Hacker News
  • Entendo o sentimento de quem diz que “a IA tirou a diversão da programação”, mas acho que ‘fazer’ importa menos do que ‘concluir’
    No passado, o acendedor de lampiões perdeu o emprego por causa da lâmpada elétrica, mas no fim o importante era fornecer luz para a cidade
    Para mim, a IA é uma ferramenta para concretizar ideias e produzir resultados. Ainda dedico tanto tempo e esforço quanto os ‘programadores de verdade’, mas o foco está em definição do problema, modularização, testes, correção de bugs e melhoria iterativa

    • Essa dicotomia de “fazer vs concluir” é uma forma perigosa de pensar
      O importante é construir um mundo em que os seres humanos possam sentir significado, dignidade e prazer.
      Se eu comesse uma comida deliciosa sabendo que quem a fez sofreu, ou que foi feita por robôs controlados por forças mal-intencionadas, eu não a desejaria.
      A sociedade existe para os seres humanos, não é uma simples checklist de eficiência
    • O que significa exatamente “concluir”? Por causa da velocidade e da complexidade trazidas pela IA, está cada vez mais difícil validar os resultados
      Em projetos pessoais, tudo bem, mas em ambientes com clientes, usuários ou acionistas é preciso ter resultados comprováveis
      A analogia com os lampiões não é apropriada. IA não é um sistema físico como a eletricidade, e sim software.
      No fim, o que importa é resolver o problema. Se não resolve, é apenas trabalho
    • A analogia com os lampiões é inadequada. Acender lampiões não era uma forma de expressão criativa, mas escrever código é um ato criativo
      Muita gente não programa apenas para criar software útil, mas pelo prazer de criar
      Os “programadores de verdade” também passam o tempo pensando, definindo, testando e corrigindo
    • Boa parte do que IA e tecnologia produzem na prática é trabalho desnecessário
      Coisas como um ‘dispensador inteligente de fio dental’, um comprador automático de papel higiênico ou bots tipo Clippy são desperdício de tempo e energia
    • O espírito artesanal e a relação com o conhecimento são importantes
      Mais do que simplesmente obter um resultado, há uma satisfação grande no processo de aprender e compreender
      Lendo o manual de sobrevivência Adrift, 76 Days at Sea, senti que conhecimento profundo pode ser a diferença entre a vida e a morte
      Isso também se parece com a questão de hospedar seus próprios dados ou entregá-los a um serviço centralizado
  • Quando encontro na internet um texto que expressa perfeitamente o que penso, isso me dá uma sensação real de consolo
    Obrigado por falar de uma experiência humana, em vez de só aumentar o ruído de “ajuste o prompt assim”

    • Sinto o mesmo. Depois de usar IA por muito tempo, fico com uma sensação vazia e sem propósito, como quando você rola o YouTube no automático
      Para sair desse estado, preciso dormir bem uma noite
    • Algumas pessoas acham que basta tratar a IA como se fosse Excel, mas para mim ela parece mais uma caça-níquel
      Ela dá respostas quase certas, mas tem uma capacidade viciante psicologicamente parecida com a de uma máquina de aposta
  • Alguém disse que “escreveu 10 mil linhas de código com IA em 10 horas, mas ficou horrível”, e essa experiência muda totalmente dependendo da abordagem
    Estruturação de prompts, planejamento, revisão, testes e controle de ritmo variam de pessoa para pessoa
    Muitos desenvolvedores iniciantes tentam uma abordagem improvisada conhecida como vibe coding e fracassam

    • Eu também, ao ajustar sistemas de agentes, venho descobrindo sem parar novas formas de fracassar
      O desgaste está grande e estou dando um tempo; um dia pretendo construir meus próprios agentes
      Acho arriscado deixar isso nas mãos de big techs como OpenAI, Microsoft e Anthropic
    • Ainda não vi nenhum grande projeto open source feito com vibe coding
      No fim, acho que é só mais um bordão da moda
    • Com todo esse esforço, será que no fim fica mais rápido do que programar diretamente? Tenho minhas dúvidas
      Parece uma fuga para gestão de projeto só porque você não quer aprender uma nova biblioteca
    • Você tem razão, mas ninguém explica concretamente o que seria a “abordagem correta”
      Até aquele texto famoso “Just Talk to It” deixava a desejar nos detalhes
    • No fim, vibe coding parece mais um indicador indireto de capacidade de planejamento
      Quanto mais improvisado, mais planejamento rigoroso é necessário. Esse é o ponto do que você está dizendo?
  • O código publicado já não é mais necessariamente feito por humanos
    Se esse código voltar a entrar nos dados de treinamento, existe o risco de o mundo se encher de ainda mais resultados sem sentido
    Já houve casos em pesquisa linguística em que a quantidade de texto gerado por máquina tornou a coleta de dados praticamente inútil

    • Acho que vai ficar tudo bem. A IA realmente produz muito código lixo, mas no fim os humanos ainda encontram as joias no meio disso
      Na maioria dos casos, os humanos ainda estão dando a direção
      Claro, se uma criança de 12 anos digitar “yolo 3d game now”, eu me preocupo, mas ao mesmo tempo isso parece legal
    • Observação interessante. Isso pode acabar produzindo um efeito parecido com model poisoning
  • Ler código feito por vibe coding dá uma sensação parecida com “English as She is Spoke”
    A gramática está certa, mas o código não parece linguagem humana

  • Também penso algo parecido
    Quando desenvolvo um app, normalmente passo dias formando um modelo mental dele na cabeça, e até no banho fico reformulando a estrutura
    Mas com vibe coding esse contexto interno desaparece, e ler o código vira sofrimento
    Já ler código que eu mesmo escrevi me dá prazer

    • Eu ainda sinto isso, mas no nível do sistema, não no nível do código
      Entendo as conexões entre sistemas e o fluxo de dados, mas a implementação detalhada fica nebulosa
  • Tive uma experiência parecida. Os LLMs reduziram a diversão de programar
    Minha rotina agora é “escrever prompt → esperar um pouco → repetir → revisar código”
    Entendo a estrutura do código, mas por não mexer nele diretamente com as mãos, a profundidade da compreensão fica rasa
    Talvez com o treinamento certo isso mude, mas ainda não cheguei lá

    • Eu não deixo o LLM escrever código; uso só para brainstorm de ideias
      Também é útil para gerar testes. Escrevo eu mesmo um bom teste e mando a IA fazer o resto para economizar tempo
    • Pelo menos no caso de código gerado por LLM, eu mesmo escrevo os testes automatizados
      Isso me ajuda a entender os limites e depois reescrever com um design de sistema melhor
      Mesmo quando o código do LLM é prolixo, ainda me parece melhor do que o código bizarro deixado por desenvolvedores do passado
  • O texto exagera um pouco, mas eu também concordo
    LLMs são úteis para entender e resumir código existente, autocompletar e prototipagem por não desenvolvedores, mas
    nunca deveriam ser usados para escrever código de produção

  • A solução é fazer grounding do modelo
    Em código, desenvolvimento orientado a testes (TDD) é a forma de fazer isso
    Escreva primeiro os testes, confirme que eles falham, valide por que falham e só então faça o modelo escrever o código
    Assim, você cria uma especificação comportamental do código, que depois serve como documentação para pessoas ou agentes

  • Depois de ler o README do GitHub até o fim, vi que o autor admitia que 3/4 do código eram gerados por IA, mas mesmo assim reivindicava direitos autorais
    Já existe jurisprudência de que conteúdo não criado por humanos não pode receber proteção autoral por lei