Jetbrains AI ou Github Copilot? qual a melhor IA para utilizar durante o desenvolvimento?
Ainda hoje é um assunto muito complexo para ser analisado e para aprofundar neste estudo, foram necessários pelo menos 30 dias analisando e testando as duas IAs mais utilizadas no momento para desenvolvimento de aplicações.
Posso afirmar com toda a certeza que ajuda muito no dia a dia, principalmente quando o assunto é produtividade. Analisando de perto o tempo que eu levava com e sem o auxílio das IAs, pude comprovar um ganho médio diário entre 27% a 32% em meu tempo de desenvolvimento, incluindo refatorações, testes e documentação dos scripts.
Legal, mas isso vai me fazer esquecer de como programar!
Bom, a resposta é não! Você não desaprende se continuar sempre estudando e se aprimorando conforme as tecnologias avançam e todos nós, desenvolvedores e desenvolvedoras, sabemos que é fundamental que o estudo seja constante sempre!
Aliás, faço até uma observação em relação ao pensamento de regredir, pois muito pelo contrário, melhorou minha forma de revisar o código, buscando possibilidades mais otimizadas após analisar as refatorações sugeridas pelas IAs, aprimorando ainda mais meu ponto de vista de como organizar e melhorar minhas metodologias.
E qual é a melhor para usar?
Confesso que a briga entre as duas é bem interessante e a melhor forma de tentar entender como cada uma trabalha é ver alguns pontos analisados.
Modelos sugerido pela IA
// Create a function return a random number between min and max
const randomNumber = (min: number, max: number) => {
return Math.floor(Math.random() * (max - min + 1) + min);
};
Sabe aquele momento em que está digitando e por um instante, a IA já compreende sua percepção e completa o restante do código? Pois bem, este ponto, sem dúvida o Github Copilot me pareceu bem mais proativo. Trouxe boas sugestões e uma boa eficiência sem muitas falhas. Jetbrains AI realiza este trabalho de forma eficiente, porém traz melhores resultados quando você habilita sua funcionalidade de chat.
Documentação do código
Jetbrains AI apresentou de forma mais direta e eficiente em seu entendimento do que se trata a função, quais parâmetros são passados e seus retornos.
/**
* Starts a timer with a maximum time limit.
*
* @param {number | undefined} maxTime - The maximum time limit for the timer.
* @returns {number} - The current value of the timer.
*/
const start = (maxTime: number | undefined) => {
if (!isRunning.value) {
isRunning.value = true;
timer.value = setInterval(() => {
time.value++;
}, maxTime);
}
return time.value;
};
Github Copilot apresentou uma explicação um pouco mais detalhada em texto incluindo retornos e parâmetros.
/**
* The `start` function is responsible for starting the timer with a maximum time limit.
* It accepts an optional parameter `maxTime` which is the maximum time limit for the timer.
* If the timer is not already running, it sets `isRunning` to true and initializes the timer.
* The timer is set to increment the `time` value every `maxTime` milliseconds.
* If `maxTime` is not provided, the timer increments the `time` value every millisecond.
* The function returns the current `time` value.
*
* @param {number | undefined} maxTime - The maximum time limit for the timer.
* @returns {number} The current time value.
*/
const start = (maxTime: number | undefined) => {
if (!isRunning.value) {
isRunning.value = true;
timer.value = setInterval(() => {
time.value++;
}, maxTime);
}
return time.value;
};
Do meu ponto de vista, as duas se saíram bem, porém a Jetbrains AI foi mais direta em seus objetivos.
Explicando um código
Ambas se saíram bem, porém o modelo da Jetbrains AI trouxe mais detalhes e até exemplificou o código.
Já o Github Copilot explicou de forma mais simples e direta.
Recomendados pelo LinkedIn
Refatoração
Modelo de código usado como exemplo para refatoração:
Nesta situação, a Jetbrains AI trouxe uma explicação leve e refatorou de forma eficiente sem alterar muito o original, aplicando mais correções do que otimização.
Já o Github Copilot trouxe uma explicação simples e refatorou de maneira muito otimizada, porém do meu ponto de vista, alterou além do necessário alguns pontos que considero importantes, principalmente quando estamos trabalhando com TypeScript.
Busca por bugs ou problemas
Ambas se saíram muito eficientes!
Jetbrains AI analisou todo o código e trouxe detalhes passo a passo do código original, todos os pontos que poderiam ser melhorados.
Github Copilot também foi muito eficiente, analisou todo o código e apontou melhorias, demonstrando passo a passo do código.
Conclusão
É difícil dizer qual é melhor, pois ambas foram ótimas e estão em constante evolução. A Jetbrains AI foi mais eficiente explicando e documentando o código. Já o Github Copilot é mais proativo no código para sugestões de autocomplete, porém ambas foram excelentes no segmento de busca por bugs e otimização do código quando é aplicada a refatoração.
Lembrando que todas as IAs neste segmento de guias de desenvolvimento devem ser utilizadas sempre com atenção observando o código gerado. Nem sempre elas acertam, e às vezes o que deveria ser uma melhoria acaba virando um problema. Portanto, estudar as tecnologias e estar por dentro de seus avanços ajuda a entender e prevenir alguns desconfortos gerados pela IA. É recomendado que elas sejam utilizadas para auxiliar na otimização de tempo e não para resolução, pois elas ainda não possuem capacidade de compreender um projeto inteiro para criar um código exato para algumas soluções.
Atualmente, a Jetbrains AI está disponível como plugin apenas para produtos da própria Jetbrains. Nos testes realizados, utilizei a IDE PhpStorm, uma excelente ferramenta para desenvolvedores que necessitam de mais motores de monitoramento durante o desenvolvimento.
O Github Copilot está disponível como extensão para alguns editores, como, por exemplo, o Visual Studio Code, o editor mais popular entre os desenvolvedores que possui uma gama enorme de extensões para auxiliar no dia a dia.
Ambas IAs são pagas, mas possuem um período para teste. Vale a pena utilizar esse período para compreender melhor seus mecanismos.