1 points par GN⁺ 1 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Il est clair que l’usage de l’IA réduit la quantité d’apprentissage liée à l’exécution de certaines tâches, mais ce n’est pas une raison suffisante pour rejeter l’IA
  • Même si l’IA affaiblit à long terme les compétences des ingénieurs, son adoption peut devenir inévitable si les gains de productivité à court terme sont suffisamment importants
  • Comme les ouvriers du bâtiment qui soulèvent des charges lourdes malgré la contrainte physique, il faut parfois se plier aux exigences intrinsèques du métier
  • On peut s’en tenir au code écrit à la main, mais de la même manière qu’il n’y a pas de travail pour un menuisier qui refuse les outils électriques, un ingénieur qui rejette l’IA a de fortes chances d’être dépassé dans la concurrence par ceux qui l’adoptent
  • Les ingénieurs logiciels pourraient être la première génération à connaître, comme les sportifs professionnels, une durée de carrière limitée, d’où la nécessité de se préparer à cette éventualité

Usage de l’IA et durée de carrière des ingénieurs logiciels

  • Il n’existe pas de preuve solide que l’IA fasse baisser l’intelligence générale des personnes, mais il est clair que lorsqu’on s’appuie sur l’IA pour accomplir une tâche, on apprend moins à l’exécuter soi-même
  • Le raisonnement de certains ingénieurs logiciels qui estiment qu’il faut éviter l’IA au travail ressemble à ceci
    • utiliser l’IA conduit à moins apprendre dans le cadre du travail
    • avec le temps, les compétences techniques se dégradent, ce qui rend l’ingénieur moins efficace
    • donc il ne faudrait pas utiliser l’IA au travail
  • La deuxième prémisse reste toutefois incertaine
    • en passant de l’assembleur au C, les programmeurs sont devenus moins efficaces sur certains aspects et plus efficaces sur d’autres
    • le passage d’une manière de coder à la main à une manière de travailler avec l’IA pourrait représenter un changement encore plus important, ce qui rend toute conclusion difficile
  • Même si l’usage de l’IA rendait à long terme les ingénieurs moins efficaces, cela ne suffirait pas en soi à conclure qu’il faut s’en priver
  • Jusqu’autour de 2024, la meilleure façon d’apprendre l’ingénierie logicielle était de la pratiquer directement
    • on pouvait transformer un hobby de code en carrière très bien rémunérée, et les personnes qui aimaient ce travail avaient tendance à devenir meilleures avec le temps
    • cela relevait moins d’une nature immuable de l’ingénierie logicielle que d’un heureux concours de circonstances

Conflit entre productivité à court terme et compétences à long terme

  • Même si l’usage de l’IA détériore à long terme les compétences professionnelles ou les capacités générales de raisonnement, les ingénieurs peuvent devoir l’utiliser si les bénéfices à court terme sont suffisamment élevés
  • Les ouvriers du bâtiment doivent soulever des charges lourdes pour travailler efficacement, mais ce type de tâche peut à long terme user le dos et les articulations, et les rendre moins efficaces avec le temps
    • les ouvriers du bâtiment ne disent pas : « un bon ouvrier est celui qui ne soulève pas de charges lourdes », mais plutôt : « on n’a pas le choix, c’est le travail »
  • Sur les chantiers, il existe des méthodes comme les grues, les diables ou les chariots élévateurs pour éviter de porter du lourd
    • les ingénieurs logiciels pourraient eux aussi avoir besoin de méthodes pour préserver leur engagement mental, mais il se peut qu’aucune approche comparable n’ait encore été trouvée
  • Si l’IA rend réellement les gens moins intelligents, il est toujours possible de continuer à coder à la main
    • mais, pour la même raison qu’il n’existe presque pas d’emploi pour un menuisier qui refuse les outils électriques, il pourrait devenir difficile d’être payé en ne faisant que du code écrit à la main
    • si les modèles deviennent suffisamment bons, ces ingénieurs risquent d’être dépassés par ceux qui acceptent d’échanger leurs capacités cognitives à long terme contre une carrière très lucrative à court terme
  • Les syndicats pourraient en théorie ralentir ce processus
    • dans d’autres secteurs, ils ont déjà réussi à ralentir la course vers le bas imposée par les employeurs
    • mais l’auteur se montre pessimiste sur les syndicats dans les métiers de la tech, car ils sont bien rémunérés et peuvent être remplacés par du travail effectué depuis n’importe où dans le monde
  • La durée d’une carrière de sportif professionnel est d’environ 15 ans au maximum ; il existe une possibilité de gagner beaucoup d’argent jusqu’au milieu de la trentaine, mais ensuite le corps ne suit plus
    • la figure tragique fréquente aujourd’hui est celle du sportif professionnel qui croit que « le spectacle va durer pour toujours » et ne prépare pas l’après-carrière
    • les ingénieurs logiciels sont peut-être la première génération à se retrouver dans une situation comparable ; si c’est le cas, mieux vaut s’y préparer

1 commentaires

 
GN⁺ 1 시간 전
Commentaires sur Hacker News
  • J’ai cette même conversation plusieurs fois par semaine : quelqu’un dit « l’IA va rendre les développeurs inutiles », et quand je demande pourquoi, on me répond « parce que les LLM peuvent écrire du code »
    Sauf qu’en réalité, dans mon travail rémunéré, écrire du code représentait autrefois 2 à 5 %, et aujourd’hui encore moins ; le reste consiste à comprendre les choses puis à appliquer sa capacité à construire des solutions
    Les développeurs qui croient encore que leur métier consiste à taper du code pourraient ne plus avoir d’emploi à l’avenir, et les dirigeants qui pensent pouvoir remplacer les développeurs par des LLM finiront, à mon avis, par être pris en charge par la sélection naturelle

    • Vers 2000, dans l’un de mes premiers emplois, j’ai été mis en binôme avec un ingénieur logiciel expérimenté qui travaillait depuis le début des années 1970, et j’étais ravi à l’idée d’apprendre de lui
      Vers le quatrième jour, il m’a dit : « Je vais t’apprendre ce qui m’a le plus aidé dans ma carrière », puis il a ajouté : « numérote toujours tes cartes perforées, comme ça si tu les fais tomber tu pourras facilement les remettre dans l’ordre »
      J’ai été déçu, parce que l’époque des cartes perforées était déjà révolue depuis longtemps, mais il a ajouté : « Je n’ai pas dit que ça t’aiderait, j’ai dit que ça m’avait aidé, moi. Le logiciel change toujours. » J’y repense souvent ces temps-ci
    • Cette réponse est un peu trop lisse. En pratique, la majeure partie du temps est consacrée au codage, ce qui inclut taper, retaper, puis retaper encore
      Cela inclut aussi le temps passé à se cogner la tête contre le mur pour faire fonctionner du code réécrit afin de s’adapter à une API mal documentée
      La formulation du commentaire d’origine donne de l’ingénierie logicielle l’image d’une activité pure et noble, presque comme les mathématiques, alors qu’en réalité, même si on arrive avec un plan, on se retrouve plutôt à ressembler à un ouvrier du forage qui martèle du métal à la grosse masse pour faire rentrer une garniture de forage dans des délais serrés parce que la réalité ne correspond pas au plan
    • Certaines personnes n’écrivent peut-être du code qu’à 2 à 5 %, mais d’autres sont plutôt entre 6 et 50 %
      Le fait de « comprendre les choses et construire des solutions » est aussi un domaine que l’IA vise
      Peut-être êtes-vous simplement dans un environnement où vos contributions sont reconnues, ou dans une industrie / un domaine peu présent dans les données d’entraînement, ou dans un espace de problèmes trop complexe pour que l’IA le traite bien
      Ceux qui traitent des tickets Jira et fabriquent des applis web CRUD risquent fort de voir leur gagne-pain disparaître souvent, ou d’être poussés à produire davantage pour le même salaire, voire un salaire plus bas, tout en devant se mettre à niveau avec l’IA
    • J’aime bien l’expression « la sélection naturelle s’en chargera ». Les prédictions sur la façon dont l’IA va transformer le logiciel et au-delà sont innombrables, mais je me demande à quel moment les paroles vont cesser et où commencera la démonstration des résultats
      Si ça marche, ça marchera, la méthode se diffusera et deviendra rapidement accessible à tous, et les progrès continueront
      Si ça ne marche pas, cela se verra à l’absence de résultats réels ; dire « moi, je le vois » ne suffira pas. Il faut une réalité visible et utilisable par tous, inévitable et impossible à nier
    • Je suis d’accord sur le principe, mais l’estimation de 2 à 5 % me paraît extrêmement basse. Si on me disait que la plupart des développeurs passent 25 %, voire 40 % de leur temps sur le code, je trouverais ça crédible, mais quelqu’un qui n’y consacre que 2 % reste très rare
      Peut-être dans une grande entreprise, à un niveau du type conseiller CTO ultra-senior, mais c’est déjà une position très atypique
  • La réaction polarisée à l’IA semble dépendre du prisme adopté. Les postes juniors disparaissent rapidement, tandis que dans les rôles seniors, l’expérience et le jugement sont plus importants que jamais
    Donc oui, l’ingénierie logicielle pourrait ne plus être une carrière à vie pour beaucoup. Un peu comme le sport de haut niveau n’est pas une carrière réaliste pour la plupart des gens, même si certains continueront à en vivre — et il le faut

  • Mon expérience a été exactement inverse. Les ingénieurs très expérimentés qui essaient réellement d’utiliser les outils récents sont bien meilleurs qu’avant, y compris ceux dans la quarantaine ou la cinquantaine
    L’une des raisons pour lesquelles les programmeurs traditionnels s’affaiblissent sur le terrain avec le temps, c’est qu’ils perdent en concentration et en profondeur de calcul, comme aux échecs. Un joueur d’échecs âgé comprend bien mieux le jeu qu’un génie de 19 ans, mais il ne peut pas calculer avec la même vitesse ni la même endurance, si bien que l’expérience finit par céder face à la puissance brute de calcul
    Claude Code et Codex allègent cette charge de calcul, tandis que tous les instincts accumulés par l’expérience et toutes ces « intuitions » de deux secondes restent intactes
    Ce n’est plus seulement un terrain de jeu équitable, c’est devenu l’inverse. Le senior qui dirigeait autrefois une équipe de 6 personnes dirige maintenant une équipe d’agents, et relit le code comme avant. Parfois, il est même plus facile de rediriger les agents que les juniors autour de lui

    • Heureusement, pour les ingénieurs logiciel, il existe une voie d’architecte, et elle récompense souvent l’intuition profonde même si les détails du calcul changent constamment
      La question urgente, mais encore sans réponse, c’est de savoir si l’on peut produire de bons architectes sans passer par les tranchées du travail concret
      Les LLM font eux aussi quelque chose qui ressemble à de l’intuition, donc il faut distinguer les deux. Les LLM ressemblent davantage à l’inconscient collectif d’Internet, ce qui est clairement différent des préférences forgées par de bonnes et de mauvaises expériences
      L’intuition qui émerge revient finalement à avoir « du bon goût », et c’est proche du cœur du rôle senior dans n’importe quel domaine technique
    • Si un seul senior peut faire le travail de 6 collègues, qu’arrive-t-il à ces collègues ?
      Dans l’agriculture, ceux qui ont été remplacés par les tracteurs n’ont pas gardé leur emploi. Qu’est-ce qui serait différent aujourd’hui ?
    • Dire que « le senior qui dirigeait une équipe de 6 personnes dirige maintenant une équipe d’agents » confirme précisément le point de l’auteur
      Une équipe de 6 personnes n’est plus nécessaire et sera donc, logiquement, supprimée dans l’entreprise
      L’ingénierie logicielle restera peut-être un métier pour certains, mais les effectifs pourraient diminuer de 85 %
    • J’ai 43 ans et, après 15 ans d’expérience, j’étais extrêmement productif comme développeur Java/Swing, avec une excellente maîtrise des outils
      Mais cette entreprise n’existe plus, et il me faut bien plus de temps pour apprendre à être efficace avec les nouveaux outils d’aujourd’hui. Je n’ai tout simplement pas passé 10 ans à absorber les détails de ce nouvel environnement
      Donc l’IA me fait gagner énormément de temps pour retrouver la bonne syntaxe et me souvenir des détails d’un framework de tests unitaires. Si je reste 1 à 3 ans, je serai probablement bien plus rapide et je connaîtrai mieux les outils
    • Il faut arrêter l’anthropomorphisme. Une équipe d’agents, ça n’existe pas ; ce ne sont que des outils et des processus qui tournent sur un ordinateur
      Si cet ingénieur senior disparaît, il ne reste rien. Une équipe de 6 personnes est préférable
  • L’idée selon laquelle « les utilisateurs d’IA voient leurs capacités techniques s’atrophier avec le temps et deviennent des ingénieurs moins efficaces » me semble malheureusement plutôt vraie sur le long terme
    D’un point de vue professionnel, les gens se divisent globalement en deux groupes : ceux qui utilisent l’IA pour renforcer leur raisonnement, et ceux qui l’utilisent pour remplacer leur raisonnement. Les premiers ne m’inquiètent pas vraiment, les seconds oui
    Ma mère, professeure dans un lycée public américain, se plaint que ses élèves prennent souvent le « Google AI overview » comme une source de vérité absolue
    C’est peut-être un nouveau phénomène du même ordre que l’ancien « on ne peut pas citer Wikipédia », mais elle a l’impression qu’après la pandémie, les capacités de pensée critique des élèves entrant en cours ont visiblement chuté
    Il y a déjà une ou deux générations qui ont grandi dans un environnement où des influenceurs et des inconnus sur Internet leur disent quoi aimer, quoi détester et quoi croire. Ils externalisaient déjà leur raisonnement avant les LLM, et ils ne semblent pas préparés à interagir de manière productive avec des systèmes conçus pour leur donner ce qu’ils veulent, même avec une qualité douteuse

    • Je travaille effectivement avec des gens qui génèrent des solutions sans vraiment regarder la sortie. Ils cliquent dans l’appli ou lancent quelques tests, puis si le résultat leur semble correct, ils déploient
      On voit des traces de Claude dans toute la PR, et on peut supposer sans grand risque qu’ils n’ont presque rien retouché. Eux, c’est le groupe A
      À l’inverse, j’ai aussi des collègues qui poussent le problème jusqu’au bout, construisent un harnais pour tester les changements, vérifient les résultats, explorent plusieurs solutions jusqu’à en synthétiser une idéale, benchmarkent, peaufinent, testent en profondeur et fournissent dans la PR une procédure de validation raisonnable. Eux, c’est le groupe B
      Ce sont deux modes d’usage de l’IA totalement différents. Le groupe A a l’air de s’en sortir pour le moment, mais le groupe B représente une nouvelle version de ce qu’il est possible d’accomplir dans le temps imparti, et définit un nouveau standard de l’ingénierie logicielle qu’on ne voyait presque jamais en dehors d’environnements exceptionnellement professionnels
      Je pense que le groupe A va être rapidement écarté du secteur. Les LLM peuvent vous rendre incroyablement efficace si vous avez la volonté d’apprendre. Cette rigueur pourrait devenir la norme par défaut, et peut-être la seule manière pour que l’humain reste un élément utile dans la boucle
    • Beaucoup d’adultes autour de moi prennent désormais aussi le Google AI overview comme une source absolue
    • Un billet HN récent à ce sujet : https://news.ycombinator.com/item?id=47913650
  • De façon anecdotique, on a vraiment l’impression qu’un changement réel s’est produit cette année sur le marché américain de l’embauche en logiciel. De plus en plus d’entreprises semblent adopter une stratégie d’attente pour éviter de trop investir dans le capital humain au cours des prochaines années
    Les signaux de recrutement, déjà faibles à l’origine, donnent maintenant l’impression d’avoir complètement disparu. On publie une offre et on reçoit plus de 500 candidatures et lettres de motivation rédigées par LLM, toutes se ressemblant plus ou moins
    La comparaison avec les sportifs professionnels dans l’article me paraît un peu maladroite. Quand on gagne sa vie avec ses muscles, les effets physiques de l’âge sont évidents, mais dans les métiers du savoir comme le droit ou la médecine, on voit beaucoup de praticiens très compétents et très affûtés dans la quarantaine et la cinquantaine

    • C’est anecdotique aussi, mais j’ai l’impression que les entreprises américaines recrutent massivement en Inde et dans d’autres marchés en développement
      Je connais des gens dans ces pays qui n’avaient jamais reçu un seul message de recruteurs de la big tech et qui en reçoivent désormais tous les jours
      J’ai aussi vu passer l’idée que cela serait lié à l’expiration l’an dernier d’une certaine disposition américaine, mais je n’y connais rien, donc je ne peux pas en discuter sérieusement
    • Sur le terrain, honnêtement, je n’ai pas l’impression que l’IA influence tant que ça la demande d’embauche. Les ingénieurs ne sont pas assis à ne rien faire pendant que l’IA écrit tout ce que le management avait imaginé
      En revanche, l’économie donne l’impression d’être au bord de la chute, ou au minimum sur des montagnes russes. Les incitations fiscales à l’embauche sont faibles, l’ère des taux zéro est terminée depuis longtemps, et les recruteurs sont submergés de candidatures parasites
      Malgré tout, les chefs aiment dire que c’est à cause de l’IA. Ça donne l’impression qu’ils maîtrisent la situation
    • Je pense surtout que les entreprises ont surrecruté pendant le Covid, et qu’entre cette expérience et l’incertitude du marché, elles ne veulent pas refaire la même erreur
  • Je lis sans cesse l’argument selon lequel, grâce à l’IA, tout ira bien parce qu’on pourra « se reconvertir dans un autre métier », mais je n’ai jamais vu lequel, ni qui paierait le coût de cette reconversion
    Pour ma part, je n’ai ni l’argent ni le temps de retourner à l’université et de recommencer une nouvelle carrière à zéro

    • La logique, c’est « ça s’est toujours passé comme ça dans le passé »
      C’est vrai, mais seulement jusqu’au moment où ça cesse de l’être
      Un exemple classique de l’échec possible de ce type de raisonnement, c’est la théorie de Malthus. L’idée selon laquelle l’augmentation des ressources alimentaires est linéaire alors que la population croît de manière exponentielle, et qu’un effondrement démographique en résulterait, était conforme à toute l’histoire observée jusqu’au moment où Malthus l’a formulée
      Au niveau mécanique, l’argument « nous avons toujours trouvé d’autres emplois » oublie que cela a été possible parce que l’humain conservait toujours un avantage cognitif sur l’automatisation
      Même le simple apport humain sur une chaîne d’assemblage dépendait en fin de compte de la capacité humaine à effectuer des ajustements subtils, presque invisibles, que les robots ne savaient pas faire
      Mais si quelque chose proche d’une AGI fonctionne réellement, le travail humain n’aura plus aucun avantage sur l’automatisation ; on ne voit donc pas clairement pourquoi l’ancienne logique selon laquelle « l’automatisation crée plus d’emplois humains » continuerait de s’appliquer
    • La même reconversion n’a pas eu lieu pour les ouvriers qualifiés des industries dont les emplois ont été externalisés en Chine ; elle n’aura donc probablement pas lieu cette fois non plus
      L’État distribuera juste assez d’aides sociales pour garder la situation gérable, puis diabolisera culturellement ces gens comme on l’a fait avec les luddites
    • Ces métiers n’existent pas, et même s’ils existaient, c’est à chacun d’en payer le coût. Les entreprises ne paieront jamais, sauf dans des cas extrêmement rares où elles y sont forcées par la concurrence
    • La même chose vaut pour les secteurs que le logiciel a détruits
    • Rien ne garantit que d’autres bons métiers apparaîtront. C’est quelque chose que les gens semblent simplement supposer
      Bien sûr, pendant un temps, il restera des emplois nécessitant du travail physique humain, mais en pratique, beaucoup de ces emplois sont exercés dans d’autres régions du monde où les salaires sont plus bas
      Les métiers non exportables comme plombier ou serveuse ont une demande limitée. On ne peut pas espérer pousser 50 % de la main-d’œuvre actuelle des cols blancs vers ce type d’emplois et s’attendre à ce qu’ils trouvent facilement du travail ou un salaire correct. La demande n’existe pas
      Parallèlement, alors même que les emplois de bureau disparaissent, les emplois manuels « peu qualifiés » sont eux aussi de plus en plus automatisés. Les caisses automatiques réduisent les emplois dans le commerce, les robotaxis et la livraison par drones réduiront les emplois de livraison et de logistique, et les robots d’entrepôt réduiront les emplois d’entrepôt
      Il semble y avoir l’hypothèse implicite que l’IA créera beaucoup d’emplois bien rémunérés nécessitant des employeurs humains, et que ces emplois ne pourront pas être externalisés à moindre coût à l’étranger. Mais quels sont exactement ces emplois bien payés à la fois résistants à l’IA et à l’externalisation ? On va tous devenir agents d’entretien haut de gamme ? Ça n’a aucun sens
      Dire aujourd’hui aux gens de se reconvertir dans le bâtiment ou la plomberie suppose que la demande pour ce travail est infinie, alors qu’elle ne l’est pas. Même si la demande de main-d’œuvre dans le bâtiment explosait, il faudrait des années pour disposer des équipements, des chaînes d’approvisionnement et des infrastructures nécessaires pour absorber des millions de personnes dans ce secteur
      Le scénario le plus probable, c’est que les gens perdent leur emploi et se retrouvent pris dans une compétition sans fin vers le bas pour les rares postes encore disponibles dans l’économie domestique. Le reste sera externalisé, ou effectué par des robots et de l’IA
      Le meilleur conseil est plutôt de commencer à se préparer à cette réalité. Il ne faut pas supposer que l’État nous protégera, ni même qu’il en sera capable. Quand la richesse se concentre, la corruption devient presque inévitable, et les responsables politiques ont eux aussi une famille à faire vivre
      Il faut prendre cela au sérieux. Même si j’ai tort, mieux vaut se préparer au pire que partir du principe que tout s’arrangera et qu’on pourra se reconvertir vers de nouveaux emplois bien rémunérés
  • Mes deux parents travaillaient dans le bâtiment. Ils savaient bien qu’on ne peut pas soulever des charges lourdes toute sa vie
    À la fin, ils ont arrêté de porter et sont devenus chefs d’équipe ou superviseurs. Si l’idée d’apprendre à faire faire par d’autres le travail qu’on faisait soi-même vous met mal à l’aise, alors votre corps finira complètement détruit, et les conséquences sont terribles
    C’est une réalité très concrète, mais c’est aussi une métaphore importante que j’ai intériorisée dans ma carrière à propos de la délégation. Ce n’est pas sans rapport avec l’usage de l’IA, même si je ne dirais pas que la correspondance est parfaite

    • Cela vaut la peine de noter que, dans des limites raisonnables, soulever des charges lourdes rend plus fort, alors que l’hypothèse actuelle sur l’usage de l’IA suggère plutôt l’inverse
    • Le développeur logiciel est moins un simple programmeur qu’un architecte. On ne demande pas à un architecte de porter des charges lourdes ; on lui demande de concevoir la manière dont ces charges seront utilisées
  • J’aimerais que les gens intelligents arrêtent d’utiliser dans leurs textes des métaphores d’abstraction comme celle-ci. Le mot clé ici, c’est déterminisme
    Chaque couche d’abstraction, qu’il s’agisse d’outils électroportatifs ou du C, a ajouté une couche déterministe sur laquelle on peut compter, qui produit le même résultat à chaque fois et permet de travailler plus efficacement
    Avec les LLM, on décrit la programmation en langage naturel, et le résultat est au mieux variable. C’est pour cela qu’on a besoin d’agents et qu’on pousse les résultats en brute force
    Le vrai fossé défensif, à mes yeux, reste d’être quelqu’un qui sait encore programmer réellement

    • Les gens disent toujours ça, mais à mon avis c’est à côté du sujet. Les LLM ne sont pas déterministes, mais cela n’a aucune importance
      On n’exécute pas directement la sortie du LLM ; on utilise le LLM pour produire un artefact une fois, puis on exécute cet artefact de manière déterministe
      La spécification est transformée une fois en code, et bien sûr le code peut être mis à jour si l’on modifie la spécification, mais on ne régénère pas l’intégralité du programme à chaque exécution. Dans ce cas, pourquoi le déterminisme serait-il si important ?
    • Je reconnais que les LLM ne correspondent pas à certaines définitions de l’abstraction. Mais ceux qui parlent des LLM comme d’une nouvelle couche d’abstraction ne se trompent pas tous pour autant. Ils emploient simplement le terme de manière plus abstraite
      Par exemple, comment Mark Zuckerberg construisait-il du logiciel il y a 5 ans ?
      Comme moi, il pouvait ouvrir un éditeur, mais dans la pratique, il disposait surtout d’une autre interface : des ressources humaines. Au lieu d’interagir avec un éditeur, il interagissait avec ces personnes, et ce sont elles qui fabriquaient le logiciel
      Cette couche entre lui et le système produit, qu’elle soit déterministe ou non, reste une abstraction
      Aujourd’hui, nous disposons d’un champ d’action plus large qui nous permet de déléguer davantage de tâches qu’il y a quelques années
    • Les autres couches sont-elles vraiment déterministes ? Êtes-vous certain qu’un objet a bien été ramassé par le garbage collector ? Êtes-vous certain du nombre de cycles que prend cette instruction ?
    • Les LLM n’ont pas besoin d’atteindre une fiabilité parfaite pour remplacer beaucoup de travail. Il leur suffit d’atteindre le bon équilibre entre fiabilité et coût pour une tâche donnée. Et cet équilibre varie selon la tâche
    • Je vois l’idée, mais le mot déterminisme n’est pas exact non plus. Les LLM sont fondamentalement déterministes. Ils produisent du texte comme fonction pure du texte d’entrée et des paramètres du réseau
      Selon votre conception du libre arbitre, on pourrait tout aussi bien soutenir que l’humain est lui aussi déterministe
      Le vrai point, ici, c’est que les LLM comme les humains sont des fonctions opaques. On ne peut pas réduire leur comportement à une suite d’étapes logiques exécutables dans sa tête, il n’existe pas d’invariants permettant de décomposer proprement leur complexité en quelques états interprétables, et l’espace des entrées et sorties est non structuré, ambigu, incomplètement spécifié et pratiquement infini
      C’est ce qui rend presque impossible le raisonnement ou la synthèse avec les stratégies et analyses qu’on applique aux programmes traditionnels
      On peut ajouter de la non-déterminisme en injectant sélectivement des sources d’entropie, mais ce n’est pas indispensable. Si tous les fournisseurs de LLM fixaient la graine du générateur pseudo-aléatoire à une valeur constante, presque personne ne s’en apercevrait
      Il n’y a probablement pas beaucoup de workflows qui dépendent du fait de soumettre exactement le même prompt plusieurs fois et d’obtenir une distribution statistique des sorties ; il est même plus probable qu’on reçoive une réponse mise en cache quand on voudrait l’éviter
  • Si, par ingénierie logicielle, on entend saisir du code caractère par caractère dans un éditeur de texte, alors il deviendra sûrement difficile de trouver quelqu’un prêt à payer pour cela
    Mais si on entend par là fabriquer du logiciel, alors nous en fabriquons plus que jamais, et la définition même de ce qu’est un logiciel n’a jamais été aussi large. À partir de là, je pense que plusieurs carrières différentes peuvent se ramifier

    • Nous vivons ce que les ingénieurs civils ont vécu en passant de la règle à calcul à la calculatrice, et ce que les ingénieurs électriciens ont vécu en passant du routage manuel des circuits aux outils de CAO
      Ce qui est intéressant, c’est que l’ingénierie logicielle doit elle aussi évoluer. Les processus et les outils doivent évoluer comme ils l’ont fait au fil des décennies
      Quand j’ai terminé l’université en 2004, on nous enseignait la période de la « crise du logiciel », les processus de développement en cascade et l’émergence des nouvelles « méthodologies itératives »
      On nous enseignait aussi le passage du code spaghetti au paradigme structuré de Pascal/C, puis à la programmation orientée objet
      Les méthodologies d’ingénierie ont elles aussi évolué. Il y a eu l’UML, tristement célèbre, des méthodes formelles comme le langage Z pour la vérification formelle, ou encore des mesures de complexité logicielle comme ABC et la complexité cyclomatique
      Aujourd’hui, alors que l’ordinateur écrit l’essentiel du code, la valeur des langages actuels et du processus de développement logiciel actuel diminue. Les langages de programmation ont été conçus pour les humains. Sinon, nous serions restés en assembleur
      Nous devons maintenant changer l’abstraction que nous utilisons pour transmettre notre intention à l’ordinateur et pour vérifier que les instructions finales accomplissent bien ce que nous voulions
      Cette nouvelle abstraction m’intrigue énormément. Si les petits détails du codage deviennent totalement automatisés, je pense qu’on pourrait enfin voir davantage de vraie rigueur d’ingénierie dans le métier du logiciel
    • Imaginons qu’en 2020, deux entreprises concurrentes emploient chacune 100 programmeurs. On sait tous comment fonctionnent ces organisations : elles sont toujours en retard, chaque fonctionnalité ajoutée en crée d’autres potentielles, et nous avons tous vécu cela, c’est encore largement le cas aujourd’hui
      Imaginons qu’en 2026, les deux entreprises concluent que l’IA permet aux développeurs d’aller 10 fois plus vite. Je ne prétends pas que ce soit le chiffre réel, c’est juste un nombre rond
      L’entreprise 1 licencie 90 programmeurs et fait le même travail avec 10 personnes
      L’entreprise 2 garde tous ses programmeurs, fait 10 fois plus de choses qu’avant, et embauche peut-être davantage
      Qui gagnera sur le marché ?
      Comme toujours, la réponse est « ça dépend », mais l’espace dans lequel l’entreprise 1 peut l’emporter me paraît bien plus étroit que celui de l’entreprise 2. Il faut une combinaison très précise de conditions de marché ; ce n’est pas impossible, mais parier que l’on fait partie de l’exception est risqué
      Pendant la phase d’accélération, avant que la nouvelle réalité se soit installée, la réponse de l’entreprise 1 peut sembler séduisante en surface pour la comptabilité
      Mais si, sur un marché donné, une seule entreprise choisit l’option de l’entreprise 2 et commence à s’écarter du peloton, tout le reste du secteur devra suivre pour rester compétitif
      À moyen et long terme, la création de valeur qu’un programmeur est capable de produire et de faire capturer par son salaire a peu de chances de diminuer
    • L’inquiétude, c’est de savoir si le fait de produire ce logiciel-là sera payé suffisamment pour suivre l’explosion du coût de la vie
      Par le passé, les emplois créés par l’automatisation étaient généralement moins bien rémunérés et offraient moins d’autonomie
    • Même si nous produisons plus de logiciels, cela ne résout rien si une grande partie n’est qu’un doublon fonctionnel d’autres logiciels
      Autrement dit, chaque entreprise réinvente la roue plusieurs fois. Multiplier par 10 le développement de logiciels qui n’ont rien de nouveau, sinon d’avoir été écrits avec un nouveau framework brillant, n’a aucun intérêt
      À mon avis, il faut commencer à supprimer la plupart des logiciels. Revenir aux fondamentaux, voir ce qui est nécessaire, l’améliorer, puis l’achever. Il faudrait, pour une fois, finir un logiciel
    • On peut remplacer software engineer par secretary, et creating software par typing correspondence, et la phrase fonctionne toujours
      Dans un monde où l’IA aura résolu la programmation et la conception logicielle, la valeur s’accumulera chez ceux qui possèdent une expertise dans d’autres domaines. Ils disposeront alors de la puissance de 1000 développeurs professionnels, tandis que la valeur ne s’accumulera pas chez ceux qui n’apportent qu’une compétence devenue redondante face à des outils d’IA meilleurs, plus rapides et moins chers
  • Sauf erreur de ma part, il y a ici un problème logique évident
    S’il faut accepter une atrophie des compétences pour gagner en productivité avec les LLM, alors nous, développeurs à durée de vie limitée, serions les seuls concernés. La génération suivante n’aura même pas de compétences acquises manuellement à voir s’atrophier
    Et je propose qu’on interdise publiquement l’analogie « la génération de code par LLM, c’est comme la génération de code machine par un compilateur ». On en a assez de rejouer sans cesse le même débat sur la même idée

    • Pourquoi l’analogie LLM-compilateur serait-elle fausse ? Est-ce uniquement parce que la sortie des LLM est non déterministe ?