Java, .NET Et Les Logiciels Libres 2.0
Total Page:16
File Type:pdf, Size:1020Kb
Java, .NET et les logiciels libres 2.0 Fabrice Rossi http://apiacoa.org/ 7 septembre 2006 R´esum´e 1 Introduction Il y a bientˆotdeux ans, je pr´esentais dans [1] la situation l´egale tr`escomplexe des pla- teformes de d´eveloppement Java et .NET. Les logiciels libres construits `a partir Au del`ade leurs ressemblances techniques des plateformes Java et .NET ont de plus (machine virtuelle, compilation just in time, en plus de succ`es. De l’environnement de gestion automatique de la m´emoire, langage d´eveloppement Eclipse aux lecteurs de flux orient´eobjet inspir´edu C++, etc.), ces pla- RSSOwl et Blam, en passant par le moteur teformes ont aussi en commun d’avoir ´et´e de recherche locale Beagle et le client Bit- con¸cuespar des entreprises et d’avoir comme Torrent Azureus, on constate que de nom- impl´ementation de r´ef´erenceun logiciel pro- breux d´eveloppeurs se d´etournent des lan- pri´etaire. En fait, Java et .NET sont des gages plus classiques comme le C ou le C++. technologies partiellement ouvertes. Mˆemeen occultant l’important d´ebat tech- Les sp´ecifications de la plateforme nique, notamment sur la consommation en Java autorisent explicitement une ressources (temps cpu et m´emoire) des pla- impl´ementation open source1, mais teformes Java et .NET, on sait que choi- sous des conditions assez restrictives. sir une de ces technologies n’est pas sans L’impl´ementation de r´ef´erence distribu´ee cons´equence importante : Java et .NET ne par Sun contient des ´el´ements libres, mais sont que partiellement ouverts, ce qui peut est globalement un logiciel propri´etaire. poser des probl`emes de p´erennit´epour les La plateforme .NET est standardis´eepar logiciels libres d´evelopp´es en les utilisant. l’ECMA [3] et par l’ISO [4] (cf les stan- dards ECMA-334 [5] et ECMA-335 [6]). Se- Suite aux annonces importantes de l’ann´ee lon les r`egles de ces organismes (cf [7]), 2006 (Mono dans Fedora Core 5 et dans les standards qu’ils produisent peuvent ˆetre Gnome 2.16, le JDK de Sun bientˆotlibre), impl´ement´es par quiconque. Si les technolo- cet article fait le point sur la situation gies correspondantes sont prot´eg´eespar des l´egaledes plateformes Java et .NET et tente 1J’utilise dans cet article “logiciel open source” d’´evaluer leur compatibilit´eavec le logiciel comme synonyme de “logiciel libre”, en me r´ef´erant libre. `ala d´efinition de l’open source donn´eepar l’OSI [2]. brevets, ceux-ci doivent ˆetre licenci´es en des plate-formes, essentiellement en raison des termes “raisonnables et non disciminatoires” brevets couvrant ces derni`eres. (RAND pour Reasonable And Non Discri- Les ´el´ements pr´esent´es dans mon minatory).L’impl´ementation de r´ef´erencede pr´ec´edent article [1] m’amenaient `a in- .NET est un logiciel propri´etaire de Micro- sister sur les risques inh´erents aux deux soft. plateformes. Dans le cas de Java, je consta- De ce fait, et contrairement `ades langages tais qu’il ´etait th´eoriquement possible de con¸cusde fa¸con compl`etement ouverte et `a r´ealiser une impl´ementation open source l’impl´ementation de r´ef´erence libre (comme de la plateforme, mais en respectant des Python, Perl ou Ruby, par exemple), ou `a conditions de conformit´eaux sp´ecifications des langages standardis´eset impl´ementables extrˆemement restrictives, ce qui pr´esentait sans restriction aucune (comme C, C++ un risque important : le d´eveloppement ou Ada), .NET et Java ne sont que par- ouvert des logiciels libres implique une tiellement ouverts, tant au niveau de la distribution de versions incompl`etes d’une conception (qui passe par des comit´es `a impl´ementation open source de Java, et l’acc`es restreint) que de l’impl´ementation. donc un non respect (au moins temporaire) Un d´eveloppeur de logiciels libres doit donc des conditions de conformit´e. se poser la question des risques qu’il prend Concernant .NET, j’´etais encore plus en utilisant ces plateformes (cf par exemple n´egatif, essentiellement en raison d’une de- le texte de Richard Stallman sur Java [8]). mande de brevet d´epos´eepar Microsoft et En effet, quand on d´eveloppe une applica- portant sur une grande partie de l’API de la tion Python, par exemple, on a la garantie plateforme. Une fois cette demande accept´ee, qu’on pourra toujours distribuer librement Microsoft aurait obtenu le contrˆoletotal des (au sens des logiciels libres) cette applica- impl´ementations de .NET et aurait pu se tion avec un environnement Python, ce qui contenter de proposer des licences RAND in- assure sa p´erennit´een tant que logiciel open compatibles avec une impl´ementation libre source. Une application C n’utilisant que des (quelles soient Royalty Free ou non). biblioth`equeslibres offre les mˆemes garan- Depuis d´ecembre 2004, la situation a ties. C’est le cas plus g´en´eralement de la ´evolu´e,tant au niveau des impl´ementations grande majorit´edes langages de programma- libres qui ont beaucoup progress´e, que du tion et des plateformes de d´eveloppement. point de vue l´egal.Le but du pr´esent ar- La situation d’une application d´evelopp´ee ticle est d’analyser la situation actuelle et en Java ou .NET est moins claire. Tout ses cons´equences pour l’utilisation des plate- d’abord, il n’existe aucune impl´ementation formes Java et .NET pour le d´eveloppement libre compl`etede ces plateformes2 : en uti- de logiciels libres. lisant certaines fonctionnalit´esavanc´ees de la plateforme, une application libre ne peut pas ˆetre ex´ecut´ee de fa¸con “libre”. De plus, 2 Logiciels libres et brevets et c’est bien plus grave, le caract`ere pro- Avant de s’int´eresser `aJava et .NET, il pri´etaire des technologies elles-mˆemes (et est int´eressant de rappeler quelques ´el´ements pas seulement de leurs impl´ementations de sur les brevets logiciels en g´en´eral.D’autres r´ef´erence) menace l’impl´ementation libre des aspects seront abord´eslors de l’analyse de 2d´ebutseptembre 2006. brevets portant sur .NET. 2 2.1 Brevets “sp´ecifiques” et par exemple, est couvert par des brevets “g´en´eraux” d´etenus par le Fraunhofer Institute et Thom- son Multimedia (cf [9, 10], ainsi que [11] Quand on d´eveloppe un logiciel, on pour des pr´ecisions). Il semble impossible de s’expose malheureusement au risque de d´evelopper autour de MP3 (lecteur ou enco- contrefa¸cond’une invention prot´eg´ee par un deur) sans mettre en œuvre les brevets (et brevet. Certaines syst`emes l´egaux,en par- donc sans obtenir une licence de Thomson), ticulier celui des Etats-Unis´ d’Am´erique, ce qui explique3 l’absence de support de ce autorisent en effet de breveter des algo- format sonore dans Fedora Core [12], par rithmes en consid´erant que ceux-ci sont exemple. r´ealis´es dans un programme au mˆeme titre Contrairement aux probl`emes pos´es par qu’une id´ee est r´ealis´ee dans un construction des brevets sp´ecifiques, ceux li´es`ades bre- mat´erielle brevet´ee. Ces brevets logiciels in- vets de la deuxi`eme cat´egorie(qu’on peut terdisent dans les faits d’impl´ementer l’al- qualifier que “brevets g´en´eraux”) sont tr`es gorithme prot´eg´e(ou une am´elioration de difficile d’anticiper . Ces brevets peuvent celui-ci), quel que soit le langage de pro- toucher n’importe quel logiciel libre, depuis grammation et la licence du logiciel. Le droit le “bas niveau” du noyau Linux et du compi- d’impl´ementation s’obtient sous la forme lateur gcc, jusqu’au “haut niveau” des appli- d’une licence d’impl´ementation, d´elivr´eepar cations utilisateurs classiques comme Ope- le propri´etairedu brevet. nOffice.org. Il est parfois possible de contour- Quand on impl´emente un standard, ou, ner de tels brevets, soit parce qu’ils couvrent plus g´en´eralement, quand on cherche `are- un ´el´ement qui n’est pas crucial `al’applica- produire les fonctionnalit´es d’un logiciel d´ej`a tion (par exemple la gestion, dans un logi- existant, il faut consid´erer deux types de bre- ciel comme Gimp, du format gif quand celui- vets : ci ´etaitencore brevet´epar Unisys) et qu’il 1. les brevets d´epos´es par les inventeurs du suffit donc de supprimer cet ´el´ement, soit standard (ou du logiciel mod`ele) et qui encore car il existe une fa¸con d’obtenir la visent explicitement `aprot´eger certains mˆeme forme de r´esultat sans pour autant aspects de celui-ci ; impl´ementer l’algorithme brevet´e. 2. les brevets d´epos´es par des tiers et Dans la suite de cet article, je m’int´eresse qui s’appliquent `al’impl´ementation en avant tout aux brevets de la premi`ere cours de d´eveloppement. cat´egorie, car ils posent des probl`emes Les brevets de la premi`erecat´egorie, qu’on sp´ecifiques aux plateformes que j’´etudie, peut consid´erer comme “sp´ecifiques”, sont puisqu’ils ont ´et´e con¸cus pour prot´eger g´en´eralement mis en avant par les inventeurs celles-ci et s’appliqueront donc `a des du standard ou du logiciel, ce qui permet impl´ementations libres de fa¸con quasi- d’´evaluer les risques de contrefa¸con avant automatique. Ils mettent en p´eril ces mˆeme de commencer le d´eveloppement.