L’avenir du développement logiciel, ce sont les développeurs logiciels
(codemanship.wordpress.com)- Les prédictions répétées de la « fin des programmeurs » depuis des décennies se sont trompées à chaque fois, et les avancées technologiques ont au contraire conduit à davantage de développeurs et davantage de programmes
- Diverses technologies d’automatisation comme WYSIWYG, 4GL, No-Code, LLM sont apparues, mais en pratique elles n’ont pas réduit le besoin de développeurs
- Les outils basés sur les LLM offrent une fiabilité et une maintenabilité inférieures à celles des technologies passées, et provoquent dans la plupart des équipes une baisse de productivité et une dégradation de la qualité
- La difficulté fondamentale de la programmation ne réside pas dans l’écriture du code, mais dans la capacité à convertir une pensée humaine ambiguë en logique rigoureuse ; cela reste toujours du domaine humain
- En conséquence, il est peu probable que l’IA remplace les développeurs ; au contraire, la demande pour des développeurs expérimentés devrait encore augmenter
Le cycle récurrent de la « fin des programmeurs »
- Depuis 43 ans, diverses technologies comme Visual Basic, Delphi, Executable UML, No-Code, Low-Code sont présentées comme devant supprimer le besoin de programmeurs
- Dans les années 1970~80, c’étaient les 4GL, 5GL ; auparavant Fortran, COBOL ; et plus loin encore, même le compilateur A-0 a fait l’objet des mêmes prédictions
- L’ordinateur électronique primitif COLOSSUS était programmé par câblage physique, et les générations suivantes ont parfois été tournées en dérision comme n’étant « pas de vrais programmeurs »
- Mais au final, le nombre de programmeurs n’a pas diminué, il a au contraire augmenté, ce qui est cité comme un cas représentatif du paradoxe de Jevons
Ce qui distingue les LLM des technologies passées
- Les technologies précédentes ont réellement accéléré la production logicielle tout en garantissant la fiabilité, mais les LLM produisent surtout l’effet inverse dans la plupart des équipes
- Les LLM dégradent la qualité du code et compliquent la maintenance, créant une situation « LOSE-LOSE »
- Même avec le même prompt, ils ne produisent pas toujours le même résultat, et le code généré exige une validation et des corrections par des développeurs humains
- Rien ne prouve que l’IA remplace les développeurs ; les récentes réductions d’effectifs s’expliquent par des facteurs économiques comme le surrecrutement pendant la pandémie, la hausse des taux d’intérêt et la concentration des investissements sur les datacenters
La difficulté fondamentale de la programmation
- Le cœur de la programmation est le processus qui consiste à transformer une pensée humaine ambiguë en une pensée computationnelle logiquement précise
- C’est une difficulté inchangée depuis l’époque des cartes perforées jusqu’à COBOL, Visual Basic et Python
- Comme le langage naturel est par essence ambigu et imprécis, l’auteur cite la prédiction de Dijkstra selon laquelle l’ère de la programmation en anglais ou en français n’adviendra pas
- Cette manière de penser peut s’apprendre, mais ce n’est ni quelque chose que tout le monde aime, ni quelque chose où tout le monde peut exceller, et l’offre de personnel qualifié reste toujours insuffisante
Les limites de l’IA et sa durabilité
- L’AGI (intelligence artificielle générale) reste encore lointaine et exigerait des capacités de compréhension, de raisonnement et d’apprentissage au niveau humain
- Les LLM de grande taille entraînent des coûts et des pertes massifs, ce qui les rend peu durables à long terme
- Avec le temps, leur utilité pourrait diminuer à cause des contraintes liées au langage et aux versions de bibliothèques sur lesquels les modèles ont été entraînés
- Pour cette raison, les LLM géants pourraient finir comme une expérience non rentable, à l’image du programme lunaire Apollo
Perspectives pour l’environnement de développement futur
- Dans un futur proche, le développement logiciel devrait prendre la forme d’outils d’assistance fondés sur de petits modèles de langage, chargés de rôles de support comme la génération de prototypes ou l’autocomplétion de code
- Mais les décisions importantes et l’assurance qualité resteront pilotées par des développeurs humains, et selon la loi de Jevons, la demande de développeurs pourrait même augmenter
- Les entreprises doivent investir dès maintenant dans le recrutement et la formation de développeurs expérimentés ; c’est une stratégie clé pour accroître la productivité et la fiabilité, avec ou sans IA
1 commentaires
Avis sur Hacker News
Après avoir travaillé avec des agent-LLM pendant plusieurs années, je n’y ai trouvé absolument aucune utilité pour la vraie programmation
Ils ne parviennent ni à résoudre des problèmes complexes de bibliothèques bas niveau ni des bugs non intuitifs, et ne comprennent pas la logique des couches d’abstraction
En revanche, ils excellait pour les tâches boilerplate déjà répétées des milliers de fois, comme la création de sites web simples. Sur ce genre de tâches, ils m’ont fait gagner une journée de travail
Mais je ne vois aucun signe indiquant que les LLM puissent dépasser ce cadre de tâches simples pour comprendre des problèmes complexes
La programmation ne se limite pas au code bas niveau ou à la correction de bugs legacy. Construire un site web avec l’aide d’un LLM est clairement aussi une forme de programmation
Ils m’ont fait gagner énormément de temps pour comprendre de grosses bases de code, faire du brainstorming sur des fonctionnalités et repérer des écarts d’implémentation
Ils ne peuvent pas remplacer totalement les ingénieurs, mais leur valeur comme outil puissant est évidente
Mais la plupart des développeurs passent leur temps à assembler des frameworks et des bibliothèques.
Comme les voitures électriques ne sont pas adaptées au transport lourd mais restent très utiles pour le conducteur moyen, les LLM occupent une position comparable
Il y a encore quelques mois, j’aurais été d’accord, mais on dirait désormais que la technologie a franchi cette limite
Je travaille dans l’ERP, et les agents font exploser ma productivité
Même si l’abonnement passait à 500 dollars par mois, cela vaudrait encore le coup
J’ai peur que les prédictions selon lesquelles l’IA réduira le besoin de programmeurs deviennent réalité
J’ai déjà l’impression que l’IA est meilleure que moi pour la conception, la revue de code, la détection de bugs et la planification de projet
J’ai juste l’impression de jouer le rôle de chef d’orchestre qui dirige le processus
C’est inquiétant d’avoir l’impression de faire seul le travail qu’accomplissaient autrefois 20 personnes
Les humains restent les seuls à vraiment bien gérer la planification à long terme et la prise de décision. Nous avons des inquiétudes, de la fierté, des émotions, et c’est là notre vraie force
L’IA n’est qu’un sac de mots, sans amour ni persévérance
Avec un minimum de compétence, un humain reste largement meilleur à mon avis
Si une seule personne fait le travail qu’en faisaient 20, c’est probablement que ces 20 personnes n’étaient déjà pas très productives
Le point clé, c’était de faire tourner en permanence la machine à laver la vaisselle, et les agents de codage IA me font penser à cette machine
J’entre des prompts, je vérifie les résultats et je remets tout en ordre. Au final, la main humaine reste indispensable
Si l’IA permet à une personne de faire le travail de 20, c’est un gain de productivité qui crée davantage de richesse
Je pense que la mode actuelle autour des LLM relève d’un effet Eliza à grande échelle
On peut se référer à ELIZA effect et au livre de Weizenbaum Computer Power and Human Reason
Les LLM semblent avoir évolué pour impressionner les personnes influentes (PDG, investisseurs)
Ils n’ont pas besoin d’atteindre un vrai niveau d’expertise ; il suffit qu’ils paraissent « suffisamment convaincants » pour être adoptés
Pour les développeurs américains, la vraie menace n’est pas l’IA mais l’externalisation
Je suis immigré et je travaille dans une société financière à New York. 95 % des employés sont nés à l’étranger, et la plupart des nouvelles recrues ont un visa H1B
Comme Dijkstra l’avait déjà dit il y a 50 ans, programmer en langage humain est impossible
Le langage naturel est par essence ambigu et imprécis
Ceux qui affirment que « le prompt est le nouveau code source » ressemblent un peu aux gens qui construisent des applis avec Excel
J’ai lu le livre « Blood in the Machine » et découvert l’histoire du mouvement luddite
Avant la révolution industrielle, les vêtements étaient fabriqués à l’échelle familiale, mais avec l’arrivée des machines, l’industrie artisanale s’est effondrée
On dirait que les développeurs suivent aujourd’hui la même trajectoire
Mais dans le développement logiciel, le codage n’est qu’une partie de l’ensemble du processus
De la même manière que Toyota a remplacé des artisans, si les LLM automatisent aussi la maintenance, les développeurs connaîtront le même sort
Malgré l’abondance de vêtements bon marché, les designers et les marques haut de gamme sont toujours là. Le logiciel évoluera sans doute de la même façon
Par le passé, on disait déjà que des outils WYSIWYG comme Visual Basic et Delphi allaient remplacer les programmeurs, mais cela ne s’est finalement pas produit
L’IA, c’est similaire. Elle peut générer du code fragile et instable, mais il faut toujours de vrais programmeurs pour le stabiliser
Déjà dans les années 1980, les gouvernements et l’industrie avaient massivement investi dans les 4GL, mais cela s’est soldé par un échec
Le MITI Fourth Generation Project du Japon allait dans le même sens. La « crise du logiciel » de l’époque ressemble beaucoup à la vague actuelle autour de l’IA
Cet article donne l’impression d’être un papier de promotion de l’IA. La partie finale, qui fait la publicité d’un service de formation, renforçait particulièrement cette impression
Cela dit, ma productivité a réellement augmenté, donc une baisse de la demande en développeurs semble au bout du compte inévitable
Cela ressemblait plutôt à un texte écrit par un LLM à partir d’un assemblage de plusieurs opinions
Si le coût de développement est divisé par deux, le logiciel sera utilisé dans encore plus de domaines
Voir Jevons paradox
Comme dans le modèle du fromage suisse utilisé en sécurité aérienne, on peut voir les LLM comme une couche parmi d’autres dans le développement logiciel
Même si chaque couche est imparfaite, elles peuvent compenser mutuellement leurs défauts et améliorer la qualité globale
Nous n’en sommes pas encore à les appliquer intelligemment à la vérification du code ou à l’analyse des tests
Mais je suis convaincu qu’un vrai cas d’usage finira par émerger
Pour garantir la sécurité, il faut de toute façon qu’un humain révise l’ensemble
La fiabilité du logiciel aéronautique et l’instabilité des LLM sont tout simplement incomparables