Pourquoi je veux vous parler des anti-fonctionnalités ? Parce que, parmi les avantages intrinsèques du logiciel libre, il y a le fait que le celui-ci vous protège des anti-fonctionnalités.

Exceptionnellement je ne vous propose pas un billet original ; au lieu de cela je vais reprendre littéralement deux très bons exposés sur le sujet, l'un de Benjamin Mako Hill que vous ne trouverez qu'au milieu de cette conférence donnée dans la langue de Shakespeare (lien direct vers la vidéo) et qui alimente les deux premiers paragraphes de ce billet, l'autre de Benjamin Bayart que vous ne trouverez qu'au milieu de cette longue (et passionnante) vidéo, disponible sur The Internet Archive, via PeerTube ou sur YouTube, et qui alimente le troisième et dernier paragraphe de ce billet. Or il me parait important d'attirer votre attention sur le mécanisme des anti-fonctionnalités.

De quoi s'agit-il ?

Une anti-fonctionnalité est une fonctionnalité conçue par le fabricant d'une technologie de telle façon que l'utilisateur de la technologie va la détester.

C'est le contraire d'une fonctionnalité qui fait que la technologie va faire quelque chose que vous voulez : une anti-fonctionnalité est conçue pour qu'une technologie fasse quelque chose que vous ne voulez pas qu'elle fasse.

C'est quelque chose que les utilisateurs détestent tant qu'ils seraient prêt à payer pour avoir la chance de la supprimer.

Attention : comme une fonctionnalité, une anti-fonctionnalité c'est quelque chose qui a dû être développé : ce n'est pas un bug, ce n'est pas une fonctionnalité manquante, c'est une fonctionnalité ajoutée, mais c'est une fonctionnalité négative dans le sens où ça fait faire à la technologie quelque chose que vous ne voulez pas qu'elle fasse.

Un exemple logiciel : Windows

Ex : Windows NT 4.0 et ses deux versions : Poste de travail (Workstation) et Serveur (Server)

Alors que Windows NT Server incluait une série d'applications serveur absentes dans la version NT Workstation, Microsoft soutenait que les systèmes d'exploitation eux-mêmes étaient « deux produits distincts destinés à deux types d'usages très différents ». NT Server, prétendait Microsoft, était taillé sur mesure pour être un serveur Internet, tandis que NT Workstation était tout à fait inadapté. Dans le but de bien marquer cette différence, la version NT Workstation et aussi l'accord de licence limitaient les utilisateurs à un maximum de dix connexions TCP/IP (pour Internet), tandis que la version NT Server demeurait sans limitations.

Beaucoup d'utilisateurs remarquèrent que les deux versions de Windows NT étaient très semblables. En creusant un peu la question, une analyse publiée par O'Reilly et Associés révéla que le noyau, et de fait tous les fichiers binaires de NT Workstation étaient identiques à ceux qui se trouvaient dans NT Server. L'unique différence entre les deux noyaux se trouvait dans l'information destinée à l'installation du système d'exploitation, la version serveur proposait diverses options ou drapeaux pour la marquer soit comme « Workstation » soit comme « Server ». Si la machine était identifiée comme « Workstation », cela désactivait certaines fonctionnalités et limitait le nombre possible de connexions au réseau. Il n'y avait qu'un bit d'écart entre les deux versions.

Des développeurs chez Microsoft ont réfléchi puis ont passé du temps à développer cette fonctionnalité dont le but est de limiter les possibilités du logiciel. Ils ont ensuite réalisé des tests pour s'assurer que l'utilisateur ne pourrait pas bénéficier de plus de connections.

C'est un procédé méthodique, industriel, pour rendre le logiciel moins bon qu'il ne serait sinon. La seule raison pour Microsoft de faire ça c'était de pousser les utilisateurs à acheter le produit plus onéreux s'ils voulaient s'en servir sur un serveur.

Mais c'était en 1996, et les choses sont sûrement différentes maintenant ?

Les six versions (!) de Windows 7 se distinguent d'après la quantité de RAM que vous voulez utiliser. Ah oui, et on ne peut pas changer le papier peint avec Windows 7 Starter :

Windows 7 Starter (2 Go)

Windows 7 Édition Familiale Basique (8 Go)

Windows 7 Édition Familiale Premium (16 Go)

Windows 7 Professionnel (192 Go)

Windows 7 Entreprise (192 Go)

Windows 7 Édition Intégrale (192 Go)

Une fonctionnalité que Microsoft avait développée et a fini par abandonner est la limitation du nombre d'applications que l'utilisateur est autorisé à faire tourner simultanément dans l'interface. Avec la version Starter, l'utilisateur était limité à trois applications.

Ainsi si vous avez ouvert le Bloc-notes, la Calculatrice et Paint, et que vous voulez lancer Internet Explorer par exemple, le système vous répond aimablement que « Pour pouvoir ouvrir une autre application, enregistrez votre travail, puis fermez l'un des programmes ouverts ».

Une équipe de développeurs a donc été mobilisée pour créer cette fonctionnalité ; si vous y réfléchissez ce n'est pas une fonctionnalité triviale à implémenter : si vous êtes un ingénieur vous devez distinguer les applications qui tournent dans l'interface des autres, vous devez intercepter la quatrième application avant qu'elle ne se lance, afficher un message d'explication à l'utilisateur...

Starter était vendu à un prix bradé et il y avait un large projet dont le but était de le rendre tellement mauvais que les utilisateurs qui en avaient les moyens paieraient à coup sûr pour abandonner cette version pour une version plus onéreuse.

Voilà ce qu'est une anti-fonctionnalité.

Maintenant imaginez que vous êtes développeur chez Microsoft et que le soir vous rentrez chez vous et racontez votre journée en vous félicitant : « aujourd'hui j'ai rendu cette version de Windows vraiment, vraiment mauvaise » !

Du côté des logiciels libres, il n'est pas impossible que quelqu'un développe une anti-fonctionnalité mais ça ne peut pas durer dans le cas d'un logiciel libre parce que le logiciel libre donne le contrôle à l'utilisateur et que les anti-fonctionnalités sont conçues pour exploiter l'utilisateur (comme dans les exemples précédents). Et quand les utilisateurs ont le contrôle ça leur donne la possibilité de choisir et la plupart des utilisateurs choisissent de ne pas être exploité. Et le résultat est que les anti-fonctionnalités ne peuvent perdurer dans le monde Libre.

La résistance aux anti-fonctionnalités est un bénéfice véritablement inhérent aux logiciels libres.

Vous pouvez dire que je chipote et qu'après tout c'est courant aujourd'hui et que c'est devenu le business model de l’industrie des logiciels.

Mais je répondrai que ce n'est pas tout à fait exact : c'est le business model de l’industrie des logiciels propriétaires, et ce n'est pas pour rien qu'on les appelle aussi des logiciels privateurs. Je voudrais juste rappeler qu'il existe une alternative, qu'il s'agit des logiciels libres et que ceux-ci sont immunisés par nature aux anti-fonctionnalités.

Pour bien vous faire comprendre qu'il s'agit d'un sujet sérieux et qu'il ne faut pas aller trop vite en estimant que « après tout c'est une situation normale », je voudrais vous donner un autre exemple qui parlera à tout le monde.

D'autres exemples

Tout d'abord citez une machine de l'ère pré-informatique qui ait pour but d'empêcher quelqu'un de faire quelque chose.

À part une serrure ou des menottes, c'est assez rare.

En informatique, vous l'avez compris, ça devient banal.

Le souci c'est qu'aujourd'hui l'informatique ne se limite plus à l'ordinateur personnel. L'informatique est partout, par exemple dans tous les objets électroniques du quotidien.

Je prends un exemple tout bête : mon lecteur de DVD.

Celui-ci commence par vous passer tout un tas de logos où quand vous faites suivant ou menu il vous dit « interdit ». Il ne vous dit pas « je sais pas faire » : VLC y arrive il n'y a pas de raison que le lecteur de DVD n'y arrive pas. Il peut le faire, mais il veut pas.

Mon lecteur de DVD à moi dans mon salon, et il me dit à moi qu'il veut pas.

C'est pas un bracelet électronique qu'on m'a mis parce que j'ai fait des bêtises, c'est mon lecteur de DVD à moi.

Quand mon marteau je lui dis de taper sur un clou il dit pas « non ». Si le tailleur de pierre part en guerre contre son marteau, c'est qu'on a raté quelque chose.

Au mieux j'ai des appareils qui me disent : « je peux pas » : la cafetière, quand je viens de l'allumer, elle ne fait pas un café tout de suite parce qu'elle chauffe et elle me dit « je peux pas », mais il y a une raison technique à cela : elle peut pas.

C'est un problème beaucoup plus sérieux qu'il n'en a l'air ; ça veut dire que cet appareil est conçu pour obéir à quelqu'un qui n'est pas moi et qui impose par ses machines sa volonté à des populations entières.

Tant que c'est pour vous forcer à regarder la pub ou vous forcer à regarder le message qui dit que le piratage c'est mal et que pour regarder le film plus vite vous auriez dû le prendre sur bittorent c'est pas très très grave comme atteinte on va dire, mais le principe est extrêmement gênant : un accessoire chez vous ne vous obéit pas.

Quand votre smartphone refuse d’installer telle application qui n'a pas été certifiée par telle entreprise, c'est un problème.

Cette mécanique de fous, c'est la mécanique des DRM, c'est celle d'un fichier qui dit : « votre ordinateur ne doit pas le lire plus de cinq fois, ou ne doit pas le lire entre 22h et 6h ».

Vous ouvrez un PDF : « interdit de l'imprimer ». Obligé de le lire sur écran. De quel droit ?

Vendre des engins qui ont comme objectif de vous contrôler, ou dont certaines fonctionnalités ont comme objectif de vous contrôler, alors que ce n'est pas la mission première de l'engin (bracelet électronique, menotte, serrure c'est fait pour. On l'a même acheté exprès : si la serrure permettait de rentrer sans les clé on ne l’aurait pas acheté). Alors que l'iPhone qui vous interdit un certain nombre d'applications, c'est pas pour ça qu'on l'a acheté. Vous n'avez pas acheté votre marteau pour qu'il refuse d'enfoncer les clous.

D'autres exemples d'anti-fonctionnalités, que vous trouvez par exemple dans les applications pour smartphone :

Publicité : l’application contient de la publicité,

Surveillance : l’application surveille et/ou rapporte votre activité quelque part sans votre permission.

C'est un sujet sérieux : il devrait être interdit de vendre ce type d’appareils par lesquels les fabricants exercent un contrôle abusif sur l'utilisateur. C'est un problème de société qui devrait être traité au niveau politique.

J'espère qu'à travers l'exemple des anti-fonctionnalités j'ai réussi à illustrer une des différences fondamentales qui existe entre le logiciel privateur et le logiciel libre, à savoir qui contrôle la machine : l'utilisateur ou le concepteur.

Pour élargir le débat :

machines qui sont conçues pour vous empêcher,

non-neutralité du net,

responsabilité des intermédiaires du réseau,

espionnage massif des communications et donc de la population...

Ce sont clairement des marqueurs d'une société non démocratique.