
Le vibe coding (litt. « programmation au ressenti ») est une technique de programmation utilisant l'intelligence artificielle générative pour écrire du code informatique. Le grand modèle de langage (LLM) génère alors du code source pour créer des logiciels. Le développeur ne code plus directement, mais rédige des prompts afin de demander à un LLM de générer le code correspondant. Le rôle de l'informaticien consiste désormais à concevoir la solution en formulant des prompts précis et contextuels, assimilables à de mini-spécifications fonctionnelles. Il intervient ensuite pour corriger, adapter et améliorer le code produit par l’intelligence artificielle, tout en validant la qualité, la sécurité et la cohérence du résultat final[1],[2],[3].
Selon ses défenseurs, le vibe coding permettrait même aux programmeurs amateurs n'ayant ni une formation approfondie, ni les compétences requises pour l'ingénierie logicielle, de produire des logiciels[4]. Le terme a été introduit par Andrej Karpathy en février 2025 [5],[2],[4],[1] et répertorié dans le dictionnaire Merriam-Webster le mois suivant comme un nom « argotique et tendance »[6].
Définition
L'informaticien Andrej Karpathy, cofondateur d'OpenAI et ancien responsable IA chez Tesla, a introduit le terme « vibe coding » en février 2025[5],[2],[4],[1]. Le concept fait référence à une approche de programmation qui s'appuie sur les LLM, permettant aux programmeurs de générer du code fonctionnel en fournissant des descriptions en langage naturel plutôt que d'écrire le code manuellement[1]. Karpathy a décrit son approche comme conversationnelle, utilisant des commandes vocales tandis que l'IA génère le code fonctionnel.[2] « Ce n'est pas vraiment de la programmation - je visualise juste des choses, je dis des choses, j'exécute des choses et je copie-colle des choses, et la plupart du temps, ça marche[4]. » Karpathy a reconnu que le vibe coding a des limites, notant que les outils d'IA ne sont pas toujours capables de corriger ou de comprendre les bugs, ce qui l'oblige à tester différents changements, sans rapport avec les problèmes initiaux, jusqu'à ceux-ci se résolvent[2]. Il a conclu qu'il trouvait la technique « pas trop mauvaise pour les projets jetables du week-end » et l'a décrite comme « assez divertissante »[5].
Le concept de vibe coding met en lumière l'affirmation de Karpathy de 2023 selon laquelle « le nouveau langage de programmation le plus en vogue est l'anglais », ce qui signifie que les capacités des LLM seraient telles que les humains n'auraient plus besoin d'apprendre des langages de programmation spécifiques pour exécuter du code[7].
Une notion clé de la définition du vibe coding est que l'utilisateur accepte le code sans le comprendre pleinement[1]. Le chercheur en IA Simon Willison a déclaré : « Si un LLM a écrit chaque ligne de votre code, mais que vous l'avez examiné, testé et compris dans son intégralité, pour moi, ce n'est pas du vibe coding, c'est utiliser un LLM comme un assistant de frappe[1]. »
Réception et utilisation
Le journaliste du New York Times Kevin Roose, qui n'est pas un codeur professionnel, a expérimenté le vibecoding pour créer plusieurs petites applications[3]. Il les a décrites comme des « logiciels pour une personne », faisant référence à des outils personnalisés générés par IA et conçus pour répondre à des besoins individuels spécifiques, comme une application nommée LunchBox Buddy qui analysait le contenu de son réfrigérateur pour suggérer des articles afin de préparer une gamelle[3],[7]. Roose a noté que même si le vibecoding permet aux non-programmeurs de générer des logiciels fonctionnels, les résultats sont souvent limités et sujets aux erreurs[3]. Dans un cas, le code généré par IA a fabriqué de faux avis pour un site de commerce électronique[3]. Il a suggéré que le vibecoding est mieux adapté aux projets de loisirs plutôt qu'aux tâches essentielles[3]. Il a également observé que la programmation assisté par IA permet aux individus de développer des logiciels qui nécessitaient auparavant une équipe entière d’ingénieurs[3]. En réponse à Roose, l'expert en IA Gary Marcus a déclaré que l'algorithme qui a généré l'application LunchBox Buddy de Roose avait probablement été formé sur du code déjà écrit pour des tâches similaires[7]. Marcus a déclaré que l'enthousiasme de Roose provenait de la capacité de reproduction de l'IA et non de son originalité[7].
En février 2025, Business Insider a décrit le vibecoding comme un nouveau mot à la mode dans la Silicon Valley[4].
En mars 2025, Y Combinator a signalé que 25 % des startups de son lot d'hiver 2025 avaient des bases de code générées à 95 % par IA, reflétant une évolution vers un développement assisté par l'IA[8].
Le vibecoding a soulevé des inquiétudes quant à la compréhension et à la responsabilité. Les développeurs peuvent utiliser du code généré par IA sans en comprendre pleinement le fonctionnement, ce qui peut entraîner des bugs, des erreurs ou des vulnérabilités de sécurité non détectés. Bien que cette approche puisse convenir au prototypage ou aux « projets jetables du week-end », comme Karpathy l'avait initialement envisagé, certains experts considèrent qu'elle présente des risques dans des contextes professionnels, où une compréhension approfondie du code est cruciale pour le débogage, la maintenance et la sécurité. Ars Technica cite Simon Willison, qui a déclaré : « Utiliser le vibecoding pour obtenir une base de code est clairement risqué. La plupart de nos tâches d'ingénieurs logiciels consistent à faire évoluer des systèmes existants, où la qualité et la compréhensibilité du code primaire sont cruciales. »[1] Dans ce qu'Ars Technica décrit comme un « tour de force ironique dans l'essor du "vibe coding" », une IA de programmation a refusé la demande d'un programmeur de générer du code et a répondu : « Je ne peux pas générer de code pour vous, car cela reviendrait à faire votre travail », avant de poursuivre : « Vous devriez développer la structure logique du code. »[9]
Exemple
Avec l'utilisation de Kiro.dev et du LLM Claude Sonnet 4, la demande : "Crée un programme en C Pour Afficher l'heure" va créer les fichiers afficher_heure.c et Makefile. Il va aussi donner les spécifications du programme et donner les commandes à exécuter pour compiler le programme.
Fichier Makefile
# Makefile pour compiler le programme d'affichage de l'heure
CC = gcc
CFLAGS = -Wall -Wextra -std=c99
TARGET = afficher_heure
SOURCE = afficher_heure.c
# Règle par défaut
all: $(TARGET)
# Compilation du programme
$(TARGET): $(SOURCE)
$(CC) $(CFLAGS) -o $(TARGET) $(SOURCE)
# Nettoyer les fichiers compilés
clean:
rm -f $(TARGET) $(TARGET).exe
# Exécuter le programme
run: $(TARGET)
./$(TARGET)
.PHONY: all clean run
Fichier afficher_heure.c
/**
* @file afficher_heure.c
* @brief Programme pour afficher l'heure et la date actuelles
* @author Assistant IA
* @version 1.0
* @date 2025-11-06
*
* Ce programme utilise les fonctions de la bibliothèque time.h pour récupérer
* l'heure système et l'afficher dans un format lisible en français.
*
* Compilation:
* gcc -Wall -Wextra -std=c99 -o afficher_heure afficher_heure.c
*
* Utilisation:
* ./afficher_heure
*/
#include <stdio.h> // Pour printf()
#include <time.h> // Pour time(), localtime(), strftime()
/**
* @brief Fonction principale du programme
*
* Cette fonction récupère l'heure système actuelle et l'affiche
* sous deux formats :
* 1. Heure au format HH:MM:SS
* 2. Date complète avec jour de la semaine, jour, mois et année
*
* @return 0 si le programme s'exécute correctement
*/
int main() {
/*
* Déclaration des variables nécessaires pour la gestion du temps
*/
// time_t : type pour stocker le temps en secondes depuis le 1er janvier 1970 (epoch Unix)
time_t temps_actuel;
// struct tm : structure contenant les composants du temps (année, mois, jour, heure, etc.)
struct tm *info_temps;
// Buffer pour stocker les chaînes formatées (80 caractères suffisent pour nos besoins)
char buffer[80];
/*
* Récupération de l'heure système
*/
// time() récupère le nombre de secondes écoulées depuis l'epoch Unix
// et le stocke dans temps_actuel
time(&temps_actuel);
/*
* Conversion du temps en structure lisible
*/
// localtime() convertit le time_t en structure tm selon le fuseau horaire local
// Cela prend en compte l'heure d'été/hiver automatiquement
info_temps = localtime(&temps_actuel);
/*
* Formatage et affichage de l'heure
*/
// strftime() formate la date/heure selon un modèle spécifié
// %H = heure (00-23), %M = minutes (00-59), %S = secondes (00-59)
strftime(buffer, sizeof(buffer), "Heure actuelle: %H:%M:%S", info_temps);
printf("%s\n", buffer);
/*
* Formatage et affichage de la date complète
*/
// %A = nom complet du jour de la semaine
// %d = jour du mois (01-31)
// %B = nom complet du mois
// %Y = année sur 4 chiffres
strftime(buffer, sizeof(buffer), "Date: %A %d %B %Y", info_temps);
printf("%s\n", buffer);
/*
* Affichage d'informations supplémentaires pour démonstration
*/
// Affichage du fuseau horaire
strftime(buffer, sizeof(buffer), "Fuseau horaire: %Z", info_temps);
printf("%s\n", buffer);
// Affichage du timestamp Unix (nombre de secondes depuis l'epoch)
printf("Timestamp Unix: %ld secondes\n", (long)temps_actuel);
// Affichage du jour de l'année (1-366)
printf("Jour de l'année: %d\n", info_temps->tm_yday + 1);
// Affichage du jour de la semaine (0=dimanche, 1=lundi, ..., 6=samedi)
printf("Jour de la semaine: %d (0=dimanche, 6=samedi)\n", info_temps->tm_wday);
/*
* Fin du programme
*/
return 0; // Retourne 0 pour indiquer une exécution réussie
}
/*
* NOTES TECHNIQUES:
*
* 1. La fonction time() peut échouer sur certains systèmes très anciens.
* Dans un programme de production, il faudrait vérifier si elle retourne -1.
*
* 2. localtime() retourne un pointeur vers une structure statique qui peut
* être modifiée par des appels ultérieurs. Pour un usage thread-safe,
* utiliser localtime_r() sur les systèmes POSIX.
*
* 3. Les noms des jours et mois dépendent de la locale du système.
* Pour forcer l'affichage en français, il faudrait utiliser setlocale().
*
* 4. strftime() supporte de nombreux autres formats :
* %c = date et heure complètes selon la locale
* %x = date selon la locale
* %X = heure selon la locale
* %z = décalage UTC (+0100, -0500, etc.)
*
* EXEMPLE DE SORTIE:
* Heure actuelle: 14:30:25
* Date: Thursday 06 November 2025
* Fuseau horaire: CET
* Timestamp Unix: 1730898625 secondes
* Jour de l'année: 310
* Jour de la semaine: 4 (0=dimanche, 6=samedi)
*/
Références
- (en-US) Edwards, « Will the future of software development run on vibes? » [archive du ], Ars Technica, (consulté le )
- « What is 'vibe coding'? Former Tesla AI director Andrej Karpathy defines a new era in AI-driven development », The Times of India, (lire en ligne [archive du ], consulté le )
- (en-US) Kevin Roose, « Not a Coder? With A.I., Just Having an Idea Can Be Enough. », The New York Times, (lire en ligne [archive du ], consulté le )
- Chowdhury et Mann, « Silicon Valley's next act: bringing 'vibe coding' to the world » [archive du ], Business Insider, (consulté le )
- Karpathy, « Andrej Karpathy on X: "There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. ..." » [archive du ], X, (consulté le )
- ↑ (en) « vibe coding », www.merriam-webster.com, (consulté le )
- John Naughton, « Now you don't even need code to be a programmer. But you do still need expertise », The Observer, (lire en ligne, consulté le )
- ↑ (en-US) Mehta, « A quarter of startups in YC's current cohort have codebases that are almost entirely AI-generated » [archive du ], TechCrunch, (consulté le )
- ↑ Edwards, « AI coding assistant refuses to write code, tells user to learn programming instead » [archive du ], Ars Technica, (consulté le )

