Du codage par l'ambiance à la programmation assistée par l'IA

L'intelligence artificielle est une aide précieuse pour les programmeurs.

En el'article précédent Nous décrivons les mésaventures d'un expert en intelligence artificielle qui a tenté de créer une application sans aucune connaissance en programmation. Comme promis, dans ce Nous aborderons la transition du codage intuitif à la programmation assistée par l'IA.

Je ne veux pas vous induire en erreur ; cet article est lui aussi théorique et aborde des généralités. J’insiste sur ce point car il est essentiel de démystifier les formations en programmation « vibe ». Dans le prochain article, nous parlerons d’outils spécifiques et de leur installation sous Linux.

Les problèmes du codage vibratoire

La programmation va bien au-delà de la simple écriture de code.Il s'agit de comprendre le problème que vous souhaitez résoudre, comment une application peut le résoudre et quelles technologies disponibles sont les plus adaptées.

Parmi les facteurs à prendre en compte figure la question de la sécurité des données. Si une application est destinée à être utilisée par de nombreuses personnes et nécessite des données sensibles telles que des informations de carte de crédit, il est nécessaire de prendre des mesures pour prévenir les fuites et garantir la continuité des services fournis.

Nous ne parlons pas de risques hypothétiques, mais d'incidents signalés. La plateforme de services cloud d'Amazon (AWS) a subi une interruption de service de 13 heures en décembre dernier. La cause de cette perturbation était l'agent d'intelligence artificielle Kiro, qui a décidé de supprimer puis de recréer une partie de son environnement.

La gravité de ce type d'incidents tient au fait qu'AWS est la plateforme privilégiée par une grande partie d'Internet.
Selon les experts en cybersécurité, les agents d'IA sont généralement déployés dans des environnements limités et pour des tâches spécifiques, et ne sont pas capables de comprendre ce qui pourrait se produire lorsque, par exemple, un système est redémarré ou qu'une base de données est supprimée.

L'année dernière également, la société Replit a lancé un agent d'IA pour créer des applications. Au lieu de cela, il a complètement effacé la base de données de l'entreprise et, comme si cela ne suffisait pas, a falsifié des rapports et menti sur ses agissements.

En intelligence artificielle Un agent est une entité (logiciel ou système) qui a conscience de son environnement et prend des décisions sur la manière d'agir sur celui-ci.Pour atteindre l'objectif fixé, le LLM utilise l'agent pour comprendre le contexte et agir de la manière la plus appropriée afin d'obtenir le résultat escompté.

Du codage par l'ambiance à la programmation assistée par l'IA

Si le problème que nous avons décrit dans l'article précédent était le manque de connaissances du « développeur à l'esprit vif » concernant les technologies disponibles pour créer son application. Dans les deux cas que nous avons cités, tous les problèmes proviennent de l'absence de barrières claires. Aucune instruction spécifique n'a été donnée à l'agent concernant les limites qu'il ne pouvait pas franchir, et aucun système de permissions n'a été mis en place pour l'empêcher d'accéder aux parties du système qui ne le concernaient pas.

Plusieurs utilisateurs particuliers d'OpenClaw, un agent convivial pouvant être hébergé localement et connecté à des modèles d'IA, ont constaté l'absence de définition claire des limites d'utilisation. Ils ont signalé des problèmes allant de la suppression complète de fichiers à une consommation excessive de jetons.
Étapes de la création d'applications assistées par l'intelligence artificielle.

Définir le résultat

Ce sujet est le talon d'Achille du codage par ambiance. Une définition vague n'est pas trop problématique si vous cherchez un minuteur Pomodoro. Mais si vous essayez de créer un portail e-commerce adapté aux besoins de votre entreprise, des problèmes peuvent survenir.
Rappelons le cas évoqué dans l'article précédent. Andrej souhaitait une application qui lui permette d'afficher l'image du plat figurant sur la carte d'un restaurant. Il a commis l'erreur de ne pas se poser les questions suivantes.

De quel besoin spécifique l'utilisateur a-t-il besoin pour l'application ?
Le besoin spécifique de l'utilisateur est de connaître les composants d'un plat figurant au menu (sans avoir à interroger le serveur).

Qui est l'utilisateur ?
De toute évidence, le développeur visait un utilisateur sans connaissance approfondie de la gastronomie, familier avec l'utilisation des téléphones portables et disposant d'argent à dépenser (il prévoyait de vendre des crédits pour utiliser l'application).

Quelles sont les alternatives existantes aujourd'hui ?
Comme je l'ai mentionné dans l'article précédent, vous pouvez aussi demander à Siri ou à Gemini (l'assistant Google d'Android) la composition du plat et leur demander d'en afficher une photo. Si vous souhaitez tout de même créer une application, il existe des bases de données alimentaires avec des API publiques permettant d'afficher des photos.

Les sujets suivants concernent les décisions techniques.

Type d'interface

Pour les utilisateurs Linux, créer une application sans interface graphique est une bonne option pour simplifier le développement et réduire la consommation de ressources. En revanche, une interface graphique rend l'utilisation plus simple et plus agréable. Le type d'interface choisi dépendra du langage de programmation et de l'environnement de bureau.

Langage de programmation.

Linux prend en charge la plupart des langages de programmation courants. Cependant, la capacité des modèles d'IA à les exploiter dépend de la quantité de documentation et d'exemples disponibles dans sa base de connaissances. Nous approfondirons ce sujet dans de prochains articles.

Gestion et sécurité des données

Il convient également de préciser si l'application stockera des données et, le cas échéant, comment. Ceci est primordial si elle traite des informations sensibles telles que des mots de passe ou des données de carte bancaire et interagit avec des services tiers. Dans ce cas, des mécanismes de sécurité doivent impérativement être intégrés.
Il est également important d'attribuer des autorisations strictes afin que l'application n'accède qu'aux fonctions et aux parties du système d'exploitation dont elle a besoin.

Distribution

Nous parlons de Linux. Chaque distribution propose des formats de paquets natifs, auxquels s'ajoutent les formats universels Snap, Flatpak et AppImage. Vous devrez également choisir si votre application disposera d'une interface graphique autonome ou s'intégrera à un environnement de bureau. Enfin, si vous souhaitez bénéficier des contributions de la communauté, vous devrez sélectionner la plateforme collaborative sur laquelle la publier.
Je vous promets que c'est le dernier article théorique ; dans le prochain, nous parlerons spécifiquement de Linux.

L'utilisation d'outils d'IA crée plus de problèmes qu'elle n'en résout lors de la programmation
Article connexe:
Problèmes de codage Vibe et comment les résoudre sous Linux
Il existe plusieurs applications basées sur l'IA qui peuvent être utilisées sous Linux.
Article connexe:
Outils basés sur l'intelligence artificielle pour la programmation sous Linux