[ Article ]
Une application qui dépend d’OpenAI est-elle économiquement viable à moyen terme ?

Gilles Guirand

Emmanuel Cathelain
Publié le 27 avril 2023
Dans la tech de nombreux sujets vont et viennent au fil des ans, mais un sujet en particulier intrigue autant qu’il divise depuis de nombreuses années : l’intelligence artificielle !
Beaucoup d’IA présentées jusqu’ici ont pu être pour beaucoup assez déceptives, on était face à du “if” imbriqué dans du “if”, lui-même imbriqué dans du… vous avez compris !
Mais depuis quelques mois nous sommes confrontés à l’apparition d’outils comme chatGPT ou encore Copilot. Certains sont tentés de se jeter à corps perdus dans cette nouvelle technologie tandis que d’autres sont extrêmement frileux.
Je vous propose donc un petit tour d’horizon et de voir ensemble quelle utilisation l’on peut en faire dans le développement web.
Un bon début pourrait être de se demander : quel type d’IA nous utilisons dans le dev ? Les outils d’IA peuvent être classés dans différentes catégories.
D’une part, il y a ceux dits “prédictifs” qui utilisent des algorithmes pour analyser les données et fournir des prévisions ou des recommandations dans votre environnement de développement intégré (IDE).
Ils sont utiles, mais ne sont pas vraiment considérés comme de l’IA à part entière bien qu’ils apprennent de votre manière de coder.
D’autre part, il y a ceux dits de “deep learning” qui sont des systèmes capables de prendre des décisions et d’apprendre de manière autonome, sans être explicitement programmés pour chaque tâche.
L’utilisation de vraies IA est encore relativement rare dans le développement (ou pour des tâches très spécifiques: reconnaissance d’images ou la traduction automatique).
Cependant, cela ne veut pas dire qu’elle n’a pas d’impact sur le monde du développement. L’IA “prédictive” peut être très utile pour l’analyse de données et la prise de décisions, et de nombreuses entreprises utilisent déjà des systèmes d’IA pour améliorer leur efficacité opérationnelle.
Ces outils peuvent donc prendre des formes différentes, et il est important de comprendre les nuances entre ses différentes applications.
Quelle que soit la forme qu’elle prend, il est clair pour moi qu’elle peut nous aider dans notre travail, et il est important de comprendre comment l’utiliser de manière efficace et responsable.
L’IA dans le dev est donc, à mon sens, essentiellement un facilitateur. Certains parlent même d’un Google killer !
Elle peut être utilisée pour automatiser des tâches répétitives et fastidieuses, telles que la classification et la catégorisation de grandes quantités de données. Elle peut également aider les développeurs web à gagner du temps et à améliorer leur efficacité et leur code comme nous allons le voir aujourd’hui.
Cependant, il est important de noter qu’elle n’est pas une solution miracle pour tous les problèmes de développement web. Sa mise en œuvre nécessite une compréhension approfondie de la technologie. C’est une très mauvaise pratique de demander, par exemple, à ChatGPT la réponse sur un problème rencontré à propos d’un sujet que l’on maîtrise à peine.
En outre, il est important de prendre en compte les considérations éthiques et de sécurité lors de son utilisation, en particulier en ce qui concerne la confidentialité des données. On doit, par exemple, se poser la question, avant d’intégrer un Copilot ou Copilot X à son IDE. À quoi cette extension a-t-elle accès exactement comme données ? Où vont ces données ? Quelle utilisation va-t-on en faire, etc…
Mais dans notre quotidien de développeur on utilise déjà plusieurs types d’IA, et ce, depuis des années pour certaines, comme nous allons le voir maintenant.
Voici donc une liste (non exhaustives) de différents outils qui, pour certains, sont utilisés depuis de nombreuses années :
ChatGPT est une IA basée sur le langage naturel qui peut aider les développeurs web à trouver des réponses à leurs questions techniques. En utilisant l’apprentissage automatique et les modèles de traitement du langage naturel, ChatGPT peut fournir des réponses rapides et précises à des questions telles que « Comment implémenter une fonction de tri en JavaScript ? » ou « Comment configurer un serveur Apache ? ». Il peut également être utilisé pour refactoriser du code, en expliquer un morceau ou encore en commenter.
Pour l’utiliser, je peux simplement poser une question dans un langage naturel dans l’interface utilisateur de ChatGPT et il me fournira une réponse rapide. A titre personnel, j’utilise en général ChatGPT pour trouver des solutions à des problèmes de programmation, refactoriser du code ou pour obtenir des informations sur les technologies que j’utilise. Il me permet en fait de faire la même chose que lorsque j’effectue une recherche sur google et que je consulte des sites comme stackoverflow par exemple. Mais il le fait de manière plus
rapide et contextualisée.
TabNine est un plugin d’auto-complétion qui utilise l’apprentissage automatique pour suggérer du code en temps réel. Il peut aider les développeurs à accélérer leur processus de développement en fournissant des suggestions de code précises et personnalisées en fonction de leur style de codage et de leur projet. Comme toute IA, il devient plus performant au fil du temps.
Une fois que vous installez TabNine, il commencera à générer des suggestions de code intelligentes en temps réel. Il apprendra également de votre style de codage et de vos préférences au fil du temps, ce qui rendra ses suggestions encore plus précises.
IntelliSense est une fonctionnalité d’auto-complétion de code intégrée dans de nombreux IDE. Utilisé par de très nombreux développeurs, et ce, depuis des années. Il utilise des algorithmes d’analyse de code pour fournir des suggestions de code en temps réel en fonction du contexte du code en cours d’écriture.
Pour l’utiliser, vous devez simplement activer la fonctionnalité dans les paramètres de Visual Studio Code. À partir de là, IntelliSense commencera à fournir des suggestions de code contextuelles et à détecter les erreurs de syntaxe et de logique dans votre code. Vous pouvez également personnaliser les paramètres d’IntelliSense pour qu’il corresponde à vos préférences de codage.
GitHub Copilot est un outil d’IA basé sur l’apprentissage automatique qui a été développé par GitHub et OpenAI. Il s’agit d’un plugin pour l’IDE Visual Studio Code qui peut générer du code à partir de commentaires et de descriptions en langage naturel. Il est capable de comprendre le contexte dans lequel le code est écrit et de proposer des solutions pour le compléter, ce qui peut considérablement accélérer le processus de codage.
En utilisant GitHub Copilot, vous pouvez gagner du temps et de l’énergie en laissant l’outil écrire du code pour vous. Il est particulièrement utile pour les tâches répétitives et les sections de code qui prennent beaucoup de temps à écrire. Avec Copilot, vous pouvez générer du code fonctionnel en quelques secondes, ce qui vous permettra de vous concentrer sur des tâches plus importantes et créatives. La force de copilot, c’est sa capacité à comprendre le contexte global et à proposer plusieurs solutions par demande.
Cependant, il est important de noter que tous ces outils ne doivent pas être utilisés pour remplacer complètement la capacité d’un développeur à écrire du code. Ils doivent être utilisés avec prudence et les suggestions de code doivent être examinées attentivement avant d’être implémentées dans un projet. En fin de compte, la qualité du code doit toujours être vérifiée et validée par un développeur compétent.
En résumé, l’IA peut être un excellent outil pour le développeur web. Il faut cependant avoir conscience de ses limites et ne pas s’attendre à ce qu’elle fournisse des résultats parfaits à chaque fois.
Dans le cas de chatGPT, par exemple, rédiger un prompt cohérent et détaillé est une étape cruciale. Les prompts permettent de définir les tâches que l’outil doit accomplir et les résultats attendus. Cela aide à minimiser les erreurs et à obtenir des résultats plus précis.
Les résultats ne seront pas fiables si les données ne sont pas représentatives du réel besoin.
Comprendre et maîtriser ce que l’on demande à l’outil est donc crucial pour éviter les résultats indésirables et une dépendance malsaine à l’IA. Il faut définir clairement les objectifs, comprendre ses limites, maîtriser son fonctionnement, et évaluer ses réponses.
Certaines personnes, lorsqu’on leur parle d’IA, pensent à un effet de mode de plus, d’autres, à l’inverse, sont paniqués et pensent que d’ici à quelques années tous les développeurs seront au chômage, car il n’y aura plus que des product owner ou product manager qui rédigeront des tickets qui seront exécutés par l’IA. Mais pour plusieurs raisons ça n’est pas prêt d’arriver.
Tout d’abord, à l’heure actuelle, l’IA peut avoir des difficultés à comprendre le contexte et les nuances de certaines situations. Par exemple, lors de l’écriture de code, elle peut ne pas être en mesure de comprendre vos préférences et vos intentions en tant que développeur, ainsi que les subtilités du problème à résoudre. Elle peut donc avoir des difficultés à proposer des solutions précises et appropriées en fonction de ces contextes complexes.
L’IA a besoin de grandes quantités de données pour fonctionner efficacement. En matière de développement web, cela peut signifier qu’elle peut avoir des difficultés à proposer des solutions cohérentes si elle n’a pas accès à suffisamment de données pertinentes pour la tâche spécifique à accomplir. Or, on se voit mal donner un projet complet à ChatGPT pour qu’il ai tout le contexte…
Il est également important de noter que les données peuvent être biaisées, ce qui peut affecter les résultats.
Encore une fois, les prompts doivent être irréprochables tant en termes techniques qu’en terme grammatical et de ponctuation. Vous vous rappelez de la pub : « Et si on mangeait les enfants ? », « Et si on mangeait, les enfants ? », une virgule ça change tout, pour la compréhension de votre prompt par l’IA, c’est pareil !
Nous avons une expérience approfondie des technologies et des langages de programmation nécessaires pour construire des sites web. ChatGPT, par exemple, n’a pas l’opportunité de développer des projets complexes de A à Z. Et c’est pourquoi nous sommes les plus à même de sélectionner les technologies les plus adaptées pour répondre aux
besoins des clients et de résoudre les problèmes techniques complexes.
Nous maîtrisons des concepts tels que les besoins des utilisateurs, la conception graphique, l’UX. Cette compréhension nous permet de créer des sites web esthétiques, intuitifs et faciles à utiliser.
Nous sommes capables de travailler avec d’autres professionnels tels que les graphistes, les chefs de projet et les spécialistes en marketing pour garantir que les sites web répondent aux besoins des clients. On est également en mesure de travailler directement avec des clients pour comprendre leurs besoins et leurs exigences.
Nous sommes confrontés à un environnement en constante évolution, avec l’apparition de nouvelles technologies et de nouvelles tendances en matière de conception.
On doit être capables de s’adapter rapidement aux changements et de rester à la pointe des dernières tendances et technologies pour garantir que les sites web qu’on développe sont à la fois modernes et fonctionnels.
L’innovation est également essentielle dans le domaine du développement web. Il faut être capable de proposer de nouvelles fonctionnalités et de nouveaux concepts pour améliorer les sites web et les rendre plus attractifs pour les utilisateurs. La pensée critique est également importante pour évaluer les avantages et les inconvénients des nouvelles
idées et concepts.
Nous avons la capacité de conseiller nos clients sur les meilleures pratiques deconception et de développement web en fonction de leurs besoins. On peut les aider à comprendre les avantages et les inconvénients de différentes approches et les aider à prendre des décisions éclairées pour leurs sites web.
Je dirais donc pour conclure que les outils qui sont récemment apparus peuvent révolutionner notre façon de travailler mais doivent être utilisés avec prudence et en connaissance de cause. ChatGPT par exemple, est, pour moi, clairement un google killer.
Un collègue fait un parallèle qui me fait sourire, il compare la transition google/chatGPT à celle d’il y a quelques décennies Encyclopédie/Google. Seul l’avenir nous dira s’il a raison.
Mais je serais tenté d’être d’accord avec lui, lorsque nous voyons les produits qui sont apparus encore plus récemment tels que GPT4 qui est multi-modal (il peut prendre en entrée plusieurs types de données tel que du texte et des images), qui peut prendre 25000 tokens contre 3000 avec GPT3.5, et qui est vendu comme plus créatif et collaboratif. Ou encore Copilot X qui intègre désormais un chat, qui est capable de commenter vos pull request ou encore de générer vos commandes dans votre terminal.
Face à la domination des géants technologiques américains et chinois dans le domaine de l’intelligence artificielle, l’Europe s’efforce de développer sa propre IA souveraine. Cette initiative vise à garantir l’indépendance technologique, la protection des données des citoyens européens et le respect des valeurs éthiques de l’UE. Des projets comme BLOOM, un modèle de langage multilingue open-source développé par Hugging Face avec le soutien de fonds publics français, ou encore les efforts d’entreprises comme Mistral AI, illustrent cette volonté de créer des alternatives européennes aux ChatGPT et autres Copilot. L’IA souveraine européenne se distingue par son approche éthique, transparente et respectueuse de la vie privée, en accord avec le RGPD. Bien que ces modèles soient encore en phase de développement et de rattrapage par rapport à leurs homologues américains, ils représentent un enjeu crucial pour l’avenir numérique de l’Europe. Pour les développeurs web, l’émergence de ces outils souverains pourrait offrir de nouvelles opportunités, notamment en termes de conformité réglementaire et de protection des données sensibles dans les projets de développement.
[ Article ]

Gilles Guirand
[ Article ]

Aldo Maldera