Java, .NET Et Les Logiciels Libres

Java, .NET Et Les Logiciels Libres

Java, .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 Java Virtual Machine, 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 Eclipse, 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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    21 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us