« Avec l’IA disponible à chaque étape, nous pouvons fondamentalement redéfinir la productivité des développeurs, affirme Thomas Dohmke, PDG de GitHub. Nous réduisons les tâches répétitives et manuelles et facilitons les travaux complexes tout au long du cycle de vie du développeur. Ce faisant, nous permettons à chaque développeur de concentrer toute sa créativité sur l’essentiel : construire l’innovation de demain et accélérer le progrès humain, aujourd’hui ».
Grâce à ChatGPT, l’intelligence artificielle est entrée dans la pratique des utilisateurs du monde entier, mais bien avant, les développeurs ont bénéficié des capacités de GPT-3 pour la génération de code alimentée par l’IA. Selon Github, « moins de deux ans après son lancement, GitHub Copilot écrit déjà 46 % du code et aide les développeurs à coder jusqu’à 55 % plus rapidement ».
Une interface vocale pour générer du code
Copilot utilise l’apprentissage automatique pour aider les développeurs à écrire du code en suggérant et en complétant des extraits de code en temps réel. Pour utiliser Github Copilot, les développeurs doivent installer l’extension dans leurs éditeurs IDE (Integrated Development Environment), tel que Visual Studio Code et une variété d’autres langages de programmation. Après avoir installé l’extension, le développeur peut commencer à taper du code et Copilot X fournit des suggestions en temps réel. Il peut également compléter des fonctions ou des classes entières sur la base des données fournies par le développeur.Pour cette nouvelle édition, la plateforme pour développeurs propose une nouvelle interface de tchat axée sur les scénarios des développeurs et s’intégrant nativement à VS Code et Visual Studio. Présentée comme un axe de développement majeur de Copilot, cette fonction vocale rejoindra l’extension de la technologie d’IA « voice-to-code » présentée récemment, et que GitHub nomme désormais Copilot Voice. L’extension permet aux développeurs de donner verbalement des instructions en langage naturel. En somme, il s’agit d’écrire du code sans clavier.
Des conversations contextuelles pour la résolution des problèmes
Cette interface vocale fait bien plus que suggérer du code, elle reconnaît le code tapé et les messages d’erreur affichés. Un développeur peut obtenir une analyse approfondie et des explications sur ce que les blocs de code sont censés faire, générer des tests unitaires et même obtenir des propositions de correction de bogues.Grâce au tchat, Copilot X permet des conversations contextuelles pour la résolution d’un problème, ou pour expliquer un morceau de code. Une fonction qui permet de passer en revue le code pour détecter les erreurs et demander à Copilot X de les corriger. L’IA assistante est à présent capable de mener des tests unitaires. Il peut même signaler les tests unitaires manquants et générer de nouveaux cas de test après chaque compilation.
Intégrer dynamiquement des informations sur les modifications du code
Parmi les nouveautés, les demandes d’extraction alimentées par GPT-4 ajoutent la prise en charge des balises alimentées par l’IA dans les descriptions de demandes d’extraction par le biais d’une application GitHub, et que les administrateurs et les propriétaires de dépôts individuels peuvent installer. Ces balises sont automatiquement remplies par GitHub Copilot en fonction du code modifié. Les développeurs peuvent ensuite revoir ou modifier la description suggérée.« Ce n’est là qu’une première étape que nous entreprenons pour repenser la façon dont les demandes de téléchargement fonctionnent sur GitHub, détaille Thomas Dohmke. Nous testons en interne de nouvelles fonctionnalités qui permettront à GitHub Copilot de suggérer automatiquement des phrases et des paragraphes au fur et à mesure que les développeurs créeront des demandes de téléchargement en intégrant de manière dynamique des informations sur les modifications du code ». Github prépare également une nouvelle fonction dans laquelle Copilot avertira automatiquement les développeurs s’il leur manque des tests pour une demande d’extraction et leur suggérera des tests potentiels qui pourront être édités, acceptés ou rejetés en fonction des besoins d’un projet.