Como o ChatGPT e outras ferramentas de IA vão mudar o jogo, de novo

Como o ChatGPT e outras ferramentas de IA vão mudar o jogo, de novo

Acalme-se! Não vamos perder nossos empregos para nossas Airfryers, ainda.

Would AI engines write code better than humans?

AI engines have the potential to write code that is more efficient and error-free than code written by humans. However, it is important to note that the ability of an AI to write code depends on the quality of the data and algorithms used to train it, as well as the specific task it is being used for. Additionally, current AI systems lack the creativity and problem-solving abilities of humans, so they may not be able to handle certain types of coding tasks as well as a human would.

Sendo totalmente piegas, é claro que o texto acima foi escrito pela ferramenta da vez: ChatGPT. Conversando com alguns amigos, comentei que um dos méritos mais perceptíveis dela foi ter eliminado as barreiras de usabilidade que ainda mantinham distantes algumas pessoas menos versadas em tecnologia. Se a pergunta acima fosse colocada no Google, ele traria uma lista de resultados apontando para conteúdos que, mesmo previamente filtrados pela empresa, exigiriam que o usuário entrasse em alguns deles para realizar o processo de construção da resposta; o ChatGPT faz tudo isso automaticamente e entrega a resposta pronta. A taxa de acerto/precisão das respostas ainda tem espaço pra aumentar, mas quando o buscador da Alphabet surgiu também não tinha a mesma eficiência de hoje em dia. A popularização explosiva do ChatGPT trouxe uma impressão de que o Google deveria ter sido assim desde o início, com a sensação de que, em alguns dias, um dos titãs da tecnologia simplesmente ficou velho.

Inteligência Artificial não é o oposto de Inteligência Natural

O que chamamos de Inteligência Artificial pode ser definida como uma tecnologia que permite que máquinas tentem imitar a inteligência humana, aprendendo com a experiência por meio de processamento iterativo e treinamento algorítmico. As IAs funcionam combinando grandes conjuntos de dados com algoritmos de processamento específicos e iterativos, com o intuito de aprender a partir de padrões e recursos nos dados que analisam (basicamente, como fazem os humanos). Cada vez que um algoritmo de IA executa uma rodada de processamento de dados, ele testa e mede seu próprio desempenho, acumulando conhecimentos adicionais.

Como uma máquina não precisa ir ao banheiro nem dormir, ela pode executar centenas, milhares ou até milhões de tarefas com rapidez, aprendendo muito em pouco tempo, e tornando-se extremamente capaz em tudo o que está sendo treinado para realizar. E este ponto é fundamental para entender o estágio que estávamos em relação a estes dois últimos parágrafos: aplicações de inteligência artificial costumavam ser altamente especializadas. Por exemplo, se um algoritmo era treinado para identificar a presença ou ausência de gatos em uma imagem, havia grandes chances dele ser muito eficiente nesta tarefa; porém, se a pergunta mudasse para identificar a presença ou ausência de um cachorro na mesma imagem, sem um novo treinamento ele seria praticamente inútil.

Crédito: Wikimedia Commons

De vez em quando, os saltos acontecem

O ChatGPT é um tipo de ferramenta que há muito tempo a gente não via uma igual, e que vai mudar o jogo daqui para frente. Na história recente, o iPhone causou tal movimento, porque mudou a maneira como a indústria passou a se relacionar com smartphones e com dispositivos em geral (as vendas de computadores nunca mais foram as mesmas, porque para a maioria das pessoas não faz sentido ter um PC). De forma similar, o surgimento e adoção de estruturas computacionais sob demanda através de nuvens públicas (AWS, Azure, GCP, Digital Ocean e outras) também foi um fator que mudou o jogo, porque negócios começaram a surgir a partir da facilidade que se criou para fazer o deploy de uma aplicação. Uma startup, por exemplo, não precisava ter um datacenter com milhares de dólares em equipamentos para lançar um negócio. Bastava uma ideia e, com pouco dinheiro, era possível ter um protótipo funcional rodando na Amazon a um custo relativamente muito baixo. Esta facilidade contribuiu de forma contundente para o surgimento de toda a cena de startups como conhecemos hoje - se não foi um fator fundamental, foi um grande catalisador para o surgimento de negócios que tiveram a capacidade de utilizar a nuvem como um fator de aceleração. Não fazia sentido fazer de outra maneira.

A popularização e adoção em larga escala de ferramentas baseadas em inteligência artificial são o próximo grande salto do ecossistema de tecnologia (e não só dele). Não fará sentido fazer as coisas de outro jeito. Talvez seja exagero, mas o poder que estas ferramentas começam a entregar para as pessoas me remete ao poder que as máquinas a vapor entregaram para as sociedades na primeira revolução industrial. Até agora, vínhamos aprimorando as maneiras de escrever código da mesma forma que as artesãs encontravam linhas, agulhas e matérias primas melhores; dsenvolvedores e times mais maduros já utilizavam máquinas de costura para facilitar o trabalho, mas ainda estávamos limitados às nossas capacidades individuais. O ChatGPT é nosso tear industrial.

Crédito da imagem: aqui

Equilibrando futurologia e pragmatismo, dá pra afirmar com alguma segurança que a carreira de programador como nós conhecemos hoje sofrerá um grande impacto, mas não imediato. Ela não vai acabar (embora seja tentador dizer o contrário), assim como outras não acabaram com o avanço das tecnologias, mas passará por uma transformação da mesma forma como várias outras que nem notamos. Por exemplo, ainda existem mecânicos que entendem de carburadores e motores mais antigos, e há mecânicos que identificam problemas nos carros através de equipamentos de diagnósticos eletrônicos. Na medicina, existem iniciativas avaliando como inteligências artificiais podem cooperar com profissionais no processo de descrição dos sintomas e das condições em torno da saúde de um paciente, recomendando tratamentos e abordagens clínicas. Já existem ferramentas que conseguem fazer diagnósticos iniciais muito apurados em relação à situação dos pacientes, e novos medicamentos estão sendo explorados com o auxílio de IAs.

Por outro lado, a tecnologia não vai abolir a necessidade de existir um médico, assim como mecânicos que utilizam tecnologia para fazer diagnósticos dos problemas de um carro não farão desaparecer mecânicos tradicionais, pelo menos no curto e médio prazo. Os programadores ainda continuarão sendo necessários (por enquanto), porque na grande maioria das empresas a tecnologia é uma ferramenta para o atingimento dos objetivos, logo há um oceano de código legado no qual as inteligências artificiais não vão chegar perto, seja por limitação da tecnologia, seja por decisões humanas das pessoas à frente dos negócios. Novas aplicações poderão ser desenvolvidas utilizando inteligências artificiais, mas a árvore de decisão sobre a substituição de código legado nas empresas não é tão simples.

Flecha lançada não volta ao arco

Assim como em outras revoluções, é possível imaginar que haja uma migração da valorização do capital humano, pois pessoas com habilidade para programar não serão mais detentoras da exclusividade sobre a capacidade de escrever código. Inteligências artificiais, como ChatGPT, já são capazes de receber como parâmetro uma frase como "escrever uma função em JavaScript que, dado uma lista de valores como entrada, retorna uma cópia ordenada da lista utilizando o algoritmo do Quicksort", e gerar este código com uma precisão bastante boa, a ponto de pequenos ajustes tornarem-no apto para ser usado em problemas mais complexos. Profissionais que souberem utilizar inteligências artificiais para acelerar a escrita de código dentro de limites éticos e contratuais vão acabar se tornando programadores com muito mais desempenho, eficácia e capacidade de entrega. Se hoje somos limitados a escrever código através de um teclado e nossas mãos (turma do Emacs, controle-se), inteligências artificiais como um ChatGPT farão com que isso cresça exponencialmente. Com poucos comandos, será possível escrever uma quantidade sobre-humana de linhas de código, cada vez mais confiável, a ponto de quebrar a barreira da suspeição em algum momento.

E aqui residem dois dos dilemas atuais em torno deste assunto: ética e legalidade. A turma da computação está alguns meses atrás de outra área que já está vendo os efeitos das inteligências artificiais há algum tempo - a geração de imagens a partir de textos tem despertado grandes debates sobre os limites éticos da utilização de imagens de artistas que não necessariamente autorizaram o uso delas para "treinamento de inteligências artificiais". Aplicativos como o Lensa geraram discussões acaloradas sobre a possibilidade de remuneração de artistas cujos traços e características foram usados como base para o treinamento do algoritmo (alguns deles que já morreram, inclusive). Um excelente resumo sobre o assunto foi felto pelo Gaveta, no seu canal no Youtube, e algo me diz que estamos apenas no começo de uma longa jornada até um ponto de estabilidade sobre o assunto, semelhante ao que tivemos do surgimento do mp3 até o Spotify.

Crédito: canal do Gaveta

A utilização de ferramentas de IA e aprendizado de máquina para escrever código não é algo novo. O Github Copilot anunciado em meados de 2021 surgiu como uma iniciativa na direção de entregar uma experiência de programação com alta eficácia através de sugestões oferecidas por uma inteligência artificial treinada a partir da base gigastesca de repositórios da plataforma. Todavia, assim como em outras áreas que estão sendo impactadas pela adoção de IA (geração de imagens, por exemplo), ainda não está claro como lidar com questões de direito autorial, licenciamento de conteúdo e geração automática de novos artefatos - se uma IA é treinada com dados não autorizados, como determinar se a solução gerada por ela não contém elementos de referência direta - ou em português simples, como garantir que ela não está copiando? Esta é uma questão que nem mesmo a área jurídica está pronta para responder.

Na história da programação, sob certa ótica as coisas já caminhavam para um cenário onde menos código era feito por humanos e mais código era feito automaticamente. Os frameworks de diversas linguagens de programação são exemplos de problemas que, deliberadamente, os programadores delegaram para outros agentes resolverem (e que, possivelmente, entregam implementações sólidas para estes problemas). Hoje em dia, numa transação HTTP, quase ninguém implementa todo o código necessário para um usuário enviar uma requisição do seu navegador para um site que oferece algum serviço (por curiosidade, você já chegou a conferir o que o seu framework implementa para facilitar a sua vida?). Em última análise, os Design Patterns têm esse princípio de mapear problemas conhecidos e que se repetem com frequência no ciclo de desenvolvimento de aplicações, visando apresentar soluções conhecidas para esses problemas. As inteligências artificiais começarão a entregar em uma escala de capacidade de execução inimaginável algo que, de alguma forma, já era feito pela comunidade.

Darwinismo tecnológico

Em algum momento no futuro, programadores não vão mais se destacar no mercado porque conhecem uma determinada linguagem, ou estão dispostos a aprender alguma outra - talvez ainda haja espaço para pessoas que se destaquem por conhecer detalhes das linguagens, porque as inteligências artificiais não vão escrever códigos muito específicos para problemas muito específicos. Porém, também não haverá espaço para pessoas sem o conhecimento de base sobre programação e teoria da computação só porque conseguem concatenar comandos de texto em uma inteligência artificial. Se o piloto automático fosse tão bom e confiável, os aviões não teriam mais pilotos. Ou seja, por melhores que sejam os resultados entregues por inteligências artificiais, eles ainda precisarão ser auditados por humanos que, em essência, terão que saber o que estão fazendo. Por isso, pra quem está iniciando uma jornada na computação hoje, pouca coisa muda.

Para os programadores mais experientes, a chegada de novas ferramentas baseadas em inteligência artificial exigirá uma maturidade ainda maior para entender quais são as maneiras mais eficientes para resolver os problemas já existentes. A velha frase "pra quem tem só martelo, todo problema é prego" cabe como uma luva neste contexto, não é todo caso que precisa de uma IA para ajudar - pelo contrário. Ferramentas como o ChatGPT ainda não entregam aplicações completas (e nem devem fazê-lo), por isso é fundamental controlar as expectativas dos membros dos times para evitar o "efeito modinha". Além disso, como já mencionado acima, a questão de direitos autorais e licenças de uso ainda está aberta e pouco clara, o que leva a uma necessidade de cuidado maior com onde estes trechos de código gerados por inteligencia artificial serão utilizados.

Para as lideranças de hoje e de amanhã, algumas peças se mexeram no tabuleiro. Daqui a pouco, situações terão que começar a serem discutidas - por exemplo, quais serão as atividades diárias de um programador, e como será mensurado seu desempenho? Onde estará a qualidade da contribuição de um profissional dentro do contexto de um time de desenvolvimento de software? Quais serão os conhecimentos exigidos destas pessoas? Elas precisarão ser excelentes programadoras ou excelentes utilizadoras de ferramentas de inteligência artificial de alguma forma? No âmbito dos negócios, como as instituições irão lidar com o cenário de aplicações à disposição de usuários feitas (em parte ou como um todo) por não-humanos? Como ficarão as responsabilidades em casos de falhas, especialmente as críticas? Como o novo potencial patamar de produtividade oferecido por uma ferramenta de inteligência artificial irá impactar no dimensionamento dos times? São muitas perguntas em aberto, para as quais buscaremos as respostas como pessoas em uma sala escura com uma vela na mão.


Se você gostou deste texto, me ajudaria muito se pudesse clicar no botão de Like e colocá-lo nos seus bookmarks. Estas métricas me ajudam a entender o feedback do texto. Se você acredita que ele pode ser útil para alguém, agradeceria muito se pudesse compartilhá-lo. Obrigado!