O conceito de máquinas inteligentes, que podem evoluir e enriquecer a sua base de código com autonomia, tem sido um tema popular na ficção científica. Desde romances como o “”Neuromancer”” de William Gibson a filmes como “”Her”” ou “”Ex Machina””, temos histórias que exploram as implicações da autonomia das máquinas e o seu impacto potencial no futuro da humanidade.
No entanto, estamos agora à beira desta nova era tecnológica, onde os computadores podem, até certo ponto, desenvolver código de forma autónoma, dada uma intenção explícita de um ser humano. Este é o campo do Machine Programming, onde a Inteligência Artificial (IA) combina técnicas de engenharia de software, linguagens de programação e machine learning para criar algoritmos e modelos que podem gerar código automaticamente.
O objetivo do Machine Programming é o de tornar a programação mais rápida, acessível e fácil, para especialistas e não especialistas. Tal será alcançado automatizando tarefas como:
- Escrita e sintetização de código;
- Verificação de código;
- Testes;
- Manutenção.
Como resultado, obteremos uma maior produtividade no desenvolvimento de software, a redução do tempo e dos recursos necessários para projetos de desenvolvimento de software, e o aumento da qualidade do software por via da diminuição do erro humano e por via de um maior foco do programador na vertente funcional.
Evoluções Recentes no Machine Programming
Nos últimos anos, temos assistido ao surgimento de várias aplicações comerciais de Machine Programming, como por exemplo o Merly Mentor, o GitHub Copilot e o OpenAI Chat GPT. Estas são ferramentas que estão a ajudar a aumentar a capacidade das equipas de desenvolvimento e a qualidade do código desenvolvido:
Merly.ai, o assistente de IA
A Merly.ai fornece um assistente de IA que ajuda os programadores a entender, corrigir e manter código complexo, ao mesmo tempo que fornece informações, rastreamento e resumos sobre a qualidade do código, e respetivas tendências ao longo do tempo, perseguindo uma visão na qual os programadores um dia deixarão de ter que fazer debugging.
No artigo MP-CodeCheck: Evolving Logical Expression Code Anomaly Learning with Iterative Self-Supervision pode ficar a saber mais sobre como o Merly Mentor (anteriormente designado MP-CodeCheck) deteta anomalias de código.
GitHub Copilot, o AI pair programmer
O GitHub Copilot é um AI pair programmer que usa o OpenAI Codex para sugerir código e funções em tempo real, totalmente integrado no IDE do programador. Segundo a própria GitHub, esta ferramenta demonstra ter um impacto real na produtividade e felicidade das equipas de desenvolvimento de software.
OpenAI Chat GPT, o chatbot
O OpenAI Chat GPT é um chatbot que pode gerar fragmentos de código em várias linguagens de programação, com base em exemplos imediatos, aproveitando o poder do modelo Generative Pretrained Transformer (GPT-3) da OpenAI. O código gerado é mantido em contexto na conversação, durante a qual é possível pedir alterações, melhorias e correções ao código já produzido, como se estivéssemos em diálogo com um verdadeiro ser humano.
Veja, neste vídeo, como Theo Brown demonstra as capacidades do GitHub Copilot e do Chat GPT, destacando o seu potencial como ferramentas valiosas para programadores:
Estes exemplos representam tecnologias muito recentes que, já nesta fase, apresentam resultados extremamente surpreendentes. Este facto poder-nos-á levar a concluir que há um potencial gigantesco por detrás das possibilidades do Machine Programming porque ainda estamos apenas no princípio de uma história com muitos capítulos.
O Futuro do Machine Programming
À medida que o Machine Programming continua a evoluir, podemos esperar disrupções muito significativas no setor de TI. Os programadores poderão deixar de escrever código e passar apenas a fornecer intenções a um assistente de IA que converte essas intenções em código.
Isto tornará a programação mais acessível para pessoas com menos competências de programação, aumentando a capacidade global para o desenvolvimento de soluções digitais.
Portanto, é fundamental entender os benefícios desta tecnologia, experimentá-la em projetos-piloto e recolher uma aprendizagem da utilização destas ferramentas.
Acompanhar o ritmo do Machine Programming, área que se encontra em rápida evolução, será uma das chaves para o sucesso no futuro digital.
Concluindo, a era do Machine Programming aproxima-se rapidamente e terá um tremendo impacto na indústria de TI. A adoção e adaptação a essa mudança posicionará muitas organizações para o sucesso digital nos próximos anos.
Na Axians é isso que vamos procurar fazer, endereçando com sucesso os desafios de uma sociedade digital!