Pour la FSF, la promesse de Microsoft concernant Mono sonne creux

Loup suivant à distance le petit chaperon rouge

En complément de mon précédent billet intitulé sans ambiguïté « Fuyez Mono ! », je vous propose la traduction de la réaction de la FSF à l'annonce faite par Microsoft d'appliquer sa Community Promise aux spécifications ECMA 334 et ECMA 335 (article original).

Pour mémoire :

  1. La spécification ECMA 334 recouvre les standards définissant l'interprétation des programmes écrits en C# tandis que la spécification ECMA 335 recouvre la Common Language Infrastructure (CLI), une spécification pour l'exécution de ces programmes dans différents environnements via une machine virtuelle.
  2. En vertu de la Community Promise, Microsoft s'engage sous certaines conditions à ne pas attaquer en justice ou réclamer le paiement d'une redevance pour l'utilisation, la vente, la distribution de n'importe quelle implémentation de C# et de la CLI.
  3. Mono est une implémentation libre de la plate-forme de développement Microsoft .NET dont C# et la CLI forment le socle.

Texte publié par la Free Software Foundation le 16 juillet 2009, librement traduit par votre serviteur :

La promesse creuse de Microsoft

La semaine dernière, Microsoft a étendu le champ d'application de son programme Community Promise aux implémentations logicielles des standards ECMA 334 et 335. Vous pourriez penser que cela signifie qu'il n'y a aucun risque à écrire votre logiciel en langage C#. Pourtant cette promesse pleine de lacunes est très loin de rendre l'utilisation de C# sûre.

Pourquoi s'inquiéter de C# ?

Depuis que nous avons publié l'article de Richard concernant Mono [Richard M. Stallman, NDT] la semaine dernière, certaines personnes nous ont demandé pourquoi nous prenions position contre des logiciels libres écrits en C# et Mono et pas contre ceux écrits dans d'autres langages de programmation. Sun a sûrement des brevets qui s'appliquent à Java. IBM a peut-être des brevets qui s'appliquent aux compilateurs C. Ne devrions-nous pas déconseiller leur utilisation également ? nous demandent-ils.

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.

Cette société a été plutôt claire concernant ses intention depuis fin 2006. A une conférence donnée à l'attention des utilisateurs en novembre de cette année-là, le PDG de Microsoft Steve Ballmer a déclaré, en réponse à une question relative à leur accord de licence d'exploitation de brevets avec Novell :

… le fait que [GNU/Linux] fasse usage de notre propriété intellectuelle [sic] est un problème pour nos actionnaires. Nous dépensons 7 milliards de dollars par an en R&D, nos actionnaires attendent que nous protégions, signions des accords de licence ou tirions profit de nos innovations brevetées. Alors comment valoriser correctement nos innovations brevetées...?

(Seattle Post-Intellegencer, The Microsoft Blog, "Ballmer on Novell, Linux and patents," 16 novembre 2006)

Quelques jours plus tard, une interview d'un des présidents de Microsoft, Bob Muglia, a été publiée dans laquelle il énonçait clairement qu'ils considéraient C# comme l'une de ces « innovations brevetées » :

Il y a un effort substantiel dans le secteur de l'open source [sic] pour proposer sur le marché une implémentation de .Net connue sous le nom de Mono et menée par Novell, et un des éléments de l'accord que nous avons conclu avec Novell est que la propriété intellectuelle [sic] associée est disponible pour les clients de Novell.

(eWeek.com, "Microsofts Muglia Talks Longhorn, Novell and Java", 17 novembre 2006)

Ils ont fait monter la pression d'un cran depuis. En mai 2007, Microsoft a poussé sa logique un peu plus loin en annonçant dans une interview donnée au magazine Fortune qu'ils considéraient que GNU/Linux violait 235 brevets de Microsoft. Et récemment ils ont prouvé que ce n'était pas de vaines menaces : la société a poursuivi TomTom en justice pour avoir fait usage de l'implémentation du système de fichiers VFAT existant dans le noyau Linux sans en avoir acquis les droits.

Tout cela ne peut être balayé d'un revers de main. Il s'agit de déclarations et d'actions faites au plus haut niveau de cette société. Utiliser les brevets pour diviser et conquérir la communauté du Logiciel Libre est une part fondamentale de leur stratégie d'entreprise. C'est pourquoi C# représente une menace unique pour nous. Le langage a été développé en interne par Microsoft et il est donc probable qu'ils aient des brevets couvrant différents aspects de son implémentation. Ce qui ferait des implémentions libres de C# comme Mono une proie facile.

L'engagement résultant de la Community Promise ne change rien à cela. Microsoft avait l'opportunité d'agir et de démontrer qu'il ne comptait pas utiliser C# contre nous. Au lieu de quoi ils ont pris des demi-mesures sans consistance qui leur laisse de multiples possibilités de nous nuire.

Des standards incomplets

Les spécifications ECMA 334 et 335 décrivent le cœur du langage C#, y compris l'information relative aux bibliothèques logicielles standard qui doivent être incluses dans n'importe quelle implémentation conforme. Pourtant il y a différentes bibliothèques qui sont fournies avec Mono et qui sont couramment utilisées par des applications comme Tomboy sans pour autant être requises par le standard. Et, pour être parfaitement clair, nous ne parlons pas de bibliothèques propres à Windows comme ASP.NET et Windows Forms. Nous parlons de bibliothèques de l'espace de noms System qui fournit les fonctionnalités courantes que les programmeurs attendent d'un langage de programmation moderne : sérialisation binaire, expressions régulières, Xpath et XSLT, et plus encore.

Comme ces bibliothèques ne sont pas définies dans les spécifications ECMA, elles ne sont protégées en aucune manière par la Community Promise. S'il s'agissait du seul problème avec cet engagement, il n'y aurait pas de risque à utiliser des applications qui évitent ces bibliothèques et qui s'en tiennent à ce qu'il y a dans le standard. Mais même le code couvert par l'engagement n'est pas complètement sûr.

Définir ce qui est nécessaire

La Community Promise ne couvre que les réclamations relatives aux brevets de Microsoft qui sont nécessaires pour implémenter les spécifications protégées. Considérant seulement la taille de son portefeuille de brevets, il est probable que Microsoft détient des brevets qu'une implémentation complète de la spécification viole dès lors qu'ils ne sont pas strictement nécessaires : peut-être s'agit-il d'un brevet couvrant une simple optimisation de la vitesse d'exécution, ou une façon courante d'exécuter une certaine tâche. La Community Promise ne se prononce pas sur ces brevets et Microsoft peut donc toujours les utiliser pour attaquer les implémentations du standard.

Changer les règles du jeu en cours de partie

Disons que vous avez écrit une implémentation d'une des spécifications couvertes par la Community Promise et que vous voulez déterminer si oui ou non vous allez être poursuivis devant les tribunaux pour avoir violé un brevet de Microsoft. La nécessité de se poser la question rend déjà les choses difficiles. Mais même si vous finissez par être rassurés, vous devrez à nouveau vérifier demain parceque la Community Promise pourrait ne plus vous protéger à ce moment là.

La Community Promise ne vous donne aucun droit d'utiliser les brevets. Il indique seulement que Microsoft ne va pas vous poursuivre pour les brevets qu'il détient ou contrôle. Si Microsoft vend un de ces brevets, rien n'empêchera son acquéreur de poursuivre quiconque utilise le logiciel.

La solution : une licence d'exploitation de brevets exhaustive

Si Microsoft veut réellement rassurer les utilisateurs de logiciels libres sur le fait qu'il n'entend pas les poursuivre pour l'utilisation de Mono, il devrait accorder au public une licence d'exploitation irrévocable de tous les brevets dont Mono fait actuellement usage. Ça permettrait de résoudre proprement tous les problèmes actuels qui se posent avec le programme Community Promise : sa portée serait suffisamment large pour que nous n'ayons pas à nous demander ce qui est couvert par la spécification ou strictement nécessaire pour l'implémenter. Et cela resterait valable même si Microsoft décidait de céder ses brevets.

Ce n'est d'ailleurs pas une demande déraisonnable. GPLv3 [la licence publique générale GNU GPL version 3, NDT] requiert que les distributeurs consentent une licence similaire lorsqu'ils transmettent des versions modifiées d'un logiciel protégé, et beaucoup de sociétés – grandes et petites – n'ont aucun problème en faisant cela. Avec les moyens dont il dispose, Microsoft devrait à coup sûr être capable d'y arriver aussi. S'ils ont des hésitations sur la façon de faire, ils devraient nous contacter : nous serons ravis de travailler avec eux pour permettre d'aboutir à un résultat satisfaisant.

En attendant que cela arrive, les développeurs de logiciels libres devraient se garder d'écrire du code qui dépend de Mono. Les implémentations de C# peuvent toujours être attaquées pour violation des brevets que Microsoft détient : l'engagement résultant de la Community Promise est conçu pour donner à cette société plusieurs échappatoires si elle le souhaite. Nous ne voulons pas voir le dur labeur des développeurs perdu pour la communauté si nous perdons le droit d'utiliser Mono, et jusqu'à ce que nous parvenions tous ensemble à éliminer les brevets logiciels, utiliser un autre langage est le meilleur moyen d'éviter que ça n'arrive.

Lire aussi sur ce blogue : Licence de brevets exhaustive de Google pour VP8 contre vague promesse de Microsoft pour Mono : cherchez l'erreur

13 commentaires

#1 lundi 01 mars 2010 @ 10:42 Guyome a dit :

Pour moi - et après lecture de ta traduction - le seule critique qui est porté à Mono: c'est C# appartient à Windows et c'est un peu léger. Il est évident que toutes implémentation libre est plus ou moins risquée. Avec le rachat de Sun par Oracle, que sait-on du futur d'openJDK ? Pour rappel, RMS considérai aussi Java comme un piège.

Dans l'ensemble, je comprends les craintes liés à Mono, mais je les trouve exagérées par rapport à celles exprimées à l'encontre de Samba, openJDK, et autres implémentations libres. Surtout, je comprends pas en quoi elle devrait justifier la disparition de logiciels parmi les plus performant dans leurs domaines (gnome-Do, Banshee, Tomboy, F-spot)

#2 lundi 01 mars 2010 @ 10:51 PaulK a dit :

Oui, il est vrai que le « Community Promise » de Microsoft n'est pas vraiment suffisante pour nous garantir qu'ils n'utiliseront pas Mono pour porter un coup plus ou moins fatal au logiciel libre, mais d'un autre côté, je ne suis pas convaincu que ce soit vraiment dans l'optique de Microsoft.

S'il est certain qu'une licence d'utilisation irrévocable de la part de Microsoft pour l'implémentation de .NET serait souhaitable, je reste perplexe quand au fait que Microsoft pourrait se servir de Mono pour porteur atteinte au Libre.

De plus, la FSF a tendance à considérer Microsoft comme « le grand méchant loup » (« 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 »).

Je dirais que si nous voulons vraiment être fixés, demandons donc à Microsoft cette fameuse licence irrévocable, et si nous nous la voyons refusée, nous serons au moins à quoi nous en tenir.

En attendant, j'aurais tendance à privilégier le développement et l'utilisation d'alternatives aux logiciels Monotisés.

#3 lundi 01 mars 2010 @ 11:01 antistress a dit :

@ Guyome : ce n'est pas du tout ça, relis bien l'article. Le problème est que le "contrat" de Microsoft est mal rédigé et semé d'embuches et donc insuffisant pour garantir que la communauté pourra continuer à utiliser Mono librement à l'avenir. Ou ils sont nuls ou ils le font exprès.

Le piège Java (http://www.gnu.org/philosophy/java-trap.fr.html) était dénoncé lorsque Java n'était pas libre, c'est un autre problème. Là Mono est libre mais susceptible de violer les brevets de Microsoft. Comme je l'expliquais dans le billet précédent :
"Si le code lui-même est libre (au sens où il résulte d'un travail de développement original, placé sous licence libre, à partir des spécifications de la plate-forme de développement Microsoft .NET – et non d'une copie du code de ce dernier qui lui n'est pas libre), les mécanismes que Mono implémentent sont susceptibles d'être couverts par des brevets de Microsoft compte tenu du fait que .NET a été entièrement développé en interne par cette société."

Enfin ta remarque sur la privation de logiciels que tu estimes performants, la question se pose aussi pour des logiciels propriétaires que tu estimerais performants. C'est une question de priorité ; tout dépend la valeur que tu attaches à ta liberté. En tout cas pour ma part je trouve les alternatives non monoïsés supérieures (cf http://libre-ouvert.toile-libre.org/?article11/fuyez-mono#c1267352325-1)

#4 lundi 01 mars 2010 @ 11:21 Stemp a dit :

Espérons que cet article ouvre les yeux à quelques personnes. Même si je n'y crois plus guère.

#5 lundi 01 mars 2010 @ 12:15 DarkBaboon a dit :

Microsoft n'attaquera personne qui développe en MONO, non ils sont plus fins et intelligent que ça. On a pu remarquer qu'en adéquation avec ce que déclarait Steve Ballmer, il y a eu d'une part Microsoft qui poursuivit TomTom, l'année dernière, et qui s'est soldé par l'achat de licence Microsoft par TomTom. Plus récemment, le 22 février dernier, c'était Amazon qui signait un accord de licence avec Microsoft pour couvrir leur utilisation de Linux dans leur Kindle. Donc en fin de compte, ce ne sont pas les développeurs qui utilisent des technologies Microsoft comme dans MONO qui sont en dangers, ce sont les utilisateurs et entreprises utilisatrices!

#6 lundi 01 mars 2010 @ 18:40 yeKcim a dit :

"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"

En toute honnêteté je pense que microsoft n'est pas la seule : SCO. Bref, l'argument contient une faute...

Personnellement je suis ni pour ni contre mono. Par contre, j'ai l'impression que la campagne anti mono ressemble a du FUD.

Personnellement, je veux bien me passer de mono, j'utilise Banshee et F-Spot, il n'y a aucune alternative sérieuse pour ces deux softs. Bon en étant plus raisonnable et en faisant un peu d'efforts je dirai juste que F-Spot inclus des fonctionnalités qu'aucun autre logiciel n'a. Alors je fais quoi, sachant que j'ai besoin de cette fonctionnalité ? C'est sympa de crier au loup mais maintenant, on fait quoi ?

#7 lundi 01 mars 2010 @ 18:48 antistress a dit :

@ yeKcim : tu sais quand même que Microsoft n'était pas étranger à l'affaire SCO si ma mémoire est bonne (http://en.wikipedia.org/wiki/SCO-Linux_controversies#Microsoft_funding_of_SCO_controversy) ?

L'analyse argumentée de la FSF ce n'est pas du FUD, c'est du droit appliqué.

Pour répondre à ton commentaire final, je te renvoie à la fin de mon commentaire précédent pour gagner du temps ("la question se pose aussi pour des logiciels propriétaires que tu estimerais performants" etc)

#8 lundi 01 mars 2010 @ 21:23 t0p0 a dit :

@antistress : je comprends un peu mieux (je suis light en english). Merci d'être resté posé ;)

Mais le plus troublant pour moi est (et corrigez moi sur ce point si nécessaire) que les brevets logiciels n'existent pas en Europe. Alors bien-sûr, ça fait un peu 'tant pis pour les autres', mais en même temps qui ira embêter un américain qui téléchargera F-spot sur un dépôt européen ?

Et pourquoi des développeurs de talent choisissent mono et font du si bon boulot ? C'est qu'il a tout de même quelques qualités techniques...

En tant qu'utilisateur lambda je suis perdu. J'ai déjà choisi entre un XP fermé mais compatible avec tout et un Gnu/linux ouvert mais parfois très lourd à mettre en phase avec l'existant (fermé), et maintenant tu m'appelles à quitter de bonnes applications open source qui font bien leur travail et auxquelles je me suis habitué, pour des raisons "potentielles" et qui ne font pas l'unanimité.
Et pourquoi d'ailleurs le monde de l'open source n'est-il pas d'accord sur ce point ? Moi, je ne comprends qu'à moitié et je ne connais que très peu la programmation. Mais les gens qui ont été capables de créer mono et ceux qui l'utilisent sont quand même plus avisés.
Ils n'ont pas l'air idiots, alors explique-moi pourquoi ils persévèrent ?

C'est difficile à digérer tout ça.
:(

#9 mardi 02 mars 2010 @ 01:19 antistress a dit :

@ t0p0 : c'est un peu pour toi que j'ai traduit ce pavé :-)

Relis mon billet précédent, tu verras que ce n'est pas si simple. Et puis qui aurait cru le mouchard HADOPI possible il y a quelques mois ? Il ne faut pas sous-estimer le culot des multinationales qui poussent les brevets logiciels http://www.framablog.org/index.php/post/2010/03/02/quand-les-lobbys-americains-attaquent-le-logiciel-libre

Les qualités techniques de Mono/.NET existent assurément (apparemment côté développeur ça fait gagner du temps même si côté utilisateur ça me parait lourd personnellement s'agissant de Mono - comparer Tomboy et Gnote par exemple) ce n'est pas mon propos. Les bases juridiques de Mono sont pourries en revanche sans que l'on ne puisse rien y faire. Je te renvoie à ce commentaire adressé à FabriceV et G-rom : http://libre-ouvert.toile-libre.org/?article11/fuyez-mono#c1267352325-1

Le désaccord sur Mono tient au fait qu'il y a des gens dans la communauté qui font primer l'aspect pratique (mouvement Open Source) et d'autres qui placent les libertés avant le reste (mouvement du Logiciel Libre).
Comme le dit Stallman, entre un logiciel privateur pleinement fonctionnel et un logiciel libre moins fonctionnel, choisis le 2nd car tu peux toujours améliorer le 2nd alors que tu ne pourras jamais libérer le 1er. C'est un peu pareil avec les logiciels basés sur Mono et les autres : tu ne peux guérir Mono de ses tares juridiques car ça ne dépend pas de la communauté quelles que soient ses compétences. Les dés sont pipés.
Sinon je publierai un billet sur phraymd dans les prochaines semaines, un concurrent à F-Spot écrit en python (basé sur pyexiv2, dont la version 0.2 complètement réécrite et qui gèrera les méta-données XMP ne devrait pas tarder http://tilloy.net/olivier/blog/post/2010/01/25/pyexiv2-0.2-pre-release-testing) bien plus performant et dont j'ai parlé à plusieurs reprises sur mon ancien blogue http://libre-et-ouvert.blogspot.com/search/label/Ubuntu%20sans%20Mono

#10 mardi 02 mars 2010 @ 22:17 t0p0 a dit :

@antistress : une traduction juste pour moi, c'est trop d'honneur ! J'espère quand même qu'elle profitera à d'autres...
Je pense que la clef du problème vient de là : mono facilite le développement. La conséquence n'est pas plus de confort, mais plus de vie dans le projet, plus de réactivité concernant les bugs, une innovation encouragée... C'est pour ça que les projets mono se démarquent. La lourdeur d'un programme est toute relative pour les processeurs d'aujourd'hui. C'est pour ça que son seul concurrent pour moi c'est python.

Allez, je me laisse convaincre. J'essaie de trouver un remplaçant à F-spot qui carbure au python - le seul langage que je comprends un peu :).
Mais il me faut mon petit confort : des tags, avec une icône, stockés dans le jpeg, facilement applicables en groupe aux photos, avec des requêtes complexes et enregistrables ... F-Spot quoi :(
C'est beaucoup, mais grâce à ça je peux en 5 secondes retrouver toutes les photos parmi les 4000 de mon mariage, par exemple où on voit ma femme à l'apero, sans moi et prises par sa cousine, classées par préférence (étoiles)! Pour moi les arborescences ne servent plus à rien. J'ai un dossier mariage c'est tout.

Mais il en faut plus pour me décourager, c'est parti pour les tests.
Merci à toi ;)

#11 mercredi 03 mars 2010 @ 00:27 antistress a dit :

phraymd est fait pour toi alors :-)

#12 samedi 06 mars 2010 @ 04:17 antistress a dit :

Les fans de F-Spot peuvent lire ce rapide sondage...
"Utilisez vous F-Spot ?" sur 1645 réponses à ce jour, 50% le remplacent immédiatement et seulement 7% l'utilisent parcequ'ils l'aiment et 4% faute de mieux
http://www.omgubuntu.co.uk/2009/11/poll-do-you-use-f-spot.html

#13 vendredi 20 août 2010 @ 16:09 antistress a dit :

le 1er commentaire par Guyome prend du relief avec l'actualité récente d'Oracle http://www.framablog.org/index.php/post/2010/08/20/geektionnerd-oracle

Écrire un commentaire

NB : en publiant votre commentaire, vous acceptez qu'il soit placé sous la licence CC BY-SA comme indiqué aux conditions d'utilisation du site

Quelle est la deuxième lettre du mot vbda ? :