21 Dec

⌨️Vibe coding and the slow death of code quality

Vibe coding has become one of the buzzwords of 2025.
When I first heard the term, I found it amusing. I am no longer sure that it is.

Vibe coding describes a way of writing software where prompts replace design and quality concerns. As long as the program runs and produces the expected output, everything is considered fine—regardless of the quality of the code itself. In that sense, even someone who is not a developer can now “code.” I have no doubt that AI can generate working code. Like most professional developers, I use it myself: mainly for boilerplate, documentation, and sometimes to help analyze legacy code or explore solutions to a problem.

AI as a tool, not a substitute

Vibe coding

Used well, AI is a powerful assistant. But it remains an assistant—one that must be supervised. Sometimes it helps you move faster; sometimes it slows you down. It can suggest good solutions, but it can also hallucinate dependencies causing security issues, invent APIs, or generate code that poses significant cybersecurity risks. Supervising all of this takes time, judgment, and experience.

There is also another concern. Using too much AI may slowly erode those very skills. By delegating too much, we risk losing the ability to reason deeply about code over time. I am personally cautious for that reason—not because I am resistant to modern tools, but because I still want to be able to do my job correctly in a few years or when the AI bubble inevitably bursts.

The cost of not looking at the code

Vibe coding is something else entirely. It is the moment when we stop supervising the quality of the code and only validate the result. The output looks correct, tests pass, the demo works—and we move on. The code itself becomes incidental.

But even if we choose not to look at the code itself, one might still argue that it has sufficient quality. However, studies suggest otherwise. They show that AI-generated code produces about 1.7 times more issues, including readability problems, incorrect failure handling, and even security vulnerabilities. Notably, these studies focus on AI used as an assistant, not on fully AI-generated code without supervision, so the results could reasonably be expected to be even worse.

Writing code for durability

For some projects, this may be acceptable. Personal projects, throwaway prototypes, or experiments that will never be touched again can tolerate this approach. But most professional software does not fall into that category. Enterprise systems are expected to evolve, to be secured, to be audited, and to be maintained by humans over long periods of time. In that context, unreadable or poorly structured code is not a minor inconvenience; it is a liability.

Blindly trusting what AI produces can destroy a business. One enterprise learned this the hard way when a vibe-coded application ended up destroying its database. Who is responsible when AI-written code fails?

As long as code is meant to be read, understood, modified, and guaranteed by humans, it cannot be treated as a disposable byproduct. It must be written for humans. And only a human can validate that it is done right. Structure, clarity, intent, and durability still matter—perhaps more than ever in a world where producing code has become easy.

This tension between speed and understanding, between results and responsibility, is not new. But AI makes it impossible to ignore. And it is precisely why we need to rethink what it means to write good code—not just code that works today, but code that lasts.
That question, and what it implies for our craft, is at the heart of The Art of Code.

24 Sep

🤖 Pourquoi les IA ne peuvent pas remplacer les développeurs

Intelligence artificielle

En tant que développeurs/développeuses, nous avons tous actuellement un petit coup de blues. D’un côté notre curiosité technique nous pousse à explorer le potentiel des IA et cette révolution nous semble fascinante, mais de l’autre, les articles de journaux listent à n’en plus finir les métiers que l’intelligence artificielle va remplacer – avec le développeur en tête de liste. J’ai donc demandé son avis au premier intéressé, chatGPT, et sa réponse a listé des points d’une pertinence surprenante.

L’avis de ChatGPT sur la disparition du métier de développeur

ChatGPT: “L’avancée de l’intelligence artificielle (IA) et des technologies de l’automatisation a suscité de nombreuses inquiétudes quant à l’avenir des emplois, notamment ceux des développeurs. De nombreux experts en technologie et observateurs ont prédit que les IA pourraient éventuellement remplacer les développeurs, mais la réalité est bien plus nuancée. Dans cet article, nous allons explorer pourquoi les IA ne remplaceront pas les développeurs, mais plutôt les soutiendront dans leur travail.

  1. La créativité humaine est irremplaçable : L’une des caractéristiques les plus précieuses des développeurs est leur capacité à penser de manière créative. La programmation ne se limite pas à suivre des instructions. Les développeurs conçoivent des solutions innovantes pour résoudre des problèmes complexes. Les IA sont excellentes pour automatiser des tâches répétitives, mais elles ne peuvent pas rivaliser avec l’intuition et l’ingéniosité humaines.
  2. Les développeurs sont des résolveurs de problèmes : La programmation consiste principalement à résoudre des problèmes. Les développeurs ne se contentent pas d’écrire du code, ils identifient les problèmes, proposent des solutions, optimisent les performances et s’adaptent aux changements de besoins. Les IA peuvent aider à détecter des erreurs et à automatiser certaines tâches, mais elles ne peuvent pas remplacer l’ensemble du processus de résolution de problèmes.
  3. La communication humaine est essentielle : Les développeurs interagissent régulièrement avec les clients, les gestionnaires de projet et d’autres membres de l’équipe. La communication est cruciale pour comprendre les besoins, expliquer les progrès, résoudre les conflits et garantir que le logiciel répond aux attentes. Les IA ne peuvent pas égaler la communication et la compréhension humaines.
  4. L’adaptabilité et l’apprentissage constant : Le domaine de la technologie évolue rapidement. Les développeurs doivent constamment acquérir de nouvelles compétences et s’adapter à de nouvelles technologies et méthodologies. Bien que les IA puissent aider à automatiser certaines parties du processus d’apprentissage, elles ne peuvent pas s’adapter aussi rapidement et efficacement que les développeurs humains.
  5. Les valeurs éthiques et morales : Les choix éthiques sont de plus en plus importants dans le développement de logiciels, notamment en matière de confidentialité, de sécurité et d’impact sur la société. Les développeurs jouent un rôle essentiel en veillant à ce que les décisions prises lors de la conception et du développement tiennent compte de ces considérations. Les IA n’ont pas de conscience morale et ne peuvent pas prendre de décisions éthiques.”

Les problèmes incontournables: propriété intellectuelle, manque d’innovation, biais algorithmiques…

Créativité, communication, éthique, adaptabilité… ChatGPT soulève d’excellents arguments. J’en rajouterai quelques-uns de plus dans la catégorie problèmes. Utiliser une IA s’accompagne d’un lot de questions complexes pour lesquelles il y a actuellement, bien peu de réponses claires. Tout d’abord, il y a les problématiques de confidentialité et de propriété du code qui font hésiter les entreprises à partager leurs secrets et connaissances avec des fournisseurs tiers, souvent américains, aux pratiques commerciales agressives et pas toujours très respectueuses des règles de l’UE. Et se pose la question du code généré, qui en a la propriété ? Etant généré par une machine ce code échappe à toute notion de droit d’auteur et, selon les pays, on peut même considérer qu’il appartient aux développeurs qui ont crée l’IA plutôt qu’à l’entreprise qui l’utilise. Lorsque ce point sera éclairci, peut-être nous réveillerons nous tous un matin en réalisant que les sociétés ChatGPT ou Microsoft (Copilot) possèdent désormais tous les logiciels et applications de la planète…

Une autre question est la conséquente « stagnation » de ce code. En effet, imaginons un futur où l’intelligence artificielle est la seule qui produit du code, le métier de développeur.se n’est plus. Elle n’aura, pour l’alimenter, que les algorithmes initiaux qui lui ont été fournis et elle produira du code à partir de cette base, toujours le même type de code, à l’infini, l’IA étant incapable d’innovation. Quand on regarde les évolutions des langages et des technos ne serait-ce qu’au cours des dernières années, pour répondre aux nouvelles problématiques de notre monde (iot, big data, cloud, écoconception…), une stagnation, l’absence d’innovation, serait la mort de l’informatique à plus ou moins long terme.

Un point à ne pas négliger est également le risque de biais algorithmique (abondamment détaillé dans le livre le job de dev).

Enfin reste la question complexe de l’impact environnemental de ce nouvel outil, très demandeur en datacenters énergivores.

Si l’IA ne va pas remplacer immédiatement le développeur, sa présence bouleverse définitivement notre métier et les années à venir seront cruciales pour comprendre exactement les impacts de ce nouvel outil.