IA, éthique, tout ça

1 « J'aime »

“Protégé” par le secteur médical pour l’instant (et encore), on nage en plein cauchemar….Les juniors en PLS, les dirigeants soit en autruche soit en commit débile, le coût écologique, nan flemme.

À propos de l'article du NYT que j'ai cité plus haut, quelques commentaires « reader picks » qui ont attiré mon attention

I’ve been coding professionally since the 90s and am very much in the weeds, still coding regularly now, as a principal architect, and AI coding makes me sad and terrified.

There’s great pleasure in knowing a system to the point that when something goes wrong you can identify the exact layer, method or even line. I like to see automation replace dangerous or repetitive work but not this. I feel bad for everyone from now on that never have to solve problems again.

That’s the sadness. (…)

Software Engineer with 26 years of experience here. We are NOT happy about the direction our industry went. Not in any way. Software Engineering was once a well respected craft, it hasn’t been in at least 10 years. Nobody is happy about using AI slop code either.

I have been writing code in a multitude of languages since I was 7 years old, and am now a software engineer. “I didn’t do it to make a lot of money and to excel in the career ladder. I did it because it’s my passion. I don’t want to outsource that passion.” is 100% how I feel. I’ve been writing Go for several years now, which is an amazingly fun language to write. The actual implementation part of my job was the most joyful. Now I am being forced to babysit a machine that gobbles up electricity and cooling water to produce a slightly worse result than I could have gotten on my own. My job is now to be a full time code reviewer. I think it is time to exit the industry and find something else to do. Not to mention that the ceaseless circlejerking from the C-suite about this technology is absolutely nauseating.

C-suite (lien wiktionary)

A lot of entry level jobs are being and will be replaced by AI, which can be supervised by the more senior staff members.

However, all these senior staff members supervising AI will at some point reach retirement age.

When that happens, who is left to supervise AI?

Or are we assuming by that point AI will be good enough that people will no longer be needed?

My electric bill this summer was unexplainably about 40% higher than last summer with approximately the same usage.

Each month this summer I received a notice from my utility indicating that my usage was significantly higher than the neighbors (the neighbors received the same letter) and that we should look at ways to be more efficient.

Little did we know that our added expense was in support of needed infrastructure expansion to serve the AI industry which is poised to further enrich the rich and powerful on the back of the multitudes. (..)

This article hints at, but doesn’t quite explicitly point out, an important issue with using AI agents to write code: you need to know what you’re looking for. That means you need to know code yourself; otherwise, you won’t be able to tell if the AI is doing it right.

I encounter this issue with my university students all the time in data science courses. They throw an assignment at Claude or chatGPT or whatever, and then they mindlessly turn in whatever the AI gives them. What they don’t realize is that the AI often gives them something vastly different than what they expect. But because they’ve been leaning on AI for years now instead of learning to code themselves, they don’t have the competence to evaluate the output and determine whether it’s correct.

1 « J'aime »

C’est même pas un problème de départ à la retraite. Beaucoup de devs vont juste partir faire autre chose, sans attendre la retraite. Relire du code généré par IA c’est un autre métier, beaucoup plus chiant, comme l’attestent les commentaires que tu mentionnes.

3 « J'aime »

Quand je lis ça, j’ai l’impression de voir un artiste se faire déposséder de son art. Ce sont vraiment les mêmes craintes et les mêmes schémas. L’IA c’est vraiment génial…

2 « J'aime »

Mon boss m’impose de faire des revues de code (de dev junior et senior). Qu’est-ce que je déteste ça. Pointer les manques de logique et de compétences de mes collègues est vraiment pénible.

Au moins avec l’IA, t’as pas à faire de retour désagréable à des humains :sweat_smile:

1 « J'aime »

Oui mais avec des humains ça peut être une discussion, voire une réflexion commune (un des objectifs principaux d’une revue c’est le partage d’info sur ce qui est implémenté, trouver les erreurs est secondaire), et si tu es senior par rapport à la personne, c’est aussi une manière de la former.

Ton IA ne va jamais progresser et l’objectif principal de la revue est cette fois-ci de trouver les erreurs, ce qui est le plus pénible.

2 « J'aime »

Même problème dans la traduction ou avant tu avais un traducteur et un relecteur qui travaillent ensemble.

Maintenant tu as juste une relecture de la trad par IA. C’est très chiant et m’beaucoup moins sympa.

1 « J'aime »

J’ai une perception très différente de la chose. Tout comme la personne citée, je code moi aussi environ depuis que j’ai 7 ans, mais mon rapport à l’informatique n’est pas le même.

Ce qui m’a toujours fasciné, ce n’est pas le code en soi, c’est le pouvoir de faire faire des choses à une machine. Pour y arriver j’ai du apprendre à lui parler et au cours de ma carrière, j’ai appris beaucoup de langages différents pour pouvoir communiquer de plus en plus efficacement avec les ordinateurs et leur faire exécuter des tâches toujours plus complexes.

Mais de mon point de vue, le plaisir n’est jamais venu de la syntaxe ou de la description d’un problème dans un langage particulier c’est le fait d’avoir réussi à faire faire ce que je voulais à la machine.

Avec les LLM, j’ai l’impression, comme l’explique l’article, qu’on a juste franchi une étape de plus : je peux maintenant le faire en langage naturel, et l’IA se charge de traduire ça en instructions que la machine peut comprendre. Je n’ai aucune frustration de ne pas ecrire directement du java ou du go ou du typescript. Je trouve ça au contraire très grisant de pouvoir faire faire ce que je veux à une machine encore plus facilement et rapidement qu’avant.

Et side note : j’ai croisé dans ma carrière beaucoup de dev pour qui effectivement écrire du “beau code” etait une fin en soit…ça n’a selon moi jamais été les meilleurs dev car ils oubliaient que le but d’un dev n’est pas de s’extasier devant son code mais de comprendre un besoin et de trouver une solution technique efficace pour repondre à ce besoin.

Malgré tout, c’est laisser la traduction à un tiers dont il sait qu’il est largement perfectible dans son exécution.

Pour l’utiliser au quotidien je t’assure que ce “tiers” est de plus en plus performant pour traduire en code ce que je lui décris en langage naturel. Ca n’est évidemment pas parfait, j’ajuste régulièrement le code qu’il me génère mais toujours est il que je ne me sens pas du tout “dépossédé”. J’arrive juste à faire faire ce que je veux à une machine encore plus rapidement et souvent mieux qu’avant. Pour un problème donné je peux tester en une journée 10 approches différentes pour le résoudre ce que je n’aurais jamais pu faire sans LLM car je n’aurais jamais eu le temps (ni la motivation) d’écrire manuellement le code pour tester ces différentes approches.

Le but d’un dev est effectivement de répondre aux besoins des utilisateurs, de comprendre leur point de vue métier et ne pas resté dans sa tour d’ivoire.

Mais il ne s’agit pas de s’extasier devant son code mais de comprendre son mécanisme et son algorithmie, ce qui participe à la motivation corrélée à celle d’avoir répondu aux besoins métiers des utilisateurs. Pour moi les 2 sont liées.

Ça ne m’intéresse pas de faire du passe-plat et en plus je préfère entraîner mon cerveau au code et à l’algorithmie, plutôt qu’au prompting. En tout cas cet article et ses commentaires montre qu’il y a des développeurs qui ne sont pas emballés par cette perte de sens et d’intérêt de sous-traiter cela à un LLM.

Édit : Cet article est bien aussi car il équilibre les points de vue notamment le tien que je ne partage pas :slightly_smiling_face: ainsi que d’autres commentaires dans ce même sens.

1 « J'aime »

Ah mais je ne nie pas du tout que certains développeurs ne sont pas emballés par ces changements et je respecte leur point de vue, je disais juste que personnellement j’avais une perception différente que la personne citée par Ghadzoeux.
Concernant le fait d’entrainer mon cerveau au code et à l’algorithmie, je l’ai fait pendant des dizaines d’années, mais ça na jamais été une fin en soit. Je l’ai juste fait (avec plaisir) parce que c’était le seul moyen de faire faire ce que je voulais à une machine.

ouais.

Faudrait vraiment lui faire découvrir le shampoing, aussi.

1 « J'aime »

Et tu penses réellement que les dev « next-gen » vont poursuivre cet entraînement au code que tu juges pourtant nécessaire ?

1 « J'aime »

Oui, c’est juste que j’aime pas cet exercice ( et que j’ai l’impression de pisser dans un violon, comme avec un llm )

“faire faire ce que tu veux à la machine” sous-entend que tu es capable de savoir ce que tu veux. Ce qui dans la majeure partie de cas dont on parle ici équivaut à savoir ce dont tu as besoin.

Pour savoir ce dont tu as besoin, tu dois avoir bâti une compréhension fine, profonde et étendue des possibles, des pièges, des effets de bord, et de la place de ce que tu veux dans le reste de la réalité avec laquelle ça doit s’articuler.

Déléguer l’apprentissage de l’algorithmie, et du code, à la machine implique inévitablement le déclin des capacités cognitives humaines et de la passation de ces compétences d’une génération senior, qui a appris comme toi, à une génération junior qui n’a pas appris à penser et décortiquer et bâtir des algorithmes élégants dans le même contexte d’apprentissage nécessaire.

Je le dis et je le répète: le principal danger de l’IA, en dehors des clowns dans les board rooms et les Ministères de la Guerre, c’est la déliquescence d’une certaine forme de capacité cognitive dans la population, qui aboutit inévitablement à un élargissement des fractures intellectuelles, culturelles, et donc sociales et économiques.

Et le contexte dans lequel ce danger se manifeste est ajourd’hui celui de progrès techniques dont l’allure transcende les capacités de la population à s’adapter aux impacts. Dans une certaine mesure, ce sera moins douloureux qu’on ne l’estime, puisqu’en étant exposés en permanence à la production des IA, la société perdra également sa capacité à comprendre et appriécier la valeur profonde de la production humaine - cette normalisation étriquée des goûts est déjà fortement engagée. Dès lors, si les gens ne savent plus faire la différence entre quelque chose de bon, et quelque chose d’extraordinaire, économiquement il n’y a plus de raison de produire de l’extraordinaire dans une société capitaliste; l’exigence, qui est coûteuse, cède naturellement sa place au “good enough”. Les distinctions se feront, comme c’est toujours le cas dans la majeure partie des domaines économiques, non pas sur la qualité des produits et services, mais sur leur coût. La bataille médiatique est perdue d’avance parce que la vérité, ça coûte beaucoup plus cher que l’information, et que les gens ne poursuivent plus la vérité comme avant parce qu’ils y sont de moins en moins exposés. Etc, etc, etc.

La décennie courante, les années 2020 donc, est absolument et indubitablement un pivot majeur dans l’histoire de notre civilisation, à bien des égards, et l’IA en est un des artisans manifestes.

11 « J'aime »

Le beau code juste pour la beauté, oui, c’est contre-productif, mais la plupart du temps c’est pour la maintenabilite ou la performance.

La première, c’était déjà compliqué ces dernières années (l’algorithmique, il y a longtemps qu’on l’a perdue en cours de route), avec l’IA, je pense que c’est mort. Ne prenez plus de contrats de TMA.

La 2ème, je suppose que c’est moins grave, là aussi ça fait des années que c’est la 5ème roue du carrosse. Ca rame ? On change les machines, ça coûte moins cher que rework le code, sauf traitements critiques.

L’IA va pour moi enfoncer le clou sur ces 2 aspects (sur le cercueil, le clou). Dans une logique court termiste où ce sont les gains immédiats qui sont recherchés, l’IA est bien dans la continuité et ce n’est pas positif.

Sinon, pour revenir à l’article, les témoignages montrent que cela semble devenu très efficace lorsqu’on maitrise son sujet, mais je l’ai trouvé un peu trop one sided, il manque effectivement les témoignages de ceux qui ne sont pas convaincus, comme ceux des commentaires postés plus haut.

2 « J'aime »

Bien sûr que mon efficacité avec l’IA aujourd’hui repose en grande partie sur mes années d’expérience préalables. Je sais ce que je veux, et je sais repérer quand l’IA se trompe. La question de la formation des juniors est effectivement un défi pour les années à venir.

Par contre, je ne crois pas vraiment à la déliquescence de nos capacités cognitives. Je pense plutôt que, comme toujours, l’effort intellectuel se déplace. On monte en niveau d’abstraction. De la carte perforée à l’Assembleur, de l’Assembleur au C, du C aux langages haut niveau, et aujourd’hui au langage naturel : à chaque fois les “anciens” ont cru que les nouveaux ne sauraient plus penser.

Il n’y a, depuis des années, plus aucune raison de former massivement des jeunes à faire de l’assembleur. Sauf cas très particuliers, on a depuis longtemps des compilateurs capables de générer du code (et sans IA) à partir d’un langage de plus haut niveau bien plus efficacement que ce qu’un humain serait capable d’écrire.

Et donc je pense qu’il faut effectivement profondément repenser la manière d’enseigner l’informatique. Il faut apprendre aux nouvelles générations les concepts dont ils auront besoin pour concevoir des systèmes performants et efficaces pour répondre à des besoins à l’aide de l’IA, mais sans perdre de temps à essayer de leur apprendre les subtilités de la syntaxe de 10 langages ou à connaître par cœur des algos de tri ou A*.

Après, je te rejoins bien sûr sur les inquiétudes concernant la vitesse à laquelle ces technos se répandent, qui est clairement incompatible avec le temps qu’il faut à nos sociétés pour s’adapter à ces changements.

1 « J'aime »

Beaucoup de langages de haut niveau savent faire du bas niveau quand c’est nécessaire ou quand on le veut ou quand on en a besoin.

Rust est un bon exemple de langage qui peut faire du haut niveau en dépit qu’il soit orienté système mais aussi du bas niveau avec en plus un contrôle accru avant compilation. En fait tout dépend de ce que l’on veut faire. Les langages de haut n’ont pas fait disparaître ceux de bas niveau mais chacun ont leur spécialité. Mais les langages de haut niveau sont plus pratiques quand on a besoin d’abstraction et qu’on n’a pas de besoin de bas niveau.

Et encore, par exemple pour Python et R, on peut leur developper des interfaces vers une implémentations en C ou C++ pour améliorer les performances. Beaucoup de librairies sont développées comme cela et c’est transparent pour le dev de haut niveau.