Les logiciels libres

― L'utopie réaliste d'une communauté voulant révolutionner les pratiques informatiques


Matthieu Aubry



Dossier réalisé dans le cadre du cours d'expression de Premier Cycle de l'INSA de Lyon
- Avril 2004 -

Table des matières

Introduction 3

Présentation du mouvement du logiciel libre 4

Principe général et vocabulaire 4

Les grandes familles de logiciels 5

Le logiciel privé 5

Le logiciel propriétaire 5

Le logiciel libre 6

Historique et contexte de la création du mouvement 7

Naissance et développement d'UNIX 7

Naissance de GNU's not UNIX 7

L'élément manquant : le noyau 8

Philosophie et fonctionnement du modèle 10

Philosophie 10

Commandements et lois générales 10

Condition 1 : liberté d'utilisation 10

Condition 2 : liberté de modification 11

Condition 3 : liberté de copie 11

Condition 4 : liberté de diffusion du programme modifié 11

Différents types de licences au sein du logiciel libre 12

Les licences de type « copyleft » 12

Les autres types de licences 12

Le domaine public n'est pas « comme le logiciel libre » 13

Analyse de licences de type copyleft 13

La licence GNU/GPL 13

La licence GNU/LGPL 14

Viabilité du modèle 15

Un nouveau modèle économique 15

Vendre du logiciel libre ? 15

Vendre une licence propriétaire pour des clients non satisfaits par une licence libre 15

Les sociétés misent sur les services adjacents aux logiciels 16

Proposer du logiciel libre : opération marketing ? 17

Un modèle humainement et socialement enrichissant 18

Qu'est ce qui donne naissance à un logiciel libre ? 18

L'envie de donner et de partager écrase t-elle la culture de la gloire personnelle ? 18

Conclusion 20

Bibliographie 22

Introduction

La liberté est un privilège convoité par l'humanité depuis son existence. Elle peut être morale, politique, économique, et depuis peu elle peut qualifier l'état d'une nouvelle technologie. Une insuffisance linguistique en langue anglaise fait confondre la gratuité et la liberté (« free » peut se traduire selon ces deux sens). Il est bien question ici de Liberté, bien que la gratuité soit un des principaux atouts de cette famille de technologies, dites « technologies libres ».

Les logiciels libres plus particulièrement sont en train, depuis plusieurs années, de révolutionner le monde informatique, notamment via l'expansion fulgurante du système d'exploitation GNU/Linux (en témoigne la conversion des 100 ordinateurs du Premier Cycle de l'INSA de Lyon en 2003). Pourtant ce phénomène reste méconnu du grand public, qui ne voit généralement dans ce modèle que l'atout de l'accessibilité sans frais aux logiciels. Il m'a semblé très intéressant de se questionner sur ce modèle économique et idéologique, en essayant de comprendre son organisation et les raisons de son rapide développement.

Nous allons ainsi dans un premier temps faire une présentation générale du mouvement du logiciel libre, en donnant les étapes historiques de sa création et en définissant le vocabulaire nécessaire à la compréhension du dossier. Nous étudierons ensuite dans une seconde partie le fonctionnement plus technique du modèle, les lois générales qui le définissent, les différentes licences qui peuvent exister et nous décrirons plus particulièrement une d'entre elles : la licence GNU/GPL (et son « associée » : la GNU/LGPL). Nous analyserons ensuite la viabilité du modèle en étudiant les méthodes permettant à une entreprise d'être rentable économiquement ; nous nous questionnerons alors sur la valeur ajoutée proposée par le logiciel libre. Cela nous amènera à présenter les sources de motivation des développeurs de logiciels libres : quelle passion les anime ? Cette passion est elle totalement désintéressée ?

Présentation du mouvement du logiciel libre

Nous pouvons aisément retrouver dans le principe du logiciel libre des notions politiques, philosophiques, sociales ou économiques, mais le principe général reste définit par des critères techniques. Pour bien comprendre le principe du logiciel libre, il faut donc saisir quelques notions préalables, notamment la notion de programme compilé et de code source. Une fois ces quelques définitions acquises, nous exposerons rapidement les grandes familles de logiciels, puis nous étudierons le contexte et les étapes de la naissance du mouvement du logiciel libre, en nous limitant dans cette partie à une description des faits : l'analyse de l'idéologie et des principes se fera de manière précise dans la seconde partie.

Principe général et vocabulaire

Les logiciels sont écrits par des êtes humains qui font effectuer des actions à la machine via un langage pré-défini et limité, mais compréhensible et lisible. Le programmeur (celui qui écrit des logiciels) développe des programmes dans un langage que l'on peut qualifier d'universel. Chaque programmeur comprend ce qu'un autre écrit (si leur niveau ne sont pas trop différents et si le style n'est pas trop original ― ou particulièrement mauvais).

Voici ce que l'on appelle un code source (écrit ici dans un langage appelé « langage C ») :

#include <stdio.h>

int main ()

{

int compteur;

for (compteur = 1; compteur <= 5; compteur = compteur + 1)

{

printf("Nous sommes au tour n°%d \n", compteur);

}

}



Même si un non-initié en informatique ne comprendra pas nécessairement l'intégralité de ce programme, il est évident dans cet exemple que la présentation, la syntaxe et les termes employés sont abordables et presque familiers.

Le résultat de ce programme donnerait :

Nous sommes au tour n°1

Nous sommes au tour n°2

Nous sommes au tour n°3

Nous sommes au tour n°4

Nous sommes au tour n°5



Entre la phase « programme sous forme de code source » et la phase « résultat produit par le programme » se situe la phase de « compilation ». La compilation est l'étape nécessaire qui permet de transformer un code source en langage compréhensible par la machine, l'ordinateur. Nous assistons alors à une inversion des rôles, puisqu'une fois la « compilation » effectué, un être humain ne comprendra plus le programme, composé d'une suite de 0 et de 1 non sensée pour l'esprit. Par exemple une fois le code source ci-dessus compilé, le programme serait de la forme : 01100110 10010100 10101001 01101010 01010100 01110000 : ce qui est incompréhensible pour la quasi-totalité des esprits humains. Or tous les logiciels sont distribuées sous cette forme, que l'on appelle « forme binaire » puisque la machine ne comprend que les messages formés de 0 et de 1. Toutes les versions binaires des logiciels sont donc « bridées » et inexploitables par les développeurs informatiques, inexploitables dans le sens ou on ne peut les transformer pour les faire évoluer selon ses besoins et envies personnels.

Les grandes familles de logiciels

Nous appelons « licence » le document qui décrit les conditions d'utilisation et de diffusion d'un logiciel. Il existe trois familles principales, chacune soumise à des licences particulières.

Le logiciel privé

Contrairement aux idées couramment admises, le logiciel privé représente plus de 80% du marché. Il correspond aux logiciels développés au sein des entreprises, et qui ne sont pas diffusés en dehors de cette entreprise. Ils peuvent accompagner un éventuel service facturé ou non, mais la question de la diffusion du code source ne se pose pas pour cette famille de logiciels. Il est important de voir que la majorité des logiciels ne sont pas conçus dans le but d'être diffusés.

Le logiciel propriétaire

La famille de logiciel propriétaire englobe tous les logiciels qui ne sont pas libres. Cela est donc très vaste, les logiciels pouvant être payants ou gratuits, livrés ou non avec le code source, autorisant ou non la diffusion du code source aux tiers. Cela englobe les sharewares (logiciels autorisant l'utilisation pendant quelques jours puis devenant payants), les freewares (logiciels gratuits mais livrés sans le code source), les cardwares (logiciels gratuits mais demandant l'envoi d'une carte postale à l'auteur de l'application), etc. Les logiciels commerciaux manipulés généralement sont des logiciels propriétaires (tous les logiciels Microsoft, la quasi majorité des logiciels du commerce, les jeux, etc.).

Le logiciel libre

La solution proposée par certains développeurs est de mettre à disposition de tous, en mêmes temps que le programme binaire compilé, le code source lisible écrit par le programmeur : c'est le principe général du logiciel libre. Les utilisateurs ont alors le droit de lire ce code source (cela semble évident), mais surtout de le modifier et de pouvoir en profiter : ils ont alors le droit de « re-compiler » pour eux mêmes le programme qui reprendra en compte les modifications effectuées. Pour assurer une continuité de leur travail et pour que le logiciel progresse d'une manière globale, les utilisateurs qui ont fait des améliorations ont le droit de soumettre leur code source aux autres utilisateurs du logiciel afin que chacun puisse en profiter. Dans la plupart des cas (pour ne pas dire dans tous les cas) l'utilisateur en question (qui est aussi un développeur, donc) transmettra ses améliorations au développeur initial du logiciel qui se chargera de les intégrer et de distribuer son logiciel avec ces améliorations. Le travail personnel d'un utilisateur-développeur profite alors à l'entière communauté, et l'on peut imaginer que si ces personnes là sont nombreuses, le développement peut atteindre une vitesse très importante et le logiciel rencontrer un large succès.

En regard de cette méthode se situe le modèle « classique » de développement dans lequel les utilisateurs se contentent de donner au(x) développeur(s) les problèmes et bugs rencontrés (logiciel propriétaire énoncé précédemment). Les développeurs doivent alors eux-mêmes chercher les sources des erreurs, les corriger et re-transmettre leurs corrections. Cette méthode est encore largement utilisée par certaines grandes entreprises de développement informatique (Microsoft, Adobe, Macromedia, etc.).

Le processus de développement du logiciel libre conduit lui à une suppression plus rapide des erreurs, et ainsi à une stabilisation (un logiciel est stable lorsqu'il ne « bugge » plus) et amélioration certaine. Ce processus de développement accéléré ne peut avoir lieu que si l'utilisateur a accès aux codes sources.

Historique et contexte de la création du mouvement

Avant de décrire plus précisément le modèle et ses différentes caractéristiques (la disponibilité du code n'est qu'un des aspects), étudions le contexte de sa création et les acteurs principaux ayant permis l'émergence de ce mouvement.

Naissance et développement d'UNIX

Dans les années 1969-1970, deux chercheurs des Bell-Laboratories (dépendants d'une firme appelée AT&T) ont conçu un système d'exploitation (programme à la base même du fonctionnement de l'ordinateur, et donc présent et indispensable pour tous les utilisateurs) : UNIX qui était largement utilisé par AT&T et qui était gratuitement distribué dans les universités et laboratoires aux Etats-Unis. En effet, AT&T qui avait signé un « Consent Decree » avec le gouvernement fédéral n'avait pas le droit de commercialiser des produits informatiques. Dès 1975 AT&T distribuait une licence d'utilisation qui permettait l'accès aux codes sources (écrite en langage C) et la possibilité de modifier à volonté le programme. UNIX fut ainsi porté sur de nombreux systèmes, de nombreuses versions furent crées et le développement pris en charge par les utilisateurs-développeurs. Le développement un peu anarchique d'UNIX était néanmoins un succès du fait de la coopération entre plusieurs laboratoires de recherches et programmeurs de talent.

Mais en 1984 la déréglementation d'AT&T lui permit de devenir un acteur du monde informatique et AT&T essaya alors de transformer UNIX (sa création initiale) en produit phare de la firme. AT&T fit alors tout pour en obtenir le contrôle, au dépend des utilisateurs qui avait élevé UNIX au rang du système d'exploitation clé des années 1980-1990, et transforme UNIX en logiciel propriétaire (cédant alors les licences contre d'importantes sommes d'argent). La frustration était grande pour ces chercheurs et développeurs qui auraient tous voulu que leur travail soit mis à disposition de la communauté, sans aucune restriction, chacun ayant contribué à sa manière au développement fulgurant du système.

Naissance de GNU's not UNIX

Les commandements régissant le logiciel devraient être proches de ceux régissant la connaissance scientifique : partage des connaissances, des travaux et parfois même partage des biens matériels. La libre circulation et la réutilisation de l'information permet l'accroissement et le développement du savoir humain et le perfectionnement des connaissances déjà acquises ; cela permet aussi à chacun de progresser rapidement sans devoir faire les démarches que d'autres ont déjà faites auparavant. Pour le logiciel cela se traduit par la publication des codes sources des programmes et la possibilité de les copier sans contrainte.

C'est le discours tenu par Richard Matthew Stallman (RMS), le fondateur de la Free software Foundation (FSF : fondation des logiciels libres), soutenu par les chercheurs et les nombreux utilisateurs d'UNIX. En 1984, il se décida de fonder la FSF (Free Software Foundation) suite à une expérience personnelle subie lorsqu'il était chercheur au laboratoire d'intelligence artificielle au MIT (Massachusetts Institute of Technology) et qu'il s'impatientait sur le mauvais fonctionnement d'une imprimante. Le problème qu'il rencontrait était facilement résolvable, si il avait pu disposer des codes sources ; mais sa demande à l'éditeur du programme de gestion de l'impression fut vaine. RMS : « La parole m'a manqué, je suis sorti sans dire un mot. Parce que je ne savais pas répondre à une telle action honteuse. C'était dommage pour le labo, car nous n'avons jamais reçu le code source de ce programme, nous ne pouvions jamais corriger les problèmes, et l'imprimante a mal fonctionné pendant toutes les années où nous l'avons utilisée. [...] C'était la première occasion où j'ai rencontré un tel contrat. Et ça a été très bon pour moi de l'avoir expérimenté en tant que victime. Parce que comme ça, je savais qu'il y avait des victimes. ». RMS décida alors de ne plus jamais être « la victime » et fonda le projet GNU. Son objectif ? Créer un système d'exploitation basé sur UNIX (rappelons qu'à partir de 1984 UNIX était sous le contrôle de la AT&T et n'avait alors plus rien d'un logiciel libre) mais entièrement libre, ouvert et gratuit. RMS ne supportait pas l'idée de dépendre de logiciels propriétaires et ce projet d'un système entièrement libre était la solution ultime. RMS : « J'aurais pu m'adapter au monde, continuer ma carrière d'informaticien avec un système propriétaire en signant des contrats de non-diffusion et, comme ça, j'aurais pu gagner de l'argent, j'aurais pu m'amuser à écrire du code mais, à la fin, je savais que je devrais dire : J'ai passé ma vie à construire des murs pour la division des gens, pour séparer les gens, pour empêcher la coopération entre les gens ».

Le projet GNU (acronyme de GNU's Not Unix : GNU n'est pas Unix, car seulement basé sur Unix) est un projet très ambitieux : recréer entièrement un système d'exploitation libre. Il faut alors programmer chaque partie du système d'exploitation, à partir de rien. Le projet GNU n'est pas entièrement terminé actuellement mais déjà de nombreux outils sont fonctionnels : le compilateur (qui permet au code source de devenir un programme informatique) appelé GCC est opérationnel et largement utilisé, le débugger GDB, l'environnement graphique GNOME, etc. La FSF qui développe ces modules est majoritairement financé par des ventes de livres, de documentation, et par des donations d'utilisateurs.

L'élément manquant : le noyau

Au début des années 1990, un seul élément indispensable manquait au projet GNU pour être utilisable : le noyau du système. En 1994, Linus Torvalds, jeune étudiant finlandais, réalisa à lui seul (tout du moins la première version) le noyau Linux qui devint en quelque années utilisé par plus de 20 millions de personnes. Linus Torvalds choisit de mettre son noyau sous une licence libre. Le système complet (et libre) est alors opérationnel, et est appelé GNU/Linux : GNU pour les outils annexes (compilateur, débugger, etc.) et Linux pour le noyau. Il est important de noter que le développement de Linux fut très rapide et continue de l'être actuellement (plusieurs dizaines voire centaines de développeurs sur le projet) : la coopération entre développeurs permet de rapidement ajouter de nouvelles fonctionnalités et de corriger les erreurs. GNU/Linux est le système d'exploitation qui connaît la plus forte augmentation du nombre d'utilisateurs chaque année.







Illustration 1 :

TUX, Mascotte de Linux (son nom viendrait de (T)orvalds (U)ni(X))



Philosophie et fonctionnement du modèle

Dans la présentation du modèle, nous utiliserons la définition du logiciel libre que donne la Free Software Foundation, fondée par Richard Matthew Stallman en 1984. Il existe en effet une autre organisation, l'Open Source Initiative (OSI) qui est plus récente, et qui donne sa propre définition du logiciel libre (qu'elle appelle alors logiciel « open source »). Mais la définition de l'OSI me paraît être plus compliquée, et même si les 4 fondements principaux issus de la FSF et étant à la base de la définition sont conservés, l'OSI ajoute des clauses (environ 6), et en est à la version 1.9 ce qui prouve une certaine instabilité. Nous utiliserons donc l'appellation « logiciel libre » plutôt que « logiciel open source ».

Philosophie

RMS s'aime à citer la devise française : « liberté, égalité, fraternité » pour illustrer la définition et décrire la philosophie générale du mouvement du logiciel libre.

En langue anglaise, « logiciel libre » se dit « free software ». La confusion pour les anglophones peut se faire entre free : libre et free : gratuit. Sur ce point les acteurs du monde libre sont stricts : il s'agit de la liberté pour l'utilisateur de faire des copies, de diffuser ces copies, de donner et partager. La liberté de modifier le logiciel pour qu'il réponde à nos attentes. La liberté de publier ces versions modifiées pour que l'entière communauté puisse en profiter.

La fraternité puisque le logiciel libre encourage chacun à aider les autres, à coopérer.

Egalité puisque chacun a les mêmes libertés à l'utilisation du logiciel, nous n'assistons pas à la domination d'une équipe sur une autre, d'une personne sur une autre du fait de conditions économique ou sociales.

Commandements et lois générales

Quelles conditions permettent de définir un logiciel comme étant « libre » au sens de la Free Software Foundation ? Nous allons présenter et analyser successivement les quatre critères de libertés dictés par la FSF.

Condition 1 : liberté d'utilisation

Chacun est libre d'utiliser le logiciel de quelque manière que ce soit. Cette liberté est pré-acquise et ne nécessite aucunement l'acceptation d'une quelconque licence. Pour cette raison cette condition pourrait être appelée « Condition 0 ». Chacun peut donc utiliser le logiciel dans n'importe quel contexte, qu'il soit associatif, économique, technique, etc.

Certains programmeurs craignent que leur logiciel soit utilisé à des fins critiques (meurtres, attentats, etc.) mais il ne faut pas oublier que chaque licence n'a valeur qu'au sein d'un corpus de lois civiles et pénales. Ainsi de telles actions restent interdites, malgré cette « liberté » d'utilisation.

Condition 2 : liberté de modification

Chacun est libre de modifier le logiciel selon ses envies, besoins, idées. Il est alors libre d'étudier son fonctionnement, ce qui requiert évidemment l'accès au code source du logiciel. Ce code source doit être livré en même temps que le code binaire compilé, ou alors doit être accessible sur simple demande à l'auteur. Le code source doit être celui utilisé par le développeur initial et ne doit pas être transformé, de quelque manière que ce soit (pas de complication volontaire, de suppression de certaines parties, etc.).

Condition 3 : liberté de copie

Chacun est libre de copier le logiciel et de le redistribuer à qui il souhaite (analogie avec la « fraternité » cité précédemment). Chacun peut même vendre des copies de logiciel libre sans en être l'auteur ou contributeur (la licence ne doit pas exiger que cette vente soit soumise à l'acquittement de droits d'auteur ou de royalties). Cette condition semble mettre en péril l'économie du logiciel, mais elle est bien sûr défendue et argumentée par les auteurs du libres qui suggèrent des propositions à ce niveau. Nous verrons dans la prochaine partie comment des entreprises peuvent rencontrer un grand succès commercial avec le logiciel libre.

Condition 4 : liberté de diffusion du programme modifié

Un programmeur ayant fait évoluer un logiciel libre (condition 2) a le droit de redistribuer son travail pour en faire profiter l'entière communauté, mais le programme redistribué doit lui aussi être soumis aux conditions du logiciel libre.

Cette condition fait craindre certains auteurs de logiciel d'une utilisation peu scrupuleuse de leur travail : une personne mal intentionnée pourrait transformer le logiciel de manière négative (le « bugger ») et le redistribuer en citant comme auteur son auteur d'origine. Mais encore une fois de tels comportements, même si ils ne sont pas directement cités dans les licences, sont contraires aux lois pénales et civiles, et sont donc facilement condamnables, car « hors la loi ».

Différents types de licences au sein du logiciel libre

En effet les 4 critères précédents déterminent de manière générale la liberté que doit proposer un logiciel libre ; mais nous pouvons distinguer deux familles principales au sein même du logiciel libre.

Les licences de type « copyleft »

L'objectif de la FSF n'était pas de se contenter de devenir populaire, elle veut rendre les utilisateurs libres. Il y a alors nécessité de s'assurer que la liberté donnée et permise reste inviolable et soit conservée au fil du temps : autrement dit un logiciel libre doit rester libre et ne peut se transformer en logiciel propriétaire.

Nous connaissons la notice « Copyright All right reserved » grossièrement traduisible en français par « Couvert par le droit d'auteur – Tous droits réservés » (le copyright américain n'est pas parfaitement le même que le droit d'auteur français, mais dans notre cas cela importe peu). Richard Stallman et la FSF introduisirent le concept de « Copyleft All right reversed » soit « Couvert par le gauche d'auteur – Tous droits renversés » (la contrepèterie initiale ne pouvant être conservée). Le principe du Copyleft est que chaque utilisateur a le droit d'utiliser, de copier, de modifier un programme, mais qu'il lui est interdit d'ajouter lui-même des restrictions supplémentaires sur le programme. Ainsi si il le redistribue, le programme devra être libre. Un logiciel initialement libre restera toujours libre, si il est régie par une licence de type Copyleft. Un programme propriétaire ne peut inclure une partie de logiciel libre, ou il devra lui aussi devenir libre. Un tiers peut tout à fait vendre un logiciel développé par un autre développeur. La licence copyleft la plus connu est la licence GPL (acronyme de GNU Public Licence) qui est appliquée aujourd'hui à des milliers de logiciels.

Linus Torvalds choisit de mettre son noyau Linux sous licence copyleft (en l'occurrence ici la licence GPL) ; dix ans après qu'en pense t-il ? « Protéger Linux par la GPL est la meilleure décision que j'aie jamais prise ». Tout simplement.

Les autres types de licences

Il existe plusieurs autres licences libres mais non-copyleft, la famille principale étant celle des licences de type BSD (Berkeley Software Distribution). Elles sont à la base de systèmes d'exploitations libres (FreeBSD, OpenBSD, NetBSD) et sont généralement plus simples que les licences de type copyleft, car légèrement plus permissives. Avec une licence de type BSD, il est en effet possible de rendre propriétaire un logiciel libre. Il suffit de citer le logiciel original et ses auteurs dans un coin (retranché) de la documentation ou du logiciel : Windows ou MacOS utilisent par exemple des logiciels libres sous licence BSD dans leur système d'exploitation. Les auteurs diffusant sous licence BSD souhaitent que n'importe qui puisse utiliser, de n'importe quelle façon, leur logiciel (en respectant bien sûr les quelques règles de la licence).

Il existe d'autres types de licences (MPL : Mozilla Public Licence, les licences Artistic, Sun) mais elles sont minoritaires et très peu utilisées.

Le domaine public n'est pas « comme le logiciel libre »

Il est important de ne pas confondre domaine public et logiciel libre. Cette confusion est une idée assez commune car les deux concepts sont proches. Néanmoins le logiciel est couvert par une licence (de type copyleft ou non, comme nous venons de le voir) et une reconnaissance de l'auteur est faite (on mentionne obligatoirement l'auteur ou version initiale du programme utilisé). Dans le cas du domaine public, un développeur peut traiter le logiciel comme si il lui appartenait ou comme si il en était l'auteur. Il suffit ainsi de déclarer dans le logiciel « Tous droits réservés » et le logiciel du domaine public devient un logiciel propriétaire. Il est de la même manière possible de mettre un logiciel du domaine public sous licence Copyleft si des améliorations ont été faites : il y aura ainsi la version « domaine public » et la version améliorée qui sera distribuée sous licence copyleft (la GNU GPL étant celle habituellement utilisée).

Analyse de licences de type copyleft

Les licences de type copyleft ne sont pas très nombreuses, la plus utilisée étant la licence GNU GPL. Une licence s'applique aux logiciels qui déclarent être régis par cette licence. Le choix de la licence est effectué par le développeur avant la publication d'une version de son logiciel. Le développeur a la possibilité d'écrire lui même sa propre licence pour son programme ; cela est vivement déconseillé car les complications d'une licence mal écrite peuvent être très importantes et entraîner des problèmes pendant de nombreuses années pour le logiciel en question.

La licence GNU/GPL

Le texte de licence de la GPL n'est pas couvert lui même par la GPL car il est évident que si chacun pouvait modifier la licence, elle n'offrirait plus de protection juridique. Nous avons le droit de copier et de diffuser une exacte copie de cette licence, mais sans aucune modification (comme un texte de loi classique).

La licence GPL satisfait les 4 conditions de la liberté au sens de la FSF, conditions énumérées précédemment et étant à la base de la définition d'un logiciel libre. Elle interdit donc de rendre des modifications secrètes, elle rendre libre l'utilisation, la modification et la distribution du logiciel. Elle interdit le fait d'incorporer un logiciel sous GPL dans un logiciel propriétaire, ou alors le logiciel propriétaire devra lui même être couvert par la licence GPL. Cette dernière condition vaut à la licence GPL son surnom de « virus libre » : elle est fortement critiquée par certaines entreprises commerciales pour ce caractère infectieux (si vous utilisez un bout de logiciel libre, votre logiciel doit devenir libre). Pour répondre à cette plainte de nombreux utilisateurs, et parce que la GPL se bloquait elle-même dans certains cas, la FSF a crée la LGPL (acronyme de GNU Lesser General Public licence).

La licence GNU/LGPL

Avec cette licence, conçue pour les bibliothèques de logiciels (c'est à dire les programmes qui s'utilisent de manière externe, des programmes qu'il suffit « d'appeler » et qui ne sont donc pas directement au sein même du logiciel), il est autorisé pour un logiciel propriétaire d'inclure des morceaux de logiciels libres sous licence LGPL. Cela a permis d'utiliser la bibliothèque du langage C (qui définit en quelque sorte la base du langage que le programmeur utilisera pour développer un logiciel) pour faire des logiciels commerciaux non libres. Si cette bibliothèque n'avait pas été distribuée sous licence LGPL, elle n'aurait pu servir qu'à développer des logiciels libres et n'aurait donc pas connu le succès qu'elle a actuellement.






Illustration 2 : Richart Stallman, créateur de la FSF, du projet GNU et de la licence GPL.






Viabilité du modèle

Les logiciels libres, comme nous venons de le voir, ont avant tout une signification technique et idéologique. Nous pouvons nous questionner sur la viabilité de ce modèle à différents niveaux : économiquement, produire du logiciel libre peut il être rentable ? Utiliser du logiciel libre est il vraiment bénéfique ? Humainement ensuite, comment expliquer l'engouement des développeurs pour ce modèle ? Quelle est leur motivation ?

Un nouveau modèle économique

Vendre du logiciel libre ?

Le logiciel libre pose des problèmes lorsqu'il est question de vente directe de logiciels. Dans tous les marchés, pour qu'une entreprise soit rentable, elle doit à la fois se protéger de ses concurrents et proposer un service différent ou de meilleure qualité. Or la définition même du logiciel libre oblige à la publication des codes sources du logiciel, rien n'interdit donc votre concurrent de s'approprier votre travail et de baser son marché sur un produit qu'il n'a pas conçu. L'avantage technologique que l'entreprise initiale possédait est alors inutile. La résultat peut même être pire que la simple perte de l'avantage technologique, car l'effort dépensé par l'entreprise dans le développement de sa solution technique a demandé du temps, de l'investissement, et de l'argent ; ce sont autant d'avantages qui vont profiter au concurrent qui s'approprie le travail à la fin de la chaîne de conception : il pourra alors dépenser ces ressources en communication et publicité, et aura certainement plus de chance de rencontrer un succès commercial que l'entreprise créatrice.

Bien sûr, il existe une solution encore plus radicale pour imaginer un échec total d'une stratégie de vente d'un logiciel libre : la copie à l'infini. En effet les copies étant autorisées (et même favorisées), on peut imaginer qu'un client se procure le logiciel et le diffuse gratuitement sur Internet à la communauté. L'entreprise qui vend le logiciel n'a alors plus aucun marché. Néanmoins faire de l'argent via le logiciel libre n'est pas forcément vouer à l'échec : il existe une alternative qui fait ses preuves depuis plusieurs années, le modèle de « double licence ».

Vendre une licence propriétaire pour des clients non satisfaits par une licence libre

Une entreprise ayant développé un logiciel libre qui connaît un grand succès (succès bien entendu largement favorisé par la libre copie et la disponibilité du code source) ne peut donc pas vivre de la vente directe de licences propriétaires si celles ci sont en tout point identiques aux licences libres. Nous allons pour illustrer notre propos utiliser l'exemple probant de l'entreprise MySQL AB, éditrice d'un SGBD (Système de Gestion de Bases de Données : constitué de l’ensemble des logiciels et matériels dédiés à la création et la gestion d’une base de données).

MySQL est un logiciel distribué sous licence GPL. Il est donc accessible gratuitement par toute la communauté, qui compte actuellement 4 millions d'utilisateurs. MySQL est un des logiciels libres rencontrant le plus de succès : 35000 personnes le téléchargent chaque jour sur le site Internet officiel (20 millions de téléchargements par an pour la totalité de leurs produits). La licence GPL, comme nous l'avons vu précédemment, n'autorise pas l'inclusion de MySQL dans un logiciel propriétaire. En réponse à ce problème MySQL propose alors MySQL AB, version propriétaire de leur SGBD qui est distribuée sous licence commerciale, et qui autorise donc son inclusion dans des logiciels propriétaires. Un programme de comptabilité peut ainsi inclure la base de données MySQL AB si il a payé la licence commerciale.

MySQL AB compte 4000 clients, qui ont payé au minimum $440 pour la licence propriétaire : cela représente 1‰ des 4 millions du total du nombre d'utilisateurs. L'entreprise a réalisé 5 millions de $ de revenus en 2002 et compte de prestigieux clients du Fortune 500 (top des 500 entreprises les plus riches des Etats-Unis) : Yahoo!, Google, IBM, Ebay, AOL, NASA, Ericsson, Texas Instrument, etc. Elle a connu en 2004 une augmentation de l'ordre de 65%, plus de 10 fois supérieure à l'augmentation globale du marché américain.

D'autres entreprises ont fait le pari de ce fonctionnement par « double licence » : Sleepycat Software, Trolltech, etc. et connaissent un large succès. Ce modèle économique a l'avantage de proposer des atouts du logiciel libre et la rentabilité de la commercialisation. Les atouts sont ceux du logiciel libre : la disponibilité de la communauté de développeurs, la rapidité de développement de nouvelles fonctions et la correction de problèmes, et la liberté pour les éditeurs de ne pas donner accès au code source du logiciel (via la licence propriétaire).

Les sociétés misent sur les services adjacents aux logiciels

La vente de licences commerciales n'est pas la seule source de revenus des entreprises : leur parfaite connaissance des solutions qu'ils développent leur permettent de proposer à leurs clients des garanties sur le fonctionnement, les assurant en quelque sorte sur le fonctionnement de l'outil. Ces garanties (non absolues, elles restent bien sûr limitées et sont explicitement détaillées dans la licence) sont disponibles avec l'achat de la licence commerciale. Mais outre cette assurance donnée au client, les entreprises peuvent assurer un support (qu'il soit téléphonique, par courrier électronique, etc.) disponible 24h/24, 7j/7 (dans le cas de MySQL toujours) et qui peut dépanner les clients. En témoigne la « check-list of features » (liste des fonctionnalités) sur le site Internet de MySQL : on apprend que dans certains forfaits il est possible d'émettre des appels d'urgence 365 jours par an, et qu'un ingénieur certifié MySQL répondra en moins de 30 minutes pour résoudre le problème. De la même manière des services de documentation (écritures de manuels) sont mis à la disposition des clients. Tous ces services sont facturés et peuvent, pour certaines entreprises ou associations (comme la Free Software Foundation) assurer la quasi-totalité des revenus (le reste étant complété par les donations des utilisateurs).

Proposer du logiciel libre : opération marketing ?

Pour certaines sociétés, distribuer un logiciel libre peut être une manière de se faire connaître de la communauté (ou d'améliorer son capital-marque). C'est le pari d'Alinto qui, une fois son offre initiale lancée et sa clientèle installée (250000 clients pour 850 entreprises) a décidé de publier un nouveau produit, qui sera libre, donc gratuitement accessible par tous : un programme webmail, c'est à dire un programme permettant de consulter ses mails sur Internet (lequel sera complété de la possibilité de créer des adresses emails, et de les gérer). Philippe Gilbert, qui expliqua les choix stratégiques de sa société (lors de la conférence du 1er Avril 2004 à l'INSA Lyon dans le cadre de la journée du libre, à laquelle j'ai assisté), s'est de cette manière assuré une sorte de « publicité passive » (bouche à oreille) et ce projet va augmenter significativement la crédibilité de la société. Bien sûr la demande de services sera importante et Alinto sait que la demande se fera vers les créateurs du logiciel (« Vous êtes les concepteurs, vous êtes les plus à même d'installer et de configurer votre logiciel »). Néanmoins « nous n'aurions pu envisager un tel projet sans les fonds fournis en parallèle par notre autre produit (qui lui est propriétaire non libre) ». Il semble donc nécessaire d'être déjà implanté pour faire du logiciel libre, et que cela ne peut pas vraiment être une activité à part entière, sauf bien sûr dans le cas où le modèle des « doubles licences » est possible.


Illustration 3 : Logo de la société MySQL. Le dauphin de la liberté dans l'océan de la connaissance !








Un modèle humainement et socialement enrichissant

Les hommes sont les racines du développement du logiciel libre ; ce qui peut sembler étonnant, c'est que la plupart des développeurs que l'on devrait appeler « Hackers », la récente signification n'étant qu'un amalgame diffusé par les médias programment pendant leurs temps libres, en soirées ou le week-end. Ils ne programment pas dans un but intéressé économiquement mais pour le développement de leur logiciel et de la communauté.

Qu'est ce qui donne naissance à un logiciel libre ?

Raymond, un des grands « philosophes du libre », qui se dit aussi « anthropologue extra-terrestre », affirme la chose suivante : « Tout bon logiciel commence par gratter un développeur là où ça le démange ». C'est en effet la principale cause de la réussite du logiciel libre : les gens qui le développent sont motivés car ils ont un besoin ou une certaine envie de réaliser et aiment ce qu'ils font : « Pour résoudre un problème intéressant, commencez par trouver un problème qui vous intéresse. ». Ils ne sont pas poussés à le faire, comme peuvent l'être des développeurs dans une entreprise commerciale. Eric Raymond dans son essai « Cathedral and the bazaar » donne ainsi beaucoup de conseils tirés d'une longue étude du phénomène Linux et de ses propres expériences. Il montre que les développements libres (qui sont du style « bazaar », car d'apparence anarchique et désorganisés) sont plus efficaces que leur équivalents commerciaux (du style « cathédrale » car rigides, droits, ne publiant au monde que des versions des logiciels (re)-travaillées et (re)-vérifiées pendant de longs tests). Cette domination du logiciel libre sur le commercial pourrait être le fait de la nécessaire considération du talent d'autrui dans les projets libres : « Il est presque aussi important de savoir reconnaître les bonnes idées de vos utilisateurs que d'avoir de bonnes idées vous-même. C'est même préférable, parfois ».  Il conseille ainsi de réellement s'ouvrir aux autres et de déléguer au maximum les tâches : « Traiter vos utilisateurs en tant que co-développeurs est le chemin le moins semé d'embûches vers une amélioration rapide du code et un débogage efficace » et « Si vous traitez vos bêta-testeurs comme ce que vous avez de plus cher au monde, ils réagiront en devenant effectivement ce que vous avez de plus cher au monde. » pour précisions, un bêta-testeur est la personne qui teste le logiciel lorsqu'il n'est pas encore dit « stable », donc lorsqu'il peut rester des problèmes, des bugs à corriger ; dans ce cas le bêta testeur essaie de trouver les bugs et le recense au(x) développeur(s).

L'envie de donner et de partager écrase t-elle la culture de la gloire personnelle ?

Les développeurs du libre partagent ils leur travaux car ils adhèrent intégralement à la politique de libération du logiciel menée par la FSF ou est-ce plus simplement pour se faire connaître de la communauté ? Il est certain que les 2 points sont valables, le degré d'appréciation dépendant de chaque développeur. Nombreux sont ceux qui publient leur logiciel sous licence GPL car ils sont reconnaissants de ce mouvement, ils sont conscients que les logiciels libres les ont aidé à progresser : le source étant disponible on peut étudier le code, et quand il est bien écrit, en tirer de nombreux enseignements et s'améliorer largement de cette manière. Il est aussi très valorisant pour l'esprit de savoir qu'une de ses productions est utile à des personnes, qu'elle leur économise du temps et leur facilite la vie ; voire que son logiciel est apprécié et devient indispensable pour les utilisateurs : cela est vraiment gratifiant pour un développeur. Lorsque c'est le cas il est évident qu'une certaine gloire émerge, ou plus généralement une reconnaissance par la communauté, et se forge alors une réputation qui peut, dans le cas de produits phares, être un tremplin important dans le marché du travail. Ce fut par exemple le cas pour Linus Torvalds qui après avoir réalisé Linux fut employé par l'université d'Helsinki, puis par la suite employé par Transmeta qui lui proposa un excellent poste au sein de sa structure. Le cas de Torvalds est loin d'être une exception, les expériences dans le logiciel libre étant des atouts très appréciés sur les CV.

De manière plus générale, pour Linus Torvalds (avis que je partage très largement) : « la plupart des bons programmeurs ne programment pas parce qu'ils s'attendent à un salaire ou à être adulés par les foules, mais parce qu'on s'amuse en programmant ». Ce fait est reconnu de tous les programmeurs du monde libre : programmer un outil dont on a besoin, se faire aider des autres et avoir le sentiment d'aider les autres, est un jeu vraiment plaisant ― et les joueurs sont de plus en plus nombreux...


Illustration 4 : Le GNU, symbole du projet GNU




Conclusion

Alors que l'on parle d'engagement dans la communauté du libre, on peut se questionner sur l'éventuelle mise en oeuvre d'un acte politique d'envergure lors de l'adhésion au mouvement. Il est certain que les notions de partage, d'entraide et de collaboration entre les esprits et les personnes s'opposent à une logique capitaliste trop présente dans l'économie actuelle. Le logiciel libre est né de la poursuite d'un idéal politique de la liberté d'échange et de communication et combat l'idée d'un profit principalement économique au dépend de l'accroissement des connaissances et des techniques. Néanmoins les partisans du logiciel libre ne sont pas forcément contre le capitalisme, certains sont même ultra-libéraux ou libertaires : ils sont simplement contre l'hégémonie de grands groupes dominateurs et imposant leur présence et leurs pseudo-normes de développement (d'où découlent les célèbres procès de Microsoft pour abus de position dominante...).

Dans tous les cas l'avenir du mouvement semble assuré : de plus en plus d'entreprises lui font confiance, Linux croît constamment pour atteindre aujourd'hui le chiffre de 20 millions d'utilisateurs, des solutions comme Apache (serveur Internet), Sendmail (serveurs de mails), et bien d'autres sont dors et déjà dominateurs de leur marché. Il y a plus de 30 ans, Stallman voulait faire évoluer le monde, et l'on constate actuellement que le marché du logiciel est bouleversé et progresse significativement dans son sens. Le logiciel libre a les moyens de changer les mentalités et les comportements, mais un problème de taille se pose encore : les brevets logiciels. Ils sont un danger pour tous les développeurs car ils favorisent les grosses entreprises qui en détiennent beaucoup. Ils ne sont pas crédibles car produire un logiciel requiert aujourd'hui, du fait de la complexité des systèmes, l'utilisation de dizaines d'idées différentes, d'où la possible violation de brevets détenus par de grandes sociétés d'édition. Ce concept est totalement opposé à l'idée de la liberté de l'utilisateur et à la philosophie du libre en général.

La rédaction de ce dossier m'a beaucoup intéressée ; elle m'a permis de confronter les différents points de vue et d'améliorer ma connaissance de l'idéologie et de la philosophie du modèle du logiciel libre. Je comprends tout à fait les motivations des développeurs puisque j'ai moi même fait l'expérience de publication d'un logiciel libre : phpMyVisites, application de mesure d'audience de site Internet développée en langage PHP et utilisant la base de données MySQL, qui compte actuellement environ 1000 utilisateurs. C'était pour moi l'occasion de contribuer (modestement) à tout ce que la communauté m'a donné : j'ai appris à programmer principalement en étudiant des codes sources de logiciels libres, en lisant des articles proposés gratuitement sur Internet, en posant des questions aux développeurs sur les forums. La question « comment vivre en commercialisant du logiciel libre ? » m'interpellait depuis longtemps, sans trouver réponse. Après avoir effectué toutes les recherches et rédigé ce dossier, cette question et toutes les autres se sont éclaircies, et j'espère sincèrement avoir transmis un message compréhensible : je me suis en tout cas efforcé de vulgariser les termes et notions un peu techniques et peu évidentes pour les non-informaticiens. Suite à la lecture de ce dossier, on peut constater mon attachement certain à cette idéologie et ce mode de pensée et de fonctionnement, mais j'espère être resté assez objectif dans la rédaction. J'ai longtemps essayé de trouver des contradictions ou erreurs de raisonnements, mais il s'avère que le modèle du logiciel libre est définitivement cohérent et parfaitement fonctionnel : il suffit de constater la puissance souvent équivalente des logiciels libres sur leur homologues commerciaux. Le seul problème (mais est ce si important ?) se situant, comme expliqué dans la description du modèle économique, dans l'impossibilité pour les développeurs de faire de la communication (car sans ressources monétaires), ainsi que de leur impossibilité de pouvoir donner une garantie sur l'utilisation du produit. Mais encore une fois ces problèmes sont surmontables puisque de nombreuses entreprises commencent à proposer des services dans ce sens (exemple de MySQL qui fournit une licence commerciale garantissant le bon fonctionnement de leur application). Dans quelques temps, nous pouvons imaginer que ce n'est plus Microsoft qui fera peur avec les nombreuses failles de sécurité de ses logiciels, mais le logiciel libre qui effraiera Microsoft. Restons patients et observons !

Bibliographie

Voici les textes qui m'ont inspiré et permis de mener ma réflexion. Je n'ai pas pris le temps de référer chaque citation (toutes les citations sont entre guillemets) à son document d'origine, mais une simple recherche de cette citation sur Google (moteur de recherche le plus utilisé et certainement le plus pertinent : http://www.google.fr) donnera un lien vers le document d'origine, car la plupart sont des articles tirés de livres mais publiés en parallèle sur Internet.

Documents utilisés (liste non exhaustive)

Sites d'associations

Les logiciels libres 24/24