2 pontos por GN⁺ 2025-09-14 | 1 comentários | Compartilhar no WhatsApp
  • IA para programação tem uma estrutura de papel semelhante à dos compiladores tradicionais
  • Prompts em inglês têm, como linguagem de programação, características imprecisas e ineficientes
  • O efeito de aumento de produtividade da IA tende, na prática, a ser exagerado ou mal compreendido
  • Ferramentas de IA mudam o processo de desenvolvimento, mas a verdadeira inovação pode surgir de linguagens e ferramentas melhores
  • A adoção de LLMs não significa substituir desenvolvedores; em vez disso, reflete as limitações do ambiente atual de desenvolvimento

Semelhanças entre IA e compiladores

  • O autor afirma que, com a idade, desistiu de tentar convencer os outros
  • Destaca o fenômeno de muitas pessoas não se interessarem pela verdade e seguirem apenas crenças que lhes trazem vantagem
  • Apresenta uma crítica àqueles que defendem que "Perception is reality" (a percepção é a realidade)
  • Aponta que os bilhões de dólares investidos em carros autônomos são um desperdício causado por crenças equivocadas
  • A visão de que a IA pode programar é semelhante à ideia de que compiladores fazem programação

Codificação com IA como um modelo semelhante ao compilador

  • Explica a tese de que o melhor modelo para IA de programação é o compilador
  • O usuário insere um prompt (código) e recebe, como resultado, uma saída compilada
  • A diferença está em inserir o Frprompt em inglês, mas o inglês tem vários problemas, como falta de clareza e ausência de especificação
  • Ao lidar com tarefas novas ou complexas, a verbosidade do prompt acaba aumentando
  • A saída da IA é não determinística, e mudar uma parte do prompt afeta o resultado como um todo

Uma visão crítica sobre codificação com IA

  • A razão de a codificação com IA parecer positiva é a má qualidade das ferramentas, linguagens e bibliotecas atuais
  • Com a tecnologia de "IA", tornaram-se possíveis ferramentas melhores de busca, otimização e extração de padrões
  • Quem realmente programa é o próprio programador; apenas mudou a linguagem usada para escrever código
  • Se uma empresa pode substituir desenvolvedores por LLMs, isso significa que o codebase da empresa e seus critérios de contratação estão em um nível muito baixo
  • A IA pode, como compiladores ou planilhas, substituir gradualmente parte de algumas tarefas

IA é ferramenta; no fim, ainda são necessárias linguagens e bibliotecas melhores

  • Enfatiza que é preciso muito pensamento e cuidado a partir de uma visão instrumental da IA
  • Estão sendo desperdiçados bilhões de dólares ao se investir em expectativas equivocadas ou ilusões
  • Menciona a reação exagerada do mercado a falsas ferramentas de produtividade como "vibe coding"
  • Existe a ilusão de que a IA aumenta a produtividade em 20%, mas cita resultados de um estudo (artigo) segundo os quais, na prática, ela a reduz em 19%
  • O verdadeiro avanço pode surgir da inovação em linguagens de programação, compiladores e bibliotecas

1 comentários

 
GN⁺ 2025-09-14
Comentários do Hacker News
  • Tenho quase 50 anos e escrevo código profissionalmente desde o fim dos anos 90. Consigo visualizar um projeto inteiro na cabeça e sei exatamente o que preciso construir. Também ganho bem. À primeira vista, eu pareceria o estereótipo de alguém anti-IA, mas não sou. Posso construir qualquer coisa, mas frequentemente me canso de todo tipo de trabalho básico. Por isso gosto muito de poder usar IA para passar rapidamente pelas partes tediosas e me concentrar no trabalho central de que gosto. Desenvolver com IA é parecido com passar algumas frases com minhas ideias para um desenvolvedor entre júnior e pleno e pedir uma hora de trabalho. Dito isso, o fato de isso poder impedir que juniores reais cresçam e reduzir o futuro grupo de desenvolvedores sêniores é algo que precisa ser pensado com seriedade, mas essa é outra questão

    • Eu disse que uso IA para resolver rapidamente as partes chatas, mas entre desenvolvedores sêniores experientes também há gente negativa em relação à IA justamente por ter medo das partes difíceis. Muitos desenvolvedores encontram segurança psicológica nas partes chatas e fáceis, e com a adoção da IA o trabalho pode virar uma sequência constante de dificuldades. Se for um sênior com muito tempo de carreira, mas pouca habilidade real, assumir tarefas desafiadoras em sequência pode levar rapidamente ao esgotamento. As empresas introduzem IA querendo apenas acelerar tudo a qualquer custo, mas ignoram que as pessoas precisam de descanso cognitivo. Se sobrarem só as tarefas muito difíceis, isso não faz bem. Claro, desenvolvedores que se entediam com trabalho repetitivo e fácil podem se revitalizar com IA. No fim, é algo que precisa ser abordado de forma diferente para cada pessoa

    • Sou um pouco mais novo que você, mas penso quase exatamente da mesma forma. Talvez até de forma mais extrema. Em vez de achar divertido escrever o código que realiza uma ideia interessante, comecei a achar que o divertido é ter a ideia e experimentar. Então programar era algo que eu fazia porque precisava, não porque fosse o que eu realmente queria fazer em essência. Se eu quisesse concretizar minhas ideias, era inevitável escrever código. A IA é excelente como parceira de brainstorming. Se você pedir para ela não ficar puxando saco, ela realmente aponta com sinceridade quando estou fazendo overengineering. Também depura muito bem. Então eu explico em voz alta para o computador, faço brainstorming sobre arquitetura e abordagem, crio a especificação e deixo a implementação com a IA. Se meu pensamento estiver errado, itero rapidamente com a IA para melhorar. A iteração é tão rápida que errar não importa muito. Antes, eu convivia com designs errados porque mudar o código inteiro era custoso, mas com ferramentas de Agentic coding até alterações no codebase inteiro deixaram de ser problema. Também consegui entrar com eficiência em novas áreas técnicas nas quais eu não era especialista e evoluí rápido graças à IA. Sinceramente, estou mais feliz agora do que em qualquer outro momento da minha vida como programador. As ferramentas melhoram toda semana, às vezes várias vezes por semana

    • Isso bate completamente com a minha experiência também. Tenho um tempo de carreira parecido. Uso IA ativamente tanto em projetos pessoais quanto no trabalho. Primeiro, a IA funciona como uma espécie de conselheira de ideias com menos viés. Um loop de feedback rápido e validação de direção parecem absolutamente essenciais. Segundo, ela economiza digitação e tempo. O “trabalho básico” dá para delegar de uma vez, e pelo menos 80% vem perfeito. Não fica 100% pronto, mas o tempo economizado é muito maior, então o ganho é absoluto. Ao usar IA, estou criando o hábito de sempre colocar guardrails, passar instruções o mais específicas e detalhadas possível e sempre revisar pessoalmente o resultado

    • Tenho uns 10 anos a menos de experiência, mas estou numa posição parecida. Só que não consigo me identificar muito. Quando alguma parte começa a ficar tediosa, automatizar ou generalizar aquilo já é tão difícil e desafiador que quase nunca sobra trabalho realmente chato. Na prática, digitar eu mesmo costuma ser mais rápido. É justamente nas partes não intermediárias e não simples, escrevendo código diretamente, que penso em estruturas melhores ou ideias de automação. Por isso quase não existe código que eu queira delegar. E acho que só consegui pensar assim porque fiquei muito tempo na mesma empresa. Se eu tivesse que continuar pegando sempre trabalhos novos de código, provavelmente pensaria diferente

    • Também estou na casa dos 50 e programo desde os anos 90, e ganhei dinheiro suficiente para viver mais de três vidas. Ao longo de 30 anos de carreira, houve uma característica em comum entre os melhores desenvolvedores: “preguiça perfeita”. Pode soar estranho, mas a única característica comum entre grandes engenheiros era a preguiça. É surpreendente como a preguiça leva à produtividade. O motivo é que eles automatizam qualquer tarefa repetitiva sem exceção. Aprendi a regra de que, se você faz a mesma coisa duas vezes, precisa automatizar na terceira. Com a chegada da IA, o nível de automação mudou completamente. Agora dá para automatizar até coisas que antes eram impossíveis. Descobri inúmeras maneiras de usar IA, e não só eu, mas também meus colegas preguiçosos a usam muito bem. Hoje não consigo mais imaginar trabalhar sem IA. Não porque seja “mágica”, mas porque, para alguém preguiçoso como eu, a IA faz todo o trabalho que pode ser automatizado

  • Acho que este é um exemplo extremo do pensamento de grupo sobre IA que costuma aparecer no Hacker News. Geohot está no top 99,999% dos desenvolvedores, mas os 99,999% que ele não entende continuam fazendo trabalho muito mais básico. É o paradoxo do especialista. Se todos estivessem no nível de especialista, eles não seriam especialistas. Já vi muitos desenvolvedores se comportando como IA. Não conseguem explicar nem o codebase que eles mesmos fizeram, nem mantê-lo de forma consistente. É como um engenheiro aeroespacial zombar de alguém que faz brinquedos do Kinder Ovo por não saber simulação de fluidos

    • Fico surpreso porque eu achava que o HN era negativo em relação à IA. Pelo que vejo nos comentários e posts populares, sinto que o HN como um todo é bastante otimista com tecnologia

    • Também parece muito incoerente que alguém que fundou uma empresa de direção autônoma tenha essa posição. Se modelos de IA não conseguem escrever código, fica a dúvida de como substituiriam algo muito mais difícil, que é dirigir

    • Isso já é explicado no começo do texto. A ideia é que isso funciona porque vários workflows comuns de programação são muito frequentes, mas para fazer algo novo você precisa explicar em um nível de detalhe equivalente ao da própria linguagem

    • Trabalho na área aeroespacial, e os engenheiros daqui também não são necessariamente melhores. Mas não precisa se preocupar tanto. Nas empresas, essas pessoas costumam ser colocadas em cargos onde não causam dano algum, e a maioria vira gerente

    • Não sei se o Geohot é mesmo um desenvolvedor top 99,999%. “O modelo ideal para programação por IA é o compilador. Você dá um prompt (= código), ele devolve o código compilado. Em vez de usar interativamente com feedback, como a maioria das IDEs, é melhor ajustar o prompt e recompilar.” Tenho minhas dúvidas se isso faz mesmo sentido

  • Um dos pontos centrais da discussão é que precisamos definir com mais precisão os “tipos de programação”. Assim como não faz sentido perguntar só “robôs são bons ou ruins?” quando um robô constrói alguma coisa, a discussão só avança se a pergunta “para quê?” vier embutida

  • Acho que há vários problemas neste texto. Primeiro, a afirmação de que “programação com IA é um compilador”: compiladores transformam linguagens de forma determinística de acordo com uma especificação, enquanto ferramentas de código com LLM são sintetizadores de programas que iterativamente buscam, geram e modificam código sob restrições como testes, tipos, linter, CI etc. Na prática, elas resolvem até issues grandes de open source ponta a ponta, como em SWE-bench Verified. Segundo, a afirmação de que “a linguagem de programação é o inglês”. Na realidade, o conjunto é código, testes, especificações, APIs, esquemas JSON, diff, ferramentas de IDE etc., e o inglês é só a cola entre essas partes. O autor seleciona apenas a interface mais fraca para atacar. Terceiro, a ideia de que a não determinismo é o problema. Na prática, há muitos elementos probabilísticos em coisas como fuzzing e SAT/SMT, mas a determinismo e a correção finais vêm de especificações externas, como testes, sistemas de tipos e CI. E dizer que LLMs são populares porque linguagens ou bibliotecas são ruins é uma falsa dicotomia. Mesmo que linguagens como Rust e TypeScript melhorem, LLMs ainda ajudam com busca de APIs, rastreamento de repositórios, escrita de código repetitivo, migrações, escrita de testes e refatoração. Por fim, o texto só oferece como alternativa “criem linguagens ou compiladores melhores”, mas equipes modernas já estão obtendo muito valor da combinação com IA. Por isso, em vez de acreditar cegamente em IA coding e LLMs como um “compilador mágico em inglês manipulado por prompt”, parece muito mais realista usá-los como um “programador júnior em pair programming” que ajuda segundo minhas próprias restrições, como tipos, testes e CI

    • (o próprio autor) Concordo com essa opinião. Se eu tivesse escrito o post desse jeito, provavelmente não teria feito sucesso. A descrição de que “ferramentas de código com LLM são sintetizadores de programas baseados em busca” me parece, na prática, bem próxima da definição de compilador. Só que eu acho que a maioria dos compiladores não faz busca suficiente e depende muito de heurísticas apenas porque não há integração com runtime. Concordo também que “há muitas ferramentas de engenharia não determinísticas”, mas, por exemplo, num SAT solver, a aleatoriedade pode mudar o tempo de solução sem afetar a correção da resposta. Fuzzers são para teste, então por natureza não se espera perfeição. Nunca vi um fuzzer em produção. Concordo totalmente com a afirmação de que “a determinismo vem de testes ou especificações externas”. O que eu imagino é uma linguagem em que o comportamento seja especificado apenas por spec, e não pela forma de implementação. Algo como uma generalização maior do conceito de schedule do Halide. O computador encontraria sozinho a implementação. Acho que a IA pode fornecer esse tipo de ferramenta. Não precisa necessariamente ser um LLM, e uma especificação rigorosa é indispensável. Isso em si já é programação. Nesse sentido, sou contra ver IA como um “compilador mágico em inglês”. Se você entende os pontos fortes e fracos da ferramenta e a usa como meio de apoio ao trabalho, isso vira um workflow realmente excelente

    • Resposta excelente. Concordo totalmente

    • Não me surpreende que tenha escrito um texto com esse tipo de problema. O autor é George Hotz, ou seja, Geohot

  • Uso tanto o Openpilot quanto o claude code com frequência. Vejo os dois quase no mesmo nível. O Openpilot dirige muito bem por horas em situações simples, como rodovias. O claude code faz refatorações intuitivas, boilerplate, scaffolding, git bisect e outros trabalhos repetitivos sem precisar do meu input. No fim, nenhum dos dois substitui o “motorista”. O claude code é como um nível 2 de direção autônoma para programação

  • A pesquisa da METR fez enorme sucesso por causa do título. Acho que pouca gente leu com atenção — era bem longa. Mas, nos dados, só uma pessoa, justamente a com mais experiência em Cursor ou uso de IA, mostrou aumento de velocidade de 50%. Isso sugere que os resultados mais fortes só aparecem depois de ganhar familiaridade. E, com uma amostra pequena, a variação estatística também é grande. Depois houve uma correção dizendo que a diferença de velocidade de outra pessoa tinha sido registrada de forma errada, o que ainda deixa dúvidas sobre o significado dos resultados. Os fatores de ineficiência medidos no estudo parecem ser coisas que podem perfeitamente ser resolvidas por tecnologias mais avançadas, como LLMs melhores e agentes paralelos. Na época do estudo, o que se usava ainda era da era Claude 3.7, antes do Claude Code. E a sensação subjetiva de ter trabalhado 20% menos já tem valor suficiente. Quando o trabalho é prazeroso, o tempo passa rápido

  • O problema é que os labs de IA venderam IA de forma exagerada até agora. Há muito esse discurso de que “a IA realmente pensa, não é só pattern matching”. Eu, que crio e uso ferramentas de IA, acho muito mais útil tratá-la como um “previsor do próximo token” baseado em pattern matching. Quando se coloca informação demais sem necessidade no contexto, a IA muitas vezes falha em generalizar. No fim, isso é pattern matching e previsão do próximo token. Acho que “a tecnologia de IA pode contribuir para ferramentas muito boas hoje”, mas isso é resultado de muita busca/otimização e reaproveitamento de padrões existentes. Por exemplo, se eu pedir ao Claude code para escrever uma API CRUD simples, ele entrega em um minuto e me economiza uma hora. Se eu pedir um algoritmo que já foi implementado centenas de milhares de vezes, ele gera o código correto imediatamente. A IA funciona muito bem quando usada apenas dentro da sua área de especialidade. Fora disso, os resultados não são tão bons

    • Isso é uma questão de diferença no nível de inteligência. Não é conhecimento, é diferença de capacidade de raciocínio em si. Nós subestimamos o esforço cognitivo exigido por certas tarefas. Mas às vezes a IA mostra um comportamento mais “reflexivo” do que eu esperava. Nessas horas, realmente parece mágica

    • CRUD e boilerplate até podem ser parcialmente resolvidos com ferramental. Mas também há muitas coisas que só a IA consegue fazer. Por exemplo, quando preciso analisar testando um log inteiro em nível trace, olhar manualmente centenas de linhas toma muito tempo, mas se eu pedir para a IA “rodar o teste e encontrar a causa”, ela traz um resultado bem útil. Hoje em dia, esse costuma ser sempre o primeiro passo

  • Acho que há uma parcela de verdade no seu argumento. Mas o mundo dos negócios tem um desejo enorme de “reorganização da ordem”. Uma enorme quantidade de capital quer retornos fortes em pouco tempo, e gestores de fundos perdem o emprego se não acompanharem a tendência. CIOs e CEOs também. A disputa para adotar IA já é como uma corrida armamentista nuclear: não dá mais para parar. Em essência, isso não é bom para ninguém. Mas, como todo mundo está entrando, eu também não posso ficar de fora. Antes do carro existir, os humanos já eram suficientemente felizes. Mas, com o carro, as cidades foram reorganizadas, a distância entre prédios aumentou cada vez mais e o deslocamento diário virou rotina. A IA vai mudar do mesmo jeito o próprio contexto em que trabalhamos. Agora surge a expectativa de que todos usem IA e, em algum momento, isso passa a parecer um “requisito básico”. Indo além, entre os produtos criados pela ciência e tecnologia, quase nada foi uma verdadeira “necessidade” humana. A tecnologia cria o problema e depois o embala como solução. O problema não existia originalmente; ele vira problema só depois que aparece a solução. Esse é justamente o motor central que move os negócios

  • Muitos textos de opinião sobre IA coding parecem ser escritos da perspectiva de engenheiros de software extremamente experientes, uma espécie de “torre de marfim”. (O estudo em questão também foi feito com apenas “16 desenvolvedores experientes de open source”.) Mas, para não especialistas, essas ferramentas têm um valor enorme. Eu mesmo tenho alguma experiência com código, mas não é minha profissão principal — sou artista visual. Coisas que antes levavam dias agora termino em uma tarde. Há dois meses larguei o emprego para focar em desenvolvimento de jogos e, embora meu orçamento não seja folgado, considero Claude e ChatGPT indispensáveis. E também é realmente mágico poder, à 1 da manhã, na cama, anotar uma ideia, jogar isso no Codex e testar ao acordar. Antes eu hesitava em começar por ficar pensando “será que esse é mesmo o melhor jeito?”. Agora, como refatorar é fácil, essa preocupação sumiu. O efeito não está só em escrever código diretamente, mas também em reduzir a barreira psicológica. Claro, entendo que a maior parte das críticas seja, na prática, à propaganda exagerada dessas ferramentas e ao discurso de que “agora todos os engenheiros vão perder o emprego”

  • Tenho 72 anos e trabalhei como desenvolvedor por 40 anos. Já não consigo me concentrar profundamente como antes, mas graças à IA ainda continuo construindo coisas. Eu faço a especificação do projeto e o agente cuida da implementação e até dos testes. Agora programo apenas por prazer

    • Eu também gosto de usar IA para prototipar rápido. Outro dia quis fazer uma extensão de navegador e, com o Claude, montei uma versão simples em 10 minutos. Depois fui refinando a UI eu mesmo e, ao longo de uma manhã de fim de semana, terminei uma extensão mais enxuta, previsível e avançada. Minha extensão mostra uma lista de respostas repetidas e permite alternar quais respostas enviar para uma API localhost. A partir daí entra o processamento da fila de tarefas, atualização de banco sqlite, análise das principais informações com LM Studio GPT-OSS 20b e, no final, envio até de um resumo pelo Telegram. Tenho ideias bem claras na cabeça, mas é realmente útil ver a fase de experimento ou PoC cair para minutos. Para um desenvolvedor suficientemente competente como eu, isso me permite dar conta de muito mais trabalho sozinho do que antes