Como a IA facilita a vida dos desenvolvedores e ajuda todos a aprender sobre desenvolvimento de software

Por John Roach 

 

Desde que Ada Lovelace, uma matemática considerada a primeira programadora de computadores, propôs, em 1843, o uso de buracos perfurados em cartas para resolver equações matemáticas em um computador mecânico que nunca foi construído, os desenvolvedores de software têm criado soluções para os mais variados problemas através de instruções passo a passo que os computadores possam entender. 

De acordo com Kevin Scott, Chief Technology Officer da Microsoft, isso está mudando. 

Hoje, as ferramentas de desenvolvimento de software alimentadas por inteligência artificial estão permitindo que as pessoas construam soluções de software usando a mesma linguagem utilizada ao falar com outras pessoas. Essas ferramentas alimentadas por IA traduzem a linguagem natural para as linguagens de programação que os computadores entendem. 

“Isso permite que você, como desenvolvedor, tenha a intenção de realizar algo em sua cabeça e possa expressar em linguagem natural o que deseja. Então, essa tecnologia traduz isso para um código que execute o que você pretende”, comentou Scott. “Essa é uma maneira fundamentalmente diferente de pensar sobre desenvolvimento, desde o início do software.” 

Essa mudança de paradigma é impulsionada pelo Codex, um modelo de machine learning da empresa de pesquisa e desenvolvimento de IA, a OpenAI, que pode traduzir comandos de linguagem natural em código em mais de uma dúzia de linguagens de programação. 

O Codex descende do GPT-3, modelo de linguagem natural da OpenAI que foi treinado a partir de petabytes de dados linguísticos da internet. O Codex foi treinado sobre esses dados de idiomas, assim como com o código de repositórios de software do GitHub e outras fontes públicas. 

“Isso torna a codificação mais produtiva em termos de remover trabalhos não tão divertidos, e também ajudando a lembrar coisas que você pode ter esquecido, bem como a abordagem correta para resolver problemas”, citou Peter Welinder, Vice-presidente de Produtos e Parcerias da OpenAI, sobre o Codex. 

Neste exemplo, um criador trabalhando no motor de renderização gráfica Babylon.js inseriu o comando de linguagem natural, “criar um modelo do sistema solar” na caixa de texto e o software alimentado por IA traduziu o comando em código para um modelo de sistema solar.

O aumento da produtividade que o Codex traz para o desenvolvimento de software é um divisor de águas, de acordo com Scott. Ele permite que os desenvolvedores realizem muitas tarefas que anteriormente levavam duas horas em dois minutos. 

“As ferramentas ajudam você a passar muito rapidamente pelas partes menos interessantes do seu trabalho para que você possa chegar às partes mais interessantes, o que torna a experiência qualitativa de criar muito mais agradável, estimulante e divertida”. 

A IA e o código se unem 

A Microsoft e a OpenAI formaram uma parceria em 2019 para acelerar avanços em IA – incluindo o desenvolvimento conjunto de alguns dos supercomputadores de IA mais poderosos do mundo– e entregá-los aos desenvolvedores para construir a próxima geração de aplicativos de IA através do serviço Azure OpenAI.  

O GitHub, subsidiária da Microsoft, também trabalhou com a OpenAI para integrar o Codex no GitHub Copilot, uma extensão para download para programas de desenvolvimento de software, como o Visual Studio Code. A ferramenta usa o Codex para extrair contexto do código existente de um desenvolvedor e sugerir linhas de código e funções adicionais. Os desenvolvedores também podem descrever o que querem realizar em linguagem natural, e o Copilot se baseará em seu conhecimento prévio e contexto atual para encontrar uma abordagem ou solução. 

O GitHub Copilot, lançado em uma prévia técnica em junho de 2021, sugere hoje cerca de 35% do código em linguagens populares como Java e Python, geradas pelas dezenas de milhares de desenvolvedores na pré-visualização técnica, que usam regularmente o GitHub Copilot. O GitHub Copilot passará para a etapa de disponibilidade geral em breve, trazendo este recurso de codificação assistido por IA para milhões de desenvolvedores profissionais, conforme anunciado hoje pela Microsoft na conferência de desenvolvedores Build. 

“Muitos softwares têm frameworks e partes comuns. O Copilot faz um trabalho incrível de fazer tudo isso por você, para que você possa concentrar sua energia e criatividade nas coisas que está tentando resolver de forma única”, comentou Julia Liuson, Presidente da Divisão de Desenvolvedores da Microsoft, que inclui o GitHub. 

Julia Liuson, presidente da divisão de desenvolvimento da Microsoft, que inclui a GitHub, espera que as ferramentas de hoje sejam a primeira onda de desenvolvimento assistido por IA. Créditos da foto: Microsoft.

De acordo com a Welinder, conforme mais desenvolvedores experimentam o Codex e o GitHub Copilot, mais pistas sobre o potencial do desenvolvimento assistido por IA surgirão. Por exemplo, a documentação de linguagem natural dentro da maioria dos programas de software é escassa. Os usuários do GitHub Copilot criam essa documentação por padrão ao usar a ferramenta. 

“Você recebe um monte de comentários no código, apenas informando a natureza do que fazer ao Copilot”, disse. “Você documenta o código conforme trabalha, o que é incrível”. 

Esses comentários, por sua vez, servem como ferramenta de ensino para outros desenvolvedores, que muitas vezes estudam outros programas para aprender a resolver problemas específicos em seus próprios programas. A capacidade do Codex de traduzir em código a linguagem natural é outra maneira que os desenvolvedores podem aprender à medida que programam, o que diminuirá a barreira de entrada para cargos na área de programação, acrescentou Welinder. 

Do low-code para o no-code 

Enquanto isso, ferramentas de low-code e no-code alimentadas por IA, como as disponíveis através da Microsoft Power Platform prontas para permitir que bilhões de pessoas desenvolvam os aplicativos de software que precisam para resolver seus problemas únicos, desde um fonoaudiólogo digitalizando formulários simples de papel para transformar a prevenção de perda auditiva na Austrália até uma ferramenta que alivia o ônus do trabalho manual de entrada de dados de funcionários de uma empresa familiar e uma solução de nível empresarial que processa bilhões de dólares de pedidos de perdão de empréstimos relacionados à Covid-19 para pequenas empresas. 

De acordo com Charles Lamanna, Vice-presidente Corporativo de Aplicativos e Plataformas de Negócios da Microsoft, hoje as centenas de milhões de pessoas que se sentem confortáveis em trabalhar com fórmulas no Microsoft Excel, um programa de planilhas, poderiam facilmente trazer essas habilidades para a Power Platform, onde poderão construir esses tipos de aplicativos de software. 

Charles Lamanna, vice-presidente corporativo de aplicativos e plataforma de negócios da Microsoft, acredita que ferramentas alimentadas por IA permitirão que bilhões de pessoas desenvolvam software. Foto de Dan DeLong para a Microsoft.

“Um dos grandes esforços que temos em foco é alcançar o próximo nível, indo de centenas de milhões de pessoas para bilhões de pessoas que podem usar essas ferramentas”, ele comenta. “E a única maneira de realmente fazer isso é ir do low-code para o no-code, usando o desenvolvimento baseado em IA.” 

Para isso, a equipe de Lamanna integrou primeiro o GPT-3 com o Microsoft Power Apps em um recurso chamado Power App Ideas, que permite que as pessoas criem aplicativos usando linguagem conversacional no Power Fx, uma linguagem de programação de código aberto para desenvolvimento de low-code com suas origens no Microsoft Excel. O próximo passo, anunciado na Build, é um recurso chamado Power Apps express design, que utiliza modelos de IA dos Serviços Cognitivos do Azure para transformar desenhos, imagens, PDFs e arquivos de design Figma em aplicativos de software. 

“Fizemos isso para que possamos fazer o reconhecimento de imagem e mapeá-lo para as construções que existem dentro de um aplicativo. Entendemos o que é um botão, o que é um agrupamento, o que é uma caixa de texto, e geramos um aplicativo automaticamente baseado nesses desenhos, sem que você tenha que entender e ligar todos esses diferentes componentes”, comentou Lamanna. 

Essa transição do low-code para o no-code com base na IA segue uma tendência geral da computação, de se tornar mais acessível ao longo do tempo. Computadores pessoais eram raros há 40 anos, planilhas eram incomuns há 30 anos, o acesso à internet era limitado há 20 anos, por exemplo. Até recentemente, a edição de vídeo e fotos era reservada para especialistas. 

O desenvolvimento de software também deve se tornar mais acessível, disse Lamanna. 

“Se queremos que todos sejam desenvolvedores, não podemos planejar ensinar a todos como escrever código Python ou JavaScript. Isso não é viável. Mas é possível que, se criarmos as experiências certas e colocá-las na frente de pessoas suficientes, que possam clicar, arrastar e soltar, e usar conceitos que são familiares para eles, soluções incríveis deverão surgir”. 

Desenvolvedores para um futuro alimentado por software

O GitHub Copilot, bem como as ofertas de low-code e no-code, disponíveis através da Power Platform, são a primeira fase do desenvolvimento alimentado por IA, de acordo com Liuson. Ela prevê modelos e ferramentas alimentadas por IA que ajudarão os desenvolvedores de todos os níveis de capacidade a limpar dados, verificar códigos na busca de erros, depurar programas e explicar o que os blocos de código significam na linguagem natural. 

Esses recursos fazem parte de uma visão maior de ferramentas alimentadas por IA, que poderiam servir como assistentes que ajudam os desenvolvedores a encontrar soluções mais rapidamente para seus problemas e ajudar qualquer um que queira construir um aplicativo a passar de uma ideia em sua cabeça para um software que funciona. 

“Como desenvolvedor, todos nós temos dias que ficamos nervosos, dizendo: ‘Por que essa coisa não funciona?’ E consultamos um desenvolvedor mais sênior que nos aponta a direção certa”, Liuson explica. “Quando o Copilot puder apontar coisas como ‘Aqui estão quatro pontos diferentes que são comuns neste padrão de problema,’ isso será incrível. 

De acordo com Scott, essa nova era de desenvolvimento de software assistido por IA pode levar a uma maior produtividade, satisfação e eficiência dos desenvolvedores, e tornar o desenvolvimento de software mais natural e acessível a mais pessoas.   

Por exemplo, um gamer poderia usar linguagem natural para programar personagens que não sejam jogadores no Minecraft para realizar tarefas como construir estruturas, liberando o jogador para atuar em outras tarefas mais urgentes. Designers gráficos podem usar linguagem natural para construir cenas 3D no mecanismo de renderização gráfica Babylon.js. Professores podem usar ferramentas de criação e colaboração 3D como a FrameVR para falar sobre a existência de um metaverso, como uma paisagem lunar com rovers e uma bandeira americana. 

“Você pode descrever para o sistema de IA o que você quer realizar”, disse Scott. “Ele pode tentar descobrir o que você quis dizer e mostrar parte da solução, e então você pode refinar o que o modelo está lhe mostrando. É esse ciclo iterativo que deve fluir de forma livre e natural.” 

Essas ferramentas, acrescentou Scott, também aumentarão as opções dos desenvolvedores em um mundo que será cada vez mais alimentado por software. 

“Como o futuro é tão dependente do software, queremos um conjunto amplo e inclusivo de pessoas participando de sua criação. Queremos que pessoas de todas as origens e pontos de vista possam usar a tecnologia mais poderosa, colocando em suas mãos o poder de resolver os problemas que surjam, ajudando-as a construir seus negócios e criar prosperidade para suas famílias e suas comunidades.” 

Recursos relacionados 


Foto no topo: Kevin Scott, diretor de tecnologia da Microsoft, que diz que as ferramentas alimentadas por IA ajudam os desenvolvedores a passar dos pensamentos em suas cabeças para o código. Foto cortesia da Microsoft.

John Roach escreve sobre pesquisa e inovação na Microsoft. Acompanhe-o no Twitter.

 

Tags: , ,

Posts Relacionados