Ferramentas de programação de inteligência artificial, como o Amazon CodeWhisperer e o GitHub Copilot, contribuem para a eficiência de programadores experientes e iniciantes, representando apenas o início dessa evolução.

Na semana passada, o CEO do MongoDB, Dev Ittycheria, fez uma comparação entre a inteligência artificial atual e a fase inicial da era da internet. Essa analogia não está errada. Recentemente, sugeri que estamos vivendo a fase inicial e desajeitada da inteligência artificial generativa (genAI), semelhante à fase da “criança desajeitada”. Embora cheia de emoção, com tarefas simples sendo realizadas de forma desajeitada, como a matemática básica. No entanto, em algumas áreas, o futuro da inteligência artificial generativa já está em desenvolvimento, como na programação de assistentes como o Amazon CodeWhisperer.
Certamente, é comum ouvir relatos sobre alguém criando um aplicativo bancário complexo para um grande banco em apenas dois minutos usando um simples prompt de comando, porém, esse tipo de exagero não é útil. O que os desenvolvedores práticos estão fazendo atualmente para aproveitar a inteligência artificial genAI e aumentar sua eficiência?
Essa foi a questão que fiz a Doug Seven, gerente geral do Amazon CodeWhisperer e diretor de desenvolvimento de software para Amazon Q, na AWS. Conforme Seven afirma, os desenvolvedores em qualquer fase de suas carreiras podem e certamente devem aproveitar ao máximo o gener AIative hoje. O segredo na AWS é permitir que os desenvolvedores se concentrem mais em seu código e menos em todas as palavras-chave que permeiam o cenário de inteligência artificial.
Dicas e recomendações importantes de desenvolvedores sobre codificação utilizando Inteligência Artificial.
O impacto da região amazônica.
Em primeiro lugar, qual é a função das ferramentas como CodeWhisperer e Amazon Q (um assistente de chatbot alimentado por genAI)? Em termos simples, o CodeWhisperer auxilia no processo de criação de software, fornecendo orientações de codificação com base no contexto. Conforme o desenvolvedor insere comentários no código, o CodeWhisperer interpreta esses comentários para entender as ações do desenvolvedor e oferece sugestões de código. Além disso, o CodeWhisperer pode analisar o código em busca de vulnerabilidades de segurança, alertar sobre elas e ajudar na correção.
No ano passado, a empresa AWS lançou o CodeWhisperer, que agora possibilita a personalização das sugestões de codificação. Isso significa que as empresas podem ajustar o CodeWhisperer de acordo com suas próprias diretrizes internas, bibliotecas privadas e convenções de codificação específicas, tornando-o mais alinhado com suas preferências corporativas. Isso resulta em um código que se assemelha mais ao código interno da empresa do que a códigos genéricos, conforme explicado por Seven.
Amazon Q atua como um assistente que pode ajudar a explicar códigos, refatorá-los ou depurá-los, permitindo que os desenvolvedores continuem codificando enquanto Q executa tarefas.
Está tudo bem e é fascinante. Atualmente, muitas pessoas estão utilizando ferramentas como GitHub Copilot, Google Codey, ChatGPT, entre outras. No entanto, a abordagem da AWS se destaca de forma única, apresentando algo distintamente característico da Amazon.
Não só para utilização de serviços AWS.
Desde o seu início, a AWS tem se dedicado a facilitar a carga “indiferenciada” que os desenvolvedores enfrentam ao configurar servidores, gerenciar bancos de dados e outras tarefas. Essa mesma abordagem é aplicada pela empresa à inteligência artificial generativa. Com a saturação do mercado de AI, torna-se desafiador distinguir a informação relevante do excesso de informações, como foi recentemente mencionado. Ao abordar como a AWS pretende lidar com esse problema, o entrevistado destacou que o CodeWhisperer tem a vantagem de simplificar todo o processo científico por trás da inteligência artificial generativa.
Em resumo, os desenvolvedores não precisam se preocupar com tecnologias complexas como modelos de linguagem grande (LLMs) ou geração aumentada de recuperação (RAG). O CodeWhisperer ajuda os desenvolvedores a escrever código de forma mais eficiente, sem que eles precisem lidar com esses processos em segundo plano. Isso é uma excelente notícia para os desenvolvedores, pois podem melhorar o treinamento de seus assistentes de codificação sem necessidade de conhecimento técnico avançado, contando com a ajuda da AWS e suas ferramentas associadas para tornar o processo mais simples. Em resumo, os desenvolvedores podem fornecer seus repositórios e deixar a AWS cuidar do resto, utilizando uma variedade de técnicas nos bastidores.
A AWS não se limita aos seus próprios serviços para o CodeWhisperer, apesar de buscar uma experiência de alta qualidade com serviços como Aurora para MySQL. De acordo com Seven, o objetivo do CodeWhisperer é ajudar os desenvolvedores em suas tarefas, incluindo aqueles que utilizam diferentes nuvens ou servidores locais. O objetivo não é restringir o CodeWhisperer apenas aos serviços da AWS, mas sim torná-lo eficaz em todas as atividades dos engenheiros de software.
GitHub Copilot e outros assistentes de programação de terceiros têm mais eficiência ao integrar-se com os serviços da AWS em comparação com o CodeWhisperer? Não, desde que a AWS possa oferecer suporte. “Dedicamos muitos esforços para garantir que sejamos os melhores em utilizar os recursos da AWS do que qualquer outro”, afirma Seven.
Codificação utilizando o CodeWhisperer.
De que forma um programador deve iniciar? Mesmo com os esforços da AWS para simplificar a ciência de dados, em algumas ocasiões pode ser necessário aprender a se expressar de maneira adequada para obter os resultados desejados ao utilizar ferramentas como CodeWhisperer ou genAI. Ainda assim, é possível começar rapidamente e aprender conforme avança.
Essa afirmação é válida tanto para desenvolvedores experientes quanto para aqueles que estão começando no campo, ao utilizarem o CodeWhisperer.
No desafio interno de produtividade da empresa, verificou-se que os colaboradores que utilizaram o CodeWhisperer foram mais propensos (27%) a concluir com êxito um conjunto de tarefas. Além disso, realizaram essas tarefas com uma velocidade 57% maior do que aqueles que não utilizaram o CodeWhisperer, independentemente do seu nível de experiência.
Por quê? Um desenvolvedor pode não ter familiaridade com um SDK específico, e as dicas de código do CodeWhisperer ajudaram a orientar o desenvolvedor após um obstáculo, sem a necessidade de passar muito tempo lendo a documentação. Para desenvolvedores experientes que já têm experiência, o CodeWhisperer ajuda a suavizar os choques de velocidade, permitindo que trabalhem mais rapidamente e percorram o código mais rapidamente. Para desenvolvedores menos experientes, o CodeWhisperer os auxilia com sugestões de código que evitam que fiquem presos. Conforme Seven menciona, “Eles recebem dicas que os ajudam a entender a direção a seguir, o que resulta em menos interrupções para buscar ajuda de outras pessoas”. Todos se beneficiam.
Avançando além da era da tecnologia de inteligência artificial.
Sete observa que são consideradas tanto as abordagens bottom-up (em que um desenvolvedor ou equipe alcança sucesso e o compartilha) quanto as abordagens top-down (com imposição executiva) para a adoção. No entanto, ele não percebe qualquer diminuição no ritmo da inovação em inteligência artificial.
Atualmente, usamos ferramentas como o CodeWhisperer de forma semelhante a uma calculadora, sugere o autor. No entanto, daqui para frente, ele prevê uma colaboração mais estreita entre equipes de engenharia de software e a inteligência artificial, que estará integrada em todas as etapas do ciclo de vida do desenvolvimento de software. Neste cenário iminente, os seres humanos assumirão um papel mais orientador, fornecendo ideias e direcionamento, e supervisionando para garantir que os resultados estejam alinhados com as expectativas e desejos.
Paráfrase do texto: Apesar das promessas emocionantes para o futuro dos desenvolvedores, o presente também oferece benefícios significativos. Ferramentas como o Amazon CodeWhisperer são úteis para desenvolvedores de todos os níveis de experiência. A forma como os desenvolvedores utilizam essas ferramentas depende de sua experiência, mas a recomendação é que as utilizem, sem dúvida.