12 pontos por GN⁺ 2025-07-21 | 6 comentários | Compartilhar no WhatsApp
  • Recentemente, usuários de computador vêm repetindo inúmeras tarefas sem sentido contra a própria vontade, apenas seguindo o que o computador manda
  • LLMs estão influenciando a forma como desenvolvedores projetam APIs, e já surgem previsões de que desenvolvedores passarão a adotar funcionalidades sugeridas por IA e que em breve a maior parte do código será escrita por IA
  • Como exemplo, a Soundslice acabou adicionando uma funcionalidade por causa de uma orientação errada do ChatGPT
  • Isso acontece porque LLMs analisam inúmeras APIs e acabam sugerindo o design intuitivo que um desenvolvedor provavelmente imaginaria primeiro
  • Para criar ideias novas ou abordagens únicas, LLMs não são adequados, mas na maioria dos casos seguir o design mais óbvio pode ser eficaz
  • Entramos agora em uma era em que a IA não só usa ferramentas, como também passa a ditar como elas devem ser projetadas

Gaslight-driven development

Tarefas sem sentido que viraram rotina

  • Ao longo dos últimos 10 anos, quem usa computador vem repetindo tarefas essencialmente desnecessárias como cadastro, verificação por e-mail, consentimento de cookies e preenchimento de CAPTCHA
  • Mesmo sem querer isso, o usuário precisava seguir exatamente o que o computador mandava
  • Com essa repetição, já nos acostumamos em certa medida a uma vida em que seguimos o que a máquina manda

Como os LLMs estão mudando a realidade do desenvolvimento

O significado desse fenômeno

  • É difícil dizer se essa mudança é positiva ou negativa
  • Por outro lado, como LLMs foram treinados em inúmeras APIs, eles tendem a sugerir a abordagem "mais intuitiva" do ponto de vista do desenvolvedor
  • Também é uma nova forma de testar APIs a partir da perspectiva de um iniciante (newbie’s POV)
    • Antes, quando o desenvolvedor errava, ele mesmo consultava a documentação e corrigia; agora, como o LLM continua oferecendo exemplos de uso incorretos, o próprio desenvolvedor consegue perceber o problema mais rapidamente

Limites e dilemas

  • Essa abordagem não é adequada para trabalho inovador
    • LLMs não entendem bem padrões com os quais não estão familiarizados nem conceitos totalmente novos
  • No fim das contas, em áreas como APIs, o "comum" pode ser o melhor
    • Na maioria das situações, em vez de desenhar algo complexo, é mais vantajoso adotar uma forma que tanto a IA quanto os desenvolvedores consigam entender intuitivamente

Conclusão: o começo de uma nova era

  • A IA agora não se limita a usar as ferramentas dadas; ela também começou a opinar sobre como as próprias ferramentas devem ser projetadas
  • E essa opinião, muitas vezes, acaba gaslighting desenvolvedores e organizações como se "sempre tivesse sido assim"
  • Daqui para frente, cresce a chance de que o desenvolvimento alinhado às expectativas e ao senso comum da IA se torne um padrão natural

6 comentários

 
ffdd270 2025-07-21

Às vezes tenho a sensação de que, no grande conceito de dependência de trajetória, está sendo cravado um prego poderoso chamado dependência de LLM. A sensação de que estamos passando de "porque já usamos isso há tempos" para "porque o LLM gosta disso"... no fim, onde isso vai dar?

 
kandk 2025-07-21

Ele aprendeu com algo que eu já vinha usando há muito tempo..

 
jujumilk3 2025-07-21

"Agora você já pode desligar o computador."

 
rosen 2025-07-21

Metáfora perfeita!!

 
GN⁺ 2025-07-21
Comentários no Hacker News
  • Diante de uma situação em que um LLM recomenda um endpoint de API que não existe, imaginei como seria aceitar isso, implementar o endpoint de propósito e retornar deliberadamente o código de status "421: Misdirected Request"; ou então usar o próprio '501: Not Implemented'. Se a nuance de '501' não combinar, proponho um novo código de status: '513: Your Coding Assistant Is Wrong'
    Referência da wiki de códigos de status HTTP
    • A ideia de "513: Your Coding Assistant Is Wrong" foi engraçadíssima, adorei; por outro lado, também quero sugerir 'HTTP 407 Hallucination', no sentido de que o servidor entende a requisição, mas julga que ela não condiz com a realidade
    • Essa história também me lembrou um caso divertido de placa avisando que o GPS está errado
      Caso “GPS is wrong”
    • Meu voto vai para adotar o código 513; já existe o 418, então não vejo por que não poderíamos ter o 513
    • Se forem fazer esse tipo de brincadeira, espero que usem a resposta 418; seria bom vê-la sendo usada mais amplamente
  • É divertido ver em tempo real várias pessoas olhando a mesma página, mas foi muito difícil ler o texto por causa dos indicadores de usuários entrando e saindo o tempo todo
    • Tenho um bookmarklet na barra de favoritos que remove de uma vez esses elementos fixos ou sticky; uso bastante porque ele faz todos os elementos fixos/sticky da página sumirem e também restaura a rolagem
      (código JavaScript fornecido)
    • Também me incomodou de forma parecida, então cliquei com o botão direito, abri o Inspect nas ferramentas de desenvolvedor e colei o código abaixo no console; isso remove a área desses indicadores de usuários
      document.getElementById("presence")?.remove();
      
      Se você quer saber por que o cérebro reage com tanta sensibilidade a esse movimento, isso tem relação com o instinto de detectar predadores
      Link para artigo científico, Referência da wiki de neurociência
    • Isso me lembrou o jogo Chess Royale; tive uma experiência parecida com avatares e bandeiras, e era um jogo realmente muito bem feito, mas a Ubisoft, como às vezes faz, encerrou o serviço; uma obra-prima que faz falta ver desaparecer
      Captura de tela de Chess Royale
    • Não era aquela página que antes ficava cheia de cursores no fundo? A esse ponto, acho que o conceito visual é uma piada intencionalmente distrativa
    • Ao tentar remover elementos da página com uma ferramenta como o uBlock, vivi uma situação tipo jogo de acertar toupeira, repetindo isso rapidamente sem parar
  • No Instant, deixaram a função tx.update responsável tanto por inserir quanto por atualizar entidades, mas o LLM continuava escrevendo código com tx.create, então no fim também criaram a função tx.create; isso me fez pensar se não foi assim que não só LLMs, mas também desenvolvedores reais, desperdiçaram tempo demais com esse tipo de confusão
    • Se tx.create nem existia originalmente, então ninguém teria como perder tempo com isso, não?
  • Se é uma função que dá suporte tanto a inserção quanto a atualização, acho mais correto chamá-la de "put" do que de "update"; "update" pode induzir ao erro
    • Nesses casos, acho que "upsert" faz mais sentido
    • O nome "put" sugere sobrescrever o conteúdo existente, enquanto "upsert" significa explicitamente inserção/atualização
  • Parece que o universo vai entrar em morte térmica antes que eu mude uma linha de código só porque um LLM produziu um texto errado; a ideia de ter que mudar código por um motivo tão absurdo me soa cômica e inaceitável
  • Não concordo com a tese do post; começo questionando de verdade se devemos mesmo seguir o que o computador quer
    Acho que o motivo de usuários fazerem verificação por e-mail ou cadastro também não foi porque o computador mandou, mas por escolhas de design feitas por humanos
    • Acho até generoso chamar isso de "tese"; vi aquele trecho e fechei a página na hora
  • Recentemente tive uma conversa divertida com a equipe sobre os princípios de programação do futuro
    Em vez de focar em legibilidade do código, princípios SOLID ou complexidade, parece que vai importar mais o quanto a IDE agentic que eu uso consegue indexar bem o contexto do código, e o quanto o modelo consegue gerar bons resultados a partir desse código
    Como a velocidade de mudança no código vai aumentar muito, a manutenibilidade deve acabar virando a métrica central, e imagino um mundo em que a aderência entre prompt e código, ou a utilidade de um código que por acaso se encaixa bem, receba ainda mais atenção
  • Se uma pessoa ficasse espalhando com confiança novos conselhos de desenvolvimento sobre o meu produto — que na verdade são falsos —, fico em dúvida se uma empresa simplesmente adicionaria essas funcionalidades imaginárias e depois escreveria um post de blog indignado
    • Fico pensando se, caso eu passasse a agir como um LLM e cometesse erros absurdos com total confiança, os outros também simplesmente entenderiam
    • Na verdade, isso me faz pensar se o autor de “Clean Code”, Mr Martin, não é desse estilo
    • Se essa pessoa influenciasse 90% dos meus clientes, provavelmente eu acabaria mesmo adotando a funcionalidade imaginária
    • A maioria das empresas provavelmente defenderia com confiança que essa funcionalidade desnecessária é absolutamente necessária
  • Também parece o começo de uma bela amizade com os LLMs; trabalhando como fractional CTO, o que mais me frustra é que cada cliente tem suas próprias convenções triviais de nomenclatura, como nomes de ambientes
    Por exemplo, no ecossistema AWS há “dev” e “prod”, enquanto no Expo há “test” e “production”, e quando se pula entre vários projetos isso exige mais esforço mental do que parece
    Imagino que os LLMs sofram com isso em uma escala muito maior
    Acho que o ideal seria poder usar essas sinapses cerebrais, hoje gastas com confusões desnecessárias de nomes/comportamentos de API, em coisas que realmente importam
    • Existe a piada de que há três problemas difíceis na ciência da computação — invalidação de cache, dar nomes e erros off-by-one
      Por mais inteligente que um LLM seja ao nomear coisas, como ele se baseia em um incoherent stochastic process, o problema continua
      E eu gostaria de perguntar se você já levou a sério a questão de por que a nomenclatura de ambientes não é padronizada
      Como ex-CTO, vejo esse tipo de coisa como sinal de que a comunicação interna e os critérios da organização precisam melhorar
      Como é algo simples de corrigir e que pode de fato melhorar a cultura e a consciência das pessoas, eu diria que isso é algo para acompanhar mais de perto, em vez de deixar na mão de um LLM
  • Como link relacionado,
    Ver discussão anterior no Hacker News
 
dkmin 2025-07-21

Sucesso viral do Soundslice