Vous avez dit logiciel libre ?

Je parle régulièrement sur ce blog de logiciels libres.
Mais je me rends compte que sorti du milieu libriste et même parmi les personnes utilisant des logiciels libres, peu savent vraiment de quoi il s'agit.
Quelques explications me semblent donc nécessaires !

Je ne suis pas le premier à essayer de définir ce que sont les logiciels libres.
Si vous souhaitez retourner aux sources vous pouvez lire la biographie de leur inventeur Richard Stallman.
Elle est disponible en libre téléchargement sur framabook.

framabook : Richard Stallman et la révolution du logiciel libre

Je m'aventure ici à en apporter une description fatalement imparfaite mais en tentant de mettre en avant leurs vertus pour leurs utilisateurs ainsi que leurs limites à l'époque de la généralisation des applications en ligne multi-utilisateurs.

Tout d'abord si on parle de logiciels "libres", c'est en fait des libertés de leurs utilisateurs dont il est question.
En effet, les logiciels libres sont définis ordinairement par quatre libertés garanties à leurs utilisateurs.

Fais ce que tu veux ! (ou presque...)

La première de ces libertés est celle vous permettant de les utiliser comme vous le souhaitez.

À mes yeux, c'est non seulement la première liberté dans l'ordre dont on les liste ordinairement mais aussi la première en importance dont les trois autres découlent.

Pour la comprendre il faut vous imaginer qu'un beau jour votre traitement de texte préféré - non content de vous assister via son correcteur orthographique - se met à refuser d'enregistrer vos fichiers tant que toutes les erreurs qu'il aura détectées ne seront pas corrigées !

Pourtant vous pouvez avoir 1000 raisons de vouloir garder vos "erreurs", soit que le correcteur se trompe, que vous utilisiez une langue inconnue par votre logiciel ou encore que vous écriviez sciemment des erreurs pour des raisons qui vous regardent...

Je ne connais pas de logiciel se comportant de cette manière mais cet exemple imaginaire vise à vous faire comprendre comment dans ce cas vous pourriez vous sentir entravé.e dans votre liberté d'utilisation.

Or cette entrave n'aurait rien de "naturelle" : elle serait la conséquence de la façon dont le logiciel a été conçu et donc de la volonté des personnes l'ayant créé (ou encore de celles payant ces personnes pour le faire...).

Évidemment, en informatique comme ailleurs, vous ne pouvez pas vraiment faire tout ce que vous voulez. Il y a des limites "naturelles" ou du moins "logiques".

Supposons maintenant une application en ligne vous permettant de télécharger des photos, sans que ces photos soient visibles hors d'un cercle privé de personnes.
Si cette application vous empêche de télécharger des photos sur lesquelles apparaissent des chatons, cela constitue de nouveau une limite à votre liberté d'utilisateur.
Par contre si cette même application vous empêche de télécharger des fichiers autres que des images, cela n'a rien de liberticide et est même pertinent car laisser passer de tels fichiers provoquerait ensuite des erreurs.

C'est un peu la différence qu'il y a entre le fait de vous retrouver enfermé.e dans une pièce (restriction de votre liberté par autrui) et le fait de ne pas pouvoir en sortir en passant par le trou de la serrure (plutôt normal, à moins que vous ne soyez un lutin ! :-)).

J'ajoute qu'il n'est pas toujours aisé de savoir si la restriction d'un logiciel relève d'une volonté de son concepteur de limiter votre liberté ou simplement d'un cas de figure qu'il n'a pas pris en compte ou encore d'une erreur de programmation (les fameux "bugs").

Une façon plus pernicieuse par laquelle un logiciel peut limiter votre liberté consiste à vous espionner, c'est-à-dire à garder une trace de ce que vous faites pour la mettre à disposition d'autres personnes, sans que vous puissiez vous y opposer à priori.

Si un isoloir est utilisé d'ordinaire pour voter c'est précisément parce qu'ainsi à l'abri du regard d'autrui, vous êtes sensé.e pouvoir prendre votre décision plus librement.

Mais comment savoir si un logiciel vous espionne ? ou encore si telle contrainte de votre logiciel est le fruit ou pas de la volonté de son concepteur de vous brider ?

Levons le capot !

La seule façon d'être fixé.e est de vérifier comment est conçu ce logiciel et d'accéder à ce que l'on nomme son "code".

Mais qu'est-ce que ce "code" ?

Les ordinateurs, tablettes, smartphones et autres objets connectés sont des assemblages savants de matériels électroniques... qui ne vous seraient d'aucune utilité sans ce fameux code !

Tout ce que vous permettent de réaliser ces machines sont les conséquences des instructions contenues dans le code qu'elles contiennent.

À supposer une page internet vous invitant à créer un compte utilisateur en saisissant votre adresse email, votre mot de passe, etc.
Lorsque vous validez le formulaire pour enregistrer vos informations, ce site internet devra contrôler les données que vous avez saisies et afficher éventuellement des messages d'erreur si il y a un problème.
Si tout se passe bien, vos données seront enregistrées par le site et sans doute recevrez-vous un message vous confirmant la création de votre compte.

Pour que les quelques instructions que je viens de décrire se réalisent, pas de magie, elles doivent être décrites dans un langage que la machine est capable d'interpréter pour les exécuter correctement. C'est que l'on nomme le "code" et ce n'est qu'en ayant accès à ce code que vous pourrez savoir comment le programme fonctionne vraiment.

Une des libertés du logiciel libre est celle vous permettant d'accéder à son code pour étudier son fonctionnement.

Vous me direz que ne sachant pas programmer et donc lire ce code vous ne serez pas très avancé.e !

C'est vrai mais même si vous ne souhaitez pas apprendre le langage de programmation utilisé pour pouvoir le lire vous-mêmes, l'important est qu'il soit accessible à la communauté d'utilisateurs et donc qu'il puisse être contrôlé.

Les logiciels libres ne vous cachent rien, ce qui est plutôt un gage de confiance, même si cela ne constitue pas une protection absolue.

La fameuse transparence que l'on réclame par ailleurs est ici appliquée dans le domaine informatique.

Faites votre cuisine !

Je l'ai dit plus haut, si vous vous sentez bridé.e par un logiciel quelconque, il ne faut pas forcément y voir de la malveillance de ses concepteurs.

Cela peut être une fonctionnalité qu'ils n'ont pas prévue, qu'ils n'ont pas encore pris le temps d'ajouter ou encore la conséquence d'une erreur de programmation...

C'est ici qu'intervient la troisième liberté du logiciel libre : non seulement vous pouvez lire le code du logiciel mais vous pouvez aussi le modifier !

Ainsi vous pouvez lui ajouter telle fonctionnalité qui vous manque, en modifier une autre, corriger par vous-mêmes une erreur, etc. Non seulement cela est possible mais fait partie de l'esprit du logiciel libre, ce que l'on appelle le "Do It YourSelf" (faites-le vous-même).

De nouveau, si vous ne savez pas programmer vous ne serez pas avancé.e mais il vous sera toujours possible de demander à d'autres personnes de le faire pour vous, que cela soit gratuitement ou pas...

Souvent vous pouvez même suggérer cette modification aux développeurs habituels du logiciel mais l'important est que vous ne soyez pas tributaire de leur bon vouloir puisque vous avez le droit de modifier le fonctionnement du logiciel sans demander leur autorisation.

Les logiciels libres n'appartiennent pas à leurs créateurs mais à tous leurs utilisateurs. Il s'agit de biens communs numériques.

Et partagez vos recettes !

Dernière des quatre libertés offertes par le logiciel libre : la possibilité de partager librement le code du logiciel, que cela dans sa version d'origine ou celle modifiée par vos soins.

Vous pouvez partager ce code gratuitement ou bien de manière payante.

Ceci est important : les logiciels libres ne sont pas forcément gratuits et surtout tous les logiciels gratuits ne respectent pas forcément vos libertés.

Seule contrainte : vous devez partager ce code dans les mêmes conditions. C'est-à-dire que si vous modifiez un logiciel libre pour l'adapter à votre besoin et que vous souhaitez mettre à disposition votre version du logiciel, elle doit elle-même offrir ces mêmes quatre libertés. On parle de licences virales puisqu'elles se transmettent de proche en proche.

Vous devez aussi indiquer la liste des personnes ayant contribué à leur création. C'est que l'on nomme leur paternité.

Cette volonté de partage fait partie de l'éthique du logiciel libre et a été transposée dans d'autres domaines, par exemple l'encyclopédie wikipédia, les cartes OpenStreetMap...

On passe ici du "faites-le vous-même" au "faisons-le ensemble" !

Illustration framasoft : logiciels libres / Stallman

Les logiciels libres à l'heure du web

Un grand nombre de logiciels que nous utilisons aujourd'hui sont des applications en ligne.

La bonne nouvelle est qu'une bonne partie de ces applications en ligne sont basées sur des logiciels libres.

Par exemple, si vous participez à un forum internet, il y a de fortes chances pour que l'application permettant à ce forum de fonctionner soit un logiciel libre.

Par ailleurs, ces applications sont souvent multi-utilisateurs. C'est par définition le cas pour un forum.

On voit tout de suite une limite à la première liberté car il y a plusieurs personnes utilisant le même logiciel avec souvent des droits différents (administrateur, modérateur, utilisateur, simple visiteur...).

Vous ne pouvez donc pas faire tout ce que vous voulez, à part si vous êtes le seul administrateur.

Ici comme ailleurs, l'informatique n'a rien inventé car nous retrouvons cette limite dans tout regroupement d'individus devant cohabiter.

Mais la question que l'on peut se poser est : qui décide de cette répartition des droits ? est-ce qu'il y a eu concertation ou est-ce le "fait du prince" ?

Le plus souvent c'est la personne (physique ou morale) mettant à disposition le logiciel qui décide pour les autres. Et il n'est pas rare que cela soient les personnes les plus techniques qui imposent leur volonté, les autres ne s'en rendant pas forcément compte car n'y comprenant pas grand chose...

Accepter ce fait revient à accepter un fonctionnement non démocratique car c'est celui qui sait comment faire qui décide sans concertation. Nous sommes plutôt ici dans un fonctionnement technocratique. Or est-il légitime que la compétence technique donne une quelconque prédominance dans des choix qui ne sont pas que techniques ?

Là encore cette tendance technocratique ne concerne pas que l'informatique mais il faut avoir à l'esprit que le fait d'utiliser un logiciel "libre" ou non ne change pas grand chose dans ce cas. Sur ce sujet, lire l'article de NullPointerException promouvant une gouvernance éthique.

Autre différence lorsqu'un logiciel libre est utilisé "en ligne", en tant que simple utilisateur vous n'avez qu'un accès limité à son code et vous ne pouvez pas le modifier.

Donc si vous n'installez pas vous-même ce logiciel sur un serveur internet dont vous êtes propriétaire, vos libertés s'en trouvent sérieusement diminuées.

Si vous ne l'avez pas installé vous-mêmes, vous ne pouvez même pas être certain.e que le logiciel libre que vous utilisez n'a pas été modifié pour ajouter des fonctionnalités non souhaitées.

C'est pourquoi de certain.e.s libristes sont adeptes de l'auto-hébergement, c'est-à-dire qu'ils installent les applications souhaitées sur leur propre serveur internet. Ils maîtrisent ainsi tout de A à Z.

Sans aller jusqu'à là vous pouvez privilégier les logiciels libres hébergés par des tiers de confiance (par exemple framasoft et son réseau de Chatons ou la mère Zaclys).

Du rapport homme / machine...

Le logiciel libre interroge notre rapport aux technologies d'une manière générale.

Quel rôle souhaitez-vous avoir face aux nouvelles technologies ?
Les subir pour le meilleur et pour le pire ?
Les refuser en bloc parce que vous ne les maîtrisez pas ?
Ou au contraire chercher à les apprivoiser et étant partie prenante ?

C'est cette troisième voie que proposent les logiciels libres.

À l'époque du "big data", des algorithmes comportementaux et de l'émergence de l'intelligence artificielle, il est plus qu'important de garder le contrôle collectivement pour veiller à maîtriser les technologies que nous utilisons.

Et on peut facilement transposer cette volonté de reprise de contrôle dans d'autres domaines (politique, économie...) où nous pouvons aussi avoir l'impression d'avoir de moins en moins prise.