Et si la théorie de l'évolution s'appliquait au Logiciel Libre
Introduction
J'ai souvent entendu, ici et là, en naviguant sur le Web, des personnes qui critiquaient la trop grande diversité du Logiciel Libre menant à la réinvention de la roue, des incompatibilités et autres problèmes nuisant finalement au Libre plus qu'elle n'apporte. Personnellement, je pense au contraire que c'est -dans une certaine limite- sa plus grande force et pour le montrer je pense qu'une petite analogie à la théorie de Charles Darwin est évidente, simple et efficace. Rien de scientifique là dedans ni de forcément exacte mais je pense que certains visualiseront mieux les avantages et la régulation naturelle conduisant à un avantage évident de cette diversité.
Au commencement...
On sait depuis un moment que toute espèce vivante est apparentée aux autres avec un ancêtre commun hypothétique unicellulaire. Malgré les différences entre ces espèces, on parvient à les classer en groupe comme les mammifères, les oiseaux, etc. Puis chaque individu est codé par un code génétique unique sous forme d'ADN. Quand on regarde les logiciels, on peut se dire (avec la disparition des cartes perforées) les logiciels libres initiaux sont le compilateur et l'éditeur de texte qui donneront naissances à d'autres logiciels par la suite. Et ces logiciels libres se sont diversifiées et malgré les différences on peut les regrouper en catégories comme le graphisme, les éditeurs de texte, les jeux, etc. Pour finir, un logiciel libre comme tout logiciel est composé d'un code unique lui étant propre : le code source.
Une évolution progressive
L'évolution des espèces se produit grâce à de multiples mutations génétiques qui ensembles forment de nouveaux caractères et donc de nouvelles espèces. Chez les logiciels on pourrait dire que les logiciels utilisent la bibliothèque C libre comme base et les imbrications, améliorations successives de cette dernière participe à l'élaboration de programmes de plus en plus divers et varié. Mais il existe dans la théorie de l'évolution des branches qui se coupent violemment et discontinues comme celle de la lignée humaine. On pourrait traduire ça par la naissance de nouveaux logiciels de bases comme les bibliothèques ou langages qui se basent (de manière hypothétique) sur la Lib C qui serait commune.
Et Dieu créa le fork !
Ces fameuses mutations pour les animaux peuvent être vues comme une copie du
code source original puis après modifications donne un logiciel pouvant être
totalement nouveau. Le fork peut être due à plusieurs facteurs : un
désaccord sur les développeurs, de la communauté, sur la philosophies, les
options, etc.
Le but du fork est de diversifier et d'étendre le public du logiciel et ainsi
satisfaire un nombre d'utilisateurs plus élevé. Prenons l'exemple de Debian et
Ubuntu, cette première est clairement destinée à des utilisateurs expérimentés
ou dans des situations précises comme les serveurs. Debian n'a jamais
revendiqué ni rien fait pour que le débutant s'y sente à son aise, d'où Ubuntu,
qui a comblé le problème de Debian, et ainsi, a pu s'imposer dans la catégorie
du « grand public » mais contrairement à Debian, Ubuntu n'est pas des
plus réputés pour un utilisateur expert ou pour les serveurs. C'est une
question de choix. Tout comme les animaux qui mutent pour s'adapter à
l'environnement, le Logiciel Libre s'adapte à un public déterminé pour le
satisfaire et le rejoindre. Le fait que Ubuntu ne soit pas des plus aptes par
exemple à être sur un serveur n'est pas une insulte au contraire, ce n'est
juste pas son objectif.
Regardez les papillons, les noirs généralement vivent dans les zones plus
polluées car le bois est plus sombre et donc se camouflent mieux et inversement
pour les blancs. Comme les papillons, les Logiciels Libres ne peuvent pas être
tous multi-usages parfaitement et sont bien plus efficaces dans un domaine
précis.
Vers une convergence évolutive ?
La convergence évolutive c'est le fait que les Logiciels Libres ou animaux
évoluent séparément mais développent des fonctions similaires pour un milieu
donné. Par exemple on sait que le dauphin et le requin sont de groupes opposés
(poisson et mammifère), pourtant le dauphin a développé des nageoires car dans
l'eau c'est la morphologie la plus avantageuse. Il n'a pas regardé des requins
en se disant « ouaaa trop cool, j'en veux ! », d'ailleurs leurs codes
génétiques diffèrent même pour cela.
Chez les Logiciels, même topo, regardez des navigateurs comme
Firefox/Konqueror/Epiphany/Seamonkey, leurs apparences sont très semblables à
la première impression. Je suis sûr que si vous utilisez Firefox et que vous
testez Konqueror une seule fois, vous vous y retrouverez rapidement. Car
l'interface graphique des navigateurs convergent vers une interface assez
similaire car c'est sans doute la plus efficace pour cette tâche. Ou encore KDE
et GNOME avec les 2 autres OS propriétaires, il y a des similitudes car bon il
n'y a pas 10 façons de faire une interface graphique intuitive et la notion de
barres et de barre des tâches était sans doute la meilleure, d'ailleurs
d'autres environnements reprennent ce principe...
La destruction des espèces
La sélection naturelle est une loi inéluctable, l'espèce la plus forte
s'impose et les autres meurent progressivement. C'est ainsi que l'Homme de
Néandertal est mort il y a plusieurs milliers d'années suite à un réchauffement
naturel du climat alors qu'il avait une corpulence pour supporter le froid.
Contrairement à l'Homo Sapiens qui était moins trapu a pu tenir ce changement
de conditions.
Le Logiciel Libre suit cette logique, plus un projet aura un public large, plus
il s'imposera et les petits projets quant à eux perdront du public et des
développeurs jusqu'à ce que le développement du logiciel meurt car le logiciel
évolue trop lentement. Regardez -encore une fois- le cas Ubuntu. Avant Ubuntu
il n'y avait en somme qu'une distribution grand public : Mandrake (la
vieille époque hein ? ;)), ce marché était en berne et Mandrake avait des
imperfections qui faisaient que le grand public avait plus de mal à venir.
L'arrivée de Ubuntu en quelques mois a changé la donne pour se mettre en avant
et reléguer Mandrake au second plan qui n'a pas réussit à tenir à la
comparaison et à la force médiatique et marketing de Ubuntu. Ce changement
d'environnement a bouleversé l'écosystème du Logiciel Libre tout comme l'Homme
dans la Nature. Mais il est possible qu'un changement puisse inverser la
tendance et supprime Ubuntu à tout jamais... Wait&see.
Le risque d'une imposition/monopole
Mais le problème que Ubuntu a embarqué comme l'Homme dans la Nature, c'est que l'ensemble modifie l'écosystème et risque de détruire un certain équilibre. L'Homme est ce qu'on appelle un super-prédateur, comme quelques rares animaux (comme l'ours), l'Homme n'a aucun prédateur naturel réel, il est donc au sommet. Et son action peut détruire à lui seul la survie de plusieurs centaines d'espèces diverses même parfois sans grandes importances. Le problème que Ubuntu pourrait créer, c'est de s'imposer au sein de la communauté et avec la force des médias la confusion GNU/Linux et Ubuntu se créent ce qui fait que le gens abandonneront leurs projets et distributions au profit de cette dernière qui prendra en importance. Et si l'industrie de l'informatique et la communauté tournent le dos aux plus petits projets suite à ça, ça sera leur mort assuré ou presque et seuls les plus grands survivront. Ce phénomène nuit à la diversité qui comme la théorie de l'évolution le montre, est la plus profitable au final.
Une diversité incontrôlable ?
Est-ce que cette diversité est réellement nuisible ? En réalité non, la
Nature étant bien faite, le monde s'auto-régule naturellement via la théorie de
l'évolution qui permet aux seules espèces les plus adaptées à l'environnement
de survivre. Seulement certaines espèces peuvent avoir une plus grande
influence sur l'environnement et accentuer le processus. Ceci dit il y a peu de
risque que cette diversité soit incontrôlable. Par exemple on dit souvent qu'il
y a plein de petits projets, il est vrai que quand on voit certaines
distributions qui n'ont que un menu qui change par rapport à la première, on se
demande qu'elle est l'utilité.
Mais il faut laisser faire, ces distributions tiendront tant que cela répond à
un besoin, car après tout si elle ne répond à aucun besoin, à la fin sa
communauté va disparaitre et de par la même occasion, les développeurs et donc
le projet. D'ailleurs si on regarde bien, il n'existe qu'une vingtaine de
distributions très connues sur plusieurs centaines qui sombrent dans l'oubli,
ces 20 distributions (voire même 10) répondent quasiment à l'ensemble des
besoins les plus généralistes, c'est sûr que de la distribution spéciale
musique cela intéresse moins de monde qu'une Ubuntu mais cela n'enlève pas
l'utilité de la première. Et si on regarde mieux encore, dans ces
distributions, certains sont parmi les plus anciennes distributions comme SuSE,
Debian, Red Hat, Slackware ou autres et leurs communautés ne désemplissent pas,
les autres naissent et meurent en vain de trouver du succès à part quelques
exceptions comme Mandrake ou Ubuntu...
Certains décrieront une dispersion de l'énergie, c'est vrai qu'il y en a. Mais qui sait leurs projets a peut être une utilité ou pourrait révolutionner l'écosystème de GNU/Linux. Puis d'un autre côté, changer la position d'un menu ne demande pas les mêmes compétences que pour créer un noyau révolutionnaire. Il y a donc un certains équilibre et la perte d'énergie est rapidement compensé. Le tout est que les Logiciels Libres ne se créent pas des incompatibilités entre eux de manière trop violente.
Conclusion
J'espère que cet article suite à des analogies assez connues je pense vous
aideront à comprendre les biens faits de la diversité du Logiciel Libre et en
quoi elle n'est pas destructive.
Ce message n'est pas un troll ni envers Ubuntu ni aucun autre projet et
l'ensemble de ce message est applicable à l'ensemble des Logiciels Libres. Pour
conclure mon exemple pour montrer les bien faits de la diversité : The
GIMP est le plus puissant Logiciel Libre d'édition de l'image mais pour
redimensionner la taille d'une photo c'est utiliser un tank pour tuer une
mouche, trop lourd, c'est là que KolourPaint prend son sens car plus léger et
simple puis ImageMagick qui est encore plus efficace mais un poil moins sexy à
l'usage sans doute. Chacun a donc son public et son usage pourtant dans un même
domaine.