pt
Moulé à la louche depuis 1999
Les trucs qui m'énervent... et je vais pas prendre de pincettes
Internet, informatique, logiciel libre, économie, politique, vie courante et tout le reste...

Mon grain de sel dans le débat sur Mono

Vendredi 03 juillet 2009

Dans le monde du logiciel libre, ce qui fait grand débat en ce moment est l'inclusion de Mono.

Laissez-moi vous expliquer: Microsoft a créé une technologie très similaire à Java qui permet de créer et faire fonctionner des programmes. Cette technologie s'appelle ".Net" et contient différents éléments (un langage (C#), un compilateur et une machine virtuelle (CLI) pour faire fonctionner les programmes écrits avec .Net).
.Net n'existe que sous Windows. Le monde du logiciel libre a créé sa propre version de .Net, appellée Mono (qui est compatible .Net dans une certaine mesure).

De plus en plus de logiciels libres et opensource utilisent Mono, et donc la technologie propriétaire .Net de Microsoft. Certains voient cela comme un risque.

Quel risque ? Le risque que Microsoft attaque Mono et - s'il gagne - et mette en péril des pans entiers des systèmes d'exploitation libres.

.Net est une chouette technologie (je peux vous le dire pour avoir bossé 2 ans sur un gros projet en .Net). Il y a des choses très sympas dedans. Mais faire dépendre les logiciels libres de technologies propriétaires et brevetées, c'est un risque qu'il ne faut pas négliger.


Alors bien sûr les pro-mono avanceront le fait que .Net est standardisé à l'ECMA. Oui c'est un standard, et alors ?

Vous vous souvenez du format MP3 ? C'est un standard ISO. Pourtant, il est breveté et vous devez payer une license pour créer un logiciel commercial qui produit des fichiers MP3. Sans compter que Thomson/Fraunhofer ont eux-mêmes été attaqués en justice (par Alcatel) concernant des technologies brevetées utilisées dans le format MP3.

Il ne faut pas croire que parce qu'une technologie est standardisée elle est libre d'utilisation. Elle peut toujours être brevetée et soumise à des droits d'utilisation spécifiques (autorisation, paiement de licenses, etc.)


D'autres avanceront que Microsoft a promis de ne pas attaquer Mono. Les promesses, hein... Et puis si Microsoft a promis, pourquoi est-ce que Novell a ressenti le besoin de passer des contrats avec Microsoft concernant cette technologie ?
De plus, si Microsoft a attaqué TomTom pour quelque chose d'aussi trivial que la technologie FAT, qu'est-ce qui peut bien nous faire croire que Microsoft laissera faire un clone de .Net (qui en plus fonctionne sur un système concurrent, Linux), alors qu'ils ont investi beaucoup d'argent et d'énergie dans .Net ?

Et quid des API (ASP.Net, ADO.Net...) que Mono a décidé de ré-implémenter alors même que Microsoft l'a formellement interdit ?

C'est vraiment donner le bâton pour se faire battre.


Ne soyons pas naïf et prenons les devants: Malgré les qualités de .Net et Mono, évitons d'utiliser ces technologies dans les logiciels et systèmes d'exploitation libres.


Mise à jour 7 juillet 2009: Microsoft fait une grande promesse de ne pas attaquer les projets utilisant Mono. Ah. Dans le même temps, l'équipe de Mono a décidé de séparer la partie "libre" (langage C# et machine virtuelle CLI) de la partie "dangereuse" (ASP.Net, ADO.Net, Winforms).

Pour sécuriser les développements mono ? L'idée semble bonne. Mais si Microsoft attaque le projet Mono concernant la partie "dangereuse", cela impactera bien le projet Mono, et cela aura forcément un impact sur la partie "libre".

A mes yeux, utiliser mono reste risqué (surtout que les promesses de Microsoft, hein).

Mise à jour 17 juillet 2009: La vue de la FSF (Free Software Foundation) sur la promesse de Microsoft: Pour eux, c'est une promesse creuse.

Mise à jour 3 août 2009: J'entend certains dire "Ouais vous crachez sur Microsoft mais vous utilisez Flash". Oui, j'utilise Flash, et j'utilise aussi Mono (pour Gnome-Do). Ce qui n'empêche que Adobe n'a jamais attaqué ni promis d'attaquer qui que ce soit pour avoir créé un logiciel qui produit ou lit des fichiers Flash. Ça fait une bonne différence.