O que os LLMs de código significam para o futuro do desenvolvimento de software

Entramos em uma era de código em coautoria com máquinas.

Quando o ChatGPT da OpenAI surgiu no cenário de tecnologia, ele deu início à era da IA generativa, com a geração de código como um dos primeiros casos de uso. Os assistentes de programação com inteligência artificial (IA) surgiram em seguida, desde o pioneiro GitHub Copilot até soluções como Amazon Q Developer, o Claude Code da Anthropic, o Gemini Code Assist do Google, o IBM Bob e o Mistral Code.

Mas por trás dessas ferramentas de programação há uma tecnologia poderosa: modelos de linguagem amplos (LLMs) para código. E eles estão mudando a forma como o software é desenvolvido.

Conversamos com alguns especialistas da IBM para entender melhor como os LLMs para código estão redefinindo o papel do desenvolvedor de software e quais são suas previsões para o futuro desses modelos. Compartilhando seus insights:

  • Fumiko Satoh, Senior Technical Staff Member e Senior Manager, AI for Code and Security

O que são LLMs para código?

Os LLMs para código são modelos especializados treinados em código-fonte. Eles podem ser criados do zero ou desenvolvidos a partir de um modelo pré-treinado ajustado com conjuntos de dados de programação. Esses dados de treinamento devem ser de alta qualidade e diversos o suficiente para garantir que os LLMs para código consigam lidar com vários cenários de programação em diferentes linguagens de programação.

Como os LLMs para código normalmente derivam de modelos de IA projetados para processamento de linguagem natural (NLP), eles costumam receber descrições em linguagem natural como prompts. Eles são capazes de realizar estas tarefas de programação do mundo real:

  • Conclusão de código (também conhecida como preenchimento automático)

  • Sumarização do código

  • Gerar documentação (como comentários inline para trechos de código)

  • Sugerir otimizações de código

  • Traduzir código existente de uma linguagem de programação para outra (como de Python para JavaScript)

Alguns exemplos populares de LLMs para código incluem o CodeGemma do Google, o Code Llama da Meta e o Codestral e o Devstral da Mistral. Enquanto isso, os modelos de código de código aberto incluem o DeepSeek Coder, o IBM Granite Code e o Qwen3 Coder.

Outros LLMs que não são exclusivos para programação, mas que foram treinados e otimizados para programação, incluem o Claude Sonnet e o Opus da Anthropic e o Gemini Pro do Google.

AI Academy

Torne-se um especialista em IA

Adquira conhecimento para priorizar os investimentos em IA que estimulam o crescimento dos negócios. Comece a usar hoje mesmo a nossa AI Academy sem custo e lidere o futuro da IA na sua organização.

O papel em transformação dos desenvolvedores de software

Os LLMs para código democratizam o acesso à criação de software, dando suporte a programadores cidadãos, especialistas de domínio e outros desenvolvedores não tradicionais que não têm formação ou treinamento formal em ciência da computação. Eles permitem prototipagem rápida, ciclos de iteração mais rápidos e integração mais ágil para novos engenheiros de software.

Além de reformular o desenvolvimento de software, os LLMs para código estão redefinindo o papel dos desenvolvedores de software.

Do baixo nível ao alto nível

Segundo El Maghraoui, os engenheiros de software estão evoluindo de produtores de código para curadores de código. "Embora a programação continue essencial, a ênfase está mudando para a engenharia de prompts. Como formulamos as consultas certas no contexto desses LLMs? E, em vez de escrever cada linha de código, os desenvolvedores estão cada vez mais orquestrando código gerado por IA, unindo as partes.”

Essa evolução, no entanto, é apenas a ponta do iceberg. El Maghraoui acredita que as funções dos desenvolvedores evoluirão para o que ela chama de "engenharia orientada por intenção.” A ideia é se afastar da sintaxe e focar na estrutura, deixar os detalhes mais refinados de lado e ampliar a visão para o panorama geral, além de passar do o quê para o porquê, destacando objetivos, resultados e impacto.

Para McGinn, os LLMs para código podem ser tratados como bibliotecas importadas para um programa. “Os problemas podem ser resolvidos mais rapidamente da mesma forma que as bibliotecas nos ajudam, como engenheiros, a aproveitar funcionalidades que já foram criadas e a não precisar reinventar a roda.”

Essa visão está alinhada à computação generativa. Nesse framework, um modelo de código é integrado aos sistemas como um componente modular de software e tratado como uma interface programável. Assim, ele pode abstrair tarefas de baixo nível, permitindo que os desenvolvedores direcionem mais de seus esforços para a resolução de problemas de ordem superior.

“Eles precisam considerar o pensamento de design em vez de escrever código", diz Satoh. “Precisamos de engenheiros de nível mais alto que possam criar a arquitetura de um sistema.”

É uma função que está se tornando mais multidisciplinar, incorporando não apenas design e arquitetura, mas também outras dimensões, como ética e segurança. "É menos manual e há mais automação, mas é mais estratégico", diz El Maghraoui. “Você está combinando engenharia de software com pensamento em nível de sistema, pensamento de produto e raciocínio ético. Agora, não somos apenas alfabetizados em código, estamos nos tornando engenheiros alfabetizados em IA e orientados por IA.”

Isso abre caminhos para o aprimoramento de habilidades nessas tarefas de nível mais alto, especialmente para desenvolvedores juniores. "O objetivo de muitos benchmarks é alcançar a funcionalidade de um desenvolvedor júnior. Então, se essa é uma métrica que estamos buscando, a ideia é não ter tanta necessidade disso", diz McGinn. “Precisamos de pessoas que tenham um nível mais profundo do que o de um desenvolvedor júnior, ou talvez elas não precisem mais ter passado pela função de desenvolvedor júnior para entender o que um desenvolvedor sênior faz.”

Os programadores humanos devem continuar no circuito

Panda observa que, como qualquer modelo de linguagem grande, os LLMs para código têm suas desvantagens. Ele sugere cautela quando se trata de direitos autorais, viés e segurança, especialmente ao trabalhar em aplicações cruciais em setores como finanças e saúde.

“Você não pode simplesmente confiar neles cegamente", diz Panda. "É preciso sempre encarar o código gerado por eles com cautela.”

Esse ceticismo também deve vir acompanhado de mecanismos de otimização do desempenho e medidas de validação para verificar a solidez e a precisão. “Você ainda precisa garantir que está escrevendo casos de teste e verificando o código com o mesmo rigor que verificaria se ele tivesse sido escrito manualmente", diz McGinnis.

El Maghraoui enfatiza o suporte dos LLMs para código, e não a dependência deles. “Se os usarmos como auxílio de ensino, programador em dupla ou gerador de ideias, eles podem impulsionar nosso aprendizado, criatividade e produtividade. Mas, se os usarmos como muleta, sem reflexão, sem validação, eles podem corroer nosso julgamento e nossa responsabilidade.”

Os fundamentos da programação importam ainda mais

A validação só é possível se os desenvolvedores compreenderem os princípios fundamentais da computação. Afinal, se você não entende os fundamentos da programação, como pode confirmar a validade do código gerado por esses modelos?

“É uma programação rápida, mas nem sempre robusta, correta ou segura", diz El Maghraoui. Ela acrescenta que usar o código gerado como está pode ser perigoso. “Isso pode causar fragilidade nas bases de código. Se você depender demais desses modelos ou confiar demais nos resultados deles, isso pode propagar bugs sutis ou ineficiências, especialmente em sistemas críticos. É por isso que é importante entender o que está acontecendo.”

É aí que entra a expertise profunda, possibilitada por conceitos fundamentais do desenvolvimento de software.

“Nas escolas, ainda ensinamos as pessoas a fazer divisão longa manualmente, mas para que isso serve se elas vão usar uma calculadora? É semelhante à programação. Quais são os elementos fundamentais que consideramos importantes para entender o que está acontecendo?", diz McGinn.

Alguns desses fundamentos técnicos podem incluir compiladores, arquitetura de computadores, bancos de dados, gerenciamento de memória e sistemas operacionais. “Os desenvolvedores podem começar a deixar de aprender esses conceitos em profundidade porque os LLMs para código os estão abstraindo", diz El Maghraoui. No entanto, é essencial entender o funcionamento interno do desenvolvimento de software por causa de suas implicações na funcionalidade e no desempenho do código-fonte, acrescenta ela.

E, embora os LLMs para código possam reduzir a sobrecarga cognitiva ao automatizar tarefas repetitivas, eles também têm o potencial de aumentar a "atrofia cognitiva", como El Maghraoui a chama. Ela compara isso ao maior uso de GPS, que corrói nosso senso natural de navegação. “Se os desenvolvedores dependerem muito de sugestões de código, eles terão menos fluência em depuração. Os LLMs para código podem enfraquecer nossa capacidade de pensar de forma algorítmica se não os equilibrarmos com prática fundamental ou conhecimento fundamental.”

Previsões para a próxima fronteira dos LLMs para código

À medida que os LLMs para código avançam, eles revelarão novos recursos e até novos casos de uso, como demonstra a tendência de vibe coding. Então, o que o futuro reserva para esses modelos? Nossos especialistas apresentam suas previsões.

Ascensão dos agentes

O mundo está agitado com as discussões sobre agentes de IA transformando o futuro do trabalho em quase todos os setores, incluindo o desenvolvimento de software.

"Vejo uma mudança em direção a esses sistemas de programação multiagente com bases de código autorreparáveis", diz El Maghraoui. Esses sistemas de IA agêntica já estão tomando forma. Por exemplo, os agentes de engenharia de software (SWE) da IBM podem resolver problemas do GitHub de forma autônoma, primeiro "localizando" onde estão os bugs em uma base de código e, em seguida, editando essas linhas de código para resolvê-los.

Pequeno e sustentável

McGinn espera uma estratégia com maior eficiência energética, "em que nem tudo seja feito pelo maior modelo, mas possamos economizar energia com uma abordagem agêntica menor", que envolve diferentes agentes executando tarefas específicas de programação.

Da mesma forma, Panda está animado para disponibilizar modelos de linguagem pequenos (SLMs), como o Granite Code, em dispositivos com recursos limitados, como notebooks e dispositivos de edge. “Ao mesmo tempo, há algumas coisas que são desafiadoras para os SLMs resolverem, então os modelos Granite maiores entrarão em cena. É um equilíbrio entre vários modelos, não apenas um único modelo para resolver tudo.”

Impulso de memória e raciocínio

Integrar memória contextual e raciocínio aos LLMs para código é outra melhoria a ser observada, observa El Maghraoui. “Eles podem se lembrar de todo o histórico do projeto e de como ele evoluiu. Isso permite sugestões melhores para o futuro.”

O componente de raciocínio ajuda em "tarefas de longo horizonte", como Panda as chama. “Os LLMs para código vão interagir com seus repositórios de código para realizar muitas ações em sequência, não apenas uma ação pontual. Somente se o seu LLM para código for forte em raciocínio ele poderá realizar essas tarefas.”

Ambientes e implementações de desenvolvedor em evolução

Os ambientes de desenvolvimento integrados (IDEs) atuais incorporam modelos de código e assistentes de programação como serviços ou plug-ins. Mas os IDEs de amanhã podem avançar em direção a ambientes de desenvolvedor nativos de IA. “Veremos esses IDEs serem reprojetados com LLMs de código desde a base, não apenas como plug-ins, mas como parte do seu núcleo”, diz El Maghraoui.

Ela também vê as implementações de infraestrutura privada de LLMs de código como uma tendência crescente. Por exemplo, o assistente de IA Mistral Code, desenvolvido com Codestral e Devstral, oferece suporte à implementação local.

“As implementações privadas desses LLMs de código estão sendo aceleradas por preocupações com desempenho, custo e privacidade”, diz El Maghraoui. “As empresas querem evitar enviar código proprietário para APIs de terceiros. As implementações privadas garantem que seu código-fonte, suas bibliotecas internas e seus rastreamentos de stack nunca saiam da rede interna da empresa. Também há questões de conformidade regulatória, especialmente em finanças ou saúde, e o custo de executar casos de uso de alta taxa de transferência internamente pode ser menor em grande escala.”

Preenchendo a lacuna entre programação e testes

Escrever código e criar testes são partes distintas do processo de desenvolvimento de software. Satoh imagina os LLMs de código ajudando a conectar esses dois estágios sem dificuldades, auxiliando tanto na geração de código quanto na geração de testes.

“Devemos conectá-los com o mesmo modelo para criar um produto sem dificuldades”, diz ela. Satoh vai ainda mais longe e prevê modelos de código “dando suporte a todo o ciclo de vida do desenvolvimento de software”, incluindo fases anteriores, como especificação de requisitos e design.

Mas, não importa aonde essa era crescente de código coautorado com máquinas nos leve, El Maghraoui continua cautelosa, mas otimista. “É como uma faca de dois gumes. Pode ser algo que nos prejudica como desenvolvedores ou algo que nos ajuda. Por isso, é muito importante entender como usar corretamente esses LLMs de código para que você não perca sua vantagem, mas se torne mais criativo.” E aqueles que provavelmente prosperarão, ela acredita, serão “desenvolvedores e empresas que adotam esses fluxos de trabalho e tratam a IA não apenas como uma ferramenta, mas como uma parceira.”

Techsplainers | Podcast

Ouça: "O que os LLMs de código significam para o futuro do desenvolvimento de software"

Siga o Techsplainers: Spotify e Apple Podcasts

Autores

Rina Diane Caballar

Staff Writer

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Soluções relacionadas
IBM Bob

Acelere a entrega de software com o Bob, seu parceiro de IA para desenvolvimento seguro e com reconhecimento de intenção.

Explore o IBM Bob
Soluções de programação de IA

Otimize os esforços de desenvolvimento de software com ferramentas confiáveis orientadas por IA que minimizem o tempo investido em programação, depuração, refatoração ou conclusão de código e abra mais espaço para a inovação.

Explore as soluções de programação de IA
Consultoria e serviços de IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de consultoria em IA
Dê o próximo passo

Utilize IA generativa e automação avançada para criar códigos prontos para empresas de forma mais rápida. O Bob modela para aumentar os conjuntos de habilidades do desenvolvedor, simplificando e automatizando seus esforços de desenvolvimento e modernização.

  1. Descubra o IBM Bob
  2. Explore as soluções de programação de IA