A não ser que você viva em uma ilha deserta, com certeza já ouviu falar bastante sobre inteligência artificial e como ela ameaça inúmeras profissões, mudando o mundo como o conhecemos hoje, assim como as revoluções industriais fizeram no passado. E com a área de desenvolvimento não é diferente.

Sendo a AGT uma empresa voltada ao desenvolvimento de soluções na área web, é claro que este é um tema ao qual temos nos atentado desde o começo.

 

Não há dúvidas que a inteligência artificial automatiza muitas atividades na área de programação:

  • Automação de tarefas repetitivas: A IA pode lidar com tarefas demoradas, como geração de código, testes automatizados e análise de desempenho, permitindo que os desenvolvedores foquem em atividades mais criativas e estratégicas.
  • Melhoria na produtividade: Ferramentas de IA como ChatGPT ou Copilot podem sugerir trechos de código, corrigir erros e até ajudar na documentação, acelerando o processo de desenvolvimento.
  • Testes mais eficientes: A IA pode criar cenários de teste automatizados, identificar falhas potenciais e executar testes de regressão de forma mais rápida e precisa.
  • Detecção de erros e vulnerabilidades: Algoritmos de IA podem analisar códigos em busca de vulnerabilidades de segurança e inconsistências, ajudando a construir aplicações mais seguras.
  • Assistência no design de aplicações: Ferramentas baseadas em IA podem gerar protótipos, designs visuais ou até interfaces de usuário de forma rápida, otimizando o fluxo do desenvolvimento.
  • Acesso a insights a partir de dados: A IA pode processar grandes volumes de dados para fornecer insights que ajudam na tomada de decisões sobre como projetar e melhorar as aplicações.

Então podemos deixar tudo com a IA e resolver tudo na base do prompt, certo?

Bom, não é bem assim.

Na verdade, o uso da IA no ‘automático’, apenas pedindo pra gerar soluções e colocando no ar, não apenas causará – como já está causando – problema sérios no universo da programação e da engenharia de software.

Alguns problemas que já estão acontecendo

Falhas de Segurança: Um estudo recente revelou que aproximadamente 35,8% dos trechos de código gerados pelo GitHub Copilot apresentavam falhas de segurança, independentemente da linguagem de programação utilizada.

Vulnerabilidades: Outro estudo empírico examinou 733 trechos de código gerados por ferramentas de IA, como o GitHub Copilot, em projetos hospedados no GitHub. Os achados foram preocupantes:​

  • 29,5% dos trechos em Python e 24,2% em JavaScript continham fraquezas de segurança.
  • As vulnerabilidades identificadas abrangem 43 categorias do Common Weakness Enumeration (CWE), incluindo Uso de valores aleatórios insuficientemente seguros (CWE-330), controle inadequado na geração de código (CWE-94) e Cross-site Scripting (XSS) (CWE-79)​

Essas falhas foram encontradas mesmo quando os desenvolvedores solicitavam explicitamente código seguro, indicando que a IA pode replicar padrões inseguros presentes nos dados de treinamento.

Alucinações de Código: Geração de Funções InexistentesAs chamadas “alucinações” ocorrem quando a IA gera código que parece plausível, mas é incorreto ou inexistente. Por exemplo, o ChatGPT pode sugerir funções ou bibliotecas que não existem na linguagem de programação ou no contexto atual, levando a erros difíceis de depurar. ​

 

Porque é mais fácil a IA se aliar ao programadores – e não eliminá-los

1. A IA não é tão boa em considerar contexto. Uma coisa é seu cliente pedir: “Gostaria de uma página que mostre o histórico de compras dos meus clientes.” Então a IA cria essa página funcional que mostra uma tabela com colunas como: ID da compra, Data, Valor, Produto.

OK. Porém um programador experiente consideraria aspectos como negócio, usabilidade, relacionamento com cliente, etc. Então ele perguntaria:

“O cliente final vai ver essa página? Então precisa estar adaptada para mobile?”

“Esses dados devem ser mostrados em ordem decrescente por data?”

“Precisa exibir também o status da compra (entregue, em andamento, cancelada)?”

“Devo incluir links para visualizar ou repetir uma compra?”

“E quanto à segurança? Só pode acessar o histórico estando logado?”

“Esse histórico deve considerar o relacionamento (ex: sugestão de produtos com base no histórico)?”

Isso mostra a visual macro que a IA ainda não tem.

2. A ideia da ‘caixa-preta’. Quando um desenvolvedor programa um projeto do zero, ele precisa pensar em arquitetura dessa solução e projetar cada parte. Nisso, ele acaba entendendo como aquilo funciona – e consegue dar manutenção(não se engane, todo projeto vai precisar de manutenção em algum momento). E é aí que usuários que utilizam a IA de forma automática – sem entender como funciona por dentro – podem ter problemas. Eles não vão conseguir gerar um fix quando um problema ocorrer – ou terão bastante dificuldade. A própria IA às vezes se perde em aplicar fixes no próprio código. Eu mesmo, há algumas semanas, pedi pro ChatGPT criar uma aplicação simples de cadastro e login em Java. Descrevi detalhadamente o que queria no prompt e pedi pra gerar. Não só ele gerou faltando muita coisa(que eu havia expressamente pedido) – como quando pedi pra arrumar o que faltou, ele não conseguiu.

3.  Código Legado – IAs são boas em gerar código, mas é muito diferente quando estamos falando de analisar e dar manutenção em códigos escritos há mais tempo. Isso porque para um mesmo problema, existem várias formas de resolvê-lo – e a IA nem sempre entende como um problema foi resolvido por outro programador em um código legado – coisa que um programador experiente conseguiria.

4. IA copiando código de IA: um problema a médio e longo prazo. A IA tem como base de dados as informações da internet, inclusive as próprias soluções de código. Porém, com o aumento de códigos feitos por IA na internet, ela passa a absorver o próprio código gerado por outras IAs(que como já falamos, contém erros ainda). Isso curiosamente faz a máquina absorver códigos inconsistentes e entender aquilo como certo, fazendo as coisas serem exatamente o oposto do que deveriam ser. Adicione a isso o fato de que pesquisadores da Dinamarca sugerem que 99% da internet será composta por conteúdo gerado por IA até 2030. Resultado? Experimentos publicados na revista Nature em julho de 2024 mostram que quando as IAs apelam para o ‘canibalismo’, ous eja, consumir conteúdos criados por outras IAs, elas tendem a gerar mais distorções a cada interação com esse conteúdo. No estudo, eles pediram para a IA criar um texto sobre arquitetura na Idade Média. Depois, foram pedindo para o modelo seguinte de IA falar sobre o mesmo assunto mas com base no texto do modelo anterior. No nono modelo, o texto já não fazia sentido algum. Imagine isso orientado para programação!

 

E o futuro?

Por fim, acreditamos que a IA deve ser usada mais como uma ferramenta do que como um ‘programador disponível 24hs’. É inútil negar que a IA veio pra ficar e está revolucionando o modo como trabalhamos e vivemos, porém, conforme explicado acima, ainda está longe de ser um agente completo – que imagina, arquiteta, se relaciona, pensa, considera aspectos externos, entrega e mantém soluções tecnológicas.

Além disso, com a quantidade de ‘código ruim’ posto no ar sem revisão e bom senso, a demanda dos programadores e engenheiros de software só irá aumentar nos próximos anos – a fim de consertar o que de ruim foi gerado pelo uso errado da IA.

 

Vamos desenvolver sua solução?

A AGT Online é especialista no desenvolvimento de soluções personalizadas para o seu negócio.

Fale conosco caso tenha interesse em desenvolver uma solução para o seu negócio – pensada por humanos e eventualmente elaborada com ajuda da IA.

Fontes: