Desenvolvendo um novo CMS. Minha experiência com Roo Code, Gemini e Cursor
Para começar, quero falar do ChatGPT. Quando comecei a escrever este post, forneci o título do artigo proposto: "Quão boas são as IAs para o desenvolvimento de software".
Eu esperava que começasse a me fazer perguntas sobre o que eu queria escrever, mas, em vez disso, gerou um ensaio de 500 palavras com conteúdo totalmente inventado. Ele apresentou supostos pensamentos meus sobre três ferramentas de IA que eu estaria testando: Roo Code, Gemini e Cursor. Porém, as informações geradas não tinham relação com minhas experiências reais.
Foi isso que o ChatGPT gerou para cada IA:
Como alguém com ampla experiência escrevendo sistemas CMS, decidi usar IA para desenvolver um novo CMS que aproveitasse meus anos criando sites para empresas — de páginas simples a soluções de nível corporativo.
Comecemos pelo RooCode. Gostei muito da ferramenta e, em cerca de cinco horas, construí uma base de código em JavaScript “vanilla” que normalmente levaria uma semana. Eu tinha uma versão demo do CMS capaz de renderizar várias páginas de exemplo. No entanto, quando pedi para converter a base para TypeScript, a atualização falhou. Se eu tivesse começado diretamente em TypeScript, provavelmente não teria tido esse problema.
Em seguida, migrei para o Gemini, que conseguiu modificar o projeto para TypeScript e, em cinco a seis horas, a maior parte do código já funcionava em TypeScript. Ainda assim, continuava a entrar em ciclos de tarefas, provavelmente por alguns desafios técnicos.
Nesse período, fiz uma pausa para pesquisar. Encontrei um vídeo sobre o Cursor. Eu já havia ouvido comentários positivos de outros desenvolvedores e sempre quis testá-lo.
Ao voltar ao Gemini, pedi que redigisse um documento de especificação do projeto para fornecer a outra IA. Depois, entreguei essa especificação ao Cursor e construí uma nova versão do CMS.
Nesse ponto, eu havia construído o mesmo código usando diferentes ferramentas de IA. Recomendo fortemente qualquer uma delas para impulsionar o trabalho: foram extremamente eficazes. Os agentes demonstraram capacidades notáveis, editando arquivos, movendo-os e executando a maioria das mudanças de que eu precisava. Na minha opinião, o ganho de produtividade é de cerca de dez vezes. Além disso, adotar uma ferramenta de forma consistente provavelmente melhora minha capacidade de pedir alterações com precisão.
Como passei mais tempo com o Cursor, houve pontos irritantes: quando pedi para criar um banco de dados para armazenar alguns dados, ele criou a chave primária como VARCHAR(36) em vez de UNSIGNED BIGINT. Curiosamente, quando questionei a melhor forma de armazenar uma chave primária, ele quis mudar para BINARY e escreveu duas funções para transformar o GUID que queria usar em um valor numérico. O Cursor possui um arquivo .cursorrc que permite definir regras usadas na geração de soluções — acabei encontrando isso depois que ele repetiu os mesmos erros.
Quando pedi a documentação do projeto, ele escreveu bastante, mas muita coisa estava errada: falava de diretórios que não existiam.
Nossa era digital está mudando — é hora de embarcar. Um ano atrás, eu teria descrito essas ferramentas como estudantes bêbados. Agora são programadores júnior que você precisa supervisionar — e só vão melhorar.