IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Malgré l'essor fulgurant des IA comme Copilot ou ChatGPT dans le développement logiciel, le PDG de GitHub affirme que savoir coder manuellement reste une compétence irremplaçable

Le , par Stéphane le calme

50PARTAGES

6  0 
Au-delà de la génération de code par l'IA : malgré l’essor fulgurant des IA comme Copilot ou ChatGPT dans le développement logiciel,
le PDG de GitHub affirme que savoir coder manuellement reste une compétence irremplaçable

À l’heure où les outils d’intelligence artificielle révolutionnent le développement logiciel, le PDG de GitHub, Thomas Dohmke, prend le contre-pied d’un enthousiasme parfois excessif. Dans une série d’interventions récentes, notamment lors d’un passage dans le podcast The Mad, il a martelé un message simple mais crucial : l’IA ne remplace pas la programmation manuelle. Selon lui, savoir coder reste une compétence indispensable à long terme, même dans un monde où GitHub Copilot ou ChatGPT peuvent générer du code à la volée. Ce positionnement soulève un débat plus large : faut-il encore apprendre à coder à la main quand l’IA peut le faire à notre place ? Pour Thomas Dohmke, la réponse est clairement oui. Et il le justifie avec des arguments qui méritent un examen attentif.

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.
La situation qu'il a décrite s'est installée progressivement :

« Tout d'abord, j'ai cessé de lire la documentation. Pourquoi s'embêter quand l'IA pouvait expliquer les choses instantanément ? Ensuite, mes compétences en matière de débogage en ont pris un coup. Les traces de pile me semblent désormais inaccessibles sans l'IA. Je ne lis même plus les messages d'erreur, je me contente de les copier et de les coller.

« Je suis devenu un presse-papier humain, un simple intermédiaire entre mon code et un LLM.

« Auparavant, chaque message d'erreur m'apprenait quelque chose. Aujourd'hui ? La solution apparaît comme par magie et je n'apprends rien. La dopamine des réponses instantanées a remplacé la satisfaction d'une véritable compréhension.

« La compréhension en profondeur est la prochaine chose qui a été affectée. Vous vous souvenez avoir passé des heures à comprendre pourquoi une solution fonctionne ? Aujourd'hui, je me contente d'appliquer les suggestions de l'IA. Si elles ne fonctionnent pas, j'améliore le contexte et je demande à nouveau à l'IA. C'est un cycle de dépendance croissante.

« Viennent ensuite les changements émotionnels. Auparavant, la résolution de nouveaux problèmes faisait partie du plaisir de programmer. Maintenant, je suis frustré si l'IA ne me donne pas de solution en 5 minutes ».

Le codage avec l'IA nécessite toujours une touche humaine

Les réflexions de Dohmke font écho à un consensus croissant dans le monde de la technologie : l'IA doit être utilisée comme un outil complémentaire, et non comme un substitut à part entière. Une étude de Deloitte renforce ce point de vue en montrant que la plupart des développeurs utilisent l'IA pour automatiser les tâches répétitives, comme l'écriture de codes standard, tout en continuant à s'appuyer sur la supervision humaine pour garantir la qualité et l'exactitude des données. Ce modèle de collaboration peut améliorer la productivité de manière modeste mais significative, jusqu'à 20 minutes par jour.

Le concept de « confiance et vérification » s'est imposé car le code généré par l'IA, bien qu'impressionnant, contient souvent des erreurs subtiles. Environ la moitié de ces échantillons de code doivent être corrigés par un développeur, ce qui souligne pourquoi une révision humaine reste indispensable. Même les entreprises à la pointe du développement de l'IA, comme Google, indiquent que plus d'un quart de leur base de code provient désormais de systèmes d'IA. Pourtant, chaque ligne est toujours soumise à un examen rigoureux de la part des ingénieurs.

Source : interview du PDG de GitHub (vidéo dans le texte)

Et vous ?

Que pensez-vous des propos du PDG de GitHub ? Partagez-vous son point de vue ? Dans quelle mesure ?

L’intelligence artificielle va-t-elle vraiment remplacer les développeurs ou simplement transformer leur métier ?

Peut-on encore parler de “savoir coder” si l’on se contente d’écrire des prompts à une IA ?

Faut-il enseigner le code différemment à la génération Copilot/ChatGPT ?

L’IA peut-elle comprendre l’intention métier derrière une ligne de code comme un humain le ferait ?

À quel moment devient-on trop dépendant de l’IA dans son travail de développeur ?

Les écoles doivent-elles prioriser l’apprentissage du code “à la main” ou se concentrer sur l’usage des outils IA ?

Est-ce que l’usage intensif de Copilot chez les débutants risque de nuire à la compréhension des bases ?

Comment éviter que les nouvelles générations de développeurs deviennent de simples “opérateurs de prompts” ?
Vous avez lu gratuitement 6 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de calvaire
Expert éminent https://www.developpez.com
Le 25/06/2025 à 12:14
Citation Envoyé par Matthieu Vergne Voir le message
Je peux donc tout à fait envisager un futur où de vrais entreprises feront de vrais applications mais sans vrai développeurs, juste avec des prompt engineers, et ça suffira bien. Par contre on n'y est pas encore, et tant que ce n'est pas le cas on doit maintenir la compétence pour éviter que la qualité ne chute. Ne serait-ce que pour garder un minimum de qualité pour entrainer encore les modèles.

Mais une fois qu'on aura ces outils, aurons-nous "envie" de compter sur eux ?
mais qu'es ce qui créera de la data pour les modèles ?
le monde du logiciel et vivant et évolue chaque jours.

qui va mettre à jours le kernel linux à la version 7.0, qui va faire évoluer php vers php8, qui va coder python4, qui va faire évoluer le framework angular/react a la version n+1...
pour les dev utilisant ces outils, comment une ia va savoir coder en python4/php8 ? si plus personne ne poste d'exemple sur stackoverflow ou de bug avec ces fix ?

on peut imaginer une ia connecté à github comprenant directement le code des libs et apis, par exemple relier au code de spring boot à la dernière version, mais pour construire leurs llm bizarrement les boites ne s'entraine pas que la dessus...
Pour avoir étudié la question, la ou les llms sont performante c'est en ayant des manuels scolaire comme datasource.
les ia relié au code sont une vrai cata, l'ia qui relis les mr sur github c'est une grosse blague.

Plus globalement les modeles commence déja à regresser/stagner tellement le web d'aujourd'hui a été pollué par ces memes llms.

l'ia est forte pour recrée des choses existante tres courante dans la vie, mais bien incapable sur des trucs mal entrainé.
J'ai un bon exemple avec le moteur panda3d en python, ca reste un moteur "peu" connu et peu utilisé dans le monde, j'ai essayé plusieurs ia (chatgpt, claude, gemini) elle est vraiment nul, la moitié du code marche pas, des fonctions qui existe pas, des imports faux...etc.
Avec des trucs bien plus populaire, comme la lib numpy par contre nikel.
j'ai meme tenté avec chatgpt pro de lui donner le code source du moteur panda3d histoire qu'il arrete de m'inventer des fonctions, mais c'était pas mieux, incapable de mettre les bons types.

quand le code marche, incapable de bien coder une physique avec bullet, je lui ai demandé un truc basique comme faire sauter mon personnage a la touche espace, j'ai eu n'importe quoi.
la gestion de la camera, incapable de me faire une vue fps/tps basique.

pour les textures, c'est pas trop mal, par exemple je lui dmeande de me faire une décoration de fenetre style parchemin medieval, je ne suis pas graphiste et ca donne un bon résultat.
pour les textures en boucle, comme de l'herbe ou du bois, c'est en dessous les libs de texture pbr gratuite.

mais pour dessiner des "motifs elfiques" ou des petites decos inventés comme mes bordures de fenetre c'est bon.
2  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 25/06/2025 à 21:28
Je n'ai pas dis toutes les entreprises. Déjà, tout ce qui est de l'ordre de l'innovation est peu adapté, vu que l'IA construit sur ce qu'elle connaît. Tout au plus elle peut faciliter le travail (e.g. fournir des méthodes connues pour traiter les nouveaux sujets), mais pas le faire entièrement (pas traiter le nouveau sujet lui-même, en tout cas pas de manière fiable).

Pour autant, il y a des tas d'entreprises qui se contentent de faire ce que font beaucoup d'autres comme elle : le contexte change, mais la méthode reste la même. Dans ce genre de cas, il n'y a a priori pas de raison que les IA n'arrivent pas un jour à une bonne autonomie : comme ça se trouve partout, des données il y en aura, donc l'apprentissage pourra se faire (à moins que le législateur ne l'entende pas de cette oreille). Pour moi ce genre de cas n'est qu'une question de temps avant d'y arriver.

Quand à tes expériences je ne peux pas en dire grand chose. Pour expérimenter moi-même, je me rends bien compte qu'il y a des fois où ça marche très bien, d'autres où ça foire lamentablement. Le truc c'est qu'à force de creuser j'adapte ma façon de l'utiliser et finalement j'obtiens ce que je veux. De la même manière, qu'est-ce qui te dis que tu n'aurais pas pu obtenir bien mieux avec un autre modèle ou un autre prompt ? Ce n'est pas le genre de choses facile à répondre de manière systématique. Et l'expérience d'aujourd'hui ne présage pas de celle de demain, vu qu'on en est encore au début.

C'est un outil. Avant de critiquer l'outil, il faut regarder sa façon de l'utiliser.
1  0 
Avatar de calvaire
Expert éminent https://www.developpez.com
Le 26/06/2025 à 8:28
Citation Envoyé par Matthieu Vergne Voir le message
Quand à tes expériences je ne peux pas en dire grand chose. Pour expérimenter moi-même, je me rends bien compte qu'il y a des fois où ça marche très bien, d'autres où ça foire lamentablement.
L'ia est très performante sur les libs tres utilisé et donc avec pleins de threads sur les forums/stackoverflow.
Sur les trucs moins connu (mais pas non plus confidentiel) elle est vraiment mauvaise.

C'est ce qui tends a me faire pensé que l'ia va perdre en performance dans le temps avant de trouver un équilibre.
la fréquentation dans les forums et stackoverflow a beaucoup baissé depuis l'ia, et la qualité du web a baissé d'une manière générale. Ce qui rends le dataset bien moins pertinent et donc va rendre l'ia je pense moins performante dans les nouvelles technos.

On le voit pas encore trop aujourd'hui car les versions n+1/n+2 sont encore assez proche des versions ou l'ia était au top, mais plus le temps passe plus ca risque de dévisser.
Peut etre que je me trompe évidement et que les chercheurs développeront des techniques (comme les datasets synthétique) ou une façon de comprendre le code source plutot que de se baser sur des exemples de forums pour toujours avoir une bonne ia pour le code.
Ou plus simplement payer des hordes d'indiens à faire des datasets sur du code moderne

jusqu'a présent les llm sont entrainé sur le principe de questions réponses, alors je vois pas comment juste piocher du code sur github peut fonctionner.
On peut toujours bidouiller et faire dire à l'ia ce que fait chaque fonctions pour ensuite generer un dataset synthétique, mais avec un risque d'erreurs pourissant le dataset.

Je ne suis pas un expert dans les llm c'est pas mon metier, je m'y intéresse "de loins", j'ai jamais crée de modèle, j'ai juste regarder des interviews de ceux qui en font et j'ai regardé des datasets opensource sur hugging face pour voir à quoi sa ressemble.
1  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 25/06/2025 à 3:13
Si cela est vrai, la plupart des arguments ne tiennent qu'aujourd'hui. En dehors de la perte de maîtrise, le reste peut déjà être fait par l'IA dès lors qu'on utilise un modèle adapté avec un prompt et des outils adaptés :
  • Fournir un cahier des charges fonctionnel à une IA et lui demander de générer un cahier des charges techniques
  • Fournir un cahier des charges techniques à une IA et lui demander de rédiger des tests automatiques
  • Fournir une suite de test à une IA et lui demander de générer le code qui fait passer les tests
  • Fournir des exigences non fonctionelles à une IA et lui demander de lister des KPIs à implémenter
  • Fournir une liste de KPIs à implémenter à une IA et lui demander la marche à suivre pour les mettre en oeuvre
  • Fournir les KPIs et le code à une IA et lui demander les améliorations possibles
  • Etc.


On pourrait probablement décomposer davantage, mais l'idée est que chacune des étapes de production est automatisable via l'IA. Si on n'a pas encore tous les bons modèles/prompts/outils pour faire ça facilement, cela reste possible avec les technos actuelles. Les limites de contexte et de résultats nécessitent de découper davantage et de revérifier plus souvent derrière, mais aucun doute qu'on finira par avoir des automatisations plus avancées. Il n'y a théoriquement pas de raison à ce que ça ne soit pas faisable.

La perte de compétence est réelle si on compte trop dessus. Ce n'est pas spécifique à l'IA : la maîtrise vient avec la pratique, sans pratique la maîtrise au mieux fini par devenir obsolète, au pire se perd. Cette absence de pratique est à éviter tant qu'on n'a pas tous les outils pour tout automatiser. Cela dit, une fois qu'on les a, est-ce vraiment pertinent de maintenir ces compétences manuelles ? La qualité de code n'a d'intérêt que si un humain doit relire derrière. Si tout est généré par IA, on a juste besoin que ça compile, que les tests passent, et d'optimiser les ressources. Rien qui ne nécessite de regarder le code. Ce n'est qu'une suite logique dans le domaine du WYSIWYG. Rappelons-nous ces interfaces de drag & drop qui génèrent le code à notre place : ça marche bien tant qu'on n'a pas besoin d'aller retoucher le code généré, sinon il faut sortir l'aspirine.

Je peux donc tout à fait envisager un futur où de vrais entreprises feront de vrais applications mais sans vrai développeurs, juste avec des prompt engineers, et ça suffira bien. Par contre on n'y est pas encore, et tant que ce n'est pas le cas on doit maintenir la compétence pour éviter que la qualité ne chute. Ne serait-ce que pour garder un minimum de qualité pour entrainer encore les modèles.

Mais une fois qu'on aura ces outils, aurons-nous "envie" de compter sur eux ?
1  4