Alguns dias atrás, me deparei com uma manchete intrigante no LinkedIn que exibia uma declaração ousada: "Empresa de tecnologia visa aumentar a produtividade dos programadores em 50% com o GitHub Copilot". O que deixou a situação ainda mais curiosa foi que o autor do post não era programador.
Apesar da ousadia do título, acredito que esta questão pode levar a uma análise e discussão interessantes.
Não há como negar os recursos impressionantes das ferramentas de IA disponíveis ao público hoje. Na área de programação, eles já estão auxiliando significativamente os desenvolvedores, otimizando suas rotinas e aumentando a produtividade. Com as ferramentas certas, os problemas podem ser resolvidos em um ritmo mais rápido.
No entanto, para quem não está familiarizado com programação, essas ferramentas de IA podem parecer quase místicas, dando a impressão de que podem resolver qualquer problema de forma rápida e automática. Mas sabemos que a realidade é bem diferente.
O entusiasmo gerado por essas ferramentas é totalmente justificado, e antes de formar um equívoco sobre mim, saiba que também sou um deles. No entanto, acredito que nem todos entendem totalmente do que essas ferramentas são capazes na realidade.
Por um lado, você tem iniciantes em programação que temem ser substituídos por máquinas.
Por outro lado, você tem CEOs buscando soluções mágicas para reduzir custos ou aumentar a produtividade, talvez sem uma compreensão clara do trabalho real realizado por um programador.
"ChatGPT (ou Copilot), crie uma página para vender ingressos para um show em Node.js. O back-end deve estar preparado para uma média de 2.000 solicitações por segundo e ser resiliente a falhas. Configure um balanceador de carga para distribuir solicitações entre servidores. Certifique-se de que os caches estejam funcionando e realmente reduzam a carga do servidor. Instrumente ferramentas de monitoramento em tempo real. E, claro, o banco de dados deve ser agrupado com uma boa estratégia de replicação."
O exemplo é excessivamente exagerado, eu sei. Mas ilustra a complexidade por trás da implementação de algo que pode parecer simples para quem não é programador.
Escrever código é apenas parte do trabalho de um programador, e tenho certeza de que as IAs generativas se destacam nisso, mas não é tudo o que um programador faz.
Nós, programadores, passamos uma parte significativa do nosso dia sem escrever uma única linha de código. É necessário primeiro entender os requisitos de novos recursos, iniciar conversas e ajustes com os stakeholders, projetar a arquitetura técnica e, finalmente, traduzir todas essas informações em código.
E não vamos esquecer que esse código deve ser escrito em contexto, considerando como ele se encaixa com o restante da base de código existente.
O que quero dizer é que essas ferramentas de IA, embora muito úteis, não fazem mágica. Mas eles podem ser bons assistentes para programadores.
Uma das leituras que expandiu muito minha perspectiva sobre engenharia de software foi o livro clássico "The Pragmatic Programmer" de Dave Thomas e Andrew Hunt. Um dos capítulos fala sobre uma curiosa técnica de depuração: o pato de borracha.
A ideia básica por trás da programação do pato de borracha é explicar o código ou problema que você está enfrentando em voz alta, como se estivesse explicando para um pato de borracha. Ao verbalizar o problema ou descrever o código passo a passo, muitas vezes você encontra uma solução ou ganha uma nova perspectiva sobre o problema.
O ChatGPT é excelente para conversar e, além disso, conversar em contexto. Essa inteligência artificial poderia ser a evolução do pato de borracha de Dave Thomas e Andrew Hunt?
Já existem extensões para Visual Studio Code que se integram ao ChatGPT, usando-o como um patinho de borracha. Você pode verificá-los aqui .
Eu gosto de como o GitHub escolheu nomear seu produto como Copilot, e isso se alinha com o conceito do pato de borracha. A ferramenta visa ser um co-piloto e não o piloto real. É o assistente do programador, seu patinho de borracha.
Esta mensagem é para aqueles que estão ansiosos e preocupados com o futuro de suas carreiras de programação: relaxe! Mas não relaxe tanto porque a dura realidade é que são os fundamentos da engenharia de software que fazem um bom programador, não apenas o código.
Com a popularização dos computadores para o público em geral nas décadas de 70 e 80, os profissionais de contabilidade e finanças se sentiram ameaçados pelos softwares de planilhas. Uma máquina que poderia armazenar milhares de linhas e colunas e nunca cometer erros de cálculo. Quem rejeitaria isso?
É verdade que as planilhas eram e ainda são poderosas e representavam uma ameaça para os trabalhos de "escritores de planilhas". No entanto, quem interpretou os dados, entendeu o contexto do negócio e aplicou os conceitos contábeis certamente soube usar planilhas ao invés de criticá-las.
Os programadores não são meros escritores de código. Não tema seu novo pato de borracha; em vez disso, use-o. E obrigado, ChatGPT, por me ajudar a montar este artigo.
Também publicado aqui