Como o gerente de projetos do Google para ferramentas de desenvolvedores, Ryan Salva tem um lugar privilegiado para ver como as ferramentas de IA estão mudando a codificação. Antigo funcionário do Github e da Microsoft, ele agora é responsável por ferramentas como Gemini CLI e Gemini Code Assist, empurrando desenvolvedores para o novo mundo da programação agentiva.
Sua equipe lançou uma nova pesquisa de terceiros na terça-feira mostrando como os desenvolvedores realmente usam ferramentas de IA – e quão longe ainda temos que ir. Eu sentei com Salva para discutir o relatório e sua experiência pessoal com ferramentas de codificação de IA.
Todos os anos, o Google faz uma pesquisa sobre tendências de desenvolvedores – mas o relatório deste ano realmente foca nas ferramentas de IA, e especificamente como os desenvolvedores agentivos estão dispostos a se envolver em sua abordagem à programação. Houve algo na pesquisa que te surpreendeu?
Uma das descobertas realmente interessantes foi a data mediana em que os desenvolvedores começaram a usar ferramentas de IA. Eles descobriram que foi em abril de 2024, o que corresponde bem ao lançamento do Claude 3 e do Gemini 2.5. Este é realmente o início dos modelos de raciocínio ou de pensamento, e ao mesmo tempo, melhoramos muito na chamada de ferramentas.
Para tarefas de codificação, você realmente precisa ser capaz de aproveitar informações externas para resolver problemas, por isso pode ser necessário grepar, pode ser necessário compilar o código. Se o código compilar, pode querer executar esse teste unitário, e esse teste de integração. Eu acho que a chamada de ferramentas realmente é a peça importante que deu aos modelos a capacidade de autocorrigir à medida que avançam.
Como você está usando ferramentas de codificação de IA pessoalmente?
A maior parte da minha codificação hoje em dia é para projetos de hobby, e passo a maior parte do meu tempo usando ferramentas baseadas em linha de comando. Isso inclui Gemini CLI. Então há um pouco de Claude Code, um pouco de Codex nisso. E você nunca realmente usa uma ferramenta baseada em terminal sozinha, então sou realmente heterogêneo em relação aos IDEs que uso. Eu uso Zed. Eu uso VS Code. Eu uso Cursor. Eu uso Windsurf, todos eles, porque estou interessado em ver como o mundo funciona e como a indústria está evoluindo.
No lado profissional, os gerentes de produto tendem a viver em documentos, então a primeira coisa é usar IA para me ajudar a escrever as especificações e documentos de requisitos.
Estou curioso sobre como isso funciona. Você está usando o Gemini CLI para construir o Gemini CLI, mas eu imagino que ele não se executa sozinho.
Uma tarefa de desenvolvimento geralmente começa como um problema, talvez seja um problema do GitHub que alguém lançou com um bug. Muitas vezes, se eu for realmente honesto, é um problema razoavelmente subespecificado. Então, usarei o Gemini CLI para criar um documento de requisitos mais robusto em Markdown. Isso geralmente cria cerca de 100 linhas de especificação bastante técnica, mas também orientada a resultados. Então, usarei o Gemini CLI para escrever o código com base nessa especificação e nas preferências gerais nos documentos da equipe.
Ao longo da equipe de engenharia, temos algumas camadas diferentes de regras e documentos Markdown que são consumidos pelo modelo, apenas expondo nossa maneira de trabalhar: Aqui está como fazemos testes, aqui está como gerenciamos dependências, e assim por diante. Portanto, quando ele produz o código, também está trabalhando a partir desses documentos.
E enquanto o Gemini CLI vai resolvendo problemas, farei com que ele atualize meu documento de requisitos dizendo: “Eu consertei este passo. Agora estou indo para o próximo passo”, e assim por diante. Cada um deles cria seu próprio commit e pull request no repositório, então posso sempre retroceder ou desfazer.
Eu diria que provavelmente 70% a 80% do meu trabalho é eu trabalhando no terminal com linguagem natural, tentando usar o Gemini CLI para elaborar os requisitos, e então permitindo que o Gemini CLI escreva a maior parte do código para mim, que eu então reviso e leio com qualquer IDE que eu esteja usando. Mas, na maior parte, estou usando o IDE como um lugar para ler o código, em vez de escrever o código.
Você acha que há um futuro para o código de computador bruto? Ou vamos mudar tudo para janelas de terminal?
Durante três décadas, o IDE foi onde íamos fazer tudo no desenvolvimento de software. Você tinha o IDE, tinha o navegador, e tinha a janela do terminal.
Eu acho que isso ainda é em grande parte o caso, mas eu suspeito que ao longo do tempo vamos acabar passando muito mais tempo trabalhando com os requisitos, e o tempo gasto no IDE diminuirá gradualmente. E eu acho que essa mudança pode realmente acontecer ao longo de um horizonte de tempo bastante longo.
Há muita angústia sobre o que isso significa para o desenvolvimento de software como uma progressão. Se daqui a 10 anos, não estivermos mais olhando para o código, o que isso significa para os desenvolvedores? Haverá ainda um emprego para eles?
Eu acho que seu trabalho como desenvolvedor vai parecer muito mais com o de um arquiteto. Vai ser sobre pegar grandes problemas complexos e dividi-los em tarefas menores e solucionáveis. Você precisará estar pensando sobre a visão mais ampla do que está tentando produzir, em vez da linguagem intermediária para expressar isso em código de máquina.
