O aparecimento de assistentes de programação com IA, como o Codex, pôs muitos programadores a pensar: seremos substituídos? Para ser sincero, como alguém que lida com código regularmente, estou simultaneamente entusiasmado e um pouco apreensivo. Entusiasmado com o facto de estas ferramentas poderem realmente ajudar-nos a poupar muito trabalho repetitivo, apreensivo com a sua capacidade de limitar o resultado final. Do ponto de vista atual, a IA é mais um "super-assistente" do que um "substituto" - pode lidar com tarefas claras e repetitivas, mas quando se trata de trabalho que requer pensamento criativo e design de arquitetura de sistemas, ainda temos de confiar nos humanos. Mas quando se trata de tarefas que requerem pensamento criativo e conceção da arquitetura do sistema, ainda depende dos programadores humanos.
Pontos fortes e limitações dos assistentes de programação com IA
O mais espantoso do Codex é a sua capacidade de lidar com tarefas de programação específicas. Tarefas como corrigir erros, escrever testes unitários e refactorizar código são tarefas que a IA faz realmente bem e depressa. Tentei pedir-lhe que refacturasse um módulo Python antigo por mim, e não só completou a tarefa na perfeição, como também adicionou anotações de docstring e de tipo ao longo do processo. Mas quando se trata de compreender a lógica empresarial e de ponderar as compensações arquitectónicas, a IA não está à altura da tarefa. Na semana passada, pedi-lhe para conceber uma arquitetura de microsserviços e a solução resultante, embora tecnicamente viável, não teve em conta as capacidades reais de O&M da nossa equipa.
Outro fenómeno interessante é que o código gerado pela IA, embora correto, carece frequentemente de considerações "humanas". Por exemplo, não acrescenta comentários explicativos em pontos-chave, como fazem os programadores humanos, e não se ajusta ao estilo de codificação da equipa. Isto faz-me lembrar um estudo da Google: os programadores assistidos por IA apresentaram código com uma taxa de aprovação mais elevada, mas os custos de manutenção subsequentes aumentaram 15%.
Evolução da função de programador
Em vez de substituir os programadores, a IA está a redefinir o trabalho dos programadores. Hoje em dia, os bons engenheiros não só devem ser capazes de escrever código, mas também de saber utilizar eficazmente as ferramentas de IA. Tal como o advento dos IDE não eliminou os programadores no passado, os assistentes de IA estão mais a libertar-nos do trabalho mecânico para que nos possamos concentrar nas partes mais valiosas do trabalho - como a conceção do sistema, a otimização do desempenho e a resolução criativa de problemas.
Um arquiteto sénior que conheço disse que agora passa menos tempo a escrever código específico, mas sim mais tempo a pensar na conceção do sistema. Isto é, de facto, um bom sinal; afinal, a parte mais valiosa do desenvolvimento de software nunca foi a velocidade de digitação, mas a qualidade das ideias de resolução de problemas e das decisões de engenharia.
Modelos futuros de colaboração
A direção mais provável é um modelo de "colaboração homem-máquina", em que a IA se ocupa das tarefas claras e repetitivas e o ser humano se concentra no trabalho que exige criatividade e discernimento. Tal como existem cinco níveis de condução autónoma, pode haver uma divisão semelhante do trabalho de programação: o L1 é feito inteiramente pela IA, enquanto o L5 tem de ser conduzido por humanos. Curiosamente, as estatísticas do GitHub Copilot mostram que a percentagem de programadores que aceitam sugestões de IA é tão elevada como 401 TP3T para tarefas simples, mas desce para menos de 51 TP3T para implementações de algoritmos complexos.
No final, o assistente de programação de IA é mais como um "super estagiário" para os programadores - pode executar rapidamente instruções claras, mas o pensamento estratégico e o trabalho criativo continuam a depender dos humanos. Como disse o CEO da OpenAI, Sam Altman, "a IA não vai substituir os programadores, mas os programadores que podem utilizar a IA vão substituir os programadores que não a utilizam". É uma forma um pouco indireta de o dizer, mas aponta para o futuro.
评论列表 (0条):
加载更多评论 Carregando...