Des Logiciels Libérables par Thomas Gil(thomas.gil@dotnetguru.org)

Table des matières

1. Introduction

Le domaine du logiciel est en pleine effervescence. Ce n'est pas nouveau mais on sent depuis quelques temps cette activité s'intensifier. En effet, de très nombreux logiciels voient le jour tous les ans, la concurrence est très rude et l'offre s'étoffe pour le plus grand plaisir des utilisateurs qui n'ont que l'embarras du choix.

Cette quasi-frénésie est la résultante du travail de plusieurs types d'acteurs, chacun ayant des motivations bien distinctes:

Les objectifs sous-jacents sont multiples. Il peut s'agir de recherche, de partage, de plaisir, d'échange ou de montée en compétence... mais aussi d'argent, de pouvoir, de renommée, de compétition, de politique ou d'idéologie. En fait, la motivation de chaque membre d'une équipe de développement est une savante pondération de tous ces aspects (sans compter tous ceux que j'oublie).

Les logiciels développés, quant à eux, peuvent être payants ou gratuits, ils concèdent plus ou moins de libertés à leurs utilisateurs et impliquent plus ou moins la responsabilité de l'éditeur. Les "plus ou moins" sont réglés par une licence, associée à chaque logiciel.

Cet article un peu atypique est organisé en deux temps: dans une première partie, je vais tâcher de partager avec vous ma compréhension du "monde du libre" inscrit dans la nébuleuse du domaine de l'édition de logiciels; puis je vous proposerai de réfléchir à un nouveau (?) modèle économique pour le développement logiciel que l'on peut voir comme un compromis entre les logiciels libres, Open Source et fermés.

2. Logiciels publics, libres, Open Source ou fermés

2.1. Définitions

Nous prendrons comme convention d'appeler "le développeur" la ou les personnes qui ont participé à la construction d'un logiciel. Il peut s'agit de personnes physiques isolées ou rassemblées en groupes, ou de personnes morales (entreprises, associations, fondations, entités d'Etat...).

2.1.a. Domaine public

Est du domaine public un logiciel dont les droits d'auteur ont été concédés sans contrepartie par le développeur (qu'il s'agisse d'une personne ou d'un groupe). Puisque tout ce qui est écrit appartient généralement (dans la plupart des pays) à son auteur, il faut que ce dernier entreprenne les démarches légales nécessaires pour se "défaire" de ses droits d'auteur.

Et puisqu'aucun droit ne contraint plus le logiciel, chacun peut en avoir l'usage qu'il souhaite. Par exemple, l'utiliser pour ses propres besoins, l'intégrer dans un autre logiciel (quelle qu'en soit la licence), le modifier, le revendre... Il n'y a aucune contrainte.

2.1.b. Logiciel libre

Selon la définition de Richard Stallman (leader de la FSF ou Free Software Foundation), un logiciel est libre s'il donne à tous ses utilisateurs le droit de l'utiliser et de le modifier à loisir tant que cela respecte l'intention originale de son auteur (on interdit par là-même tout "détournement vicieux" de cette intention que l'on risquerait ensuite d'attribuer à l'auteur originel). Pour pouvoir exercer le droit de modification, il va sans dire que le code source du logiciel doit être accessible aux utilisateurs.

D'autre part, le logiciel libre, original ou modifié, est également redistribuable. Une condition doit toutefois être respectée: le redistributeur doit concéder les mêmes droits à ses propres utilisateurs. On espère ainsi propager la liberté de développement et d'amélioration des logiciels.

2.1.c. Logiciel Open Source

L'intention de l'Open Source (définie par l'OSI ou Open Source Initiative) est globalement la même que celle du logiciel libre: un logiciel Open Source garantit aux utilisateurs qu'ils pourront avoir accès au code source, qu'ils pourront le re-distribuer librement tel quel ou après modification... Par contre, l'Open Source est moins formelle (moins orthodoxe diront certains) sur la propagation de la liberté: d'une part les utilisateurs de logiciels OpenSource ne sont pas tenus de re-distribuer leurs modifications en Open Source, et d'autre part les logiciels basés sur des bibliothèques ou un framework Open Source ne sont pas tenus de l'être à leur tour.

Bref, la différence idéologique fondamentale entre ce modèle et le précédent tient au fait que la liberté du logiciel peut être "virale", avec propagation (modèle du logiciel libre) ou non (modèle Open Source).

2.1.d. Logiciel fermé

Certains logiciels ne sont disponibles que sous forme de programmes exécutables. Leur code source reste la propriété exclusive du développeur. Ces logiciels ne permettent donc pas la modification, raison pour laquelle on les qualifie de "fermés". Par contre, l'auteur peut tout à fait concéder d'autres droits aux utilisateurs tels que la redistribution ou l'utilisation sans restriction.

2.2. Confusions fréquentes

Les frontières entre les types de logiciels (domaine public, libre, Open Source ou fermé) ne sont pas nettes pour tout le monde. Il est donc fréquent de faire quelque amalgame ou abus de langage.

Par exemple, on dit parfois qu'un logiciel libre est du domaine public. C'est faux puisque les logiciels du domaine public sont la propriété de tous (pas de droit d'auteur associé) alors qu'un logiciel libre est protégé par une licence (type GPL ou CeCILL) et que l'auteur garde la pleine jouissance de ses droits.

Un logiciel libre est Open Source. L'inverse n'est pas toujours vrai: tout dépend des modalités de licence Open Source, en particulier de celles concernant la propagation de liberté des utilisateurs.

On pense souvent que parce qu'un logiciel est libre, il est gratuit. Cela n'a rien à voir. Un logiciel libre peut être payant, son prix peut être modéré ou élevé. La seule différence à ce niveau par rapport à un logiciel fermé et commercial est que dès la première vente, l'utilisateur acheteur d'un logiciel libre gagne le droit de le re-distribuer à son tour, gratuitement ou pas. Le comportement des utilisateurs étant imprévisible (vont-il souhaiter que les autres le paient aussi puisqu'ils l'ont payé eux-mêmes ou seront-ils au contraire partageurs?), une société ne peut pas être certaine de vendre au prix fort un logiciel libre plus d'une fois.

On lit aussi que tout code basé sur un logiciel libre DOIT être lui-même libre et qu'il doit être envoyé à l'auteur du logiciel original (en vue d'une intégration future). Il n'en est rien: chaque utilisateur peut tout à fait conserver ses propres modifications d'un logiciel libre sans les re-distribuer et il n'est pas tenu de les faire parvenir à l'auteur initial. Par contre, si un utilisateur veut re-distribuer publiquement un logiciel libre modifié, cette modification doit à son tour être libre.

2.3. Motivations, objectifs... et objections

Pourquoi développer des logiciels libres? L'idée s'approche de celle du partage des connaissances scientifiques: les "penseurs" du libre et leurs adeptes sont persuadés que la mise à disposition de logiciels et de droits associés (d'utilisation sans restriction, de modification, de redistribution):

Bref, développer des logiciels libre est une manière d'apporter sa pierre à l'édification d'une société meilleure...

Toutefois, les détracteurs du monde libre et de l'Open Source arguent souvent que:

On sent dans ces arguments une certaine résistance au changement ainsi que quelques a priori. Tout d'abord, et nous en reparlerons dans la section suivante, de nombreux spécialistes voire experts de leur domaine interviennent sur les projets libres ou Open Source et leur apportent une qualité parfois inégalée par la concurrence commerciale. Par contre, ce n'est pas vrai pour tous les projets donc il existe aussi beaucoup de projets bâtis à la force de l'éditeur de texte, sans conception ni méthodologie (de processus ou d'architecture). C'est vrai. Mais la question peut être retournée: tous les logiciels fermés et commerciaux ont-ils une belle architecture technique, sont-ils fiables, ont-ils été conçus dans les règles de l'art?

D'autre part, la notion de service commercial ou bénévole autour du logiciel libre s'organise depuis plusieurs années. Les utilisateurs peuvent donc y souscrire pour disposer d'un support, d'une aide à la résolution des problèmes, d'interventions de conseil ou d'aide à la décision sur ces logiciels...

Enfin je suis persuadé que les modèles libre et commercial ne sont pas nécessairement antithétiques. Dans la définition même du logiciel libre, rien n'interdit de faire du commerce. Au contraire, puisque la passion et/ou le métier de certains est de développer des logiciels, il faut qu'ils puissent continuer à exercer ce métier ou assouvir cette passion même si le logiciel est libre. Mais pour cela, nous avons besoin d'un modèle économique adapté.

2.4. Modèles économiques du libre et de l'Open Source

L'objectif n'est pas ici de dresser une liste exhaustive des modèles existants mais simplement de comprendre l'esprit de certains d'entre eux à travers des exemples concrets.

Imaginons tout d'abord une société qui édite aujourd'hui des logiciels fermés et payants (prenons le cas d'une licence par utilisateur). Cette société pourrait contribuer au logiciel libre de plusieurs manières:

Un autre modèle pour un éditeur consiste à développer certains logiciels libres en espérant se créer une renommée (qui a un impact très différent de la publicité que pourrait faire l'éditeur autour de ses produits car la cible n'est pas la même en général) et continuer à vendre le reste de sa gamme de produits fermés.

Mais dans le monde du libre, il est tout de même assez rare de trouver des sociétés dont l'activité exclusive est d'éditer des logiciels. En général, la rentabilité passe plutôt par la commercialisation de services; on parle donc de SSLL (Sociétés de Services spécialisées dans le Logiciel Libre). Le principe est simple: les logiciels sont gratuits, libres et/ou Open Source, la société y contribue (financièrement ou comme force vive) et commercialise services et produits dérivés de ce logiciel:

3. Vers des logiciels "libérables"

Comme nous l'avons dit dans la section précédente, il existe très peu de sociétés éditrices de logiciels libres. Les modèles économiques précédents poussent effectivement à la commercialisation de services, de produits dérivés ou de logiciels complémentaires. Cela signifie-t-il que les personnes souhaitant vivre (du moins en partie) du seul développement de logiciels doivent nécessairement s'associer à des prestataires de services? En termes de rentabilité d'entreprise, doit-on comprendre que le rôle du développeur constitue un centre de coût qu'il faut toujours contre-balancer par un centre de profit tel que la prestation de services ou l'animation de formations?

Ce constat nous semble bien négatif car il empêcherait toute personne non intégrée à une société commerciale "multi-services" de vivre de sa passion, le développement de logiciels libres. Dans cette section, nous nous proposons d'imaginer un modèle différent, le plus compatible possible avec les idées motrices du logiciel libre mais qui viabiliserait (un peu mieux) l'activité d'édition logicielle.

3.1. Le logiciel au juste prix

Le monde du libre a plusieurs principes fondateurs qu'il nous semble important de respecter. Parmi ces principes, il en est un qui consiste à combattre toute rente associée au logiciel. Un éditeur ne doit pas pouvoir se reposer sur ses lauriers et vivre de la rémunération de logiciels qui n'évoluent plus ou qui ne sont plus maintenus.

Prenons à nouveau l'exemple d'une société commerciale qui édite des logiciels fermés. Elle doit bien sûr rémunérer ses développeurs, couvrir ses frais de structure et faire des bénéfices pour être capable d'investir dans les projets futurs ou de rétribuer ses actionnaires.

Supposons que la société développe le logiciel "W" et l'amène à maturité: les bugs ont été découverts et corrigés, les utilisateurs sont satisfaits du logiciel tel qu'il existe. Supposons par ailleurs que la commercialisation des licences d'utilisation du logiciel "W" ait couvert toutes les besoins financiers afférents. Tout est parfait, l'entreprise est rentable les utilisateurs satisfaits et les employés rémunérés. Plusieurs questions se posent alors:

Chacun a son opinion bien sûr. Voici la nôtre: le coût de construction du logiciel (+ bénéfices "raisonnables") est couvert par le prix de vente des licences. On peut donc soulager les utilisateurs en rendant ce logiciel gratuit.

Bien sûr, si de nouvelles fonctionnalités doivent être développées, si un changement technologique implique la réécriture du logiciel, cela impliquera de nouveaux investissements donc il semble logique de faire participer les utilisateurs à ces frais. Mais nous parlons là d'une nouvelle version du logiciel. La version précédente, elle, devrait être rendue gratuite dès qu'elle ne coûte plus rien à l'entreprise.

Concernant la liberté du logiciel, c'est plus délicat. La plupart des sociétés commerciales rechignent à divulguer leurs "secrets de fabrication" comme par exemple la manière dont leurs logiciels sont conçus. Par transitivité donc, elles ne souhaitent généralement pas libérer le code de leurs logiciels, ou du moins pas entièrement. C'est dommage car:

3.2. Financement du développement de logiciels libres

Toujours dans l'optique de faire de l'édition de logiciels libre son métier, quelles sources de financement peut-on imaginer?

L'approche par dons est séduisante mais cadre mal avec l'esprit de notre société actuelle, du moins en France. Le problème est à la fois culturel (pourquoi faire un don alors que je peux utiliser un logiciel gratuitement) et social/fiscal (un avantage fiscal accompagne les dons mais uniquement s'il est fait à une association caritative). En attendant que nos cultures évoluent, il nous faut trouver un complément de financement plus fiable.

L'idéal serait que l'on puisse vendre un logiciel libre au prix qu'a coûté son développement et que coûtera sa maintenance. Or nous l'avons vu, l'éditeur ne peut être certain que d'un seul achat: celui du premier exemplaire du logiciel. Dès lors l'utilisateur a lui-même le droit de le re-distribuer, éventuellement gratuitement. Il faudrait donc que le premier "client" paie le prix de revient pour tous les autres utilisateurs. Ceci rappelle le financement des projets de recherche... mais il est très improbable que de nombreux petits projets puissent être financés de cette manière.

Plus subtil: plusieurs utilisateurs pourraient se regrouper pour rassembler une somme couvrant le coût de construction du logiciel. Mais cela signifie qu'ils devraient acheter "sur plans" un logiciel qu'ils n'ont pas demandé spontanément et qu'ils devraient s'allier avec d'autres utilisateurs (qui sait, peut-être leurs concurrents). Difficile à admettre.

Comme dans certains frameworks à la mode, si nous inversions la dépendance? Plus précisément, au lieu de financer le logiciel libre en début de construction, si nous le faisions à la fin? Comment? En vendant des licences commerciales... le temps de réunir une somme "convenable" pour rétribuer les développeurs de leurs efforts... le temps de libérer le logiciel.

3.3. Le modèle économique du "logiciel libérable"

Inventons ensemble la notion de Logiciel Libérable. Il s'agirait d'un logiciel:

Dès que ce logiciel atteint un niveau utilisable:

Dès que le montant des ventes atteint un niveau raisonnable (par rapport à l'investissement sur la version V):

Les utilisateurs ne pouvant se satisfaire d'une licence libre peuvent acheter le logiciel sous une autre licence non-libre. Ce service n'est jamais rendu gratuit, l'objectif étant de promouvoir la liberté du logiciel; par contre les bénéfices associés à la vente de licences non-libres contribueront à faire baisser le coût de la version suivante du logiciel.

Le processus de libération des versions successives du logiciel peut continuer indéfiniment si les utilisateurs ou les développeurs ont des idées ou des besoins de fonctionnalités nouvelles. Si par contre l'activité ralentit, la dernière version devient à son tour un logiciel libre. On dira dès lors que le logiciel a été "libéré".

Le modèle de logiciel libérable pourra ensuite être repris pour développer de nouvelles versions. Typiquement, supposons qu'un logiciel fonctionnant sur le framework .NET 1.1 a pu être complètement libéré. Lorsque le framework 2.0 devient disponible en version stable, le portage 1.1 vers 2.0 peut être financé à la manière des logiciels libérables.

4. Tout contenu numérique est libérable

4.1. Généralisation

Pourquoi se limiter au logiciel? Le processus de libération du contenu pourrait très bien s'adapter à d'autres domaines:

Les contenus numériques sont différents des éléments physiques (livres papier, voitures, aliments, etc...) en ce sens que les copier ne coûte rien. Plus précisément, une fois élaborés, les contenus numériques peuvent être dupliqués à l'infini sans dégradation, au prix de l'électricité et des média informatiques nécessaires à leur copie (ordinateurs, supports de stockage ou de téléchargement...). Il semble donc tout à fait naturel de ne pas leur appliquer le même raisonnement commercial qu'aux autres choses ou services.

Bien entendu, la plupart des sociétés traditionnelles sont réfractaires à la mise en place de stratégies de ventes dans lesquelles elles ne gagneraient plus d'argent au bout d'un moment (i.e. lorsqu'elles sont rentrées dans leurs frais et qu'elles ont fait des bénéfices raisonnables). Elles sont attachées aux rentes associées à leurs produits; ceci est vrai par exemple pour:

4.2. Feedback

Dans cet article, nous avons essayé d'imaginer un modèle économique à peu près respectueux de l'objectif et de l'étique des logiciels libres, et qui permettrait aux accros du développement logiciel de faire de leur passion un métier viable. L'idée du "Logiciel Libérable" a été mûrie pendant plusieurs semaines et souvent remaniée au gré des lectures des licences, des articles philosophiques de gourous reconnus du monde du libre, de l'Open Source et des logiciels fermés.

Toutefois, plusieurs doutes subsistent, appuyés par quelques réactions des premiers relecteurs de cet article. Nous apprécierions donc beaucoup d'avoir votre avis, vos sentiments, vos ressentis à ce sujet dans les commentaires... Par exemple:

4.3. Implication de DotNetGuru SARL

Selon la tournure que prendra le débat autour de cet article, nous aimerions également vous proposer de tester ce modèle par une expérience pratique autour du livre électronique "Conception Orientée Aspects". Donnons tout d'abord quelques détails financiers autour de ce projet:

Imaginons maintenant que nous appliquions à ce livre le modèle du "Livre Libérable":

Ce modèle est intéressant à plus d'un titre. Il permettrait:

Bien sûr, ce modèle a ses travers, il créera peut-être des comportements non-contributaires tel qu'une position attentiste de la version gratuite suivante... C'est un risque à courir mais si la communauté des contributeurs suffit à subvenir aux frais d'édition, le pari sera gagné.

5. Conclusion

A vos claviers. Dites-nous si ce modèle de "Contenu Libérable" (Logiciels, livres, musique, films) vous intéresse et aidez-nous à affiner ce modèle en critiquant ses imperfections. Et en sus, prenez position "pour" ou "contre" l'application du modèle du livre libérable à l'ouvrage "Conception Orientée Aspects".

Nous attendons avec grande impatience de lire vos réactions.