J’ai créé deux applications rien qu’avec ma voix et une souris : les environnements de développement intégré (IDE) sont-ils déjà dépassés ?
<div>
<strong>Les points clés sur le développement applicatif uniquement par la voix</strong>
<ul>
<li>Le codage par IA remplace l'édition et le débogage par des instructions et des conseils.</li>
<li>Le terminal associé à l'IA remplace les environnements de développement traditionnels.</li>
<li>Les IDE sont désormais réduits à de simples outils de compilation et de déploiement.</li>
</ul>
<hr />
Mon petit chien Pixel n'aime pas mon clavier de canapé. Il occupe souvent une place sur mes genoux que mon Yorkipoo de 12 ans considère comme son territoire souverain. À ses yeux, la qualité des câlins ne doit pas être compromise simplement parce que je veux écrire ou coder un peu.
C'était le cas hier soir, lorsque mon adorable petit chien a grimpé sur mon épaule, s'est blotti contre moi et s'est endormi.
C'est aussi à ce moment-là que j'ai réalisé que les environnements de développement puissants comme <a href="https://www.zdnet.fr/actualites/pourquoi-je-passe-a-vs-code-indice-merci-lintegration-des-outils-dia-477410.htm">VS Code</a> et <a href="https://www.zdnet.fr/actualites/xcode-26-3-comble-enfin-son-retard-avec-la-programmation-automatisee-489405.htm">Xcode</a> sont en réalité obsolètes.
<h2>Mes projets de codage</h2>
Je travaille sur deux projets de programmation Apple, qui fonctionneront chacun sur iPhone, iPad, Mac et Apple Watch. Je développe au total huit binaires qui seront distribués via l'App Store d'Apple.
<h3>Gestion de filament</h3>
L'un des projets concerne la gestion des filaments et m'aide à suivre les bobines de filament pour imprimantes 3D. Je possède 120 bobines réparties sur quatre rayonnages de stockage, chacun comportant cinq étagères. Les bobines sont constamment déplacées entre les rayonnages et mes huit imprimantes 3D. Cinq des imprimantes peuvent utiliser quatre bobines à la fois, une peut en utiliser huit, et deux sont limitées à une bobine chacune.
L'application iPhone utilise des balises NFC pour faciliter au maximum le suivi des mouvements de ces bobines et utilise l'appareil photo intégré pour prendre des photos de chaque bobine à titre de référence. L'application Watch vérifie et met à jour l'emplacement, tandis que l'application Mac offre une vue d'ensemble de l'inventaire des filaments sur le bureau.
<h3>Gestion de patron de couture</h3>
Le deuxième projet était initialement basé sur le système de gestion des filaments, mais il est devenu bien plus que cela. Ce projet gère à la fois les patrons de couture physiques et numériques. De nombreux couturiers, comme ma femme, collectionnent des centaines, voire des milliers de patrons, et il est souvent très difficile d’en garder la trace.
Mon code utilise des balises NFC et des photos pour gérer les patrons physiques. Il intègre également une multitude de fonctionnalités d'IA côté appareil pour analyser les patrons et en extraire le nom, la catégorie, le fournisseur et d'autres données pertinentes. Cette approche évite à l'utilisateur d'avoir à saisir toutes ces informations manuellement dans le programme. L'application de couture ajoute un ensemble complet d'outils et de fonctionnalités de catalogage aux fonctionnalités de base de ce qui était à l'origine l'application de gestion des filaments.
L'application de gestion des filaments est déjà bien avancée. Je l'utilise depuis environ trois mois. Et je suis sur le point de commencer à ajouter les différentes fonctionnalités d'achat intégré. L'application de patrons de couture en est encore à un stade de développement assez précoce. Il a fallu beaucoup de temps pour que l'IA intégrée à l'appareil fonctionne de manière fiable, compte tenu des nombreuses variations de patrons et de formats, et de la façon dont chaque entreprise procède différemment. Il reste encore de nombreux éléments d'interface utilisateur à concevoir et à intégrer dans les quatre plateformes d'application.
<h2>La nouvelle boucle de codage intuitif</h2>
Ne laissez jamais personne vous dire que vous pouvez coder intuitivement simplement en prononçant quelques mots ou en claquant des doigts. Comme vous pouvez le voir ci-dessus, ces produits sont complexes, même si c'est l'IA qui se charge du codage proprement dit.
À l'époque du codage à l'ancienne, il existait une boucle de développement que l'on pouvait décrire comme suit : éditer → compiler → tester → déboguer, puis revenir à l'étape d'édition.
<a href="https://www.zdnet.fr/guide-achat/5-ide-pour-developper-en-python-39925781.htm">Tous les environnements de développement intégrés (IDE)</a> s’articulent autour de cette boucle. La majeure partie de l’interface de l’IDE s’organise autour d’une arborescence de fichiers et d’outils d’aide à l’édition, allant de la coloration syntaxique à la complétion de commandes, en passant par de jolis marqueurs verticaux qui indiquent le début et la fin des boucles. L’IDE comprend également un débogueur. Vous définissez des points d’arrêt dans l’éditeur et parcourez le code ligne par ligne, en observant son exécution étape par étape.
Le codage Vibe comporte également une boucle, et celle-ci est très similaire.
Au lieu de « éditer », il s'agit de « donner des instructions », c'est-à-dire d'indiquer à l'IA ce que vous souhaitez. La phase de « construction » reste la même. Le code doit être transformé en un programme fonctionnel. Cette étape s'effectue par l'interprétation ou la compilation, puis l'assemblage du programme.
La phase de « test » reste également la même. Mais au lieu de déboguer vous-même, vous devez guider l'IA. L'IA peut détecter et corriger les erreurs de codage, mais a souvent besoin d'être guidée pour localiser l'origine du problème. Vous ne pouvez pas vous contenter de dire « corrige ça » en supposant que l'IA s'en chargera. Pour un nombre non négligeable de bugs, elle a besoin des conseils d'une personne expérimentée.
La boucle devient donc « instruire → construire → tester → guider », puis revient à « instruire ».
<h2>Ou sont l'édition et le déboguage ?</h2>
Notez que la boucle de vibe coding ne comporte pas vraiment d’éléments d’édition et de débogage. La plupart des gens choisissent et personnalisent leurs environnements de développement pour optimiser l’édition et le débogage, car c’est là que la majeure partie du temps a traditionnellement été consacrée.
Avec le vibe coding, la majeure partie du temps est passée dans une interface de chat, souvent simplement une fenêtre de terminal. Le seul moment où vous devez toucher à l’environnement de développement, c’est pour lancer une compilation. Ensuite, vous exécutez le programme sur lequel vous avez travaillé, vous voyez ce qui fonctionne, puis vous retournez dans l’interface de chat ou de terminal pour guider l’IA.
On ne passe pratiquement plus de temps à utiliser un IDE pour ce pour quoi on avait historiquement besoin d’un IDE.
<h2>Codage d’une seule main</h2>
Cela nous ramène à Pixel. Hier soir, il s’est blotti contre mon épaule gauche, ce qui signifiait que mon bras et ma main gauches étaient occupés. Je ne pouvais donc pas utiliser le clavier physique. Mais je pouvais contrôler ma souris avec ma main droite et parler à l’IA avec ma voix.
J’ai programmé un bouton de la souris pour appuyer sur la touche Entrée, et un autre pour lancer <a href="https://wisprflow.ai/">Wispr Flow</a>, le logiciel de dictée que j’utilise sur mon Mac.
Tout mon travail de codage proprement dit se fait dans <a href="https://iterm2.com/">iTerm2</a>, un programme de terminal MacOS gratuit que j'ai configuré avec plusieurs onglets, un pour chaque projet.
Voici donc comment s'est déroulé mon cycle pendant deux heures hier soir :
<ul>
<li>Gratter le dos du chien et lui dire quelque chose d'apaisant.</li>
<li>Ramener iTerm2 au premier plan.</li>
<li>Cliquer sur le bouton Wispr Flow de ma souris, dicter des instructions à l'IA, puis appuyer sur la touche Entrée de ma souris.</li>
<li>Attendre que l'IA s'exécute, ou passer à un autre onglet et faire la même chose pour un autre projet.</li>
<li>Une fois l'IA exécutée, passer à Xcode (un IDE) et lancer une compilation.</li>
<li>Attendre que mon programme soit compilé, y passer une fois que c'est fait, et le tester.</li>
<li>Revenir au terminal, communiquer les résultats à l'IA et lui donner une nouvelle série d'instructions.</li>
</ul>
J'ai répété ce processus pendant deux heures d'affilée. J'ai considérablement fait avancer les deux projets. La seule chose que j'ai faite dans l'IDE a été de sélectionner l'élément de menu qui envoie le code de test via Apple vers mon appareil.
Si j’avais développé autre chose qu’une application Apple, j’aurais même pu lancer la compilation à l’aide de l’IA. Je n’aurais pas eu besoin d’utiliser un IDE du tout.
<h2>Je commence à penser que les IDE sont obsolètes</h2>
Ce soir, j’ai encore travaillé sur mes programmes. En ce moment, Pixel est blotti contre ma femme, j’ai donc les deux mains libres pour travailler. J'ai passé encore deux heures à « coder » et je n'ai toujours pas utilisé l'IDE Xcode pour autre chose que l'envoi de code vers <a href="https://www.notion.so/IDEs-are-obsolete-and-my-dog-proved-it-to-me-334cc2e83a5e8062ae38cc87d9e5fffe?pvs=21">TestFlight</a>, la passerelle de test de code d’Apple.
L’année dernière, avant de me lancer sérieusement dans le codage de grands projets, je pensais avoir besoin d’un IDE doté d’IA. J’ai donc transféré tout mon code de PhpStorm, un IDE que j’adorais et que j’utilisais pour mes plugins WordPress, vers VS Code. J'ai écrit un article sur ce changement, en insistant lourdement sur l'importance de choisir le bon IDE pour exploiter pleinement les fonctionnalités d'IA.
Je n'avais aucune idée à quel point cette opinion allait s'avérer erronée.
Ces derniers jours, je n'ai pas utilisé une seule fois l'éditeur ni le débogueur.
À l’aide d’une seule main et de la dictée vocale, j’ai travaillé sur deux applications Mac totalement distinctes. J’ai travaillé dans un simple programme de terminal comportant deux fenêtres codées par couleur et une troisième qui regroupe les deux applications.
Je n’évite plus d’utiliser l’IDE parce que je n’ai pas les mains libres. Ce soir, je n’utilise pas l’IDE parce qu’il est tout à fait inutile.
Le processus combinant terminal et dictée vocale est étonnamment relaxant, mis à part ce sentiment de légère gêne qui me rappelle à quel point cette approche est étrange, surtout pour quelqu'un qui entretient depuis des décennies un lien émotionnel profond avec le concept même d'IDE.
</div>
<i>Source : <a href="https://www.zdnet.com/article/building-apps-with-ai-and-no-ide/" target="_blank" rel="noopener">"ZDNet.com"</a></i>
