À la défense de Mono

Je suis jusqu’à présent resté spectateur de la Guerre Sainte contre Mono et d’autres technologies «libres mais potentiellement asujetties aux brevets logiciels»:

[Illustration de Maëva Pierre]
Cependant, à la manière de Kant face à Hume, les billets de plus en plus radicaux de mon aimé comparse Antistress m’ont sorti de ma torpeur ce matin pour vous rédiger un contre-argumentaire. Des positions d’évangéliste comme celle-ci, je commence à en voir un peu trop. Je suis donc là pour faire l’avocat du diable et prendre la défense de Mono (Yorda pour les intimes). Attachez vos tuques, ce billet va être plus long que je ne l’avais prévu.

Clarifions certaines choses avant de commencer:

  • Je ne suis PAS un fan de Mono.
  • Je suis un fan du logiciel libre.
  • J’ai déjà été un fervent évangéliste du logiciel libre, je me suis adouci dans les dernières années.
  • J’ai déjà codé (en Python, PHP) et mon implication dans certains projets est d’assez longue date (PiTiVi en 2004, anyone?).

Je ne cherche pas à convaincre les argumentateurs anti-mono de soudainement lâcher prise. Je suppose que ce sont de bons chiens de garde et qu’ils ont leur utilité. Je cherche simplement à rétablir un certain équilibre et à susciter la pensée critique du lecteur, par rapport à notre écosystème de brevets en général et par rapport aux «factions» du logiciel libre (radicalisme vs pragmatisme). Ce qui m’inquiète, c’est un unilatéralisme dans la pensée et le groupthink. Je suis moi-même de ceux qui oscillent entre les deux camps, capable d’adhérer aux arguments des deux partis.
Même si mon but était de convaincre ceux du camp anti-mono, ça serait probablement peine perdue; ce truc là est aussi enraciné qu’une religion. Je m’adresse plutôt à ceux qui se situent entre les deux camps. Ceci est un exercice de réflexion et une catharsis.

C’est Mono! Fuyons!


Il n’y a pas d’autre solution. On ne transige pas avec les monstres. Je n’utilise pas de logiciels «Monoïsés» (quelle belle connotation négative)! Tout ce qui est écrit en C# est un danger pour nous.
Tel est le discours tenu par les plus fervents attaquants de Mono. Je le comprends. C’était celui que j’entretenais dans mon esprit initialement lors de l’annonce du partenariat entre Novell et Microsoft il y a quelques années. J’y reviendrai plus loin dans ce billet.

La chasse aux sorcières

Dans le bon vieux temps, on jetait les sorcières dans l’eau, et si elles flottaient, alors c’était la preuve qu’elles étaient des sorcières. Il faut croire que la natation (la programmation en C#) n’était pas une activité bien vue des gens. Quel choix cela laisse-t-il à la sorcière (Mono)? Si tu flottes, tu vas mourir brûlée/torturée. Si tu coules, ben… t’es morte noyée de toutes façons. Oups.
Peu importe ce qu’on dira à ceux du camp anti-logiciels-possiblement brevetés, ils ne seront pas satisfaits… parce que c’est ce qui arrive quand on acquiesce la validité du construit théorique que sont les brevets logiciels.
Je ne peux m’empêcher de repenser à cette scène de Monty Python and the Holy Grail. Voici une transcription abrégée pour ceux qui ont du mal avec l’anglais (britannique, qui plus est):

Sir Bedevere: How do you know she is a witch?
Villager 1: She looks like one!
Sir Bedevere: Bring her forward.
Woman: I’m not a witch! I’m not a witch!
Sir Bedevere: Uh, but you are dressed as one.
Woman: They dressed me up like this!
[…]
Sir Bedevere: What makes you think she is a witch?
Villager 2: Well, she turned me into a newt!
Bedevere examines the villager and sees that he is clearly not a newt.
Sir Bedevere: A newt??
Villager 2: …I got better.
(la foule crie, “Burn her!”)
Sir Bedevere: Quiet, quiet, quiet, quiet! There are ways of telling whether she is a witch. Tell me: what do you do with witches?
(d’autres cris: “Burn her!”)
Sir Bedevere: And what do you burn apart from witches?
[…]
Villager 1: Wood!
Sir Bedevere: So why do witches burn?
Villager 2: Be…cause they’re made of wood??
Sir Bedevere: Good! So how do we tell whether she is made of wood? Does wood sink in water?
Villager 3: No, no!
Villager 1: No, it floats! It floats!
[…]
Sir Bedevere: What also floats in water?
[…]
King Arthur: A duck!
Sir Bedevere: Exactly! So, logically…
Villager 3: If…she…weighs the same as a duck…she’s made of wood!
Sir Bedevere: And therefore…?
Villager 1: A witch!

L’évolution d’un évangéliste moyen

Au fil des années, j’ai constaté un phénomène. Je ne suis pas certain de ce que j’avance (je n’ai pas de données quantitatives solides sous la main, c’est pas mon sujet de thèse de doctorat), mais voici: la très forte majorité de ceux qui rhâlent sont des utilisateurs, et non des dévelopeurs. Et la majorité de ces utilisateurs qui rhâlent sont des nouveaux sur la scène (ou plutôt, l’audience). Évidemment, l’inverse tient toujours: certains développeurs sont radicaux tout comme certains «utilisateurs vétérans» (comprendre: plus de 5-10 ans) sont toujours radicaux même après le passage du temps. Mais je crois que la majorité des opposants de Mono sont des «bleus». Bon, mon but n’est pas de faire une attaque ad hominem, la question n’est pas là. Ce que je veux dire, c’est qu’une bonne portion de ces «bleus radicaux» risquent de s’adoucir avec le temps, comme je l’ai fait et comme beaucoup d’autres l’ont fait. Vivre et laisser vivre. Beaucoup d’évangélistes suivent une progression telle que celle-ci et finissent par adopter une position modérée et généralement plus efficace.
Un autre phénomène en place est celui des minorités vocales. Les «Croisés du Libre» qui cherchent l’exclusion de Mono sont ceux qui vont gueuler sur les forums, les blogs, les mailing lists. Ceux qui sont neutres (ou ceux qui sont optimistes, même) sont typiquement ceux qui n’iront pas se joindre au flamefest et envahir les zones de discussion. Les Croisés du Libre se reconnaissent par leur pose impressionnante et leur détermination qui tient de l’héroïsme:

[Illustration: One a day 34, par Saejinoh]
Les développeurs, quant à eux, se situent majoritairement dans la majorité silencieuse. Ils sont bien trop occupés à coder. Ils sont les fourmis de notre monde. Ils travaillent d’arrache-pied, dans une aire de tranquille plénitude. Leur éditeur de code est une clairière à l’abri du vent hurlant dans les plaines et les montagnes desquels crient les vigies. Ils vont au front sans mot dire, chevauchant un… hum.

[Illustration: Putin, par Subeo]
Bon, j’arrête la prose, c’est pas tellement ma force je suppose 🙂
En gros, s’ils pouvaient le faire, beaucoup de développeurs se lèveraient et diraient ceci:

Même, certains développeurs (pas tous, évidemment) ayant conçu des logiciels spécifiquement dans le but de contourner Mono, tels que le fameux Gnote (fréquemment utilisé comme argument anti-mono) vous diront que ce n’était pas pour des raisons philosophiques/une question de brevets, mais purement pour des raisons techniques. Et c’est la seule raison valide que je reconnais pour choisir Mono ou non. The best tool for the job. Pour certains développeurs, c’est Mono. Pour d’autres, c’est Python. Pour d’autres, c’est le C ou le Java.

The peanut gallery

(définition sur Wikipedia)
Un argument connexe que je veux amener, et attention, ça va être plus virulent/inflammatoire, est le suivant: êtes-vous celui ou celle qui produit le logiciel? Non? Alors get off my lawn.
Qu’est-ce que cette arrogance et sentiment «d’ayant-droit»? Boycotter un logiciel libre qui est écrit en C#, et le crier sur les toits par la suite? Qu’est-ce que vous pensez que les développeurs en ont à cirer, que vous l’utilisiez ou non? Ça pourrait fonctionner pour un logiciel payant. Pour un logiciel libre qui est également gratuit, pas tellement.
Rendu à un certain point, il faut se poser la question «est-ce que ce que je dis à l’autre est quelque chose qui le rend plus heureux» et si ça en vaut la chandelle.

Mais Microsoft / patent-troll-342987 va s’en servir pour nous attaquer!

Si on accepte le construit théorique d’un «brevet logiciel», alors ils peuvent déjà le faire, Mono ou pas. Et l’ont déjà fait avec le kernel Linux (avec des âneries comme proclamer qu’il enfreint 235 brevets de Microsoft). On est toujours en vie. Le Kernel est toujours bien portant. Ou peut-être préfèreriez-vous utiliser GNU Hurd pour être vraiment «à l’abri»? En fait, vous devriez immédiatement cesser d’utiliser Specto (que j’ai écrit, sans prendre soin de ne pas enfreindre de brevets, irresponsable que je suis). Vous devriez également cesser d’utiliser OpenOffice.org, Samba, VLC, MPlayer, la quasi totalité de GStreamer (ouais, je suis totalement convaincu que vous n’installez rien d’autre que gst-plugins-good et gst-plugins-base, hein?), Inkscape, Blender, … en fait, pour être vraiment en sécurité et vraiment libre, vous devez vous débarrasser de votre ordinateur et vos biens, et rejoindre notre secte.
Ironiquement, Antistress, dans son argumentaire contre Mono, dit ceci (je cite entièrement le paragraphe pour ne pas y faire injustice):

«Il est exact que tout brevet logiciel constitue une menace pour les développeurs, mais cela ne signifie pas que tous les brevets logiciels représentent la même menace. Différentes sociétés sont susceptibles d’avoir des brevets qui pourraient être utilisés contre d’autres langages, mais si nous nous inquiétions de chaque brevet qui pourrait être utilisé contre nous alors nous ne ferions plus rien. Les brevets de Microsoft sont bien plus dangereux : de toutes les principales sociétés informatiques, c’est la seule société qui s’est déclarée en guerre contre GNU/Linux et a fait part de son intention d’utiliser ses brevets contre notre communauté. Si Microsoft prépare un piège avec ses brevets sur C#, ça n’est rien d’autre que la mise à exécution de ses menaces.»

Ouais. En ce point, je suis moi-même radical: pour moi, les brevets ne sont pas «plus ou moins» risqués. Leur existence est un risque dichotomique. Aucun logiciel n’en est exempt (hé, après tout, même le double-clic et le simple clic sont brevetés).
Chercher à rédiger un code source exempt d’infractions sur un quelconque brevet détenu par Microsoft ou un “patent troll” relève de l’impossible, et est un premier pas vers la phobie (note: je parle de manière imagée; rien à voir avec la psychologie clinique ou mon champ d’étude). Comment ne pas être paralysé (ou du moins engourdi) dans son élan créateur si l’on vit dans l’anxiété constante d’enfreindre une «idée»? Les «artistes», s’ils reconnaissent la légitimité de la propriété intellectuelle, sont asujettis au même genre de bêtise (pas le «droit» d’utiliser un certain enchaînement mélodique utilisé dans une autre chanson, par exemple).
C’est intenable. Tout comme il n’y a pas une infinité de façons d’enchaîner trois notes de musique, il n’y a pas 65535 façons de rédiger du code pour faire une opération particulière. Breveter une façon de faire, dans un logiciel, serait breveter un vers d’un poème ou une formule mathématique.
Pour revenir à l’argument d’Antistress, il existe essentiellement deux positions anti-brevets:

  • Certains logiciels sont à risques plus que d’autres, il faut donc considérer chaque logiciel au cas-par-cas (position d’Antistress)
  • Tous les logiciels sont à risque, alors autant les ignorer et utiliser son énergie pour des choses plus productives ou se débarrasser entièrement du problème (ma position)

Ma position est celle qui fait normalement partie de notre subconscient, c’est une réalité qui fait mal et que l’on se refuse d’accepter. Je crois que la seule solution «à long terme» est de se battre pour que les brevets logiciels ne soient jamais reconnus où ils ne le sont pas déjà, et se battre pour qu’ils soient abolis aux États-Unis d’Amérique. Good luck with that.

Le reste n’est que tourner autour du problème. Je sais, c’est un peu déprimant. Je réalise également qu’en affirmant cela, je me positionne moi-même comme le radical opposé de ceux que j’appellais jusqu’ici les radicaux. Quelle belle ironie.

L’argument des «autres pays», inversé

Argument intéressant d’Antistress:

«Les brevets logiciels sont légaux dans d’autres pays et, dans la mesure où la communauté des utilisateurs et développeurs de logiciels libres est mondiale, il serait égoïste de se servir de logiciels brevetés en sachant que d’autres n’auront pas ce droit. En outre, nous devons éviter de diviser la communauté pour ne pas l’affaiblir.»

Qui êtes-vous, Croisés du Libre, pour dire aux autres nations comment fonctionner? L’égoïsme ne serait-il pas d’imposer qu’ils se conforment à cette logique? C’est en quelque sorte imposer/valider que ces pays «restent» dans leur système de brevets (j’y reviendrai dans un instant) et imposer, sur le reste du monde qui n’est pas asujetti aux brevets logiciels, des restrictions arbitraires et métaphysiques? D’un autre point de vue, pourquoi devrions-nous souffrir pour des systèmes législatifs étrangers corrompus? Ceci ne leur fera pas de bien. Et c’est là que j’amène ma deuxième inversion d’argument.

«Paradoxalement, pour éviter que les brevets logiciels ne soient un jour reconnus en Europe, il faut éviter d’utiliser des logiciels brevetés. Si les utilisateurs privilégient des logiciels non brevetés, ça réduit l’intérêt des brevets et ça diminue donc le risque que ça arrive chez nous (moins d’intérêts financiers en jeu, donc moins de lobbying de la part des détenteurs de brevets). Tout se tient.»

Au contraire. Éviter d’utiliser des logiciels asujettis aux brevets (ce qui est une impossibilité, comme je l’ai dit plus tôt), ou, plutôt, «éviter les logiciels que l’on perçoit comme plus à risques d’être asujettis aux brevets», peut aussi bien avoir l’effet inverse, parce que:

  1. Ceci donne de la crédibilité au concept de brevet logiciel;
  2. Ce n’est pas en boycottant bêtement des logiciels dans son salon qu’on empêche «l’invasion de l’Europe». C’est en se battant au niveau législatif/politique. Et ça, c’est beaucoup, beaucoup plus difficile que de simplement boycotter dans son salon.

Je veux que la situation des brevets empire aux États-Unis. Contourner le problème ne la fera pas empirer assez. C’est seulement lorsque la bulle pète qu’un changement législatif sera possible. Et pour ça, il va falloir que ça aille très, très, très mal, au point où c’en est encore plus ridicule que ça ne l’est déjà.
Je reviens également à ce bout de phrase du premier argument qui m’a fait sourire:

«En outre, nous devons éviter de diviser la communauté pour ne pas l’affaiblir.»

Eh bien, c’est précisément ce que vous faites en démonisant Mono et les logiciels libres «à risque». Je vois exactement où Antistress veut en venir avec son argument, qui se penche sur le côté législatif, mais je souhaite simplement souligner que le même argument peut être vu de manière totalement opposée, qu’il y a une manière différente de «diviser la communauté»: en ostracisant les projets «monoïsés» et en validant par le fait même le concept de «brevet logiciel».
Ouf. Moi qui voulais faire une tirade en deux ou trois paragraphes. C’est loupé, j’ai certainement assomé la majorité des lecteurs. Et hamster me dit que j’ai passé 4 heures et demie à rédiger cet essai .__. Je vais m’arrêter ici, j’ai d’autre pains sur la planche.
J’espère avoir suscité des réflexions socio/philosophiques. «Lâchez vos coms», mais comme dirait Ploum, «poster un commentaire n’est pas une obligation. Rappelez-vous de tourner 7 fois votre clavier dans votre bouche avant de poster». Les commentaires anti-mono sont les bienvenus (spécialement s’ils réussissent correctement à démolir mon propre contre-argumentaire, ça sera intéressant), mais si je vois un commentaire d’insultes ou d’attaque ad hominem, je supprime. J’espère que la blogosphère francophone saura s’élever au-dessus de ce que je vois courramment dans la blogosphère anglophone chaque fois que Mono est un sujet de discussion.
P.s.: Antistress, t’es sympa, et cet énorme billet n’est en aucun cas une attaque dirigée vers toi en particulier, mais plutôt une réflexion sur ce que j’observe dans la «communauté». Si tu trouves des failles dans ce que j’avance, tant mieux, mes lecteurs en bénéficieront 🙂

Vus : 520
Publié par Kiddo : 87