ChatGPT vai roubar seu emprego?

You are fired

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

Eu era do time dos céticos também, mas existe a questão do tempo e evolução exponencial dessas ferramentas, que se não me falha a memória é algo em torno de 3.8 meses, o que é surreal levando em consideração a lei de Moore dos 18 meses. A velocidade em que essas ferramentas dobram sua capacidade pode ser a chave para entendermos o tamanho do impacto.

Algo bastante perceptível é a evolução do Midjourney, que do 1 para o 2 mudou da água para o vinho, e na recente versão 5 é muito difícil para um olho não treinado saber o que é uma foto real do que é uma imagem gerada por IA. No caso específico do Midjourney, conhecer sobre perspectiva, iluminação, enquadramento, etc vai ajudar muito na hora de usar o prompt e seus parâmetros, mas mesmo assim não vejo um futuro promissor para os ilustradores, por exemplo.

Já o GPT-4 está aí reconhecendo entradas de imagem e dando um salto em relação à versão anterior, e agora é possível também dividir o comando do contexto, o que ajuda muito na hora de gerar o resultado. Posso por exemplo contextualizar dizendo: "Você é um programador experiente que vai seguir as boas práticas", isso em uma parte separada do comando, dessa forma a IA tem uma maior clareza do seu papel na atividade.

Por isso, sabendo que a cada 4 meses vamos ter uma "mini-revolução", eu sinceramente não posso imaginar o que teremos em 5 ou 10 anos, já que a velocidade de evolução é espantosa. Então, acho que o ponto principal não é elaborar o que Chat GPT faz agora, e sim o que ele poderá fazer nas próximas versões.

Minha estratégia está sendo cair de cabeça nesse mundo para entender o que eu posso fazer para ser mais produtivo usando essas ferramentas. Não apenas uso Copilot e GPT, como também o Midjourney e Play.ht para criar conteúdo multimídia.

Não tenho nenhuma conclusão sobre o assunto, mas a minha perspectiva é de que programadores experientes se tornem "pilotos dos novos Airbus": Não é quem pousa, não é quem decola, mas está no comando supervisionando e assume quando é necessário. O ponto é que um avião só precisa de 2 pilotos e não um departamento inteiro para comandar o voo. E pensando por esse lado, quem tem alguma senioridade está de certa forma protegido, mas vejo uma barreira bem grande sendo erguida para os juniores.

Muito bem colocado cara, inclusive concordo muito com a sua colocação, mas contextualizei minhas pontuações mais no contexto de grande projetos, o que acredito que ainda existem muitas barreiras quando ao uso ativo dele. Eu inclusive tenho estudado muito sobre o assunto acredito que o proximo boom dessas IAs sejam produtos surgindo em cima delas, tornando elas mais objetivas e contextualizadas. Deixo se sugestão ler mais sobre LLM e LlamaIndex :D