Un logiciel est dit "
libre" s’il respecte les trois principes suivants
1- Tout un chacun peut
disposer facilement du code source,
2- Tout un chacun est libre de
redistribuer le logiciel,
3- Tout un chacun est libre de
modifier le logiciel, mais est alors
obligé de publier ces modifications.
Ces trois principes permettent la diffusion au plus grand nombre, sans
possibilité d’appropriation. De plus, les principes 1 et 3 impliquent
le libre accès au code source du logiciel.
Du point de vue terminologie, un logiciel libre est souvent appelé "
Opensource" ; et ce, bien qu’il existe une différence plus philosophique que technique entre le courant ’logiciels libre’ (
http://www.fsf.org) et le courant ’opensource’ (
http://www.opensource.org).
L’immense majorité des logiciels vendus dans le commerce par les
éditeurs de logiciels, comme la société Microsoft, sont distribués en
version « exécutable », alors que les logiciels libres sont fournis
avec leur « code source ».
Source, exécutable? Un petit
détour par une analogie musicale permet d’éclairer ces termes. On peut
considérer le code source d’un logiciel comme la partition de celui-ci,
et le code exécutable comme sa version enregistrée. Une partition peut
être jouée sur un piano, une flûte ou par l’orchestre philharmonique de
Berlin. Mais si la même partition est pressée sur un disque après un
concert de harpe, l’acheteur ne peut plus rien modifier.
Le passage de l’une à l’autre version s’opère grâce à une « compilation
», qui traduit le code source (des lignes écrites en usant de langages
de programmation maîtrisés par les informaticiens) en code exécutable
(uniquement compréhensible par l’ordinateur). Avant d’être vendue dans
le commerce, une version d’un logiciel en code source est construite
patiemment par les programmeurs d’une entreprise. Les logiciels libres
sont livrés sous cette forme, tandis que les éditeurs de logiciels
vendent le seul code « exécutable », le reste étant considéré comme
secret industriel et cuisine interne.
Quelle est la différence entre Logiciel Libre, freeware, shareware, charityware, logiciel domaine public, ... ?
Un logiciel libre protège la liberté des utilisateurs. A l’opposé,
toutes les autres formes de distribution posent des problèmes en
matière de liberté et de sécurité pour les utilisateurs :
- Le
freeware
(logiciel gratuit), contrairement au "free software", indique
simplement que le logiciel fourni est gratuit, indépendamment de sa
licence. Dans beaucoup de cas, ce sont des logiciels du domaine public.
Souvent, le source du programme n’est pas disponible, ce qui interdit,
par exemple de corriger des bugs ou d’effectuer des améliorations
- Un
shareware
(partagiciel) est la propriété de son auteur. Celui-ci demande aux
utilisateurs réguliers de son programme une rétribution volontaire et
ne permet pas la modification de celui-ci.
- Un
charityware
impose de payer une contrepartie financière reversée à une ou plusieurs
oeuvres de charité, il ne permet pas la modification du source du
programme et impose des conditions sur la duplication.
- Le logiciel du
domaine public
est gratuit et il n’appartient à personne et n’est pas protégé par une
quelconque licence. Ainsi, une entreprise peut par exemple,
s’approprier le source du logiciel et le placer sous une licence
propriétaire.
Il faut bien être conscient que
libre ne veut pas forcément dire gratuit
: il est tout a fait permis de facturer une valeur ajoutée telle que de
la formation, de l’installation, de la configuration, voire même le
prix du support physique (CD-ROM par exemple).
Un
logiciel libre n’est donc pas forcément gratuit. L’ambiguïté provient
de l’expression d’origine, ’free software’, puisqu’en anglais free
signifie aussi bien libre que gratuit. Pour rappel, selon la définition
de la Free Software Foundation (
http://www.fsf.org), un logiciel libre répond à trois critères :
- tout d’abord, la liberté pour chacun d’étudier comment le programme fonctionne, et de l’adapter à ses propres besoins,
- ensuite,
la liberté de le copier et de le diffuser auprès d’amis ou de
collègues, ce qui est strictement interdit avec des logiciels
classiques du commerce
- et enfin, la liberté d’améliorer soi-même le logiciel pour en faire profiter la communauté.
Dans la pratique, nombre de logiciels libres se trouvent gratuitement
sur certains sites web. Des versions payantes, mais souvent très bon
marché, sont commercialisées par des entreprises sous forme de CD-ROM,
avec notice complète, et contrat d’assistance à l’installation ou de
maintenance. Les sociétés telles que MandrakeSoft (France) ou
RedHat (USA) distribuent ainsi différentes versions de Linux.
Il est bon de préciser qu’à ce niveau, nous sommes loin de la
caricature qui veut qu’un logiciel libre soit le résultat de nombreuses
expérimentations et bricolages de la part d’un programmeur débutant. La
robustesse du code est au contraire extrême.
En effet,
puisque chacun voit le code, il a la possibilité de refaire ou
améliorer une partie douteuse en venant en aide à d’autres
développeurs. Les nombreux testeurs interviennent en tout début du
cycle de développement, ce qui fait que de nombreux bogues et problèmes
sont identifiés très tôt.
De plus, chaque ajout de
fonctionnalité est longuement discuté, et certaines décisions sont
soumises à un vote public, en toute transparence. De même, tout
logiciel qui ne satisfait pas aux critères de qualité reste estampillé
"instable". On donc peut dire que la qualité des logiciels libre est
nivelée par le haut !
Comme nous l’avons déjà vu dans les sections précédentes, les logiciels
libres ont l’avantage de proposer un code source totalement accessible.
Du point de vue sécurité, c’est un gage important, car cette
disponibilité augmente le nombre de personnes potentiellement capables
de détecter des bogues ou des trous de sécurité, et ainsi de proposer
rapidement des correctifs. De plus, comme on peut l’observer, ces
logiciels sont perfectionnés en permanence par les communautés de
développeurs et de testeurs.
Concernant la sécurité des
applications, un autre point très important vient du fait que les
logiciels libres échappent à la pression économique (date de sortie
fixe, budget de développement et temps limités, etc.), telle qu’elle
s’exerce sur des développements en milieu industriel. Les logiciels
libres atteignent ainsi souvent un meilleur niveau de qualité, et
peuvent profiter de plus longues périodes de test pour apporter une
plus grande qualité.
Le code source étant ouvert, et la notion de "disparition planifié"
d’une version de logiciel (pour cause marketing) n’existant pas, la
pérennité des logiciels libres et souvent sans commune mesure avec les
versions propriétaires équivalentes.
Même si demain le
responsable d’un projet décidait de prendre du recul, toute une
communauté serait prête à prendre le relais en ayant à sa disposition -
en plus des codes sources - l’ensemble des messages échangés par cette
personne au sein des listes de diffusion publiques.
Le
mode de développement communautaire de la plupart des logiciels libres
(du moins ceux dont l’utilité est réelle en entreprise), garantit une
pérennité au moins aussi grande que celle des applications
propriétaires. Si un groupe de programmeurs décide subitement d’arrêter
la maintenance d’un logiciel, il y a de grandes chances qu’un autre
groupe de développement reprenne le flambeau et assure la maintenance.
Par contre, si une entreprise fait faillite ou décide d’arrêter un
logiciel propriétaire pas assez rentable, l’utilisateur est le plus
souvent sans aucune possibilité de recours.
De plus,
quelle société peut aujourd’hui dire qu’elle a la possibilité de faire
évoluer un logiciel en fonction de ses besoins ?