ChatGPT, Bard ou GitHub Copilot : les développeurs ont fait leur choix

ChatGPT, Bard ou GitHub Copilot : les développeurs ont fait leur choix Les intelligences artificielles génératrices de code offrent la possibilité aux développeurs d'augmenter leur productivité. L'IA peut être utilisée, avant, pendant et après le développement d'un produit.

Depuis plusieurs mois, les nouveaux services d'intelligence artificielle générative bouleversent de nombreux secteurs d'activité. Le développement informatique, loin d'être épargné, connaît une transition rapide. Depuis la fin de l'année 2022 et l'avènement de ChatGPT, de nombreux outils basés sur l'IA ont vu le jour, boostant encore un peu plus la productivité. Très rapidement, les développeurs ont testé ces outils avant de les intégrer dans leur workflow quotidien.

ChatGPT, Claude 2, Bard… La majorité des intelligences artificielles génératives sont en capacité de générer du code, dans une flopée de langages. La structuration des réponses et la logique applicative étant radicalement différentes d'un modèle à l'autre, les développeurs ont rapidement identifié des usages spécifiques pour chaque outil. Certaines technologies seront ainsi davantage pertinentes dans la logique algorithmique quand d'autres seront meilleures dans l'optimisation de code. Nous analysons ici les possibilités offertes par les générateurs de code les plus populaires du marché.

GitHub Copilot, l'assistant du développeur au quotidien

Lancé en juin 2021, GitHub Copilot est aujourd'hui l'assistant au quotidien de nombreux développeurs. Il permet de générer du code dans des dizaines de langages de programmation au moyen d'une simple commande textuelle. Les développeurs l'ont rapidement adopté  en raison de sa fonctionnalité principale, l'autocompletion : l'IA de GitHub  analyse le code et suggère ensuite au programmeur les prochaines lignes. GitHub Copilot possède un avantage concurrentiel notable, il est capable de comprendre "le style et les conventions de codage individuelles", d'un développeur, détaille Mario Rodriguez, VP product Management chez GitHub.

Sur le marché, trois offres sont actuellement disponibles. Une version gratuite à destination des enseignants, des étudiants et des responsables de projet open source dits "populaires". Une version premium, accessible en licence individuelle pour 10 dollars par mois ou 100 dollars à l'année. Enfin, la société détenue par Microsoft propose une offre business pour les entreprises à 19 dollars par utilisateur et par mois. Cette dernière offre une gestion globale des licences, un support proxy et la gestion des politiques à l'échelle de l'entreprise. La version business est également censée garantir la confidentialité des données traitées par l'IA.

Chez Kaliop, agence web implantée à Montpellier, Paris, Londres, au Canada et en Pologne, certains développeurs ont intégré GitHub Copilot à leur routine quotidienne, notamment pour le développement web et le développement mobile. L'entreprise les accompagne aujourd'hui en achetant systématiquement des licences. "Par défaut, Copilot va potentiellement utiliser l'interaction avec notre code pour continuer à s'entraîner. Pour nous, il était primordial de prendre des licences pour s'assurer, en tout cas c'est ce que promet Copilot, que le code ne sera pas partagé avec autrui", justifie Marc Hugon, chief technical officer projets chez Kaliop. Le responsable évoque également la parfaite 'intégration de Copilot" avec Visual Studio, l'environnement de développement signé Microsoft.

ChatGPT l'incontournable

C'est très certainement l'IA la plus utilisée par les développeurs. ChatGPT et ses modèles GPT-4 et GPT-3.5 sont sollicités pour répondre à des questions techniques ou pour générer des morceaux complets de code. Désormais, de nombreux développeurs interrogent l'IA plutôt que de rechercher sur des forums spécialisés comme Stack Overflow. Les modèles d'OpenAI, qui alimentent notamment GitHub Copilot, ont été entraînés sur de larges corpus de codes en tous genres. L'IA est aujourd'hui en capacité de produire un code de qualité dans un grand nombre de langages. Attention toutefois, ChatGPT étant victime d'hallucination de manière régulière, des dépendances fantômes peuvent être intégrées au code source. Pour obtenir un résultat de bonne facture, il est nécessaire d'établir un prompt précis et un contexte longuement détaillé.

Judel Fintch, co-fondateur et développeur full-stack chez Fintchweb utilise ChatGPT dans son travail pour la précision technique et la rapidité offerte par l'IA. "ChatGPT optimise et accélère le développement web, surtout dans le domaine du front-end. L'IA peut servir à automatiser certaines phases, notamment en HTML, CSS ou JavaScript", détaille-t-il. Simon Savattier, développeur JavaScript full-stack chez Kiliba, plateforme d'automatisation des campagnes d'emailing, a justement  recours au chatbot d'OpenAI pour produire "du templating HTML" et optimiser son code, notamment les requêtes SQL. "Lorsque j'aborde des bases de données, il y a des situations où 3, 4, 5, voire 6 tables peuvent s'entrecroiser. Dans ces cas-là, pour améliorer l'efficacité des requêtes et économiser des ressources, l'IA générative est extrêmement bénéfique."

Bard, "plus conversationnel"

Dans une logique plus structurelle et algorithmique, Simon Savattier recourt à Bard, le chatbot IA de Google. "Récemment, j'ai commencé à utiliser Bard qui est, disons, un peu plus conversationnel. Il a tendance à procéder de manière séquentielle, c'est-à-dire en suivant les étapes une à une. Dans ce contexte, je l'utilise principalement à des fins de configuration ou pour mener des tests." Par le passé et plus classiquement, le développeur a pu utiliser IntelliCode, un générateur de code intégré de Visual Studio sur le marché depuis 2017. L'autocomplétion est fluide mais beaucoup moins avancée que les derniers générateurs disponibles sur le marché.

La sécurité du code en question

Bien qu'il soit généralement de bonne qualité, le code généré par intelligence artificielle peut parfois présenter des bugs ou des failles critiques de sécurité. C'est notamment le cas avec ChatGPT et Google Bard. "Lorsqu'ils utilisent GitHub Copilot et d'autres technologies d'IA générative, les développeurs doivent prendre les mêmes précautions que pour tout code qu'ils écrivent et qu'ils n'ont pas créé de manière indépendante. Il s'agit notamment de procéder à des tests rigoureux, d'analyser la propriété intellectuelle et de rechercher les vulnérabilités en matière de sécurité", avertit Mario Rodriguez de GitHub. Les solutions pensées pour le développement ont toutefois le mérite de présenter des fonctionnalités avancées de prévention. Avant de générer le code, GitHub Copilot "applique un système de prévention des vulnérabilités" qui détecte et bloque automatiquement les morceaux non sécurisés. Les identifiants codés en dur, les injections SQL, et les injections de chemin d'accès sont notamment détectés par le système. Le filtre de GitHub peut fonctionner même lorsque le code n'est pas écrit en totalité. Une protection supplémentaire qui ne dispense pas d'une revue approfondie du code source.