ChatGPT vai roubar seu emprego?
Recentemente, em conversa com colegas e amigos, ouvi muitas coisas sobre o ChatGPT e a OpenIA, ouvi de muitas pessoas de dentro e fora da bolha tech e todos muito impactados a sua maneira Alguns muito céticos, outros muito devotos, mas isso tudo me dispertou vontade de escrever meus 20 centavos e a minha opinião sobre o assunto nesse artigo abaixo, espero que goste! 😁
Essa “revolução” que está acontecendo agora com o IAs em geral, mas principalmente com o ChatGPT, já está ocorrendo a muito tempo, sendo mais preciso, pra lá de uns 2 anos ou mais, seja ela para resolução de tarefas, elaboração de respostas complexas e até geração de código. Eu inclusive já fiz uns projetinhos a uns anos, baseados em outro do próprio Filipe Deschamps, pra criação de um vídeo completa, pronto pra por no youtube, a partir de um simples prompt com o tema do vídeo, tudo muito funcional, mas muito experimental.
Claro, dessas anos pra cá as coisas evoluíram, mas o que mudou significativamente e realmente de lá pra cá, foi fazer a IA ser comercialmente viáveis, pois desses anos pra cá, era muito caro, a nível de processamento, custo em infraestrutura e consumo de máquina, para se ter um preço que tornasse o produto atrativo para o publico em geral.
Existem outros motivos de mercado, momento atual e até o UI/UX, que fizerem na minha opinião, com que o ChatGPT ganhar tanta relevância atualmente, mas outro dia se surgir disposição, eu faço outro artigo falando sobre a minha opinião quanto a isso.
Sobre a questão de usar no dia-a-dia, tenho também as minhas grandes ressalvas. Já utilizo IA para completude de código a bastante tempo, pra esses casos, sugiro pesquisar mais sobre Tabnine e mais recentemente Copilot, usei e uso ambos e realmente ajudam muito, muito mesmo, desde insights, optimizações, refatorações a até pra atividades repetitivas, mas o que realmente é importante salientar é que isso também não é algo novo e tem muitas, MUITAS limitações, vou tentar descrever abaixo a maior delas, na minha opinião:
Contexto de trabalho e padrões de projeto
Quando se tem um projeto pequeno, quase tudo atende a demanda de uma feature, implementações mais básicas, UI/UX menos elaborados e até uma avaliação mais superficial de um fluxo e isso é importante, pois nessa situação hipotética, se trata de um projeto pequeno, então antes de entregar o melhor possível, pensamos em timing de produto. Agora quando falamos de contextos e projetos grandes, com de um bancopor exemplo, temos muitos outros problemas para resolver, além do que só programação, precisamos pensar em como gerir todo o projeto, muito mais além do que só código. Vamos pensar no seguinte contexto:
O Twitter, por exemplo, te quase 4000 funcionários (levando em consideração só o número no linkedin), reduzindo esse número na tentativa de considerar somente programadores, vou colocar 1000, reduzindo ainda, pois nem toda empresa tem o porte do Twitter, vou dizer 100 programadores em um equipe. Esses 100 programadores, precisam fazer códigos que sejam testáveis, que sigam um padrão estipulado para a equipe, sejam compatíveis com o que já existe em código e muitos outros pontos que englobam o contexto de trabalho da empresa em questão. Além de tudo isso o código tem que de fato fazer o que é proposto, ou seja atender a feature, o que geralmente é o mais complexo. Do contrário, muitos bugs entrarão no projeto, além de que, caso fujam dos padrões, ficará difícil decorrer na manutenção de toda a base de código.
Temos que lembrar que, grande empresas tem projetos com 2 bilhões de linhas, eu mesmo já participei de projetos com mais de 500mil linhas, administrar isso não é simples, garantir que o código que entra esta correto é mais complexo ainda.
Ta, mas você deve está se perguntando, o que isso afeta diretamente o uso do ChatGPT? A questão é que, a IA do GPT como um todo, assim como muitas outras, trabalha de forma genérica, fazendo com que o resultado gerado seja diferente, na maioria das vezes do que se é necessário como resultado final. Caso optemos por copiar esse resultado e ajustar ele para os padrões da empresa, na maioria das vezes será mais custoso em tempo do que fazer a elaboração “manualmente”, já seguindo o que existe na base de código, além do que seria um resultado similar ao que já temos com o Copilot e Tabnine, só que esses caras tem uma grande vatagem, pelo menos por enquanto, pois já estão integrados com as nossas editores e IDEs de desenvolvimento.
Mas onde devemos usar o ChatGPT então?
Na minha visão, o maior trunfo dele é com POCs, MVPs e P&D, pra esses casos, precisamos justamente do que ele entrega, que é rapidez e experimentação. Nesses casos ele é perfeito, pois vamos perder menos tempo fazendo as bases, já que não temos padrões pra seguir e o contexto é pequeno. Dessa forma podemos descartar as ideias ruins sem termos perdido muito tempo na elaboração ou prosseguir e investirmos mais tempos refatorando e colocando nos padrões para podermos injetá-la na base grande de código, caso a ideia seja boa e positiva.
Conclusão
A minha opinião se baseia nas minhas considerações e experiências, levantando o questionamento quanto ao trade off de complexidade que se tem em aderir ou não a essas tendências, pois tudo gera custo, de tempo ou dinheiro.
Fontes
- Quantidade de linhas de um projeto grande (https://www.tecmundo.com.br/google/86541-servicos-google-somam-2-bilhoes-linhas-de-programacao.htm)
- Quantidade de funcionários (https://www.linkedin.com/company/twitter/)
- Copilot (https://github.com/features/copilot)
- Tabnine (https://www.tabnine.com/)