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:
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.
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:
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.
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.
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.
À 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!