, .NET et les logiciels libres

Fabrice Rossi http://apiacoa.org/

Publication originale : d´ecembre 2004 Version actuelle : 21 juillet 2005

Cet article a ´et´e publi´e dans le nu- 1 Introduction m´ero 67 de la revue GNU/Linux Maga- zine France en D´ecembre 2004. Je remercie Deux plate-formes de d´eveloppement rem- Denis Bodor et les ´editions Diamond pour portent un succ`esimportant dans les entre- avoir autoris´e la distribution de cet article prises : Java et .NET. Elles comportent de selon les conditions indiqu´ees dans la sec- nombreux points communs, en particulier ce- tion A. L’article est disponible en ligne `a lui d’ˆetre justement des cadres de d´eveloppe- l’URL http://apiacoa.org/publications/ ment (des plate-formes) qui allient un langage 2004/lm-java-dotnet-free.pdf. La section orient´eobjet de haut niveau (Java ou C#), B d´etaille les modifications effectu´eesdans l’ar- une plate-forme d’ex´ecution (les machines vir- ticle depuis sa publication. J’ai pour objectif de tuelles) et une biblioth`eque gigantesque qui faire ´evoluer l’article dans les mois qui viennent couvre `apeu pr`estout les besoins d’un pro- afin de le maintenir `ajour. Si vous avez des sug- grammeur. Mon but dans cet article n’est gestions ou des commentaires, merci d’utiliser le pas de m’int´eresser aux aspects techniques de 1 journal correspondant sur mon compte linuxfr . Java et de .NET, mais plutˆotde me focali- ser sur leurs ressemblances les plus gˆenantes pour les auteurs de logiciels libres (ou open source) : Java et .NET ont ´et´ecr´e´espar des entreprises priv´ees(par opposition aux lan- R´esum´e gages issus de la recherche acad´emique, par exemple) et leurs impl´ementations de r´ef´e- Cet article pr´esente les probl`emesli´esau rence ne sont pas des logiciels libres ou open contrˆole, par l’interm´ediaire de brevets logi- source. De plus, divers brevets logiciels sont ciels et d’accord de licence complexes, de Java de la partie. Je me propose d’´etudier ici les et de .NET par les entreprises qui les ont cons´equences de ces points cruciaux, en ou- cr´e´es.Il tente d’apporter des ´el´ements de r´e- bliant presque totalement le m´erite technique ponse `aune question fondamentale pour la des deux plate-formes. communaut´edu libre : Java et .NET sont-ils Avant de me plonger dans les probl`emes compatibles avec le logiciel libre ? de licences et de brevets logiciels, j’aimerais cependant faire un petit d´etour par la tech- nique. En effet, si Java et .NET n’avaient au- 1Url : https://linuxfr.org/~boubou/ cun int´erˆettechnique, il n’y aurait pas lieu de Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 se poser la difficile question de leur compa- gressif du C/C++ au profit de Java et/ou de tibilit´eavec le libre. Nous disposons de nom- C# ? Il ne s’agirait pas bien sˆur de rempla- breux langages et biblioth`eques `ala fois libres cer l’infrastructure de Gnome par une version et d’excellente qualit´e,et nous n’avons donc Java/C#, mais plutˆotde privil´egier ces lan- pas vraiment besoin de langages suppl´emen- gages pour les nouvelles applications. Comme taires, mˆemesi la diversit´en’a jamais ´et´eun je l’ai d´ej`a´ecrit, mon but ici n’est pas de r´e- probl`emepour le libre, au contraire. Mˆeme pondre `acette question du point de vue tech- dans cette hypoth`ese,il nous faudrait cepen- nique, mais d’´etudier les cons´equences que dant prendre garde de ne pas nous couper du pourrait avoir la g´en´eralisation de l’utilisation reste du monde, car Java et .NET sont de plus de .NET et de Java dans les projets libres, en en plus utilis´esdans les entreprises. L’ensei- d´eterminant qui contrˆole ces plate-formes et gnement de la programmation, dans les ´ecoles ce que cela implique pour le libre. Je com- sp´ecialis´eeset les universit´es,ne peut s’affran- mencerai l’article par un bref rappel sur les chir de ce fait. En pratique, Java est donc ´el´ements techniques n´ecessaires `ala compr´e- utilis´ecomme langage d’apprentissage de la hension du reste du texte, puis j’´etudierai le programmation dans de tr`esnombreuses for- cas de Java avant de passer `a.NET. mations, et il est probable que C# le rejoigne dans les ann´ees`avenir. Au del`a de l’aspect pragmatique, Java 2 Brefs rappels sur les deux et .NET m´eritent notre int´erˆet car ils ne plate-formes manquent pas d’atouts techniques. Il me semble que le plus important d’entres eux Dans cet article, je d´esigne par Java la est la productivit´equ’on peut avoir avec ces plate-forme [2] qui porte ce nom, et qui est plate-formes. Celle-ci est av´er´ee,´etablie par constitu´ee du langage Java, de la machine de nombreuses ´etudes, et c’est en g´en´eral l’ar- virtuelle associ´ee(la , gument principal qui d´ecide les entreprises JVM) et de l’ensemble des API. Un pro- `autiliser Java ou .NET. Cette productivit´e gramme ´ecrit en Java est en g´en´eral compil´e trouve ses racines dans la gestion automa- vers le byte code de la machine virtuelle. Lors tique de la m´emoire (le garbage collecting), de l’ex´ecution du programme, la JVM peut dans le mod`ele orient´eobjet simple (sans h´e- soit interpr´eter les instructions du byte code ritage multiple), dans la qualit´edes environ- en les traduisant en des instructions du pro- nements de d´eveloppement (comme , cesseur cible, soit compiler au vol des mor- http://www.eclipse.org/, pour n’en citer ceaux de byte code en code objet natif (on qu’un), dans la compl´etude des API, etc. Pour appelle cette compilation au vol du Just In d´evelopper des logiciels libres, la portabilit´e Time) puis les ex´ecuter. Les impl´ementations binaire (un des arguments de Java et .NET les plus efficaces de la JVM m´elangent en g´e- pour s´eduire les entreprises) n’est pas tr`es n´eral l’interpr´etation et le JIT. Le passage par utile, mais tout le reste, et en particulier la un byte code ind´ependant de la machine cible productivit´eaccrue, est particuli`erement s´e- de l’ex´ecution permet d’obtenir une forme de duisant pour notre communaut´e.A tel point portabilit´ebinaire. que certains leaders du projet Gnome, comme Dans cet article, je d´esigne par .NET ce que Havoc Pennington par exemple, posent ouver- Microsoft appelle le framework .NET. Cette tement la question (cf [1] par exemple) : l’ave- plate-forme [3] ressemble beaucoup `aJava. nir de Gnome passe-t-il par l’abandon pro- La principale diff´erence est qu’elle se veut

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 2/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 neutre par rapport au langage de programma- syst`eme.Il y a un certain consensus autour tion et est donc construite `apartir d’une ma- du fait que les m´ecanismes d’int´egration de chine virtuelle associ´ee`aun ensemble d’API. l’existant `a.NET sont `ala fois plus simples L’ensemble forme la Common Language In- d’utilisation et plus complets que leurs ´equi- frastructure (CLI). .NET lui-mˆemeconsiste valents en Java. en la CLI auquel on ajoute divers langages (C#, Visual Basic .NET, etc.) et des bi- blioth`eques compl´ementaires. La machine vir- 3 Le cas de Java tuelle de .NET (le Common Language Run- 3.1 Java : pas de standard ! time, CLR) est tr`esproche de la JVM, bien que les op´erations choisies soit plus adapt´ees La plate-forme Java a ´et´ecr´e´eepar la so- au JIT qu’`al’interpr´etation. De ce fait, les ci´et´eSun Microsystems qui a rendu dispo- impl´ementations du CLR sont en g´en´eral ex- nible la version 1.0 de son impl´ementation en clusivement bas´eessur du JIT. En pratique, 1996. Java est une marque d´epos´eepar Sun l’utilisation du langage C# [4] est presque in- (et on devrait donc ´ecrire JavaTM `achaque dispensable si on veut profiter des int´erˆets de utilisation...), ce qui signifie qu’on ne peut pas .NET, bien que d’autres langages profitent utiliser librement le terme Java pour d´esigner aussi pleinement de la plate-forme, au prix un programme ou encore un langage (cf [5] de quelques adaptations (on peut citer Vi- pour des d´etails). A titre de comparaison, Li- sual Basic et Eiffel par exemple). C# est tr`es nux est aussi une marque d´epos´eeet son utili- proche de Java. En caricaturant, on pourrait sation n’est donc pas libre. Il faut obtenir une dire que c’est une version am´elior´eede Java, autorisation du Linux Mark Institute [6] pour bien que les aficionados de ce dernier mettront certaines utilisations. en avant certains points discutables de C# (le Historiquement, Sun a ´et´etent´epar la stan- mod`ele de la red´efinition de m´ethode est assez dardisation pour la plate-forme Java. Un dos- complexe, les exceptions ne doivent pas obli- sier avait d’abord ´et´ed´epos´eaupr`esde l’ISO gatoirement ˆetre trait´ees,etc.) pour refuser (International Organization for Standardiza- cette d´efinition. Pour ´eviter toute pol´emique tion, [7]) qui avait approuv´ele principe de la st´erile, disons que C# et Java sont presque cr´eation d’une norme Java en 1997 (cf [8]). identiques, au moins vus depuis les autres lan- Les discussions avaient cependant ´et´ed`esle gages. Les lecteurs int´eress´estrouverons dans d´epart assez tendues entre l’ISO et Sun, car le pr´esent num´ero de leur magazine pr´ef´er´e Sun ne voulait en aucun cas abandonner la un article tr`escomplet d’introduction `aC# marque Java et le contrˆole de la plate-forme propos´epar Gr´egoire Lejeune. (cf [9]). En raison de ces tensions, Sun d´ecida Les deux plate-formes ne sont pas “ pures ”, de passer par l’ECMA [10], ce qui lui aurait au sens o`uleurs impl´ementations contiennent permis de d´eposer aupr`esde l’ISO le standard en g´en´eral du code qui n’est pas ´ecrit dans obtenu, sans passer par les comit´estechniques le langage principal qui leur est associ´e.En de l’ISO, grˆaceune proc´edure fast track (cf fait, elles comportent toutes deux des m´eca- [9]). Cependant l’histoire s’est r´ep´et´ee.Bien nismes d’interfa¸cagequi permettent d’appeler que Sun ait d´epos´eune proposition de stan- des biblioth`eques externes ´ecrites dans divers dard `al’ECMA en mai 1999 (cf [11, 12, 13]), langages. Ceci permet de r´ealiser une impl´e- il est rapidement devenu clair que le passage mentation d’une plate-forme en s’appuyant de l’ISO `al’ECMA ne changeait pas grand sur l’existant, en particulier les biblioth`eques chose. Comme l’ISO, l’ECMA n’est pas une

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 3/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 simple chambre d’enregistrement et voulait grandes entreprises (comme IBM, SAP ou donc imposer son point de vue `aSun, en r´ea- mˆemeSCO) avec deux exceptions notables lisant ´eventuellement des modifications de la `asavoir la fondation Apache et le professeur proposition de standard Java. En fait, Micro- Doug Lea de l’Universit´ede New York Os- soft, membre de l’ECMA, souhaitait proposer wego (cf [19]). De plus, Sun conserve un droit dans ce cadre des modifications `ala sp´ecifica- de veto sur l’inclusion de modifications dans tion de Sun (cf [14]). Finalement, Sun d´ecida les ´editions“ standard ”de la plate-forme Java fin 1999 d’abandonner ses efforts de standar- (il existe trois ´editions, la version Standard, disation (cf [15, 16]). Il n’existe donc pas de la version Entreprise destin´eeaux serveurs et standard international pour Java. la version Micro destin´ee`al’embarqu´e). Enfin, rejoindre le JCP signifie signer 3.2 Le Java Community Process le JSPA (Java Specification Participation Agreement), un contrat entre Sun et le nou- Parall`element `acette tentative de standar- veau membre : Sun peut donc parfaitement disation, Sun a cr´e´ed`es1998 le Java Com- refuser de signer le contrat et donc ne pas ac- munity Process (JCP, [17]). Il s’agit d’un cepter d’accueillir un candidat dans le JCP. programme de coop´eration autour de Java Le contrat est assez complexe (cf [20]) et d´e- dont le but est d’assurer la maintenance de taille les obligations et droits des membres du la plate-forme de fa¸concollaborative. Toute JCP, en particulier en terme de brevets et de l’´evolution de Java est g´er´eepar des votes des “ propri´et´eintellectuelle ”. Deux points im- membres du JCP et s’articule autour des Java portants sont `aretenir : Specification Requests (JSR). Un JSR est une 1. quand un JSR est approuv´e,sa sp´ecifi- proposition d’extension de l’API de Java, de cation est obligatoirement publi´eesur le modification du langage ou de la JVM, plus site du JCP, mais elle reste la propri´et´e g´en´eralement d’´evolution de la plate-forme. du leader du JSR ; La participation au JCP est payante pour les entreprises et les associations, gratuite pour 2. quand un JSR est approuv´e,le leader les individus. Malgr´ele caract`ere ouvert du et ses collaborateurs doivent obligatoire- JCP, les d´ecisions fondamentales sont prises ment accorder une licence sans royalties par l’Executive Committee (EC) seul. L’EC (Royalty Free) pour l’impl´ementation du est compos´ed’un membre de droit (Sun), de JSR par quiconque voudrait r´ealiser une 5 membres ´elus et de 10 membres nomm´es. telle impl´ementation. Cette licence doit Les membres ´elus le sont au sens habituel du couvrir tous les brevets concern´es et terme, alors que les membres nomm´essont doit ˆetre perp´etuelle et irr´evocable. Par d´esign´espar le bureau du JCP (le Program contre, elle ne s’applique qu’`ades im- Management Office) qui est lui mˆemeform´e pl´ementations conformes, point que nous par Sun. Les nominations sont approuv´eespar ´etudierons en d´etail dans la section sui- un vote. Le fonctionnement du JCP est d´ecrit vante. par [18], document qui est lui mˆememodi- De prime abord, la situation semble donc as- fiable par le JCP ! sez claire. Si je souhaite impl´ementer Java 1.5, Sun a donc c´ed´eune partie de son contrˆole la derni`ere version, il me suffit de me rendre sur Java par l’interm´ediaire du JCP. Les sur le site du JCP et de chercher la sp´eci- membres qui poss`edent vraiment le pouvoir fication correspondante. Il s’agit en fait du (l’EC) sont cependant essentiellement des JSR n°176 [21] dont la sp´ecification est tout

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 4/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 simplement la documentation du kit de d´eve- plutˆotdans la d´efinition d’une impl´ementa- loppement de Sun [22]. Une lecture (passion- tion conforme. En effet pour ˆetre l´egale, une nante ;-) de la licence de la sp´ecification [23] impl´ementation confirme ce que j’ai indiqu´epr´ec´edemment : 1. doit impl´ementer compl`etement la sp´eci- on peut impl´ementer librement Java 1.5, `a fication ; condition que l’impl´ementation soit conforme. 2. ne doit pas ajouter, modifier ou suppri- On constate sur le site de Sun qu’on peut im- mer quelque chose dans les packages d´e- pl´ementer la version 1.4.2 de Java dans les finis par la sp´ecification ; mˆemesconditions, mais que les anciennes ver- sions ont des licences beaucoup plus restric- 3. doit passer avec succ`esles tests de com- tives. patibilit´e. Concernant le point 3, il faut savoir qu’un 3.3 Est-on vraiment libre ? JSR est obligatoirement associ´e`aun Techno- logy Compatibility Kit (TCK), c’est-`a-dire un En fait, l’impression de libert´equ’on peut ensemble de tests qui couvrent normalement ressentir en lisant les lignes qui pr´ec`edent doit toute la sp´ecification produite par le JSR. Une ˆetre temp´er´eeen raison de divers probl`emes. impl´ementation qui ne passe pas le TCK n’est Historiquement tout d’abord, le JCP ´etait donc pas l´egale. Or, le TCK est loin d’ˆetre ac- beaucoup plus ferm´e.L’ancienne version du cessible librement. Il est en g´en´eral payant (et JSPA ne permettait pas vraiment des impl´e- tr`escher), on ne peut pas le redistribuer, le mentations open source. Devant les critiques, modifier, etc. (cf [26] pour la licence accord´ee en particulier en provenance de la fondation `ala fondation Apache). Fort heureusement, Apache (cf [24, 25, 26]), Sun a r´eform´e le la version actuelle du JSPA encourage les lea- JSPA pour obtenir la version actuelle que j’ai ders de JSR `aoffrir gracieusement leur TCK d´ecrite au dessus (cf [27]). De plus, Sun s’´etait `atoute organisation `abut non commercial et engag´e`al’´epoque `aappliquer les nouveaux `atout particulier. Sun donne l’exemple en of- termes (en particulier la possibilit´ed’impl´e- frant ainsi le TCK de certains JSR `ala fonda- mentations libres) aux JSRs qu’il avait diri- tion Apache (pour l’impl´ementation des serv- g´es,ce qui a ´et´efait. Cependant, Sun n’est lets et des JSP par Tomcat, par exemple, cf pas le leader dans tous les JSR, loin s’en [26]) et `aObjectWeb (pour JOnAS, cf [28]). faut. Il est parfaitement possible que les lea- Contrairement `ace qu’on pourrait croire, ders de certains JSR d´ebut´esavant l’entr´eeen le point 3 n’est finalement pas le plus gˆe- vigueur du nouveau JSPA (fin 2002) conti- nant pour le libre. En fait, ce sont les points nuent `aappliquer les processus de l’ancien 1 et 2 qui posent probl`eme: si je t´el´echarge JSPA. Cela ne repr´esente pas un gros pro- la sp´ecification du JDK de Sun, je n’ai plus bl`emepour une impl´ementation libre de la le droit de proposer une impl´ementation par- plate-forme Java puisque la partie fondamen- tielle de celui-ci. L´egalement, je ne peux que tale est g´er´eepar Sun (et que les versions 1.4.2 proposer une impl´ementation compl`ete (on et 1.5 sont impl´ementable librement). Cepen- imagine le travail de titan que cela demande, dant, cela signifie que certaines API officielles vue la complexit´eet la taille de l’API Java de la plate-forme pourraient ne pas ˆetre im- et sachant que les anciennes sp´ecifications de pl´ement´eeslibrement. Java, plus simples que les versions actuelles L’aspect le plus gˆenant pour le libre ne r´e- ont des licences beaucoup plus restrictives) side cependant pas dans ces “ d´etails ”, mais sans avoir r´ealis´e de modification dans les

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 5/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

API. Donc, adieu CVS et autre d´eveloppe- 3.4 Java et les brevets logiciels ment ouvert ! Richard Stallman a bien expli- qu´ele dilemme que cette situation cr´eedans On pourrait se demander dans quelle me- [29]. Le plus sournois dans cette histoire est sure l’impl´ementation de Java `a partir de que une fois une impl´ementation libre d´eve- livres et d’autres sources autres que Sun ne lopp´ee,rien n’empˆeche de distribuer des ver- permettrait pas de contourner les restrictions sions modifi´eesqui ne respectent pas la sp´e- impos´eespar Sun plus directement que dans cification, cela est mˆemeexplicitement indi- le sc´enario qui pr´ec`ede. On peut mˆemelire la qu´edans l’accord de licence. Celle-ci dit en documentation du jdk directement sur le site effet qu’on peut distribuer une impl´ementa- de Sun, sans accepter de licence. Il y a mal- tion conforme de Java sous une licence qui heureusement un pi`egedans cette approche : n’inclut pas les trois clauses de conformit´e. les brevets logiciels ! En effet, Sun poss`ede des On peut alors imaginer le sc´enario suivant : brevets qui couvrent certains aspects de Java, bien que leur liste n’ait jamais ´et´erendue pu- 1. un d´eveloppeur X t´el´echarge la sp´ecifi- blique (cf [24], page 5). Or, pour obtenir une cation d’une API Java (exemple la fon- licence Royalty Free pour ces brevets, il faut dation Apache se procure la sp´ecification accepter la licence de la sp´ecification concer- des servlets) et doit donc accepter la li- n´ee.De ce fait, redistribuer une impl´emen- cence correspondante (licence Sun) ; tation libre d’une sp´ecification de Sun n’est 2. le d´eveloppeur X impl´emente scrupuleu- peut ˆetre pas l´egalcar cela peut ´eventuelle- sement (de fa¸conferm´ee)l’API et dif- ment correspondre au non respect d’un brevet fuse une impl´ementation conforme (Tom- de Sun, mˆemesi on n’a pas t´el´echarg´ela sp´eci- cat dans notre exemple) sous une licence fication correspondante (cf le point de vue de libre classique (licence A) ; Havoc Pennington `ace sujet dans [30]). Sauf 3. un d´eveloppeur Y (diff´erent de X), qui bien sˆur si l’impl´ementation est conforme ! n’a pas t´el´echarg´e la sp´ecification de Nous voici donc revenus `ala case d´epart. l’API, se procure l’impl´ementation de Le plus amusant avec les brevets logiciels, celle-ci (toujours Tomcat) et accepte c’est qu’ils peuvent se retourner contre vous. donc la licence A ; Sun vient en effet de verser 92 millions de dol- lars US `aEastman Kodak Co. pour r´egler un 4. le d´eveloppeur Y modifie l’impl´ementa- probl`emede brevets logiciels s’appliquant `a tion de sorte qu’elle ne soit plus conforme Java (cf [31] pour les trois brevets concern´es). et la diffuse, toujours en accord avec la li- L’histoire compl`ete est d´ecrite sur divers sites cence A (sous le nom de Jerrymouse, par (cf [32, 33, 34, 35, 36]). En r´esum´e,Kodak exemple). a attaqu´eSun en f´evrier 2002 en l’accusant A l’issu de ce sc´enario, on se retrouve avec d’utiliser des algorithmes et principes breve- un logiciel libre (Jerrymouse) qui impl´emente t´esdans Java. Les principes en question sont quelque chose qui ressemble `al’API Java de plutˆotvagues et semblent s’appliquer `abien d´epart, sans pour autant ˆetre conforme, et d’autres choses que Java puisqu’ils tournent tout ¸ca l´egalement. La sacro-sainte compa- autour de l’id´eede collaboration entre objets tibilit´equi justifie pour Sun les restrictions par le biais de bus logiciel (il est donc pro- autour de Java peut donc parfaitement ˆetre bable que les brevets en question s’appliquent contourn´ee,modulo le probl`emedes brevets `a.NET). Le 1er octobre 2004, un jury am´e- logiciels. ricain s’est prononc´een faveur de Kodak. La

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 6/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 cour ne se pronon¸cait pas sur la validit´edes 3.5 Les impl´ementations libres de brevets de Kodak (il pourrait tr`esbien exister Java des mise en oeuvres ant´erieures des id´eesbre- vet´ees), mais sur la violation de ceux-ci par La situation de Java est donc loin d’ˆetre Sun dans la plate-forme Java. Sun reconnu claire et il n’est pas ´evident que la r´ealisation coupable, Kodak s’est empress´eed’indiquer d’une impl´ementation libre de Java au sens qu’elle allait demander 1,06 milliards de dol- o`unous l’entendons habituellement soit vrai- lars US en d´edommagement soit plusieurs an- ment l´egale, tout au moins pendant son d´e- n´eesde profits de Sun. Moins d’une semaine veloppement. Pourtant de nombreux projets plus tard (le 7 octobre), Sun annon¸cait qu’un libres existent autour de Java. Je vous ´epar- accord ´etait trouv´e,pour un montant de 92 gnerai une longue liste pour me focaliser sur millions de dollars US. Bien entendu, les d´e- quelques cas importants. La plate-forme Java tails de l’accord ne sont pas connus, except´e comportant un langage, une machine virtuelle le fait que Sun a obtenu une licence pour l’uti- et un ensemble de biblioth`eques, les initiatives lisation des brevets incrimin´esdans Java [37]. libres couvrent en g´en´eral une partie seule- La formulation du communiqu´ede presse de ment de ces ´el´ements : Sun laisse entendre que ses clients sont prot´e- – Jikes [40] est un compilateur libre pour le g´espar l’accord. Des officiels de Sun ont in- langage Java, produit par IBM. Il trans- diqu´eclairement que les produits bas´essur forme des sources Java en byte code. Java dans le cadre d’un accord de licence avec Jikes est complet au sens o`uil est capable Sun sont aussi couverts par l’accord avec Ko- de compiler toutes sources Java jusqu’`a dak. Une impl´ementation officielle de Java est la version 1.4, la mise `aniveau vers 1.5 donc couverte, mˆemesi elle est r´ealis´eesous li- ´etant en cours. cence open source par quelqu’un d’autre que – Classpath [41] est un projet GNU officiel Sun. Cependant, l’attitude de Kodak sur le qui vise `aimpl´ementer l’ensemble des bi- long terme n’est pas facile `apr´evoir, et le blioth`eques de la plate-forme Java dans moins qu’on puisse dire est que l’accord n’a son ´edition standard. Classpath n’est pas pas totalement rassur´eles adeptes de Java qui une impl´ementation compl`ete (et n’est auraient largement pr´ef´er´eque Sun aille en donc pas l´egale !), mais elle r´ealise des appel ou que les brevets soient invalid´es(cf progr`esconstants. [38, 39] pour des interpr´etations de l’accord – Il existe de nombreuses machines vir- Sun Kodak). tuelles open source. Pour fournir une plate-forme compl`ete, elles utilisent en g´en´eral Classpath ou une version mo- Pour clore cette discussion sur les protec- difi´ee de celle-ci. Les JVM suivantes tions de Java mise en place par Sun, on sont activement d´evelopp´ees(liste abso- peut ´evoquer le droit des marques. En effet, lument non exhaustive) : toute impl´ementation de Java passe par l’´ecri- – Jikes RVM [42] est une JVM ´ecrite par ture de classes et interfaces qui appartiennent IBM en Java (si, si) avec presque au- aux packages java et javax. Dans quelle me- cun code C (elle utilise Classpath) ; sure la programmation de java.lang.String – Kaffe [43] est une des plus anciennes (les chaˆınes de caract`eres), par exemple, impl´ementations libres de Java ; elle correspond-elle `aune utilisation de la marque utilise en partie Classpath, en partie Java ? des biblioth`eques sp´ecifiques ;

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 7/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

– SableVM [44] est une JVM issue de pl`ete `al’impl´ementation propri´etaire de Sun la recherche acad´emique (comme Jikes (dont certains ´el´ements sont eux-mˆemeopen RVM), qui contient de nombreuses in- source, comme par exemple la partie charg´ee novations (comme une impl´ementation de l’analyse de documents XML ou encore le tr`esint´eressante des verrous de syn- moteur de servlet/JSP, `asavoir Tomcat). Ce- chronisation qui ´evite d’utiliser un mot pendant, de grands progr`esont ´et´er´ealis´esen par objet), et qui s’appuie sur Class- 2004, `atel point qu’on peut maintenant faire path ; tourner avec GCJ des programmes tr`escom- – IKVM.NET [45] est une JVM assez plexes comme l’environnement de d´eveloppe- fascinante car elle est impl´ement´eeen ment Eclipse. .NET ! Elle permet donc de faire fonc- On peut noter que pour l’instant, Sun n’a tionner des programmes Java `apartir pas r´eagide fa¸conn´egative aux diff´erentes ini- d’un environnement .NET comme ce- tiatives open source alors mˆemeque le d´eve- lui de Microsoft ou une impl´ementa- loppement de celles-ci se fait de fa¸concompl`e- tion libre de celui-ci. IVKM.NET uti- tement ouverte. Des tensions ont exist´eavec lise Classpath. le groupe JBoss, mais Sun a plutˆotfait preuve – Le projet GCJ [46] propose de compiler de bonne volont´e(en particulier en aidant la du Java directement vers du code natif, fondation Apache et ObjectWeb), sans pour afin d’am´eliorer les performances en ´evi- autant accepter de rendre son impl´ementation tant l’interpr´etation ou le JIT. GCJ est de Java libre, malgr´edes pressions incessantes int´egr´e`aGCC et utilise une version mo- de nombreux acteurs du monde Java, IBM en difi´eede Classpath. tˆete. – Notons enfin que certaines API sont im- pl´ement´eespar des projets ind´ependants de Classpath. C’est le cas en particulier 4 Le cas de .NET pour tout ce qui touche `al’aspect entre- 4.1 Les normes ECMA/ISO prise pour lequel la fondation Apache, le consortium ObjectWeb et le groupe La situation de .NET beaucoup plus simple JBoss sont tr`esactifs. En fait, contraire- que celle de Java. En fait, .NET est en partie ment `ala partie couverte par Classpath, standardis´e,en partie totalement contrˆol´epar les API entreprises sont totalement im- Microsoft son principal cr´eateur (la version pl´ement´eessous forme de logiciel libre 1.0 de .NET est sortie en janvier 2002). (JBoss et JOnAS en particulier). JBoss En aoˆut 2000, deux mois apr`esle lancement a ainsi pass´eofficiellement le TCK pour officiel de C# (en juin 2000), Microsoft a d´e- la partie entreprise de Java 1.4 (cf [47]). pos´eles sp´ecifications du langage C# et de la En th´eorie, JBoss est donc couvert par CLI aupr`esde l’ECMA pour obtenir une stan- l’accord entre Sun et Kodak sur les bre- dardisation (cf [48]). On peut noter au pas- vets logiciels de ce dernier, car JBoss a sage que C# et la CLI sont une oeuvre com- bien un accord officiel de licence avec Sun mune de Microsoft, Intel et HP. En d´ecembre pour l’impl´ementation de Java 1.4 ver- 2001, l’ECMA a ratifi´eune premi`ere version sion entreprise. des sp´ecifications, puis une deuxi`emeversion Malgr´ele travail r´ealis´esur diverses impl´e- un an apr`es(cf [49] et [50]). Les standards mentations libre de Java, il est clair qu’il ECMA ont ´et´esoumis `al’ISO qui les a ratifi´es n’existe pas pour l’instant d’alternative com- en avril 2003 (cf [51]). Depuis, l’ECMA tra-

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 8/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 vaille `ala mise `ajour des standards, en parti- base de donn´ees,l’´equivalent .NET de culier la sp´ecification de C# 2.0 (cf [52]) qui ODBC ou de JDBC. int`egre des nouveaut´es importantes comme 3. ASP.NET : il s’agit des biblioth`eques les types param´etr´es(les generics). “ serveurs ” de .NET. Elles permettent La norme ECMA-334 couvre l’int´egralit´e entre autres de cr´eerdes sites web dyna- du langage C# (dans sa version 1.0) alors miques et des services web (dans le mˆeme que la norme ECMA-335 s’int´eresse `ala CLI, esprit que PHP et les JSP). c’est-`a-dire la machine virtuelle (le CLR) et la biblioth`eque standard. Un point crucial `ano- Microsoft contrˆole totalement ces biblio- ter est que cette biblioth`eque est assez limit´ee th`eques et plus g´en´eralement tout les aspects et que la CLI n’est que la brique de base de de .NET qui ne sont pas standardis´es par .NET. En fait, la CLI contient 7 biblioth`eques l’ECMA. Il s’agit essentiellement de biblio- fondamentales qui couvrent les besoins clas- th`eques additionnelles (cf [53] pour une vue siques, `asavoir les entr´ees/sorties (fichier et g´en´erale des biblioth`eques de .NET). Pour r´eseau), les collections, la manipulation de do- mesurer l’´etendue de ce contrˆole, on peut no- cuments XML, la gestion des chaˆınes de ca- ter que la CLI contient 350 types (classes, in- ract`eres, tout le m´ecanisme de r´eflexion (l’in- terfaces, structures, etc.), contre 3800 types trospection), etc. On est tr`esloin d’avoir ici dans .NET fin 2002 (cf [54]). l’int´egralit´ede .NET, comme nous le verrons dans la section suivante. 4.3 Peut-on impl´ementer librement Contrairement `a de trop nombreuses une norme ? normes (les standards POSIX par exemple), les normes C# et CLI sont librement et gra- Beaucoup de gens pensent na¨ıvement tuitement accessibles sur le site de l’ECMA qu’une norme officielle peut ˆetre impl´ement´ee (cf [49] et [50]). Les conditions de redistribu- librement. Et pourtant, rien n’est moins vrai. tion de ces documents ne sont malheureuse- En fait, chaque organisme de normalisation ment pas indiqu´ees. d´ecide des restrictions qu’il juge acceptable pour les normes qu’il produit. Un exemple c´el`ebre est celui du format de compression 4.2 Les biblioth`eques sans standard sonore MP3. MP3 est en fait la couche au- .NET ne serait pas `amˆemede concurren- dio de niveau 3 des standards vid´eoMPEG-1 cer Java ou d’autres plate-formes de d´evelop- et 2. MPEG est un groupe de travail issu de pement s’il se limitait aux biblioth`eques in- l’ISO et de l’IEC (International Electrotech- cluses dans la CLI. En fait, .NET comporte nical Commission), dont la vocation est de trois grandes biblioth`eques cruciales dans la cr´eerdes standards pour la compression vi- plupart des applications : d´eo.Or, pour cr´eerMP3, le groupe a utilis´e des travaux de l’un de ses membres, le Fraun- 1. Windows.Forms : il s’agit de la biblio- hofer Institute. Associ´e`aThomson Multime- th`eque qui permet de cr´eerles interfaces dia, le Fraunhofer Institute poss`ede 18 brevets utilisateurs. Grossi`erement, c’est donc touchant de pr`esou de loin au format MP3 l’´equivalent .NET de Gtk, de Qt ou en- (cf [55, 56]). Thomson exige actuellement le core de Swing et SWT pour Java. paiement de royalties pour toute utilisation 2. ADO.NET : il s’agit de la biblioth`eque commerciale de MP3 (cf [57]). Il faut bien en- d’acc`esaux donn´eesstock´eesdans une tendu signer un accord de licence officiel pour

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 9/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 pouvoir utiliser l´egalement (et commerciale- `aoffrir des licences Royalty Free ou RAND ment) MP3, au moins dans les pays qui recon- pour les brevets concernant C# et la CLI naissent les brevets logiciels. Ce probl`emede (ceci est confirm´esur le site de Microsoft [63] brevets autour de MP3 a ´et´ehistoriquement par un engagement g´en´eral concernant la par- une des motivations `ala cr´eation du format ticipation `ala cr´eation de standards). Ogg et du sch´emade compression associ´eVor- Deuxi`emeindice, Michele Herman, la res- bis (cf [58]). ponsable de tout ce qui concerne la“ propri´et´e La politique de l’ECMA vis `avis des bre- intellectuelle ” chez Microsoft, a indiqu´edans vets est tr`esclaire (cf [59]) : l’ECMA ne stan- un entretien accord´e`aDavid Berlind de ZD- dardise des technologies couvertes par des net (cf [54]), que Microsoft accorderait une brevets que si ceux-ci peuvent ˆetre licenci´es licence RAND aux personnes qui souhaite- en des termes “ raisonnables et non discimi- raient impl´ementer .NET. Cette licence sera natoires ” (RAND pour Reasonable And Non aussi Royalty Free. Cela signifie qu’il faudra Discriminatory). En pratique, cela signifie que un accord formel avec Microsoft, mais que la licence ne doit pas ˆetre trop “ ch`ere ” (`a cet accord n’impliquera pas de contribution l’´echelle d’une entreprise, bien sˆur !) et que financi`ere. Herman a bien indiqu´eque l’ac- ces termes doivent ˆetre les mˆemespour tout cord en question interdirait les sous-licences : le monde. L’ISO appliquant le mˆemeraison- en d’autres termes, pour obtenir une licence, nement, on peut supposer que les conditions il faudra toujours s’adresser `aMicrosoft direc- commerciales propos´ees par Thomson sont tement. D’apr`esHerman elle-mˆeme[63], ceci RAND (2 500 $ US pour utiliser MP3 dans est en totale contradiction avec la GPL (cf un jeu, par exemple). aussi l’analyse tr`esint´eressante de Seth Ni- ckell [64]), et ceci de fa¸cond´elib´er´ee. 4.4 .NET et les brevets logiciels En effet, quand on parle de licences pour les brevets de Microsoft, il ne faut jamais oublier Le probl`emeest bien entendu que Microsoft que l’entreprise est totalement oppos´ee`ala poss`ede des brevets relatifs `a.NET. L’entre- GPL. Bill Gates a notamment d´eclar´een Juin prise a mˆemed´epos´een 2002 une demande de 2001 que la GPL ´etait comparable au c´el`ebre brevet sur l’int´egralit´ede l’API de .NET de personnage de jeux vid´eoPac Man et qu’elle l’´epoque (cf [60, 61]). Pour savoir s’il est pos- d´evorait tout autour d’elle (cf [65, 66]). Le site sible d’impl´ementer librement les normes C# de Microsoft contient d’ailleurs une pr´esenta- et CLI, il faut donc connaˆıtre la position de tion assez “ amusante ” de la GPL (cf [67]). Il Microsoft en terme de licences pour les bre- semblerait que l’entreprise n’ait pas compris vets concern´es.Or, il semble qu’il n’existe pas le principe de la double licence utilis´eeentres vraiment de position officielle de Microsoft `a autres par Trolltech et MySQL AB, puisque la ce sujet (par exemple publi´eesur le site web page cit´eeindique qu’un logiciel diffus´esous de Microsoft), mais seulement des indices que GPL ne peut pas ˆetre commercialis´e.Quelles nous allons analyser dans la suite de l’article. qu’en soient les raisons, l’attitude de Micro- On connaˆıt en fait deux indices concernant soft est claire depuis plusieurs ann´ees: l’en- directement .NET. Premier indice, Jim Mil- treprise fera tout pour s’opposer `ala GPL, ler, un des inventeurs des brevets sur .NET, a tout en acceptant dans une certaine mesure indiqu´een f´evrier 2003 dans une liste de diffu- les autres licences open source. sion consacr´ee`a.NET (cf [62]) que Microsoft La politique de d´efense par Microsoft de et ses co-inventeurs (Intel et HP) ´etaient prˆets sa “ propri´et´eintellectuelle ” est cependant

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 10/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 complexe. Pour essayer de la comprendre, je Hermann du cˆot´ede Microsoft, sans qu’un ac- vais pr´esenter plusieurs exemples. cord puisse finalement ˆetre atteint. Le point `aretenir dans l’exemple du Sender 4.4.1 L’affaire du Sender ID Id est donc que certaines licences Royalty Free de Microsoft sont incompatibles avec une im- Le Sender ID (cf [68]) est une technique pl´ementation open source (et pas seulement anti-spam d´evelopp´eeentre autre par Micro- GPL), ce qui laisse craindre le pire pour le soft dont les d´etails techniques importent peu RAND. ici. Le point crucial est que Microsoft a fait une demande de brevet concernant Sender ID 4.4.2 Samba et exige la signature d’une licence (de type Royalty Free) pour toute impl´ementation de Samba est une impl´ementation libre sous li- celui-ci (cf [69] pour la licence). La licence cence GPL du protocole SMB/CIFS qui per- propos´eeest consid´er´eecomme incompatible met le partage de fichiers et les services d’im- avec une impl´ementation libre par la fonda- pression dans le monde Windows. CIFS est tion Apache [70] et Debian [71], entres autres. la derni`ere incarnation d’un protocole issu L’IETF [72], qui ´etait cens´eproduire un stan- de NetBIOS, initialement d´evelopp´epar IBM dard bas´esur le Sender ID, a finalement aban- et Sytec, puis am´elior´epar Microsoft, IBM donn´eses travaux, rejoignant le consensus qui et d’autres. Nous sommes donc en pr´esence s’est form´edans le monde libre contre la li- d’une technologie au moins en partie invent´ee cence de Microsoft. La seule exception `ace par Microsoft et qui peut donc ˆetre consid´e- consensus est Sendmail qui a d´ecid´ed’impl´e- r´eecomme sa “ propri´et´e”. Le parall`ele avec menter Sender ID en raison d’une interpr´eta- .NET est ´evident. tion divergente de la licence de Microsoft et Pourtant, la situation pratique n’est pas surtout avec un argument assez int´eressant (cf totalement identique. Samba a en effet ´et´e [73]) : Microsoft a fait une demande de brevet d´evelopp´een grande partie par reverse en- concernant Sender ID, mais le brevet n’a pas gineering, ce qui est parfaitement l´egal(au encore ´et´eaccord´e(la situation est donc tr`es moins dans certains pays, dont l’Australie, semblable `acelle des api de .NET). Notons terre patrie de Samba) quand on vise l’in- que les aventures du Sender ID ne sont pas terop´erabilit´e(cf `ace sujet [75]). Il est clair termin´ees,puisque devant les r´eactions de la en effet que pour faire fonctionner une ma- communaut´eopen source, Microsoft a d´ecid´e chine Unix dans un environnement Windows, de revoir sa copie dans certaines proportions, il est presque indispensable de la faire “ par- en particulier en limitant la port´ede sa de- ler ” SMB/CIFS. L’argument d’interop´erabi- mande de brevet (cf [74] pour une analyse de lit´efonctionne donc parfaitement et justifie ce revirement). le reverse engineering, qui lui mˆeme´evite de Il ne faudrait cependant pas placer trop signer un quelconque accord de licence pour d’espoir dans la nouvelle attitude de Micro- acc´eder `ala documentation de SMB/CIFS. soft. En effet, comme l’indique la position of- Cependant, certains autres ´el´ements rap- ficielle de la fondation Apache [70], il y a eu prochent CIFS de .NET. Il existe en effet une de nombreuses discussions, pendant des mois, sorte de sp´ecification de CIFS, librement ac- entre des acteurs du libre (le juriste Larry Ro- cessible (cf [76]). Cette documentation men- sen en tˆete) et Microsoft au sujet de la licence tionne explicitement qu’elle ne s’occupe pas propos´ee,avec une intervention de Michele de l’aspect “ propri´et´e intellectuelle ”. Son

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 11/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 existence ne signifie donc pas qu’on puisse im- son succ`essans s’appuyer de fa¸cond´ecisive pl´ementer CIFS librement (comme pour les sur les brevets logiciels (cf [81]), cette ´epoque normes relative `a.NET en somme). D’autre est r´evolue, de mˆemed’ailleurs que la condes- part, certaines parties de CIFS sont couvertes cendance `apeine polie de l’entreprise envers par des brevets poss´ed´espar Microsoft. Ce- les logiciels libres. Samba profite en quelque pendant, d’apr`esla Samba Team, les brevets sorte du pass´e,car les premiers d´eveloppe- en question sont sp´ecifiques `al’impl´ementa- ment de SMB sont suffisamment vieux pour tion de CIFS sous Windows et couvrent des ˆetre contemporain de l’´epoque “ sans brevet ” parties obsol`etes du protocole (cf [77]), ce qui de Microsoft. Ce n’est malheureusement pas signifie que Samba n’utilise pas les m´ethodes le cas des technologies plus r´ecentes. brevet´ees(cf aussi [78]). N’oublions pas, par exemple, que l’auteur Comme pour de nombreuses technologies de VirtualDub (un logiciel d’´edition vid´eo, Microsoft, il est possible d’obtenir une licence sous licence GPL et tournant sous Windows Royalty Free pour les brevets qui concernent [82]) a ´et´eoblig´ede supprimer en 2000 le CIFS. Bien que la licence autorise une im- support du format ASF de son logiciel suite pl´ementation open source, sa formulation (cf `aune demande de Microsoft (cf [83]). Pour- [79]) est incompatible avec la GPL, de fa- tant, l’auteur de VirtualDub avait compris ¸contotalement d´elib´er´ee(on voit ici les d´e- le format ASF uniquement par reverse engi- clarations de Michele Herman mises en pra- neering, mais ce format est prot´eg´epar un tique). On peut noter que la premi`ere version brevet... D’ailleurs, le format est maintenant de cette licence interdisait mˆemeplus expli- document´esur le site de Microsoft, mais il citement une impl´ementation sous GPL (cf est toujours interdit d’en faire une impl´e- [80]), en qualifiant cette derni`ere de “ Intel- mentation open source (cf [84] et l’accord lectual Property Rights Impairing Licence ”, contenu dans la sp´ecification). Le support du c’est-`a-dire de licence qui ne pr´eserve pas les format asf dans xine, MPlayer, videoLAN, droits de “ propri´et´eintellectuelle ”! etc. est possible car les parties probl´ematiques Il serait na¨ıf de croire qu’on peut conclure sont d´evelopp´eesdans des pays qui ne recon- de l’exemple de Samba que tout se pas- naissent pas (pour l’instant) les brevets logi- sera bien pour les impl´ementations libres ciels. de .NET. En effet, Samba a ´et´eessentielle- ment construit par reverse engineering alors 4.4.3 Une tentative de synth`ese que les impl´ementations libres de .NET sont construites `a partir des normes ECMA et Les exemples analys´es pr´ec´edemment des documentations Microsoft (pour les bi- montrent que Microsoft ne semble pas tota- blioth`eques qui ne sont pas standardis´ees). lement oppos´e`ades impl´ementations open De plus, SMB/CIFS est prot´eg´e par deux source de certaines de ses technologies et est brevets am´ericains et un brevet europ´een(cf donc dispos´e`aoffrir des licences pour les bre- [80]) dont les concepts ne sont pas utilis´es vets correspondants. Cependant, Microsoft par Samba, alors que Microsoft a demand´e est oppos´e`ala GPL et formule ses licences une protection de l’API de .NET par brevet, de sorte `aexclure toute impl´ementation sous ce qui signifie que toute impl´ementation de cette licence. De plus, la politique de Micro- .NET sera n´ecessairement couverte par le bre- soft est tr`es variable selon les technologies vet en question (si celui-ci est accept´e). Enfin, concern´eeset peut aller jusqu’`al’interdiction bien que Microsoft ait longtemps construit pure et simple d’une impl´ementation open

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 12/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 source, d’une fa¸condirecte comme pour ASF cile de pr´edire l’issue qu’elle va connaˆıtre. Par ou indirecte comme pour Sender ID. contre, l’affaire Kodak vs Java ne sera pas n´e- L’´etude de la partie du site de Microsoft cessairement sans cons´equence pour les impl´e- consacr´ee`ala “ propri´et´eintellectuelle ” (cf mentations libres de .NET. En effet, les bre- [63]) en particulier la zone consacr´ee aux vets concern´essont si larges qui couvrent tr`es standards [69] montre qu’il n’existe pas pour certainement .NET. Or, d’apr`es[38, 39], Mi- l’instant2 de licence officielle pour C# et la crosoft a d´ej`an´egoci´eun accord avec Kodak CLI, ce qui est relativement inqui´etant et ap- pour utiliser les technologies couvertes par les porte de l’eau au moulin des personnes qui fameux brevets. Si Microsoft n’a pas r´eussi `a craignent que .NET soit un cheval de Troie la faire, on ne voit pas comment une impl´e- contre linux (cf [64]). mentation libre de .NET pourrait les contour- Il reste cependant difficile de savoir quelle ner. sera sur le long terme la politique de Micro- Pour finir sur une note plus optimiste, il soft dans ses rapports avec le logiciel libre. faut garder `al’esprit que les brevets logiciels En 2002, Microsoft planifiait une attaque en sont souvent accord´esen d´epit du bon sens et r`egle contre les logiciels libres construite sur sans tenir compte de l’´etat de l’art au moment son portefeuille de brevets (cf [85]). Pour l’ins- de la demande. Il est donc souvent possible tant, les attaques n’ont pas eu lieu, mais il est d’exhiber des exemples de mise en oeuvre an- clair que Microsoft souhaite valoriser ses bre- t´erieure de ce qui avoir ´et´einvent´epar les vets (cf [86]), ce qui inqui`ete certaines figures auteurs d’un brevet (on parle alors de prior embl´ematiques de l’open source (cf [87]). Mi- art), ce qui invalide le brevet ou provoque crosoft demande par exemple le paiement de son transfert `al’inventeur r´eelde ce qui est royalties pour l’utilisation du syst`emede fi- prot´eg´e(dans le cas de la loi des USA). De chiers FAT dans certaines circonstances [88]. plus, un brevet ne prot`egepas les effets d’une Le brevet principal est en passe d’ˆetre inva- invention (on peut prot´egerl’aspirine, pas le lid´e(cf [89]), mais si cela n’avait pas ´et´ele cas, concept de lutte contre les maux de tˆete). Il Microsoft aurait tr`esbien pu ´etendre ses de- est donc parfois possible de mettre en oeuvre mandes de royalties `atoutes les utilisations de un concept sans enfreindre les brevets qui sont la FAT, en particulier donc `ason impl´ementa- sens´esprot´egerce concept (un point illustr´e tion sous Linux. Autre exemple ´edifiant, l’ex- par Samba, par exemple), au moins dans cer- clusion d’OpenOffice.org de l’accord de r´econ- tains cas. ciliation sign´eentre Microsoft et Sun en avril 2004 (cf [90]) : Microsoft a le droit de pour- 4.5 Les impl´ementations libres de suivre le projet pour toute infraction `al’un de .NET ses brevets (alors qu’il n’a pas ce droit pour StarOffice !). La situation de .NET est donc assez peu Notons que, contrairement au cas de Java, claire, et mˆemeinqui´etante si on est suspi- il n’y a pas eu pour l’instant de jugement au- cieux de nature. Pourtant, des impl´ementa- tour de .NET et on ne sait donc pas vraiment tions libres de .NET existent, mˆemesi leur si des brevets sont applicables `acette plate- l´egalit´en’est pas certaine. On compte en fait forme. La demande de brevet sur les API de deux impl´ementations tr`esavanc´ees: .NET n’a pas encore ´et´eaccept´eeet il est diffi- – Mono [91] est certainement l’impl´emen- tation libre de .NET la plus avanc´ee. 2en juin 2005. Elle est sponsoris´ee par Novell et di-

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 13/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

rig´ee par Miguel de Icaza. Mono 1.0 soit pas accept´ee,car on voit mal com- (lanc´een juin 2004) est assez complet ment on pourrait la contourner... et comporte en particulier un compila- – Portable.NET est une impl´ementation teur C# et une impl´ementation de la partielle de .NET r´ealis´eepar le projet CLI. A ceci s’ajoute une impl´ementa- DotGnu [98]. Cette impl´ementation est tion de certaines biblioth`eques addition- moins compl`ete que celle de Mono, en nelles de Microsoft comme ADO.NET particulier en terme de biblioth`eques ad- et ASP.NET, un binding de Gtk pour ditionnelles (par rapport `ala CLI im- .NET (Gtk#) et d’autres biblioth`eques pl´ement´eecompl`etement). Par contre, il sp´ecifiques Mono. Par contre, les Win- semble que pour l’instant le support de dows.Forms ne sont pas impl´ement´eesde Windows.Forms soit plus complet dans fa¸concompl`etes (loin s’en faut), ce qui li- Portable.NET que dans Mono. mite singuli`erement les possibilit´esd’ex´e- Comme dans le cas de Java, les impl´ementa- cution de code .NET d´evelopp´epour avec tions libres de .NET sont en retard par rap- la version de Microsoft. Miguel de Icaza, port `ason impl´ementation propri´etaire, en le leader du projet, est une personna- particulier sur le support des biblioth`eques lit´econtrovers´ee,connu pour ses d´ecla- graphiques. On retrouve ici un parall`ele par- rations souvent provocatrices. A l’occa- fait entre Windows.Forms pour .NET et sion de la sortie de Mono 1.0, de Icaza a Swing pour Java qui ne sont support´esque donn´e`aCnet un entretien assez int´eres- partiellement par les impl´ementations libres. sant (cf [92]). On retrouve dans cet en- Dans les deux cas, des biblioth`eques concur- tretien les provocations habituelles de de rentes et libres permettent de r´ealiser des ap- Icaza (il dit par exemple qu’avant la sor- plications graphiques (Gtk# dans le cas de tie de Mono, il n’y avait pas d’environne- .NET et SWT, le toolkit graphique du pro- ment de d´eveloppement int´egr´emoderne jet Eclipse, dans le cas de Java), mais au d´e- sous Unix...), mais aussi des ´el´ements de triment de l’aspect standard (Gtk# et SWT r´eponse au sujet des interrogations quant sont portables donc cet aspect n’est pas mis `ala l´egalit´ede Mono. Il pr´ecise que No- en cause par leur utilisation). vell a conduit une ´etude des brevets ac- tuels de Microsoft qui a conclu que Mono n’enfreignait aucun d’entre eux (les bre- 5 Conclusion vets de Kodak ne sont pas ´evoqu´es). Il indique que si dans les ann´ees`avenir on Etant´ donn´eles faits pr´esent´esdans cet ar- d´ecouvrait que du code de Mono utilise ticle, il est bien difficile de r´epondre `ala ques- sans autorisation un algorithme brevet´e, tion “ est-il l´egalde proposer une impl´emen- ce code serait soit r´e-´ecrit pour contour- tation libre de Java ou de .NET ? ” et `ala ner le probl`eme,soit supprim´e(cf aussi le question connexe “ quel risque prend-on en blog de de Icaza, [93, 94]). On retrouve d´eveloppant avec Java ou .NET ? ”N’´etant pas ce point de vue sur le site de Mono (cf juriste, je me garderais bien de proposer une [95]) et plus g´en´eralement chez les d´e- interpr´etation des accords de licence, des lois veloppeurs de Mono (cf [96, 97]). Nous sur les brevets, etc. Je ne peux que proposer n’avons plus qu’`aesp´erer pour Mono que un point de vue personnel d’amateur (´eclair´e la demande de brevet d´epos´eepar Micro- par les faits pr´esent´esdans cet article). soft portant sur l’API enti`ere de .NET ne Il me semble qu’il est possible (mais diffi-

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 14/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004 cile) de faire une impl´ementation libre l´egale exemple secrets et il est donc relativement dif- de Java dans ses ´editions standard 1.4.2 et ficile de se prononcer sur cet aspect du pro- 1.5 et dans son ´edition entreprise 1.4. Pour bl`eme. obtenir une licence d’impl´ementation, il suffit Concernant .NET, je ne peux pas avoir une de se connecter sur le site de Sun, de t´el´e- conclusion aussi “ positive ”. Il est impossible charger la sp´ecification concern´eeet d’accep- aujourd’hui (d´ebut novembre 2004) d’obte- ter l’accord propos´e.Cet accord indique expli- nir des informations officielles de Microsoft citement que la distribution d’une impl´emen- concernant les termes de la licence RAND qui tation conforme ne demande pas une licence doit n´ecessairement couvrir C# et la CLI. obligeant `aconserver la conformit´ede l’impl´e- Les licences RAND (et mˆemeRoyalty Free) mentation, ce qui permet d’utiliser une licence peuvent parfaitement ˆetre incompatibles avec libre. En pratique, la restriction de confor- les licences libres (ou au moins avec certaines mit´eest vraiment tr`esdure `arespecter et re- licences libres), comme l’a montr´ele fiasco du lativement incompatible avec un d´eveloppe- Sender ID ou comme le montre la licence ac- ment ouvert. Je ne sais donc pas si Classpath tuelle de SMB/CIFS. De ce fait, je ne sais pas est une initiative qui respecte les lois. C’est si Mono et Portable.NET sont des impl´emen- en fait peu probable car l’accord de licence tations l´egales de .NET. De plus, la demande sp´ecifie que l’impl´ementation doit passer le de brevet d´epos´eepar Microsoft et portant TCK. Or, pour obtenir le TCK, il faut n´e- sur l’int´egralit´ede l’API de .NET pourrait cessairement signer un accord de licence (tr`es rendre totalement incontournable la n´ecessit´e restrictif celui-ci) avec Sun, ce qui n’a pas d’obtenir d’une licence, au moins dans les ´et´efait (pour l’instant au moins) pour Class- pays qui reconnaissent les brevets logiciels. path. Rien ne permet donc de pr´etendre que Comme Seth Nickell [64], je pense donc que Classpath est une impl´ementation conforme Mono, bien que fascinant du point de vue et elle ne respecte donc pas la licence Sun. Par technique, pr´esente potentiellement un dan- contre, JBoss, Tomcat, JOnAS, etc. sont des ger pour le logiciel libre : en s’appuyant for- impl´ementations parfaitement l´egales de cer- tement sur cette plate-forme, on prendrait le taines parties de Java, puisque les groupes qui risque de voir s’effondrer son impl´ementation ont produit ces impl´ementations ont sign´eun libre et par cons´equent toutes les applications accord avec Sun pour obtenir les TCKs cor- d´evelopp´eesavec elle. Mais surtout, dans un respondants (cf [26, 28, 47] par exemple). Sun monde qui reconnaˆıt les brevets logiciels, la est bien entendu inform´edu caract`ere ouvert l´egalit´ede Mono est dans les mains de Mi- du d´eveloppement de ces impl´ementations et crosoft, une entreprise qui n’est pas connue sait donc que JBoss et JonAS ont ´et´ediffus´es pour ses sentiments bienveillants `al’´egard du dans des versions non conformes, ce qui n’a logiciel libre. pas empˆech´eles signatures d’accords. Class- Une fois de plus, comme le disait Nicolas path pourrait donc parfaitement devenir l´e- Boulay dans le num´ero 50 du GNU/Linux gal dans l’avenir. Notons cependant, mˆemesi Magazine, on constate que les brevets logiciels cela est vrai pour presque tout logiciel de nos sont “ une ´ep´eede Damocl`essuspendue au jours, que des brevets divers peuvent s’ap- dessus des logiciels libres ”. Il convient donc pliquer `aJava sans que Sun n’en soit pro- plus que jamais de participer `ala lutte contre pri´etaire, ce qui limite la port´eepratique de leur adoption en Europe [99]. l’accord de licence offert sur le site de Sun. Les d´etails de l’accord avec Kodak restent par

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 15/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

R´ef´erences

[1] Havoc Pennington. Java, Mono, or C++ ? http://ometer.com/desktop-language.html, March 2004. Une r´eflexion sur le futur de GNOME. [2] Java sur la Wikipedia. http://fr.wikipedia.org/wiki/Java_(langage) et http://en. wikipedia.org/wiki/Java_programming_language. [3] .NET sur la Wikipedia. http://en.wikipedia.org/wiki/Microsoft_.NET. La version fran¸caise est vraiment tr`essuccincte : http://fr.wikipedia.org/wiki/.NET. [4] C# sur la Wikipedia. http://en.wikipedia.org/wiki/C_Sharp_programming_ language. [5] Sun trademark and logo usage requirements. http://www.sun.com/policies/ trademarks/, February 2005. La politique de Sun pour ses marques d´epos´ees. [6] Site web du Linux Mark Institute. http://www.linuxmark.org/. [7] Site web de l’International Organization for Standardization (iso). http://www.iso.ch/. [8] Tim Clark. Sun wins Java ISO approval. http://news.com.com/2100-1001-205430. html, Nomvember 1997. CNET News.com. [9] Stephen Shankland. Sun revising plan for Java recognition. http://news.com.com/ 2100-1001-225197.html, April 1999. CNET News.com. [10] Site web de ECMA International. http://www.ecma-international.org/. [11] Stephen Shankland. Sun renews Java standards effort. http://news.com.com/ 2100-1001-225464.html, May 1999. CNET News.com. [12] Stephen Shankland. Sun seeks control of Java process. http://news.com.com/ 2100-1001-225500.html, May 1999. CNET News.com. [13] Sun submits Java technology for industry standardization. http://www.sun.com/smi/ Press/sunflash/1999-05/sunflash.990506.1.html, May 1999. Annonce de presse de Sun. [14] Stephen Shankland. Java standard vote opens door for Microsoft. http://news.com.com/ 2100-1001-227769.html, June 1999. CNET News.com. [15] Stephen Shankland. Sun reverses plan for Java standard. http://news.com.com/ 2100-1001-234061.html, December 1999. CNET News.com. [16] Stephen Shankland. Sun misses Java standard deadline. http://news.com.com/ 2100-1001-233940.html, September 2000. CNET News.com. [17] Site web du Java Community Process (JCP). http://www.jcp.org/. [18] JCP 2 : Process Document. http://www.jcp.org/en/procedures/jcp2, March 2004. Version 2.6. Document d´ecrivant le fonctionnement du JCP. [19] Executive Committee Info. http://jcp.org/en/participation/committee. Composi- tion de l’Executive Committee du JCP. [20] Java Specification Participation Agreement. http://www.jcp.org/aboutJava/ communityprocess/JSPA2.pdf, October 2002. Version actuellement en vigueur.

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 16/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

[21] JSR 176 : J2SE 5.0 (Tiger) Release Contents. http://www.jcp.org/en/jsr/detail?id= 176, September 2004. [22] JDK 5.0 Documentation. http://java.sun.com/j2se/1.5.0/docs/index.html, 2004. [23] Specification : Java 2 platform standard edition development kit 5.0 specification (”spe- cification”). http://java.sun.com/j2se/1.5.0/docs/relnotes/license.html, August 2004. [24] Sonali Shah and Frank Sommers. Does the JCP adequately balance innovation with maintenance of Java’s standards ? JavaWorld. http://www.javaworld.com/javaworld/ jw-11-2002/jw-1108-jcp.html, November 2002. [25] Frank Sommers and Sonali Shah. A fact-based analysis of the JCP’s effectiveness. Ja- vaWorld. http://www.javaworld.com/javaworld/jw-01-2003/jw-0131-jcp.html, Ja- nuary 2003. [26] JSPA news & status. http://jakarta.apache.org/site/jspa-position.html, 2002. La position de la fondation Apache pour la r´evision du JSPA. [27] Robert A. Gingell. Java community process (JCP) program chair responds to apache software foundation. http://jcp.org/aboutJava/communityprocess/announce/ LetterofIntent.html. La position de Sun pour la r´evision du JSPA. [28] Sun and INRIA kick-off J2EE license agreement for the certification of JOnAS. http: //www.objectweb.org/phorum/read.php?f=25&i=61&t=61, April 2004. [29] Richard Stallman. Free but shackled - the Java trap. http://www.gnu.org/philosophy/ java-trap.html, April 2004. [30] Havoc Pennington. Java licensing. http://log.ometer.com/2004-04.html#13, April 2004. [31] Jonathan Skillings. Kodak sues sun over aspects of java. http://news.com.com/ 2100-1001-836322.html, February 2002. CNET News.com. [32] Ben Rand. Kodak wins Java lawsuit. Rochester Democrat and Chronicle, Octo- ber 2004. http://www.rochesterdandc.com/apps/pbcs.dll/article?AID=/20041002/ BUSINESS/410020333. [33] Rob Malda (a.k.a. CmdrTaco). Kodak wins $1 billion Java lawsuit. http://yro.slashdot. org/yro/04/10/03/1352252.shtml, Octobre 2004. [34] CowboyNeal. Sun and Kodak settle out of court. http://yro.slashdot.org/article. pl?sid=04/10/07/2358245, Octobre 2004. [35] Pamela Jones. Kodak wins Java lawsuit against Sun. http://www.groklaw.net/article. php?story=20041003041632172, October 2004. [36] Pamela Jones. Sun and kodak settle for $92 million. http://www.groklaw.net/article. php?story=20041007164855587, October 2004. [37] stands behind its customers and communities, settling outstanding litigation with Eastman Kodak company. http://www.sun.com/smi/Press/sunflash/ 2004-10/sunflash.20041007.2.html, October 2004. Communiqu´ede presse de Sun sur l’accord avec Kodak.

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 17/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

[38] Stephen Shankland. Sun settles Kodak’s Java suit for $92 million. http://news.com.com/ 2100-1012_3-5401804.html, October 2004. CNET News.com. [39] Charles Babcock and John Foley. The cost of ideas. http://www.informationweek.com/ story/showArticle.jhtml?articleID=49900578, October 2004. Information Week. [40] Site web de Jikes. http://jikes.sourceforge.net/. [41] Site web de Classpath. http://www.gnu.org/software/classpath/. [42] Site web de Jikes RVM. http://jikesrvm.sourceforge.net/. [43] Site web de Kaffe. http://www.kaffe.org/. [44] Site web de SableVM. http://sablevm.org/. [45] Site web de IKVM.NET. http://www.ikvm.net/. [46] Site web de GCJ. http://gcc.gnu.org/java/. [47] JBoss, inc. delivers JBoss application server 4.0 to the enterprise market. http://www. jboss.org/services/press/jboss4.pdf, September 2004. Annonce de presse de JBoss Inc. pour la certification de JBoss 4.0 en tant que serveur J2EE. [48] ECMA and ISO/IEC C# and common language infrastructure standards. http://msdn. microsoft.com/net/ecma/, 2003. Description du processus de normalisation de .NET par Microsoft. [49] ECMA international. C# Language Specification, second edition, December 2002. Standard ECMA-334, disponible `al’URL http://www.ecma-international.org/publications/ standards/Ecma-334.htm. [50] ECMA international. Common Language Infrastructure (CLI) Partitions I to V, se- cond edition, December 2002. Standard ECMA-335, disponible `al’URL http://www. ecma-international.org/publications/standards/Ecma-335.htm. [51] Martin LaMonica. Microsoft to score new C# standard. http://news.com.com/ 2100-1007_3-995108.html, April 2003. [52] Draft de la sp´ecification de C# 2.0. http://www.mondrian-script.org/ecma/. [53] Microsoft. Biblioth`eque de classes .NET Framework. http://msdn.microsoft.com/ library/fre/default.asp?url=/library/FRE/cpref/html/cpref_start.asp. [54] David Berlind. Will C# benefit Microsoft, or the industry ? http://techupdate.zdnet. com/techupdate/stories/main/0,14179,2887217,00.html, October 2002. ZDNet. [55] Gabriel Bouvigne. Patents and mp3. http://www.mp3-tech.org/patents.html. [56] Eric Scheirer. Frequently asked questions : MPEG, patents, and audio coding. http: //web.media.mit.edu/~eds/mpeg-patents-faq, October 1998. [57] Thomson et les licences mp3. http://www.mp3licensing.com/. [58] Site web du projet ogg. http://www.xiph.org/ogg/. [59] Code of conduct in patent matters. http://www.ecma-international.org/memento/ codeofconduct.htm. La politique de l’ECMA en mati`ere de brevets. [60] Andrew Orlowski. Ms patents .Everything. http://www.theregister.co.uk/2003/02/ 11/ms_patents_everything/, February 2003. The Register.

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 18/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

[61] Lisa M. Bowman. .Net patent could stifle standards effort. http://news.com.com/ 2100-1001_3-984052.html, February 2003. CNET News.com. [62] Jim Miller. Microsoft applies for .Net patent. http://web.archive.org/web/ 20030609164123/http://mailserver.di.unipi.it/pipermail/dotnet-sscli/ msg00218.html, February 2003. D´eclaration sur le brevet sur l’API de .NET par un des inventeurs du brevet. [63] Intellectual property licensing. http://www.microsoft.com/mscorp/ip/, August 2004. [64] Seth Nickell. Why mono is currently an unacceptable risk. http://www.gnome.org/~seth/ blog/mono, May 2004. [65] Mike Ricciuti. Gates wades into open-source debate. http://news.com.com/ 2100-1001-268667.html, June 2001. CNET News.com. [66] John Lettice. GPL Pacman will eat your business, warns Gates. http://www. theregister.co.uk/2001/06/20/gpl_pacman_will_eat_your/, June 2001. The Regis- ter. [67] Shared source initiative : Licensing overview. http://www.microsoft.com/resources/ sharedsource/Articles/LicensingOverview.mspx, February 2004. Une pr´esentation des licences libres par Microsoft. [68] Pr´esentation du Sender ID sur la Wikipedia. http://en.wikipedia.org/wiki/Sender_ id. [69] Standards licensing programs. http://www.microsoft.com/mscorp/ip/standards/. Les licences des standards Microsoft, dont celle pour le sender ID. [70] ASF position regarding Sender ID. http://apache.org/foundation/docs/ sender-id-position.html, September 2004. [71] Le projet Debian rejette l’utilisation de Sender ID. http://www.debian.org/News/2004/ 20040904, Septembre 2004. [72] Site web de l’Internet Engineering Task Force (IETF). http://www.ietf.org/. [73] Sendmail, Inc. position on Sender ID. http://www.sendmail.net/sid-milter/ smi-position.shtml, September 2004. [74] Yakov Shafranovich. Sender-ID back from the dead. http://www.circleid.com/article/ 792_0_1_0_C/, October 2004. Circle ID. [75] Dossier sur le reverse engineering. MISC Num´´ero 14, Juillet-Aoˆut 2004. [76] CIFS Sub-Group of the SNIA NAS TWG. Common Internet File System Technical Refe- rence. Storage Networking Industry Association, February 2002. http://www.snia.org/ tech_activities/CIFS/. [77] CIFS, Microsoft and the Samba Team. http://www.samba.org/samba/ms_license.html. [78] Stephen Shankland. Microsoft steps on Samba’s toes. http://news.zdnet.com/ 2100-3513_22-904089.html, May 2002. ZDNet News. [79] Royalty-free CIFS technical reference license agreement. http://msdn.microsoft.com/ library/default.asp?url=/library/en-us/cifs/protocol/royalty-free_cifs_ technical_reference_license_agreement.asp. Licence Microsoft pour la documenta- tion de CIFS.

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 19/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

[80] Microsoft bars GNU software from interoperating with CIFS. http://swpat.ffii.org/ patents/effects/cifs/. [81] Microsoft and patents. http://swpat.ffii.org/players/microsoft/. [82] Site web de VirtualDub. http://www.virtualdub.org/. [83] Andy Tai. Microsoft patents ASF media file format, stops reverse engineering. http: //www.advogato.org/article/101.html, June 2000. Advogato. [84] Advanced systems format (ASF) specification . http://www.microsoft.com/windows/ windowsmedia/format/asfspec.aspx. Sp´ecifications du format ASF. [85] Stephen Shankland. HP memo : Microsoft planned open-source patent fight. http:// news.com.com/2100-7344_3-5276901.html, July 2004. CNET News.com. [86] Ina Fried. Microsoft opens technology to more licensing. http://news.com.com/ 2100-1012_3-5113033.html, December 2003. CNET News.com. [87] Antone Gonsalves. Microsoft’s patent plans worry open-source supporters. http://www. techweb.com/wire/story/TWB20040604S0005, June 2004. TechWeb.com. [88] FAT file system technology and patent license. http://www.microsoft.com/mscorp/ip/ tech/fat.asp, December 2003. Derni`ere mise `ajour en mars 2005. [89] Ina Fried. Un brevet de microsoft sur le syst`emeFAT d´eclar´einvalide. http://www.zdnet. fr/actualites/informatique/0,39040745,39175892,00.htm, Octobre 2004. ZDNet.fr. [90] C.C./IDG News Service. Microsoft ambigu avec les d´eveloppeurs Open Office. http:// www.weblmi.com/news_store/2004_09_16_Microsoft_ambigu_ave_63/News_view, Sep- tembre 2004. Le Monde Informatique. [91] Site web du projet Mono. http://www.mono-project.com/. [92] Martin LaMonica. More than an open-source curiosity. http://news.com.com/ 2008-7344_3-5271084.html, July 2004. CNET News.com. [93] Miguel de Icaza. On software patents. http://tirania.org/blog//texts/patents.html, March 2004. [94] Miguel de Icaza. More patents. http://tirania.org/blog/archive/2004/May-20.html, May 2004. [95] FAQ : Licensing. http://www.mono-project.com/FAQ:_Licensing. [96] Blog de nat friedman, co-fondateur de ximian avec de icaza. http://nat.org/2004/may/ #21-May-2004. [97] Blog de paolo morano. http://www.advogato.org/person/lupus/diary.html?start= 11. [98] Site web du projet DotGNU. http://www.dotgnu.org/. [99] Informations sur les brevets logiciels en Europe. http://swpat.ffii.org/.

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 20/21 Java, .NET et les logiciels libres GNU/Linux Magazine France n°67, D´ecembre 2004

A Licence

Cette cr´eation est mise `adisposition selon le Contrat Paternit´e- Pas d’Utilisation Com- merciale - Pas de Modification disponible en ligne http://creativecommons.org/licenses/ by-nc-nd/2.0/fr/ ou par courrier postal `aCreative Commons, 559 Nathan Abbott Way, Stan- ford, California 94305, USA.

B Historique

21 Juillet 2005 Passage en deux colonnes pour le texte principal 16 Juin 2005 Mise en ligne avec les modifications suivantes : – passage en LaTeX – correction de quelques fautes de frappe – ajoˆut des conditions de distribution et de l’historique – unification des r´ef´erences – v´erification et correction de tous les liens D´ecembre 2004 Publication par le GNU/Linux Magazine France

Copyright GNU/Linux Magazine France & Fabrice Rossi, 2004 21/21