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).
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.)
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.