
Depuis l’introduction de GitHub Copilot en 2021, le développement assisté par IA a connu une progression fulgurante. En quelques lignes de commande ou requêtes en langage naturel, les développeurs peuvent générer des fonctions, corriger des bugs ou même créer des applications entières. Cette assistance a permis :
- Une réduction significative du temps de développement.
- Une accélération du prototypage.
- Une meilleure accessibilité au code pour les débutants et les profils non techniques.
Cependant, Dohmke met en garde contre une forme de paresse cognitive qui pourrait se développer. Utiliser uniquement l’IA sans comprendre le code généré est risqué, car cela revient à manipuler des mécanismes dont on ignore les fondements. Il cite notamment le phénomène du « vibe coding » (coder par intuition via IA sans réelle compréhension) comme une tendance dangereuse pour la qualité des logiciels.
Les avantages du codage manuel à l’ère de l’IA
Thomas Dohmke insiste sur le fait que l’apprentissage du code reste la clé pour bien utiliser l’IA. Selon lui, l'IA ne doit pas être vue comme une béquille, mais comme une extension des compétences humaines. Voici pourquoi le codage manuel reste crucial :
- Compréhension profonde des systèmes : écrire soi-même du code permet de saisir les subtilités des langages, des algorithmes, de la logique métier et des architectures logicielles.
- Capacité d’adaptation : aucun outil d’IA ne peut encore anticiper tous les contextes d’utilisation, les besoins métier spécifiques ou les imprévus techniques. L’humain reste maître de l’adaptation et de la personnalisation.
- Contrôle qualité : les IA peuvent générer du code erroné, inefficace ou vulnérable. Savoir lire, corriger et optimiser ce code est indispensable pour garantir la sécurité et la performance.
- Créativité et innovation : l’IA suggère, mais ne crée pas. Les idées nouvelles, les approches inédites, les expérimentations techniques viennent toujours de l’humain.
Les limites de l’IA : entre illusion d’autonomie et dépendance accrue
Bien que l’IA ait démontré sa puissance, ses limites sont encore nombreuses :
- Manque de contexte : une IA ne comprend pas toujours l’objectif global d’un projet. Elle peut générer un code fonctionnel localement, mais inadéquat dans l’ensemble du système.
- Biais dans les suggestions : les modèles sont formés sur du code existant, parfois obsolète ou non optimal. Cela peut renforcer de mauvaises pratiques.
- Sécurité insuffisante : le code généré peut introduire des failles si l’utilisateur ne le vérifie pas attentivement.
- Risques de désapprentissage : chez les développeurs débutants, l’usage intensif de l’IA peut entraver l’apprentissage des bases essentielles (structures de données, complexité algorithmique, etc.).
Dohmke insiste donc : même dans une startup où l’IA permet de développer un MVP rapidement, il faut à terme des développeurs expérimentés pour soutenir l’évolution du produit, assurer sa stabilité et répondre aux attentes des investisseurs.
Faut-il alors bannir l’IA du développement ?
Absolument pas. Thomas Dohmke est le premier à reconnaître l’apport immense de l’IA au développement logiciel. En tant que PDG de GitHub, il est bien placé pour défendre son efficacité. Mais il souhaite instaurer une culture de complémentarité entre humain et machine. Pour lui, l’IA doit rester un assistant, pas un remplaçant. Elle booste la productivité, facilite les tâches répétitives, suggère des idées, mais elle ne comprend pas les objectifs métier, ne pense pas en termes d’expérience utilisateur, et ne porte pas de vision produit.
En clair, l'assertion de Dohmke n'est pas un rejet de l'IA, mais une reconnaissance de la complexité intrinsèque du développement logiciel. Bien que les modèles d'IA puissent générer des extraits de code, voire des fonctions entières, leur compréhension est souvent superficielle. Un programmeur humain, en revanche, ne se contente pas d'écrire des lignes de code ; il conçoit des architectures, anticipe des problèmes, optimise des performances et résout des bugs complexes. C'est cette capacité de pensée critique, de raisonnement abstrait et de résolution de problèmes non triviaux qui distingue le développeur humain. La maîtrise du codage manuel permet non seulement de comprendre ce que l'IA produit, mais aussi de le déboguer, de le modifier et de l'adapter aux exigences uniques d'un projet, souvent implicites ou difficiles à formaliser pour une machine.
Loin d'imaginer un futur où l'IA prend les rênes, Thomas Dohmke promeut une symbiose entre l'intelligence artificielle et l'intelligence humaine. Pour lui, l'IA doit servir de copilote, assistant le développeur dans des tâches répétitives ou pour générer des ébauches rapides. Il envisage un scénario idéal où l'IA génère du code, qui est ensuite soumis sous forme de « pull requests » – une pratique courante dans le développement collaboratif. Cela permet aux programmeurs humains de passer en revue le code, d'apporter des ajustements précis, d'intégrer des nuances contextuelles et de garantir la qualité et la sécurité du logiciel final. Cette approche garantit que la créativité, l'intuition et la profonde compréhension du domaine métier, apanages de l'humain, restent au cœur du processus de création.
Les pièges de la dépendance excessive à l'IA
Dohmke met également en garde contre le danger d'une dépendance excessive à l'égard des outils d'IA. Bien qu'ils puissent accélérer certaines phases de développement, se fier aveuglément à l'IA sans une compréhension sous-jacente du code peut entraîner des inefficacités inattendues. Tenter de corriger une erreur simple en la décrivant à une IA peut s'avérer plus long et plus frustrant que de modifier directement le code. Cette « surcharge cognitive » liée à la reformulation de problèmes simples en langage naturel peut briser le flux de travail d'un développeur et nuire à sa productivité. L'objectif n'est pas de déléguer la pensée, mais d'augmenter les capacités humaines.
« La pire alternative est d'essayer de comprendre comment fournir un retour d'information ou une invitation à décrire en langage naturel ce que je sais déjà faire en langage de programmation », a-t-il déclaré, soulignant la valeur de l'intuition du développeur.
L'IA est en train de créer une génération de programmeurs illettrés
Un développeur a partagé son témoignage :
Il y a de cela quelques jours, Cursor est tombé en panne lors d'un arrêt de ChatGPT. J'ai regardé fixement mon terminal, faisant face à ces messages d'erreur rouges que je déteste voir. Une erreur AWS est apparue. Je ne voulais pas la résoudre sans l'aide de l'intelligence artificielle (IA). Après 12 ans de codage, j'étais devenu plus mauvais dans mon propre métier. Et ce n'est pas une hyperbole : c'est la nouvelle réalité des développeurs logiciels.
« Tout d'abord, j'ai cessé de lire la documentation....
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.