Header Ads

Por que o copiloto do GitHub não é o fim da programação

Fotografias diversas / Shutterstock. com

O lançamento do Copilot no GitHub atraiu muitas discussões na semana passada. O Copilot pretende ser “ o seu programador de par de AI ” que trabalha junto com você para produzir um código melhor.

Distribuído como uma extensão do Visual Studio Code, o Copilot é como um preenchimento automático muito mais poderoso que pode preencher seções inteiras do código. Ele analisa o que você está escrevendo e sugere novas linhas ou funções independentes inteiras.

A introdução do Copilot causou algum temor de que ele eventualmente substitua os desenvolvedores. Afinal, se ele sabe o que você está escrevendo e pode sugerir o que vem a seguir, não é o mais próximo de um desenvolvedor com tecnologia de IA? É aqui que não é o caso.

O que realmente é copiloto?

Primeiro, é útil explorar o que o Copilot é hoje. A versão prévia é construída no OpenAI Codex, um sistema de IA adquirido pela Microsoft da OpenAI. É um poderoso analisador de código-fonte compatível com dezenas de linguagens de programação populares.

O Codex pretende compreender “ como ” as pessoas usam código. Ele determina o contexto do código que você está escrevendo e sugere o que pode vir a seguir. Ao contrário do preenchimento automático de um IDE, o Copilot é capaz de sintetizar uma nova saída a partir do código que aprendeu. Não é apenas um índice de código visto anteriormente.

Publicidade

O GitHub &’ está citando alguns exemplos específicos como casos de uso importantes. Isso inclui a geração de funções comuns, produção automática de testes de unidade e descoberta aprimorada de código em APIs e bibliotecas. Se você estiver se integrando a uma API comum de terceiros, o Copilot pode ajudá-lo a começar antes de ler a documentação ou copiar um texto padrão.

O sistema também pode automatizar a conclusão de seções de código repetitivas, como uma matriz de objetos com propriedades semelhantes. Você pode escrever os primeiros manualmente e, em seguida, fazer com que o Copilot preencha o restante do array usando seu exemplo. É uma reminiscência de arrastar para baixo os valores das células no Excel.

Até onde vai o copiloto?

No momento, a resposta é “ não muito longe. ” Apesar de toda a “ inteligência ”, “ contextual ” e “ sintetizador ” palavras da moda, o Copilot ainda tem insights limitados sobre suas verdadeiras intenções e o que seu código precisa alcançar.

O Copilot apenas olha seu arquivo atual ao computar sugestões. Ele não avaliará como o código é usado em seu programa. A interpretação do AI do seu trabalho pode ser significativamente diferente da sua e pode variar arquivo por arquivo, mesmo que o verdadeiro raciocínio por trás dos arquivos não mude.

O GitHub também deixa claro que a saída do Copilot não tem garantia de ser a “ melhor ” abordagem ou mesmo código que funciona. Você pode ter problemas de segurança, linhas que usam recursos de linguagem antigos ou obsoletos ou código que simplesmente não funciona ou não faz sentido. Você precisa auditar cada sugestão do Copilot que usar para garantir que seu projeto ainda seja compilado e executado.

O papel real do copiloto no processo de desenvolvimento agora deve ser um pouco mais claro: é uma tecnologia assistiva, destinada a tornar o mundano um pouco mais fácil, não um verdadeiro autômato. Pense nele como um ajudante ou navegador, não como uma forma de desenvolvedor onisciente que escreve seu código para você.

Copiloto não escala

O

Copilot fica melhor quando você permite que ele o ajude a escrever funções que resolvem casos de uso comuns. O que ele não pode fazer é entender o contexto mais amplo de sua base de código. Sem a capacidade de realmente entender suas intenções, a escala do Copilot é limitada.

Publicidade

O GitHub afirma que está trabalhando para tornar o Copilot mais inteligente e útil. Mas até que seja capaz de examinar todo o seu projeto, não um único arquivo, não está claro como sua função poderia ser expandida ainda mais. Em seu estado atual, o Copilot é essencialmente um autocompletar glorificado. Em vez de pressionar tab para preencher automaticamente os nomes das funções da biblioteca padrão, você pode aceitar sugestões para as próprias funções.

Soluções para problemas técnicos abstratos já abundam em sites de programação como Stack Overflow. O Copilot reduz o tempo necessário para pesquisar uma pergunta, revisar as respostas e copiar e colar o código. No entanto, você terá que descobrir como incorporar a solução em seu sistema geral, depois de verificar se a sugestão do Copilot realmente funciona.

O Copilot não está programando de forma alguma. Ele analisa o que você escreveu, infere o que você pode estar tentando fazer e tenta montar algo adequado a partir das soluções aprendidas. O Copilot funciona para você, não o contrário. É incapaz de pensar criativamente, sugerir uma arquitetura de alto nível ou produzir um sistema coeso. Cada sugestão é totalmente independente e derivada exclusivamente do código imediatamente em torno dela no arquivo de origem.

Como o próprio GitHub admite, o Copilot realmente depende de você. A ferramenta funciona melhor quando sua base de código é organizada logicamente em pequenas funções com tipificações claras, comentários e blocos de documentos. Se você quiser os melhores resultados, precisará liderar o Copilot escrevendo código de alta qualidade por conta própria.

E quanto ao licenciamento?

O Copilot foi treinado usando projetos públicos do GitHub com uma ampla variedade de licenças. De acordo com o GitHub, isso representa o uso justo desses projetos. O que é menos claro são as suas responsabilidades caso você aceite uma sugestão do copiloto.

Publicidade

O GitHub diz que a saída do Copilot &’ “ pertence a você ” e “ você é responsável por isso. ” Ele afirma explicitamente que você não precisa dar crédito ao Copilot ou a qualquer outro autor se usar um trecho sugerido. A empresa deseja apresentar o Copilot como um “ sintetizador de código ” que produz saída original, não um mecanismo de pesquisa de snippets indexados.

É aqui que o problema começa. O Copilot ainda tem uma chance de gerar seções de código literalmente. Dependendo das licenças que envolvem esses trechos, isso pode colocar seu próprio projeto em maus lençóis. Como o Copilot foi treinado em projetos do GitHub, você pode até descobrir que dados pessoais são injetados em seus arquivos de origem.

Esses eventos são raros. Eles são considerados mais prováveis ​​se o contexto do código circundante for fraco ou pouco claro. Os exemplos vistos até agora incluem o código Quake licenciado pela GPL emitido no estado em que se encontra (completo com linguagem profana) e o texto do site de um indivíduo real e links sociais que aparecem quando o Copilot pensa que você está escrevendo um “ sobre eu ” página.

A GPL e outras licenças semelhantes estipulam que os trabalhos derivados devem incluir as mesmas permissões, portanto, incorporar o código GPL a um produto comercial é uma violação de licença. Consequentemente, o uso do Copilot tem sérias ramificações legais anexadas que você deve avaliar antes de instalá-lo. Como o Copilot parece emitir código literalmente, sem indicar a licença que acompanha o snippet, você pode, sem saber, cometer violação de direitos autorais ao aceitar uma sugestão.

Isso deve confirmar sem sombra de dúvida que a versão inicial do Copilot não substituirá um desenvolvedor humano. O código que ele emite não tem garantia de ser relevante, pode estar quebrado ou desatualizado e pode até representar um risco legal.

Conclusão

Copilot &’ é um projeto ambicioso que atraiu muita discussão. O nível de debate indica que muitas pessoas têm sentimentos fortes sobre a ideia. Já faz um tempo que uma nova ferramenta de desenvolvedor atraiu tanto barulho no primeiro dia.

Publicidade

Copilot &’ é atraente porque pode causar várias frustrações ao desenvolvedor. A maioria, senão todos, os programadores percebem a ineficiência ao escrever “ clichê ” código que não seja muito específico para o projeto. Considerando o valor de face do Copilot, eles agora têm uma solução que libera mais tempo para trabalhar nos aspectos criativos de seu trabalho.

Onde o Copilot cai é a abordagem geral do GitHub para treinar o modelo. A inclusão de código licenciado pela GPL e a completa falta de qualquer forma de teste de saída são omissões que irão dificultar o uso do Copilot no mundo real. Não está claro se a decisão do GitHub de treinar o modelo usando código público realmente se enquadra no uso justo; há especulação de que não, em pelo menos algumas jurisdições.

Além disso, a incapacidade do GitHub de verificar se o código do Copilot realmente funciona significa que os desenvolvedores ainda precisarão ter cuidado e revisar tudo o que ele escreve. Uma grande parte da promessa do Copilot é ajudar o progresso de desenvolvedores inexperientes, mas isso não acontecerá se um código potencialmente problemático for sugerido e aceito.

Finalmente, o Copilot não fornece nenhuma indicação de como ou por que suas sugestões funcionam. Se for para realmente substituir os desenvolvedores humanos, ele deve ser capaz de explicar o funcionamento de uma solução e fornecer visibilidade sobre as decisões tomadas. Os desenvolvedores não podem confiar cegamente na máquina; sempre haverá necessidade de supervisão e avaliação de diferentes soluções.

O como e por que também é o maior desafio que um desenvolvedor enfrenta no início de sua carreira, o que impede o papel do Copilot como ferramenta de mentoria. Qualquer pessoa pode copiar o código-fonte de projetos públicos, documentação, seus colegas ou Copilot, mas, em última análise, está adquirindo a compreensão de por que as soluções funcionam para que você progrida em sua carreira.

O Copilot em sua iteração atual não aborda isso – ainda depende de você descobrir o que o código inserido faz. Mesmo um desenvolvedor que confia regularmente no Stack Overflow terminará em um lugar melhor, pois estará lendo as respostas e aprendendo o raciocínio por trás das soluções. O Copilot é uma caixa preta que pode ser vista como um repositório de sugestões de código perfeitas; as evidências até agora mostram que isso está longe de ser o caso.

Nenhum comentário