DEV Community

Cover image for Accroche philosophique dans le monde informatique.
Damien LG for Onepoint

Posted on

Accroche philosophique dans le monde informatique.

Les ponts

Prenons comme définition simple de la philosophie la description suivante : "Ensemble des sciences et des disciplines ayant pour objet la connaissance rationnelle de la nature" 1.

La philosophie aujourd'hui ne se limite plus à quelques hommes barbus se demandant si la notion de vide a du sens, ni à deux trois chroniqueurs de plateau semblant pouvoir s'exprimer sur n'importe quel sujet n'importe quand.
La philosophie regroupe tout un ensemble de disciplines traitant de sujets tout aussi précis que variés. Que ça soit la philosophie de l'esprit, du langage, de la morale, politique ou encore des sciences, toutes ces branches travaillent à mettre en place des théories permettant de qualifier le plus justement possible le fonctionnement du monde et notre interaction avec.

Tout d'abord, il faut bien souligner que l'informatique se repose sur des concepts fondamentaux pour la philosophie occidentale que sont les mathématiques et la logique. Mais ce ne sont pas les deux seules disciplines que nous pouvons appréhender dans cet univers.
On peut déjà souligner qu'aujourd'hui l'informatique se déploie notamment sous formes de langages. PHP, Java, Rust, langage fonctionnel, langage objet, etc...

Mais qu'est-ce qu'un langage ? Qu'est-ce que permet et produit la notion de langage ? Quelles sont les règles qui permettent de catégoriser tel ensemble comme étant un langage ou non ? Quelles sont les typologies de langage ? Est-ce qu'il est correct de parler de "langage machine" ?

Au-delà de la terminologie, notre langage naturel et ses signifiants débordent sur le monde de l'informatique et son langage formel.
Le fait de nommer des composants "master/slave" ou "agent" n'est pas anodin: par leurs histoires, ces mots véhiculent un imaginaire et un certain ensemble de règles, de structures, de signifiants et d'organisations associés. Et si vous doutez de l'impact du langage sur nos structures, demandez-vous pourquoi nous sommes désormais tous des talents et non plus des employés ou des salariés.

Parce qu'au final la philosophie politique n'est pas très loin derrière. Quand nous soutenons l'open-source ou que nous mettons en place des licences restrictives, quand nous nous demandons qui a le droit de merger et sous quelles contraintes, quand nous définissons les responsabilités dans l'équipe, nous faisons de la politique.
L'organisation de la production informatique est effectivement politique au sens où l'on se demande qui est légitime à décider, qui est responsable de la production et comment nous nous organisons collectivement.

Bon, passons cette introduction ennuyeuse et allons chercher des cas plus concrets.

Le software craftmanship

Peut-on qualifier la production de code comme étant une forme d'art ?

Après tout, nous avons bien eu le courant du "software craftmanship" pouvant être traduit littéralement par "artisanat logiciel". Et lire le manifeste associé permet, à mon sens, de se rendre compte des réflexions à mener sur notre domaine et nos pratiques.

"Pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus"

Qu'est-ce qu'un logiciel bien conçu ? Pourquoi parle-t-on de qualité logicielle ? Est-ce que répondre aux exigences du métier est suffisant ? Est-ce qu'il faut un minimum de test ? Peut-on calculer de façon objective cette qualité ? Beaucoup de proposition existent pour rationaliser l'évaluation de la qualité logicielle et se basent sur des critères techniques et objectivables tels que la longueur des méthodes.

Dans ce cas à quoi servent les commentaires ? Pourquoi nous prenons nous la tête sur le nommage de variables ? Peut-être qu'une partie de la qualité de nos productions réside aussi dans sa qualité esthétique. Dans la manière dont nous avons rangé notre code, l'avons organisé et l'avons présenté pour que ceux qui passeront après nous (ou nous-mêmes) puissent s'y retrouver plus facilement.

Mais si on commence à parler d'esthétique est-on toujours dans l'objectivité ? On parle de beau et d'art, domaines où l'on amène souvent sa propre subjectivité. Ce qui ouvre tout un nouveau débat, mais limite pour le moment notre capacité à juger objectivement la bonne conception d'un logiciel.

Ou peut être que nos logiciels doivent être perçus comme des œuvres collectives, dont les qualités résideront dans leurs capacités à être comprises, appréhendées, transmises et à évoluer dans le temps.

"Pas seulement l'adaptation aux changements, mais aussi l'ajout constant de la valeur"

Aïe. La valeur. Vous savez calculer la valeur de votre code vous ?
Combien vaut votre commit ? Quelle est votre valeur ajoutée ? Quelle est la valeur d'un logiciel ?

Cette question ne concerne pas uniquement le code, mais est une vieille question de philosophie politique et économique. Est-ce que la valeur se détermine par l'échange ? C'est-à-dire, est-ce que la valeur de mon code réside seulement dans le prix que les gens sont prêts à payer pour ?

La notion de valeur est rapidement entendue en son sens marchand et contractuel, mais dans ce cas tout code produit dans une relation marchande aurait exclusivement la valeur qui lui est financièrement attribuée. Un code de "mauvaise qualité" pourrait donc valoir plus qu'un code de "bonne qualité".

Que faire de l'open source dans ce cas ? Que faire du code produit sur son temps libre ? N'a-t-il aucune valeur ? Où est-ce que sa valeur sera un reflet de l'effort mis dans sa production ? Un reflet de la force de travail engagé ?

Et de la valeur pour qui ? La question de la valeur de notre production technique peut et doit s'inscrire dans une réflexion plus générale sur le système de production. Nous ne pouvons pas extraire notre domaine du fonctionnement général de la société.

Pas seulement les individus et leurs interactions, mais aussi une communauté de professionnels

Alors comment définir le terme "professionnels" ? Dans le sens le plus simple, on pourrait dire que l'on est professionnel à partir du moment où l'on en tire un revenu de la pratique. En ce sens, il suffit d'être employé à produire du code pour en être un professionnel.

Mais est ce suffisant ? Nous avons souvent en tête une certaine de notion de compétence quand nous utilisons la notion de professionnel. Alors quelles sont les compétences d'un travailleur de l'informatique ? Comment pouvons-nous les qualifier ?

Cette question a été mise en exergue durant la période de fort recrutement et de très fort afflux de reconversions dans ce secteur. Les formations proposaient une reconversion dans des temps restreints et la question devient donc : quelles sont les compétences nécessaires ?

Qu'est-ce qui fait de nous des développeurs ?

Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs.

Re Aïe. La productivité. Je ne vais pas m'étendre trop sur le sujet, car ça rejoint le point sur la valeur et parce que j'ai déjà eu l'occasion de m'exprimer sur ce sujet (BOUM, auto promo, je suis influenceur).

Profitons pour passer sur le sujet chaud du moment, Le sujet qui fait vibrer les foules et les porte-monnaies.

Les LLM

L'apparition et le développement rapide des LLM me semble être aujourd'hui l'exemple le plus frappant d'une incapacité collective à s'arrêter 30sc pour réfléchir aux termes que nous utilisons et aux implications de nos choix.

Les IA sont elles conscientes ? Nous avons tous un avis très tranché sur la question. "Évidemment que oui, certaines IA ont menti", "Évidemment que non, elles n'ont pas d'âme !".
Alors que nous ne savons même pas qualifier correctement la notion de conscience. Si l'on considère la conscience comme une propriété émergente de tout un ensemble de fonctions, alors, on pourrait dire que oui. On pourrait argumenter que les opérations internes effectuées par les LLM produisent des effets similaires à nos opérations internes d'humain. Dans ce cas à partir de combien d'effets identiques serions-nous capables d'attribuer la notion de conscience aux LLM ?

Ou alors, nous pouvons avoir une approche plus dualiste et proche de "l'élan de vie" qui dirait que nous, humains, avons un "p'tit truc en plus" qui fait de nous des êtres conscients, que cela est lié à la notion de vie et que l'on ne peut pas décemment attribuer de la conscience à des machines.

Alors si vous trouvez que la notion de bien-être animal est déjà compliquée parce qu'on leur attribue désormais une conscience, attendez qu'on se pose sérieusement la question pour des systèmes qui parle comme nous.

La question est similaire pour la notion d'intelligence. Ces sujets sont traités, étudiés et si ce terme peut être pertinent il est cependant nécessaire de correctement le définir au préalable. Car les termes que nous utilisons et leurs signifiants sous-jacents ne sont pas neutres et construisent notre rapport aux objets.

J'aimerais aussi évoquer le rapport à la connaissance. L'épistémologie est la branche de la philosophie s'intéressant à la connaissance et à la capacité de dire "je sais".
Jusqu'à peu, l'une des particularités de nos systèmes informatiques était leurs propriétés fortement déterministes. À savoir que pour chaque donnée entrante les opérations effectuées étaient les mêmes et que la sortie serait toujours la même ou a minima toujours prédictible. Ça ne veut pas dire que nous n'introduisons pas une forme d'aléatoire, mais que cette partie est restreinte à certains cas d'usages.

Ce que cela signifie, c'est aussi que sans savoir le fonctionnement interne de chacune de nos librairies, nous sommes en mesure de descendre dans la structure interne pour en étudier et comprendre le fonctionnement, en tout cas dans un monde tourné vers l'open-source. Ainsi, le travail et la compétence du développeur ne réside pas uniquement dans la production du code, mais aussi dans la connaissance et la compréhension du fonctionnement interne des outils qu'il manipule. Nous sommes capables de nous approprier les données entrantes, observer leurs parcours dans notre système et en comprendre la sortie produite grâce à son interaction avec ce système.

Il faut rester vigilant et ne pas idéaliser non plus le développeur comme une entité tout sachante et maîtrisant l'ensemble de la chaîne. Nous sommes faillibles, nous partageons la connaissance, prenons des raccourcis et nous organisons comme nous pouvons pour construire notre connaissance, la partager et la faire évoluer.

Les LLM transforment notre rapport à cette connaissance. Car deux fois le même appel avec les mêmes données peuvent produire deux résultats différents. Parce que nous avons des difficultés à analyser le fonctionnement interne ayant produit le résultat.

Nous nous mettons petit à petit à déléguer la connaissance aux LLM sans même interroger l'origine de leurs connaissances. Et si le LLM se trompe ? Est-ce que ça a seulement du sens de dire qu'un LLM se trompe ? Qui oriente les modèles ? Quelles sont leurs gestions ? D'où vient la donnée ?

Nous intégrons cette technologie fabuleuse à toute vitesse parce que "il n'y a pas le choix" en évacuant le processus démocratique et de réflexion nécessaire à l'intégration de ce type de technologie et leurs impacts considérables sur notre organisation sociale. Nous avons passé ces deux dernières décennies à travailler et sensibiliser sur la collecte de données, les usages et détournement qui en sont faits pour, du jour au lendemain, nous jeter collectivement dans les bras de ces mêmes entreprises et en leur offrant nos données sur un plateau d'argent quand elles ne viennent pas directement les récupérer sans poser de questions.

Si l'évolution des LLM est indéniable, si les LLM sont probablement des outils dont on commence à peine à appréhender les possibilités, il n'est pas nécessaire pour autant de tomber dans le mysticisme religieux.

Pour terminer et boucler avec le début de cet article, les Large Language Model sont, comme leur nom l'indique, des modèles de langage. Et si il vous semblait quelque peu folklorique de faire le parallèle entre langage et C++ je vous invite à reconsidérer cette pensée dans ce nouveau contexte.

Conclusion

La philosophie n'est pas qu'un moyen de se faire mousser à peu de frais et de paraître plus important que nous le sommes en citant des auteurs que nous ne comprenons pas. C'est un outil d'appréhension du réel et de mise en valeur des enjeux et implications de chaque possibilité d'interprétation.

Philosopher sur l'IA et l'informatique, c'est prendre ces sujets au sérieux. Comprendre leurs implications et la façon dont nous nous inscrivons dans cette chaîne. Que faire du travail quand le cœur de ces technologies est de nous en soulager ? Comment organiser ce système quand nous en faisons l'un des piliers du fonctionnement de notre société ?

Je ne suis pas philosophe et tout ce que je viens de dire doit être pris avec précaution, mais je suis un acteur, producteur du monde informatique et il me semble qu'il est de notre responsabilité d'utiliser notre compréhension de ces technologies pour proposer un débat public éclairé et constructif.

Si nous considérons vraiment ces technologies comme révolutionnaires, alors il nous faut penser la révolution.

Case BD Anouk Ricard, personnage se demandant si il faut réflechir avant d'écrire

Ressources diverses :

Top comments (0)