1 pontos por GN⁺ 2026-03-23 | 1 comentários | Compartilhar no WhatsApp
  • Programar é um ato criativo de lapidar especificações ambíguas até torná-las precisas, e a IA acelera esse processo ao converter especificações em inglês em código
  • O “vibe coding” possibilita uma forma mais intuitiva de desenvolver, mas não consegue evitar os problemas de complexidade e bugs causados por vazamentos de abstração
  • Humanos usam abstração e compressão para lidar com a complexidade, e isso funciona como o valor essencial da programação
  • Na era da AGI, a IA deve apoiar abstrações melhores e possibilitar a criação de código sofisticado e artístico
  • Ao contrário da ideia de que “o código morreu”, a IA é apresentada não como o fim da programação, mas como uma ferramenta que abre um novo começo

A morte do código é uma afirmação exagerada

  • Ao apontar a ambiguidade das especificações em inglês e os limites da precisão, o texto argumenta que programar é, como escrever, um processo iterativo de aumentar a precisão
    • Com uma citação de Bertrand Russell, enfatiza-se que “tudo é vago até que se tente torná-lo preciso”
    • A IA converte rapidamente especificações escritas em inglês em código executável, permitindo que o usuário refine gradualmente o resultado desejado
  • “Vibe coding” é uma forma de desenvolvimento guiada pela reação intuitiva ao que a IA gera, mas isso pode criar a ilusão de uma abstração precisa
    • Quando a abstração vaza, surgem bugs inesperados, e isso se agrava à medida que a escala aumenta
    • É apresentado o caso de Dan Shipper, cujo editor de texto colaborativo feito com “vibe coding” ganhou popularidade e depois caiu por problemas de complexidade
    • “Colaboração em tempo real” parece simples intuitivamente, mas na prática é um problema muito difícil, mostrando a natureza da complexidade

Abstração e controle da complexidade

  • Como humanos conseguem perceber apenas cerca de 7±2 itens de cada vez, a única forma de lidar com a complexidade é a “compressão”, isto é, a abstração
    • Com uma citação de Edsger Dijkstra, reforça-se que “o propósito da abstração não é a vagueza, mas a precisão em um novo nível de significado”
    • É dado como exemplo o caso em que Sophie Alpert simplificou um fluxograma complexo de notificações do Slack
  • O núcleo da programação é a criação de abstrações melhores para lidar com a complexidade, e essa beleza pode ser encontrada em áreas como programação funcional reativa
    • Até problemas intrinsecamente complexos, como editores de texto colaborativos, podem ser conquistados gradualmente com ferramentas de abstração como ReactJS e TailwindCSS

A era da AGI e o papel do código

  • À medida que a IA evolui cada vez mais rápido e de forma mais barata, ela acabará chegando a uma inteligência indistinguível da humana (AGI)
    • Na era da AGI, a perspectiva é que qualquer pessoa possa usar uma inteligência tão poderosa quanto “100 gênios do nível de Karpathy” a baixo custo
    • Mas isso não serviria para produzir “mais código ruim”, e sim como ferramenta para melhores abstrações e melhor compreensão da complexidade
  • Código não é apenas um meio de construir software, mas um artefato artístico importante em si mesmo, e um código bem escrito é comparado à poesia
    • Assim como não existe “vibe writing” na escrita, programar também não pode ser substituído por um simples ato guiado por sensação
    • Com a chegada da AGI, as máquinas poderão escrever código non-slop, e isso será um avanço glorioso para a humanidade

IA e a melhoria da qualidade do código

  • Hoje, a IA ainda gera código imperfeito, mas os desenvolvedores já a utilizam levando isso em conta
    • Como defende Simon Willison, a IA deve ser usada como ferramenta para produzir código melhor
    • Quando a AGI surgir, ela será aplicada primeiro à resolução dos problemas de abstração mais difíceis, melhorando sistemas complexos como bibliotecas de editores colaborativos
  • É apresentado o caso de desenvolvimento do framework full-stack React (vtrr) para o Val Town usando o Opus 4.6
    • Questões em aberto relacionadas ao React Router 7 foram resolvidas de uma vez, lidando com a complexidade de forma elegante em um demo de arquivo único com 50 linhas
    • Isso mostra como é possível criar código sofisticado por meio da colaboração entre IA e humanos

O futuro do código e o valor do formalismo

  • Grande parte da sociedade acredita que “o código morreu”, mas isso é o mesmo erro que declarar o fim das histórias por causa da invenção da imprensa
    • A IA não significa o fim da programação, mas um novo começo para programar
  • Com citações de Edsger Dijkstra, Tony Hoare e Charles Babbage, enfatiza-se que o pensamento formal e o poder de compressão dos símbolos expandem o pensamento humano
    • Dijkstra menciona que usar linguagens formais deve ser visto não como um fardo, mas como um privilégio
    • Hoare contrasta duas abordagens: “um design simples, obviamente sem defeitos” e “um design complexo no qual os defeitos não são óbvios”
    • Babbage destaca que a compressão dos símbolos é uma força que impulsiona o pensamento
  • Em conclusão, o código não morreu; ao contrário, está emergindo como uma ferramenta criativa ainda mais poderosa na era da IA

1 comentários

 
GN⁺ 2026-03-23
Opiniões no Hacker News
  • Chris Lattner revisou um compilador escrito com Claude AI e disse que não havia nada de inovador
    A IA tende a recombinar, em média, conhecimento já existente, então não consegue criar sozinha pensamento crítico ou novos paradigmas
    Humanos conseguem pensar fora do consenso existente, mas a IA tem uma força que a puxa de volta para esse consenso
    No fim, a IA é conformista (conformist), e isso é ao mesmo tempo sua força e sua fraqueza
    Post relacionado

    • Para mim, LLMs ajudam mais na integração entre vários sistemas
      Em vez de gastar horas tentando entender pela documentação configurações complexas de autenticação como OAuth ou SAML, um LLM gera rapidamente código de integração funcional
      Também uso IA como uma espécie de debug com pato de borracha, conversando com ela para organizar meu pensamento
      Essas conversas têm um nível de complexidade difícil de alcançar para alguém sem experiência real em desenvolvimento
    • Acho que a questão de a IA substituir humanos não é binária, mas sim um espectro
      A preocupação real é se a IA vai reduzir a demanda e levar o setor a um excesso de oferta
      Se novos problemas de negócio continuarem surgindo, a IA ajudará como ferramenta; se não, os empregos vão diminuir com ou sem IA
    • A frase “a IA gera respostas perto do centro do pensamento existente” tem relação com o Teorema da Aproximação Universal (Universal Approximation Theorem)
      Redes neurais essencialmente fazem interpolação (interpolation), não extrapolação (extrapolation)
      Ou seja, dentro da região aprendida elas são sofisticadas, mas fora dela a previsão se torna imprevisível
      O artigo da Wikipedia e o exemplo SolidGoldMagikarp mostram isso bem
    • Acho que a avaliação de Lattner é uma comparação injusta
      O objetivo do Claude não era inovar, mas provar “se uma IA consegue criar um compilador”
      Casos como AlphaDev e AlphaEvolve mostram que, com aprendizado exploratório e combinação de conhecimento, também há bastante possibilidade de a IA realmente gerar inovação
    • É verdade que a IA segue um pensamento convencional, mas isso pode justamente ser uma força
      Na maioria dos casos, queremos ferramentas previsíveis, não uma entidade instável que aprende sozinha
      A IA tem a capacidade de organizar requisitos contraditórios e produzir uma implementação consistente
      Por exemplo, ela pode responder logicamente até a um pedido impossível como “desenhe 7 linhas vermelhas com tinta azul”
      O fato de Claude ter dito “isso é impossível, então desenhar 0 linhas é a resposta honesta” é um exemplo de pensamento crítico
  • Sobre a pergunta “a IA conseguirá criar novas tecnologias?”, sou cético
    Como a IA depende de dados existentes, quando surge uma nova linguagem ou framework pode haver risco de desaceleração na evolução por falta de dados de treino

    • Mas o software já está passando por uma desaceleração no ritmo de mudança das ferramentas
      A programação com IA pode até reduzir a “reinvenção da roda” e ajudar a escapar da síndrome NIH
    • Estou usando modelos de IA com um novo framework
      Mesmo com quase nenhum dado de treino, eles conseguem ler a documentação, escrever código e realizar novas tentativas
    • A premissa de que só humanos criam coisas novas tem base fraca
      Precisamos manter aberta a possibilidade de que um dia a IA também consiga fazer síntese tecnológica criativa
    • O problema maior é que frameworks nos quais a IA não foi treinada passam a ser tratados como se não existissem
      No fim, talvez chegue uma época em que desenvolvedores terão de pagar para entrar nos dados de treino da IA
    • Já existem tentativas de resolver isso
      Por exemplo, plataformas como skills.sh oferecem um sistema de skills para ensinar novos frameworks à IA
      Só com documentação e código de exemplo, a IA já consegue usar esse framework imediatamente
  • Tenho sentimentos contraditórios em relação ao código
    No trabalho, código é dívida, mas ao mesmo tempo também é diversão como hobby
    Tenho a impressão de que um mundo como o computador de Star Trek, em que “você pede em voz alta e ele resolve”, está ficando próximo

    • Mas há quem diga que o futuro ao estilo Star Trek e a realidade atual vão em direções completamente opostas
  • Muitos recursos intelectuais da sociedade estão sendo usados em tecnologia de anúncios ou na indústria de vigilância
    Se a IA substituir a programação, isso pode até ser um gatilho para realocar talentos

    • Mas objetivos industriais desse tipo não desaparecem facilmente só por causa de mudanças tecnológicas
  • Estou criando um CRDT em estrutura de árvore que permite mover, apagar e ordenar sem tombstones
    O Claude Code escreve bem, mas continuava tentando adicionar tombstones, então precisei convencê-lo com uma prova lógica
    Parece que a IA ainda não domina totalmente esse tipo de entendimento estrutural detalhado

    • Para projetos assim, recomendaram usar Codex
  • Sempre que surge uma nova tecnologia, os humanos passam por um período de expectativa excessiva e experimentação
    É assim que aprendemos os limites da tecnologia
    A promessa da programação orientada a agentes parece boa demais, mas no fim todos vão aprender a realidade por tentativa e erro

  • Em vez de dizer que “o código morreu”, vejo que os humanos estão subindo um nível de abstração
    Agora você escreve a especificação em inglês, e a IA escreve o código
    Mas quando é necessária especificidade total, o código ainda é mais útil
    Como na edição de fotos: se você precisa de controle preciso, é melhor fazer diretamente; mas na maioria dos casos basta deixar com a IA
    Acho que, com o tempo, a IA escreverá código estável e seguro melhor do que humanos

    • Claro, quando chegar o momento em que a taxa de bugs humana for maior que a dos LLMs, os erros humanos podem se tornar um problema maior que as alucinações da IA
  • Como Simon Willison disse, o verdadeiro valor de vibe coding não está em “mais rápido”, mas em produzir código melhor
    Dá para gerar protótipos com vários modelos de design e iterar melhorias com base em legibilidade, confiabilidade e tolerância a falhas

    • Eu também tenho essa esperança
      Hoje, em revisão de código, se digo “vamos mudar esta parte assim”, a IA corrige na hora
      Mas muitos colegas esperam apenas um “mundo em que o código desaparece”
  • Há pouco tempo saiu uma notícia de que Donald Knuth pediu uma prova à IA, e ela encontrou uma prova antes desconhecida
    Mas isso provavelmente foi menos uma nova descoberta e mais um caso de reencontrar material esquecido
    É isso que faz dos LLMs uma ferramenta de pesquisa poderosa, ao mesmo tempo em que faz parecer que são criativos

    • Assim como a frase atribuída ao chefe do escritório de patentes em 1899, “já foi tudo inventado”, a criatividade humana continua evoluindo
    • Criar um compilador de C não é tão difícil quanto parece
      Com o Dragon Book, dá para fazer algo funcional em poucos meses e entender todos os princípios no processo
    • Novos avanços em linguagem continuarão surgindo, como as inovações que C# mostrou no começo dos anos 2000
    • Na verdade, C não é tão complexo, então talvez dê até para criar um compilador em poucos dias
  • Acho que linguagens de programação são um meio de expressar intenção humana de forma compacta
    Mas às vezes a linguagem natural transmite essa intenção de forma ainda mais precisa e densa
    Uma boa abstração reduz esse intervalo, e DSLs ou linguagens da família ML/Lisp são exemplos disso
    Por exemplo, como no tutorial de Electric Clojure, o código pode ser a melhor forma de conter a intenção
    No fim, como disse Wittgenstein, “uma imagem ambígua às vezes pode ser exatamente aquilo de que precisamos”

    • Sobre isso, eu acrescentaria a frase de Dijkstra: “o propósito da abstração não é a ambiguidade, mas a clareza em um novo nível semântico