L'arrivée de l'IA générative a complètement bousculé les éditeurs de programmation. Les extensions habituelles d'autocomplétion sont totalement dépassées maintenant. Une extension Copilot est maintenant capable de :
Le plus connu des copilotes de développement est bien sûr proposé par GitHub, le plus gros site de développement open source.
Comme Github a été racheté par Microsoft en 2018 et que Microsoft est un gros actionnaire de OpenAI, GitHub fonctionne avec ChatGPT. GitHub Copilot est une option payante à 10$ par mois, avec une période d'essai gratuite de 30 jours.
>Malheureusement, comme trop souvent, l'essai est soumis à la saisie d'un moyen de paiement et à un renouvellement automatique implicite. N'oubliez pas de programmer un rappel avant l'échéance pour vérifier si vous aurez toujours besoin de cet abonnement dans 1 mois.
Le terme Copilot a du succès en IA en 2024. En plus de GitHub Copilot, Microsoft renomme son moteur de recherche Bing en Copilot, pour le positionner comme un assistant IA du quotidien.
Pour utiliser GitHub Copilot, il vous faut impérativement :
Une fois l'extension installée, connectez votre compte GitHub à Visual Studio Code.
Dans Visual Studio Code, vous verrez apparaitre deux nouvelles icônes ouvrant les fonctionnalités dédiées :
GitHub Copilot propose deux grandes fonctionnalités : la discussion sous forme de chat (qui vient naturellement du fonctionnement de ChatGPT) et la complétion de codes en cours de frappe.
Dans la colonne de gauche de discussion, tapez votre question. Elle peut être rédigée en Français ou en Anglais.
Voici un exemple de discussion à partir d'une demande de création de fonction de contrôle de validité d'adresse mail, suivi d'une demande de tests unitaires :
Les tests unitaires pour des propositions issues d'IA sont encore plus utiles que d'habitude. L'IA n'est pas du tout infaillible et peut proposer avec un aplomb parfait des incohérences ou des absurdités.
L'autre grand atout de GitHub Copilot est sa capacité à vous assister en temps réel pendant que vous codez.
Par exemple, dans un fichier JavaScript, vous commencez à taper : function validerEmail(. GitHub Copilot vous propose au cours de la frappe de valider le résultat :
En tapant la touche [TAB], vous acceptez la proposition. Avec [ESC], la proposition est rejetée.
Notez que la fonction proposée n'est pas exactement la même que lors de la discussion précédente. C'est une des particularités de l'IA avec son aptitude à proposer plusieurs solutions.
Tous les exemples ici sont évidemment en JavaScript. Mais GitHub connaît bien d'autres langages. Vous noterez qu'il maîtrise aussi parfaitement le français.
Pour le développeur qui ne souhaite pas payer un nouvel abonnement mensuel, ni transmettre ses données, ses habitudes et son code source à des acteurs inconnus, il est possible d'installer des copilotes de développement sur votre machine.
Encore une fois, pour avoir des performances suffisantes en local, il faut une machine avec au minimum 16Go de RAM et idéalement une carte graphique récente. Un mac avec une puce Apple Silicon Mx sera également un bon choix.
LM Studio est un logiciel de gestion des modèles LLM (Large Language Model) avec une interface de conversation et de configuration très avancée. Il est disponible sur mac et Windows.
Voici un exemple de discussion sous LM Studio, avec une demande simple de créer une fonction de formatage de valeurs en octets. Le modèle répond par un code, une explication et des tests unitaires. C'est parfait :
Ollama.ai est uniquement un server d'exécution de LLM disponible sur mac et linux. L'installation sur Windows est possible uniquement avec WSL (Windows Sub Linux).
Ollama ne propose pas d'interface de discussion et de configuration. Tout passe par le terminal.
Voici un exemple de réponse à une demande de création d'une fonction de formatage de fréquence. La réponse est très rapide et très pertinente :
Le format n'est evidemment pas très lisible car il est en fait prévu pour être appelé dans une application cliente de conversation. Nous allons voir tout de suite leur utilisation.
Github copilot est une extension de Visual Studio Code incroyablement performante. Elle parvient à comprendre le contexte de votre environnement de développement et à proposer des idées de code très souvent pertinentes et performantes. Elle fait clairement gagner du temps, surtout sur des langages ou des fonctionnalités que vous maîtrisez un peu moins bien. Mais elle est payante et nécessite de transmettre vos données à Microsoft et à OpenAI.
Après le mois d'essai Github, j'ai décidé de tester les solutions locales pour être autonome. Il n'existe pas encore pour le moment une extension qui remplace complètement Github copilot avec ses deux grandes fonctionnalités, l'autocomplétion et la zone de discussion.
Continue est une extension gratuite pour Visual Studio Code qui propose une interface de discussion. Elle est disponible sur le marketplace de Visual Studio Code. Elle permet de se connecter à de nombreux moteurs de modèles LLM, en ligne ou sur le réseau local. Malheureusement, elle ne permet pas encore de générer de l'autocomplétion pendant la frappe. On peut engager une discussion dans la colonne de gauche de l'application
Elle est disponible sur le marketplace. Elle fonctionne uniquement avec le moteur Ollama et propose de l'autocompletion efficace. Voici par exemple ce qu'elle suggère pour la frappe de notre fonction de formatage de taille de fichiers :
Llama Coder se place dans le footer de l'éditeur, en bas à droite :
Les logiciels d'exécution ne sont pas les plus importants. Le véritable enjeu est de trouver le bon modèle de langage qui soit à la fois performant dans ses réponses et suffisament rapide pour répondre en temps réel lors de la frappe de code. Généralement les modèles les plus lourds en taille sont les plus pertinents, mais aussi les plus lents.
N'activez pas deux copilotes d'autocomplétion simultanément. Les propositions de codes se mélangent et deviennent envahissantes.