LLMs e Programação nos primeiros dias de 2024
Modelos de linguagem grandes estão emergindo como assistentes de programação poderosos, mas pouco confiáveis, acelerando trabalho de boilerplate, documentação, testes e uso de APIs desconhecidas, enquanto ainda falham bastante em programação de sistemas mais profunda e em bugs sutis. Os comentadores descrevem os LLMs como mais valiosos quando um desenvolvedor experiente pode verificar e corrigir rapidamente a saída, contrastando sua utilidade com a degradação da busca na web e com ferramentas como Kagi ou Brave Search. Muitos esperam que os LLMs mudem a natureza do trabalho de programação — deslocando o valor da escrita roteiriza de código para design e raciocínio de nível superior — ao mesmo tempo em que expressam ansiedade sobre substituição de empregos e ceticismo em relação ao hype que retrata os modelos atuais como raciocinadores quase humanos.
LLMs vs. Busca Tradicional
- Muitos comentadores dizem que a busca geral na web se degradou devido a anúncios e spam de SEO, tornando LLMs e mecanismos alternativos atraentes.
- Motores de busca pagos (por exemplo, com recursos de bloqueio/fixação de sites) e ferramentas especializadas (Brave com “goggles”, phind, perplexity) são sugeridos como complementos ou substitutos para o Google.
- Alguns ainda obtêm bons resultados no Google, sugerindo que a qualidade pode ter melhorado recentemente ou depender da consulta.
Como Desenvolvedores Usam LLMs
- Usos comuns: código boilerplate, código de ligação, testes, SQL, configurações, documentação, diagramas, trechos de AWS/bash, compreensão de código legado e protótipos rápidos.
- Os LLMs são especialmente valorizados por:
- Reduzir a energia de ativação para começar/terminar projetos paralelos.
- Agir como um “desenvolvedor júnior” ou tutor, explicando APIs ou conceitos desconhecidos.
- Ajudar engenheiros experientes em domínios nos quais eles estão temporariamente como “juniors”.
- Trabalho de sistemas/baixo nível: vários relatam que os LLMs têm desempenho ruim quando é necessário profundo conhecimento de domínio ou raciocínio complicado em nível de bits.
Confiabilidade, Verificação e Risco
- Há forte consenso de que a saída dos LLMs precisa ser revisada; alucinações e código sutilmente errado são comuns.
- Programação é vista como relativamente adequada porque o código muitas vezes pode ser compilado, testado ou verificado por propriedades, embora outros enfatizem que “compilar” ≠ “estar correto ou seguro”.
- Alguns usam LLMs para gerar tanto código quanto testes; outros desconfiam da geração de testes pelo mesmo modelo que escreveu o código.
Impacto no Trabalho e nas Carreiras
- Muitos se sentem pessoalmente mais produtivos ou “turbinados”; outros se sentem excluídos porque os modelos falham justamente onde precisam de ajuda.
- As visões divergem sobre o impacto nos empregos:
- Alguns esperam menos empregos tradicionais de programação e mais foco em arquitetura, pensamento de produto e teste/verificação.
- Outros argumentam que a demanda por software vai crescer (padrão histórico de automação), mas recomendam que indivíduos estejam prontos para se requalificar.
- Existe preocupação de que juniores dependam dos LLMs para produzir código que não entendem.
Ferramentas, Fluxos de Trabalho e Modelos Locais
- Discussão sobre integrações em IDEs (Copilot, Cody, Continue, Wingman, Cursor) e ferramentas de CLI (por exemplo, agentes que editam diretamente bases de código) para evitar fluxos de copiar e colar.
- Experiências mistas com autocompletar: alguns acham transformador, outros acham distrativo.
- Modelos locais focados em código (Deepseek Coder, variantes de CodeLlama, modelos da Phind) via frameworks como Ollama estão surgindo como opções que preservam a privacidade, embora mais fracas.
Raciocínio, Hype e “Conhecimento Lixo”
- Debate sobre se LLMs “raciocinam” ou apenas interpolam dados de treinamento; alguns enfatizam a capacidade prática em vez da certeza filosófica.
- Vários veem os LLMs como uma forma de descarregar conhecimento efêmero e específico de ferramentas (“junk knowledge”), como APIs e configurações, e concentrar o esforço humano em conceitos duráveis (algoritmos, estruturas de dados, matemática).
- Outros se preocupam que marketing e hype estejam levando as pessoas a atribuir em excesso capacidade a sistemas inerentemente não confiáveis.