23 pontos por GN⁺ 2025-02-05 | 4 comentários | Compartilhar no WhatsApp
  • Chat é um padrão de UI ruim para ferramentas de desenvolvimento

    • Exigir precisão dos humanos no código é algo bom, porque os computadores precisam de precisão
    • Mas isso força os humanos a pensarem como máquinas
    • Durante décadas, houve esforços para tornar a programação mais amigável para humanos. Linguagens de alto nível e interfaces visuais são exemplos disso
    • Esperava-se que a IA resolvesse esse problema. A expectativa era que seria possível programar em inglês
  • A primeira onda de ferramentas de codificação com IA

    • As primeiras ferramentas de codificação com IA desperdiçaram a oportunidade. Fazem demos chamativas, mas produzem software inútil
    • Costumam ser mencionadas apenas como “para prototipagem”, mas na prática não têm precisão suficiente para uso real
    • Muitas pessoas culpam os modelos de IA e argumentam que eles precisam ficar mais inteligentes
    • Mas, ao construir software importante, é preciso compreensão clara, não adivinhação
  • Escrever software não é uma conversa

    • Escrever software é como redigir leis. Usa-se o inglês, mas definem-se termos, estabelecem-se regras e gerenciam-se interações complexas
    • Não dá para escrever um código tributário em mensagens de chat. É preciso documentação
    • A documentação permite organizar a complexidade, referenciar pontos específicos e acompanhar mudanças de forma sistemática
  • A importância da programação baseada em documentação

    • Quando a intenção está no documento, o inglês realmente se torna uma linguagem de programação
    • É possível ver o sistema inteiro de uma vez
    • É possível esclarecer e melhorar a intenção
    • É possível rastrear as mudanças adequadamente
    • A equipe pode trabalhar junta no sistema
    • Os requisitos se tornam uma verificação de qualidade por si só
    • As mudanças começam a partir de uma especificação clara
  • O núcleo da próxima etapa das ferramentas de desenvolvimento com IA

    • A forma de expressar e gerenciar a intenção do usuário com base em documentação se tornará mais importante
    • São necessárias ferramentas que ofereçam a precisão exigida pelo desenvolvimento real de software, e não apenas protótipos conversacionais
    • As empresas que adotarem essa perspectiva corretamente liderarão o futuro das ferramentas de desenvolvimento com IA

4 comentários

 
softer 2025-02-06

Dizem que estão tentando refletir grafos de conhecimento no suporte a LLMs, e que isso também é válido.

 
beoks 2025-02-05

Embora o título diga que a UI de chat é inadequada, o conteúdo explica que o problema central são requisitos ambíguos.
Parece algo que poderia ser resolvido pedindo para a IA esclarecer imediatamente as ambiguidades no pedido do usuário em formato de chat,
então não entendo por que culpam especificamente a UI de chat.

 
jhj0517 2025-02-05

Oh, essa é uma opinião meio interessante e com a qual dá pra concordar 😊

 
GN⁺ 2025-02-05
Comentários do Hacker News
  • Um usuário disse que usou o o3-mini e o o3-mini-high em um projeto de geração de código e mencionou que a abordagem de "programação em par" é importante

    • Explicou a importância de revisar o código e dar feedback, afirmando que simplesmente aceitar o código não é uma boa ideia
    • Mencionou a importância de gerar testes unitários e, depois de entender o núcleo do código, pediu testes de fumaça
    • Aconselhou iniciar uma nova conversa, pois o modelo pode se confundir em contextos longos
    • Recomendou fornecer exemplos de código e não usar prompts apenas em inglês
  • Outro usuário argumentou que chat é um padrão de UI inadequado, explicando que ele é bom como registro, mas ruim para executar trabalho

    • Comentou que uma abordagem narrativa não é adequada para construir coisas
  • Outro usuário expressou surpresa por Cursor não ter sido mencionado e explicou que Cursor aumentou significativamente sua velocidade de escrita de código

    • Disse que, com uma saída aplicada aos arquivos em estilo git-diff, é possível aprovar ou rejeitar as mudanças
    • Mencionou que ele entende até certo ponto o contexto da base de código e funciona melhor quando os arquivos são marcados explicitamente
    • Explicou que é muito conveniente inserir diretamente logs de terminal ou erros de tipo na interface de chat
  • Um usuário afirmou que "usar chat como UX" é um beco sem saída e explicou isso com o exemplo do SQL

    • Previu que interfaces de chat baseadas em LLM não ficarão expostas ao usuário
    • Mencionou que interfaces em linguagem natural só serão usadas em casos excepcionais na interação com máquinas
  • Foi explicado que a linguagem natural não foi feita para precisão e que, para se comunicar com IA, é necessário um subconjunto de linguagens de programação

  • Sobre a opinião de Daniel, foi explicado que a questão não é afirmar que chat seja uma UI geralmente incômoda, mas que são necessários muitos detalhes para especificar completamente um programa de computador

    • Explicou que os LLMs preenchem ambiguidades com bons padrões e entregam uma tela de login genérica
  • Foi mencionado que se espera um recurso que implemente por voz uma experiência como a do Cursor para poder discutir mudanças no código

  • Foi descrita uma abordagem para impulsionar o desenvolvimento de software com IA com base em documentos de requisitos, com um exemplo de converter os requisitos em uma checklist e usá-la como instruções adicionais

  • Foi explicado que a primeira onda não foi o chat, mas a conclusão automática, e que o chat é mais intuitivo e exige menos esforço

    • Foi explicado que os documentos não são fixos, mas podem ser revisados iterativamente por meio de IA
  • Foi mencionado que se espera um modelo de linguagem estruturado capaz de descrever programas de computador por meio da invenção de uma nova linguagem