Quando comecei minha jornada de desenvolvimento de software em 2014, o aprendizado era bem diferente do que vemos e conhecemos hoje. Embora existissem algumas plataformas de desenvolvimento como Stack Overflow, GitHub ou SourceForge, não havia tantos recursos disponíveis online como hoje, e as perguntas postadas em fóruns permaneceram sem solução por dias a fio.
A jornada foi ainda mais desafiadora para desenvolvedores como meu pai, que iniciou sua carreira na década de 90. Ele me contou sobre sua época de codificação em Cobol e Pascal, quando o aprendizado era predominantemente baseado em livros e os cursos eram ministrados apenas no local. Não existiam academias online e sites como Udemy, YouTube ou Stack Overflow ainda estavam longe de estar no mapa – adquirir conhecimento exigia muito autoestudo e disciplina.
Quando se deparava com um problema, meu pai não podia simplesmente “pesquisar” no Google para saber como outras pessoas resolveram o mesmo problema e obter a resposta em segundos, como podemos hoje. Em vez disso, ele teve que conversar com um colega mais experiente, esperando que ele tivesse uma resposta, e essa pesquisa poderia levar vários dias. Os recursos modernos, incluindo ferramentas de inteligência artificial (IA), mudaram drasticamente a forma como abordamos o desenvolvimento de software, tornando-o muito mais rápido e eficiente.
As coisas eram bem diferentes da experiência do meu pai quando comecei como desenvolvedor. Sites como Stack Overflow começaram a ganhar popularidade e desenvolvedores de todo o mundo estavam ajudando uns aos outros. A forma como os desenvolvedores aprenderam sobre novos tópicos estava evoluindo, e ter mais recursos disponíveis tornou a jornada um pouco mais fácil. Com o tempo, o YouTube também se tornou uma grande fonte de informações, com desenvolvedores postando tutoriais em vídeo úteis em canais especializados.
Aprender sobre desenvolvimento de software evoluiu desde a leitura de livros ou cursos presenciais até assistir a um tutorial no YouTube ou inscrever-se em um curso sob demanda em plataformas como a Udemy. A IA viria para levar o aprendizado a um nível totalmente novo.
A ascensão da IA
A primeira IA que se tornou popular no desenvolvimento de software foi o GitHub Copilot. Veja como GitHub define:
“GitHub Copilot é um programador de pares de IA que ajuda você a escrever código com mais rapidez e menos trabalho. Ele extrai contexto de comentários e código para sugerir linhas individuais e funções inteiras instantaneamente.”
GitHub Copilot foi lançado em outubro de 2021. Ele usa Codex da OpenAI para traduzir linguagem natural em código. Ele foi treinado com dados de linguagem natural e bilhões de códigos-fonte disponíveis publicamente.
A IA progrediu não apenas no desenvolvimento de software, mas também em muitos outros campos, como processamento de imagens, reconhecimento de fala, análise de dados, veículos autônomos e robótica, e a lista cresce a cada dia que passa. A única ferramenta que realmente chamou a atenção de todos foi o ChatGPT da OpenAI por sua versatilidade e interface amigável. Todos podem usá-lo, pois foi treinado com vastos dados da Internet, não apenas com código.
Minha primeira interação com esta IA foi muito casual, com o GPT-3 em janeiro de 2023. Apenas fiz algumas perguntas sobre meu país para ter uma ideia do quanto “ele” sabe – perguntas como melhores pontos turísticos, pratos tradicionais e locais famosos. pessoas – e respondeu todas as minhas perguntas com precisão em questão de segundos. Isso me fez pensar que era o fim dos motores de busca tradicionais.
Alguns dias depois, pedi para criar um jogo da velha bem básico usando HTML, Javascript e CSS. O CSS gerado não era o design mais atraente que já vi, mas funcionou. Por outro lado, o jogo em si não estava funcionando. Pedi duas vezes para consertar e não consegui. Fiquei curioso sobre isso, então comecei a depurar o código. Eu mesmo encontrei e resolvi o problema, mas queria que o GPT-3 resolvesse. Então, depois de saber qual era o problema, expliquei como faria em uma conversa normal com um colega de trabalho, e pareceu que “entendi” e resolvi.
Usos práticos de IA no desenvolvimento de software
Hoje, a IA pode ser usada em todos os estágios de desenvolvimento de software, desde o início até a implantação, e ainda mais com chatbots para interagir com os clientes.
Com foco na codificação, GitHub Copilot e GPT-4 são as ferramentas mais eficazes disponíveis atualmente. Eu os usei em diferentes situações:
- Escrevendo expressões regulares
- Assistência na compreensão do que uma parte do código faz
- Criando funções puras curtas
- Otimizando o código existente, o que é muito útil para expressões booleanas compostas complexas.
- Conversando com ele para criar uma estrutura de banco de dados, apenas para referência, pois pode se confundir facilmente com um banco de dados complexo
- Escrevendo testes unitários
- Aprendendo a usar uma biblioteca/framework com exemplos práticos
- Obtendo ideias sobre possíveis motivos para qualquer erro
Desafios da IA no desenvolvimento de software
Embora a IA tenha inegavelmente trazido muitos benefícios ao desenvolvimento de software, ela também tem seus próprios desafios. Como não entende totalmente o código, depender muito dele para gerar código pode levar a bugs complexos e vulnerabilidades de segurança, além de não levar em consideração a escalabilidade ou adaptabilidade futura. Também pode cometer erros e descobrir um “fato” que não é totalmente verdadeiro.
Pode ter algumas implicações legais e éticas porque não está claro quem é o proprietário do conteúdo criado, uma vez que é gerado a partir de muitos recursos na Internet. Por estas razões, embora a IA ofereça muitos benefícios, algumas empresas proibiram a utilização de IA pelos seus criadores e, simultaneamente, outras empresas estão a aproveitar os benefícios.
O verdadeiro papel da IA no desenvolvimento de software
A IA evoluiu muito nos últimos anos e agora está em toda parte. Atua como um aliado dos desenvolvedores na área de Desenvolvimento de Software. Normalmente penso nele como um “amigo” altamente experiente que está sempre disponível para nos ajudar a encontrar uma solução para qualquer problema ou ajudar a decodificar um código complexo.
IAs, como o GitHub Copilot, fornecem aos desenvolvedores sugestões de código relevantes em tempo real, reduzindo significativamente o tempo e o esforço necessários para escrever novas linhas de código, mas esses trechos de código são apenas ideias. Ele não conhece todo o contexto de um aplicativo e devemos ter cuidado para não implementá-los descuidadamente, pois isso poderia introduzir novos bugs ou brechas de segurança.
GitHub publicou os resultados de um enquete de mais de 2.000 desenvolvedores em 2022 para compreender o impacto que o Copilot teve na produtividade e na felicidade dos desenvolvedores. Ao usar o Copilot, 88% se sentiram mais produtivos, 74% ficaram mais satisfeitos no trabalho e 96% disseram que eram mais rápidos em tarefas repetitivas. Com base na minha experiência com ele, essas estatísticas são bastante precisas. O Copilot é uma ótima ferramenta para economizar tempo e ajuda a reduzir erros de sintaxe e refatorar códigos não complexos.
Por outro lado, IAs como o ChatGPT são projetadas para auxiliar em uma gama mais ampla de tarefas, não apenas na codificação. Pessoalmente, costumo usá-lo como uma ferramenta para aprender novos conceitos ou bibliotecas em conjunto com a documentação oficial.
Concluindo, a IA complementa nosso trabalho como desenvolvedores de software, mas não substitui o valor da visão humana, da criatividade e da capacidade de resolução de problemas. Em vez disso, complementa essas qualidades, permitindo-nos concentrar-nos nas coisas divertidas e não nas tarefas repetitivas, aumentando a satisfação e a produtividade e tornando a codificação mais eficiente.
Olhando para o futuro, acredito que estamos apenas começando com a IA na codificação. É provável que vejamos ainda mais ferramentas que oferecerão mais ajuda em tempo real, detectarão erros antecipadamente, levarão em conta o contexto de todo o aplicativo e até delegarão completamente algumas tarefas a ele. Mas a verdadeira virada de jogo será quando essas ferramentas realmente entenderem o que estamos tentando fazer. É um momento emocionante para ser um desenvolvedor!
Se você gostou disso, não deixe de conferir nossos outros artigos sobre IA.
- Um guia para inserir IA em seu fluxo de trabalho
- A Ética da IA: Um Desafio para a Próxima Década?
- Mitos sobre IA e segurança no emprego: os robôs acabarão com nossos empregos?
- Ferramentas de teste de software de IA e aprendizado de máquina em entrega contínua
- Os obstáculos da implementação de IA e robótica no setor de saúde
Fonte: BairesDev