Voici le troisième billet de la série sur le logiciel libre, contenant ici la Partie 2 du texte.
Sommaire
- Le logiciel libre - épisode 1 : prologue.
- Le logiciel libre - épisode 2 : le logiciel libre, toute une histoire.
- Le logiciel libre - épisode 3 : idéologie du logiciel libre.
- Le logiciel libre - épisode 4 : les enjeux du logiciel libre.
- Le logiciel libre - épisode 5 : l'économie du logiciel libre.
Partie 2 : Idéologie du logiciel libre
Découvrons maintenant les principes, les différents éléments et les avantages qui caractérisent l’idéologie du logiciel libre. Maîtrise de la machine, respect de l’utilisateur, licences permissives ou presque, aspect communautaire : voici les grandes lignes du logiciel libre que nous allons aborder.
Les principes généraux
Qui contrôle votre ordinateur ? Cette question mérite d’être posée pour comprendre l’idéologie du logiciel libre. Elle en est même son fondement. Ainsi, est-ce vraiment vous qui contrôlez votre ordinateur, ou n’est-ce pas plutôt une de ses grosses compagnies informatiques telles que Apple, Microsoft, Google, etc. ? Tout d’abord, observons le fonctionnement d’un ordinateur : avec un ordinateur, vous pouvez effectuer n’importe quelle opération souhaitée, car vous utilisez des programmes qui, par le biais d’un jeu d’instructions, indiquent à l’ordinateur les opérations qu’il doit exécuter. En fait, l’ordinateur en lui-même sait seulement faire deux choses : recevoir les instructions des différents programmes et les exécuter. Il ne fait qu’obéir aux programmes, c’est donc celui qui donne les instructions qui contrôle l’ordinateur. Voilà pourquoi il y a deux cas de figure avec les logiciels : soit l’utilisateur contrôle le programme, soit le programme contrôle l’utilisateur. Le logiciel libre se veut donc un moyen pour l’utilisateur de retrouver le contrôle de ses programmes et ainsi celui de son ordinateur. Une chose qui paraît bien naturelle.
Pour pouvoir retrouver la maîtrise de sa machine, l’utilisateur doit donc disposer des quatre libertés fondamentales dictées par Richard Stallman dans la définition du logiciel libre.
La liberté zéro est la liberté d’utiliser un programme comme bon nous semble et pour n’importe quelle tâche.
La liberté un est la liberté d’étudier le code source du programme et de le modifier, ce qui vous permettra de faire exécuter à l’ordinateur les instructions que vous aurez vous-même dicté. Le code source peut être présenté sous deux formes. La première est une forme que l’on peut lire et comprendre, du moins si on connaît le langage de programmation avec lequel le programme a été écrit : cette forme s’appelle la source. La seconde forme est un méli-mélo de zéros et de uns, dont même un programmeur aura du mal à comprendre le sens : c’est ce qu’on appelle l’exécutable. Ainsi, si vous ne disposez que de l’exécutable d’un programme, il vous sera très difficile de comprendre ce qu’il effectue réellement, et encore plus compliqué de le modifier. Mettre à disposition de l’utilisateur la liberté un, c’est lui donner la possibilité d’étudier et de modifier le programme, et donc de lui faire faire ce qu’il souhaite. C’est une première pierre posée à l’édifice qu’est la quête du contrôle de l’ordinateur : l’utilisateur définit lui-même les instructions que devrait effectuer son ordinateur. Mais ceci est seulement possible si l’utilisateur connaît un langage de programmation, ce qui n’est pas le cas de tous. Si un utilisateur n’est pas programmeur, il va jeter un coup d’œil au code source d’un programme mais n’y comprendra absolument rien. C’est là qu’intervient la notion de collectif : au lieu de définir les instructions d’un programme de manière individuelle comme dans le premier exemple, les utilisateurs sont également libres de travailler en groupe pour adapter le programme à leurs besoins, qu’ils soient programmeurs ou non. Pour aller encore plus loin, le programme modifié aura la possibilité d’être redistribué librement. C’est là qu’entre en jeu la troisième liberté.
La liberté deux est la liberté de créer des copies du programme, de redistribuer ces copies gracieusement aux autres utilisateurs ou même de les vendre.
La liberté trois enfin est assez similaire à la liberté deux, à la différence près qu’elle s’applique à des copies modifiées, améliorées du programme. Ces copies peuvent donc également être redistribuées ou vendues au même titre que des copies exactes.
Ces quatre libertés fondamentales constituent la base d’un logiciel libre, et si l’une d’elles manque à l’utilisateur, alors il sera impossible pour lui d’avoir un réel contrôle de ses programmes, et de ce fait de son ordinateur. Le but du logiciel libre est donc de fournir ces libertés aux utilisateurs et de leur permettre de conserver la maîtrise de leurs outils informatiques.
Un programme est un logiciel libre si vous, en tant qu’utilisateur de ce programme, avez les quatre libertés essentielles : la liberté d’exécuter le programme comme vous voulez, pour n’importe quel usage (liberté 0) ; la liberté d’étudier le fonctionnement du programme, et de le modifier pour qu’il effectue vos tâches informatiques comme vous le souhaitez (liberté 1) ; l’accès au code source est une condition nécessaire ; la liberté de redistribuer des copies, donc d’aider votre voisin (liberté 2) ; la liberté de distribuer aux autres des copies de vos versions modifiées (liberté 3) ; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos changements ; l’accès au code source est une condition nécessaire.
Richard M. Stallman, What is free software ?
Le terme de « logiciel libre » connaît une controverse au sujet de son sens dans les pays anglophones : en effet, le mot « libre » se traduit par le mot « free » en anglais, qui signifie également « gratuit ». Ainsi s’est installée une confusion au niveau du sens du mot, la plupart des gens ayant retenu la signification de gratuité et non de liberté. Il ne faut donc pas se tromper : le terme « logiciel libre » désigne un logiciel qui permet à son utilisateur de disposer des quatre libertés fondamentales énoncées ci-dessus, qui inclue la liberté de vendre son logiciel. C’est pour cette raison que certaines personnes utilisent le terme « libre/free » pour parler du logiciel libre.
Une seconde petite précision concerne une subtilité entre les termes « libre » et « open source ». Pour illustrer la différence de ces mots, Richard Stallman dresse le portrait de deux groupes d’activistes : celui des défenseurs du logiciel libre, et celui des défenseurs du logiciel open source. Il explique donc que ces termes parlent plus ou moins de la même chose, mais de façon différente. Les personnes utilisant le mot « libre » auront pour argumentaire la liberté de l’utilisateur. Ils conçoivent le logiciel libre comme un combat idéologique voire philosophique. À l’inverse, les personnes utilisant le terme « logiciel open source » partent d’un sentiment beaucoup plus rationnel et technique : l’intérêt pour eux de libérer les sources d’un programme est que si on laisse la possibilité à l’utilisateur de modifier un programme, il en sortira alors une meilleure qualité de code et une meilleure possibilité de corriger les problèmes de fonctionnement. Il y a donc une subtile notion de productivité qui entre en jeu dans l’emploi du terme « open source ».
Les licences libres
Pour qu’un logiciel permette aux utilisateurs de disposer des quatre libertés fondamentales, il doit être distribué par son auteur sous une licence libre. Une multitude de licences libres s’offre à l’auteur selon son projet, sa cible d’utilisateurs et son but à atteindre. Il existe même des licences pour libérer d’autres œuvres qu’un logiciel, par exemple une photographie, une musique, un livre, etc. Nous allons dans ce chapitre découvrir les principales licences libres utilisées pour toutes sortes d’œuvres de l’esprit. Il existe trois grandes catégories de licences libres : les licences de type GPL, les licences de type BSD, et pour terminer les licences de libre diffusion, légèrement différentes des licences libres à proprement parler. Nous jetterons également un coup d’œil au principe du domaine public.
Il est important de noter que j’aborderai ici les cas des licences de libre diffusion et du domaine public seulement à titre informatif, car ces licences ne sont pas adaptées pour des logiciels. Il m’a cependant semblé important d’en parler pour connaître le champ de licences libres existantes.
Les licences de type GPL regroupent toutes les licences approuvées par la Free Software Foundation et du projet GNU. Ces licences sont les licences libres originelles, dont la GNU GPL, rédigée par Richard Stallman au début des années 1980 lors de la création du logiciel libre. On donne aussi le nom de « copyleft » à ces licences, jeu de mot avec le terme « copyright » qui signifie littéralement « gauche d’auteur » mais aussi « laissé copier ». Le principe même des licences copyleft est d’éliminer les contraintes du logiciel propriétaire par une contrainte : en effet, la seule restriction que dicte la licence GNU GPL est l’interdiction de redistribuer le logiciel sous une licence non compatible avec l’idée du copyleft.
Le copyleft utilise le copyright (ou le droit d’auteur), en le retournant pour lui faire servir le but opposé de ce pour quoi il a été conçu : ce n’est pas une manière de restreindre l’utilisation d’un logiciel, mais une manière de le laisser « libre ».
Richard M. Stallman, The GNU project
À l’inverse des licences de type GPL copyleft, les licences de type BSD imposent très peu de contraintes. En règle générale, seule la mention de l’auteur du logiciel est demandée pour respecter les clauses de ce type de licences. Ces licences ne protègent donc pas le logiciel contre les restrictions, car elles permettent de redistribuer le logiciel libre sous une licence non libre. C’est cette facette des licences BSD que dénoncent Richard Stallman et la FSF. On peut donc voir ces logiciels libres sous licence BSD s’intégrer dans un logiciel propriétaire, mais l’inverse est également possible, c’est-à-dire voir un logiciel libre BSD s’intégrer dans un logiciel libre GPL. On peut citer parmi les licences BSD les plus connues la licence BSD bien sûr, mais aussi les licences MIT (X11 et Expat) ou encore la licence Apache1.
Les licences de libre diffusion sont légèrement différentes des licences libres. En effet, contrairement aux licences libres qui rendent tous les utilisateurs d’un logiciel libre égaux en droit, les licences de libre diffusion ne respectent pas la même équité. Une licence de libre diffusion peut ainsi limiter les droits de modification et d’utilisation suivant le contexte, par exemple certaines licences interdiront une utilisation commerciale de l’œuvre. L’organisation à but non-lucratif Creative Commons propose un large choix de licences de libre diffusion, définies par la combinaison de clauses choisies par le créateur d’une œuvre. Ainsi, six combinaisons de licences articulées autour de quatre grandes clauses sont proposées par Creative Commons. Voici les quatre clauses composant les licences Creative Commons :
- Attribution : c’est la clause de paternité, obligeant l’utilisateur à mentionner l’auteur de l’œuvre (clause inclue de base pour toute licence dans le droit français).
- Non Commercial : cette clause interdit une utilisation onéreuse de l’œuvre sans l’autorisation de l’auteur.
- No Derivative Works : cette clause empêche la distribution d’une modification ou d’une adaptation de l’œuvre.
- Share Alike : cette clause oblige la distribution de toute modification ou adaptation de l’œuvre sous la même licence.
Comme vous pouvez le voir, certains assemblages deviennent assez restrictifs, et c’est pourquoi certaines licences Creative Commons ne sont pas considérées comme des licences libres par l’organisation. Par exemple, à partir du moment où la licence inclut la clause Non-Commercial ou la clause No Derivative Works, la licence n’est pas considérée comme libre. Vous pouvez retrouver les différentes combinaisons possibles sur le site de l’organisation Creative Commons.
Le domaine public est, en droit de la propriété intellectuelle, l’ensemble des œuvres de l’esprit et des connaissances dont l’usage n’est pas et ne peut pas être restreint par la loi. Cela concerne des œuvres dont l’auteur a volontairement choisi de placer dans le domaine public, des œuvres dont les droits d’auteur ont expiré, des œuvres ne pouvant pas être soumis à des droits d’auteur, ou encore des brevets ayant expiré. La notion de domaine public varie selon les législations des pays : en France, même si une œuvre est placée dans le domaine public, on ne peut pas enlever tous les droits à l’auteur : le droit moral ne peut pas être oublié. Le droit moral correspond aux droits fondamentaux de l’auteur, comme le droit à la paternité ou le droit de divulgation de l’œuvre au public. Si l’on regarde le système américain, l’auteur peut renoncer à tous ses droits sans aucune exception s’il souhaite placer son œuvre dans le domaine public, car le système du droit d’auteur n’est pas appliqué. Ainsi pour permettre à des auteurs dont le pays d’origine n’autorise pas l’abandon total des droits d’auteur, il existe des licences tentant de se rapprocher le plus possible du domaine public, comme la licence CC0, rédigée par l’organisation Creative Commons, permettant à l’auteur de l’œuvre de renoncer a autant de droits que la loi en vigueur dans son pays le lui permet.
Mais les œuvres constituant le domaine public ne sont pas toutes placées volontairement. En France par exemple, une œuvre entre dans le domaine public soixante-dix ans après la mort de l’auteur. Cette durée peut être différente en fonction des pays. En revanche, dans tous les pays où le droit d’auteur est appliqué, les héritiers de l’auteur conservent le droit moral de l’œuvre.
Quels avantages pour l’utilisateur de logiciels libres ?
Nous allons dans ce chapitre tenter de répondre à l’une des questions les plus importantes et que vous pourrez fréquemment rencontrer si vous vous retrouvez en train de vanter les mérites du logiciel libre : quels sont ses réels avantages par rapport au logiciel propriétaire pour l’utilisateur ?
Nous avons déjà eu l’occasion dans le prologue de noter plusieurs avantages grâce à l’analogie de la pizza. Ainsi nous avons vu qu’un logiciel placé sous licence libre permet de donner des droits à l’utilisateur, par exemple de modifier, partager, d’utiliser librement le logiciel (la licence en vigueur peut néanmoins ajouter des clauses sur certains droits), ce qui n’est pas possible avec un logiciel propriétaire. En somme, cela vous permet de contrôler réellement votre logiciel, et non l’inverse qui serait totalement absurde (et pourtant c’est une réalité). L’octroiement de ces droits par l’auteur du logiciel constitue le principal avantage du logiciel libre.
En second lieu, nous pouvons parler du prix du logiciel libre. En effet, la plupart des logiciels libres sont distribués gratuitement – même si cette gratuité n’est pas une conséquence directe du caractère libre du logiciel –, ce qui n’est pas négligeable pour certaines catégories d’utilisateurs comme les familles ou les étudiants. Et qui dit coût moindre dit également baisse du coût d’accès au savoir, notion très importante dans la recherche de l’égalité sociale. À côté de cela, certaines compagnies proposent des logiciels à un prix exorbitant, ce qui ne favorise pas l’accès au savoir pour tous. Et ce qui est flagrant, c’est de voir à quel point aujourd’hui2 l’Éducation Nationale entérine l’usage de logiciels propriétaires, par exemple pour la bureautique. Le ministère sensé apporter la connaissance et la culture aux élèves qui contribue, sûrement sans le savoir, à la fermeture de l’accès à l’éducation, c’est le comble, non ? Voilà donc un second argument en faveur du logiciel libre.
Le troisième avantage du logiciel libre concerne le support d’aide aux utilisateurs. Les projets de logiciels libres sont pour beaucoup réalisés par différents contributeurs particuliers, articulant ainsi le projet autour d’une communauté de développeurs. Cette communauté va ensuite s’étendre aux utilisateurs, des plus confirmés aux débutants. Ceci permet aux utilisateurs novices d’avoir à leur disposition un large support d’aide à l’utilisation du logiciel concerné : des documentations rédigées par des membres de la communauté (documentation s’internationalisant naturellement la plupart du temps), des forums de discussion où des utilisateurs expérimentés pourront apporter des réponses à leurs questions des plus basiques aux plus techniques, des tutoriels, etc. En revanche, cet avantage n’est pas le plus flagrant dans l’idéologie du logiciel libre, car tout projet de logiciel ne bénéficie pas forcément d’une communauté active comme on pourrait en trouver pour des logiciels populaires, qu’ils soient libres ou non. La différence peut se remarquer dans le cas d’un développement volontairement ouvert pour favoriser le dialogue entre développeurs et utilisateurs. Le support d’aide est également un moyen de tirer profit du logiciel libre pour certaines entreprises spécialisées, ne garantissant pas sa gratuité. Le réel avantage des communautés s’articulant autour d’un logiciel libre est donc la possibilité de contribuer au développement du logiciel, ce qui n’est pas envisageable avec un logiciel propriétaire.
Ces trois arguments représentent les principaux avantages à utiliser un logiciel libre plutôt qu’un logiciel propriétaire, mais il en existe sûrement une multitude d’autres, touchant l’utilisateur de manière individuelle.
Cependant, maintenant que nous avons listé tous ces avantages à utiliser des logiciels libres, il faut parler aussi de ses désavantages. N’ayant pas personnellement eu d’expérience à contribuer au développement d’un logiciel libre, j’ai toutefois pu recueillir des retours sur le fonctionnement de ces contributions. Dans un projet de logiciel libre, il y a souvent un ou des « décideurs » qui gèrent la publication et le contenu des différents patchs (corrections) et contributions des utilisateurs. On peut noter l’exemple de Linus Torvalds quihttp://fr.wikipedia.org/wiki/Format_de_donn%C3%A9es aujourd’hui gère encore à lui seul toute la publication finale du noyau Linux après vérification des différentes contributions (même s’il porte tout de même une grande confiance en ses « lieutenants » et que ses refus de publication sont très rares). L’utilisateur aura cependant toujours le droit de « forker » le projet, c’est-à-dire de reprendre le code source du logiciel et de le modifier à sa guise, mais ceci ne renforcera pas forcément le projet initial pour deux raisons : en forkant un projet, la version modifiée perd la légitimité acquise par le projet d’origine, donc peu de chances de voir des utilisateurs utiliser cette version modifiée, à moins d’un réel avantage à le faire. Ensuite, il se peut que la modification apportée soit mineure à l’échelle du projet d’origine, auquel cas les mainteneurs ne jugeront pas nécessaire de maintenir la contribution, et encore moins si le public ne répond pas présent.
Nous pouvons aussi parler du fait que se tourner vers les logiciels libres demande un effort de changement des habitudes pour les utilisateurs. Pour tout changement de logiciel, qu’il soit libre ou non, cela implique de bien gérer la transition et la migration. Si la migration n’est pas satisfaisante pour les utilisateurs, cela peut entraîner le rejet du logiciel.
Un autre retour que j’ai pu avoir concernant les défauts du logiciel libre touche encore le domaine de la contribution au logiciel. Dès qu’un projet de logiciel libre grossit, il a tendance à être de plus en plus difficile à contribuer depuis l’extérieur. Il semble que beaucoup de logiciels libres ouverts à la contribution rencontrent des problèmes d’organisation qui peuvent se traduire par une mauvaise documentation, ce qui n’encourage pas les utilisateurs particuliers à contribuer au projet.
Comme vous avez pu le voir dans ce chapitre, le logiciel libre possède beaucoup d’avantages par rapport au logiciel propriétaire, mais également des défauts. C’est donc à chacun de voir si le concept du logiciel libre pourrait lui plaire. Dans la partie suivante, nous allons découvrir les différents enjeux du logiciel libre : les enjeux de société et les enjeux stratégiques dans un contexte économique.
À suivre…