Discussions autour de Java, langage libre et portable

Le par  |  14 commentaire(s)
Machine Virtuelle Java (51x108)

La particularité de Java est avant tout sa portabilitéAvant de parler de son avenir, faisons un petit rappel de ce qu'est Java (qui n'a  rien à voir avec JavaScript).

La particularité de Java est avant tout sa portabilité
Avant de parler de son avenir, faisons un petit rappel de ce qu'est Java (qui n'a  rien à voir avec JavaScript). Derrière ce mot qui signifie "café" aux USA, se cachent :

  • un langage de programmation 100% objet, assez proche syntaxiquement du C++

  • une bibliothèque de fonctions (API), permettant de simplifier le travail des développeurs

  • un environnement d'exécution, appelé machine virtuelle (Java Virtual Machine), dans lequel fonctionnent les programmes écrits en code Java

Machine virtuelle java 51x108Actuellement, le langage et l'API Java sont en version 1.5, également appelés Java 5.

La particularité de Java vis-à-vis des langages classiques comme le C++ est donc la présence de la JVM, une machine virtuelle faisant l'interface entre le programme et le système d'exploitation.

Le gros atout de cette couche d'abstraction est qu'un même programme peut fonctionner sous Windows, Linux, ou MacOS. De plus, une JVM spécifique aux appareils mobiles permet également de faire tourner ces programmes sur les téléphones et assistants numériques personnels (PDA).


Encore plus de café sur nos bureaux
Jusqu'à aujourd'hui, Java était un langage propriétaire détenu par le groupe SUN. Depuis l'annonce du passage imminent de Java sous licence libre GPL2, les réactions pleuvent dans le monde du développement informatique. Si certains sont indécis, beaucoup ne cachent pas leur excitation face aux probables répercutions de cette libération.

Pour l'utilisateur, la première conséquence visible va être l'augmentation du nombre d'applications écrites en Java, pour les raisons suivantes :

  • Java est libre : de nombreux développeurs qui boudaient ce langage car étant propriétaire vont s'y intéresser de plus près. Le nombre d'applications Java devrait donc continuer d'augmenter, et l'implication des développeurs dans les projets open-source existants devrait également être meilleure.

  • Java peut désormais être intégré par défaut dans les distributions libres comme Linux. Cela signifie non seulement que la machine virtuelle pourra être installée, mais surtout que l'on va voir apparaître des distributions Linux comptant un grand nombre d'applications Java installées par défaut.

Qu'en est-il des projets en cours qui visent à libérer Java '

Depuis des années, certains projets opensource ont pour but de libérer Java en ré-écrivant intégralement la machine virtuelle. Si certains d'entre eux sont très avancés, aucun n'est encore totalement abouti.

Si ces projets pourraient sembler devenir obsolètes avec l'ouverture de Java, certains d'entre eux risquent au contraire de faire un bond gigantesque en avant, puisqu'ils seront en droit d'échanger du code avec le projet de SUN, qui sera sous licence GPL.

Nous devrions donc bientôt avoir plusieurs alternatives libres crédibles à la JVM de Sun, donnant ainsi à l'utilisateur la possibilité de choisir.

Bien que peu probable dans un premier temps, il serait souhaitable que Sun se rapproche des acteurs principaux comme la fondation Apache, qui supporte une multitude de projets libres en Java. Nous pourrions alors aboutir à un projet unique, résultat de l'ensemble du travail des développeurs de Sun et de la communauté open source.

Pour ce qui est du risque de l'émergence de forks, projets Java basés sur la version actuelle mais évoluant vers une version incompatible, nos confrères de InfoWorld [en] relaient les propos de Rich Sands, directeur marketing de la version standard de Java, qui affirme "qu'il n'y a vraiment aucun marché pour une version incompatible de Java".

Java sun small

Que reste-t-il aux autres langages '

Java est souvent critiqué pour sa lenteur. En effet, la JVM servant d'intermédiaire entre le programme Java et le système d'exploitation, elle est à priori une source de ralentissements du programme. De plus, les mauvaises performances des premières versions de Java, apparues il y a 11 ans, ont contribué à maintenir cette idée.

Depuis, Sun a énormément travaillé sur les performances, de telle sorte que Java n'a rien à envier à ses concurrents. Par ailleurs, si les performances sont vraiment critiques, dans des applications temps-réel par exemple, il est également possible de compiler Java en code natif spécifique à un environnement précis, exactement comme pour les langages traditionnels.

Nous disposons donc aujourd'hui d'un langage libre, mature et extrêmement puissant, intégrant de nombreux concepts modernes de programmation, disposant de centaines de bibliothèques de fonctions open-source, et dont le code est portable sur tous les OS et toutes les machines.

Java permet d'écrire aussi bien des petits programmes pour appareils mobiles que des gros systèmes de traitement de l'information - hébergés sur des serveurs JEE (Java Entreprise Edition) - en passant par toutes les applications bureautiques et les sites Internet.

Mais, que reste-t-il aux autres '
Complément d'information

Vos commentaires Page 1 / 2

Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le #143314
Java cay le mahl!
Le #143364
Bien sûr ! Tellement ça nous casse les burnes Java ! Vive .net !
Le #143372
j'en suis hyper content, enfin un soft portable, documente, ouvert.
Contrairement a certains...
Le #143375
Portable ça n'a pas de sens. Portable pour qui ' Pour 200 OS dont 199 ne sont utilisés que par 0,1% des utilisateurs ' Selon moi, c'est la plate-forme .net qui est la plus portable avec son taux d'utilisation à 99,9% (bon ok j'exagère un peu, mais la réalité n'est pas si éloignée que ça). C'est complètement stupide de raisonner en termes d'OS, pour l'utilisateur final ça n'a aucun sens. J'aimerais bien voir tes Use Cases UML thepdf, je serais mort de rire en voyant apparaître les OS dans tes diagrammes !

Documenté ' A ma connaissance les MSDN sont la documentation la plus complète qui puisse exister, tous les sites de développement avec tous les articles dans toutes les langues ne rassemblent pas plus d'information que 10% des MSDN en une seule langue ! Je me souviens quand j'ai commencé à apprendre l'HTML avec des sites comme selfhtml ou allhtml, quand j'ai découvert plus tard la doc html sur les MSDN, j'étais dégoûté de la vie... Toutes les heures passées à chercher la bonne fonction javascript, la bonne propriété, etc., alors qu'en seulement quelques secondes tu as absolument tout sur les MSDN !

Ouvert ' Personnellement, j'en ai rien à battre. Je ne passe pas mon temps à regarder ce que les autres ont fait. Team Work ça te dit quelque chose ' On se fait confiance les uns les autres. Quand un collègue est responsable du dvt de certaines fonctions, il est aussi responsable des tests. Nous on voit que ça marche, on fait confiance, point. Pas la peine d'aller regarder son code pour voir qu'il n'a pas optimisé ci ou ça, on s'en fiche, sinon on n'avance jamais. Superbe la mentalité de geek qui veut tout coder à lui tout seul...
Le #143408
Merci Lionel pour ta brillante analyse. J'aurais cependant préféré que tu me parles de Java au lieu de troller, puisque c'est le sujet de l'article.

.Net est certainement une bonne technologie, mais tes arguments sont douteux.

Tu dis que .Net est portable car tout le monde utilise Windows. Portable, ça veut justement dire que tu n'es pas limité à un seul OS... Pourquoi dis-tu ça, c'est de la mauvaise fois. Tu pourrais dire que .Net n'a pas besoin d'être portable, ou encore parler du projet de port de .Net pour Linux.

Pour ce qui est de la documentation, je pense que le problème est le même quelle que soit la techno utilisée. Il faut de la rigueur. Pour ce qui est de Java, le langage utilise un système de documentation inclue dans le code, appelée JavaDoc, qui permet de générer automatiquement des docs en html ou dans n'importe quel format. Par défaut, ça donne ça: http://java.sun.com/j2se/1.5.0/docs/api/. C'est pas très sexy, je l'avoue, mais c'est complet, et permet d'assurer la synchro entre la doc et le code.

J'ai bossé il y a quelques années avec les docs MSDN des API Win32 et des MFC pour Visual C++, c'était l'horreur. J'imagine que ça a du bien évoluer avec l'arrivée de .Net, d'après ce que tu me dis.

Tout ça pour dire que tu sors du sujet, nous parlons de l'ouverture de Java, mais tu le dis toi même, tu préfères payer 200? ta mise à jour vers Vista, et c'est ton droit.

Par contre, tu n'a pas compris je pense ce que signifie l'ouverture du code. Celà n'a rien à voir avec la technologie utilisée. Il y a d'ailleurs beaucoup de projets libres en MS .NET. L'intérêt n'est pas de voir le code, mais de l'utiliser librement, et de pouvoir l'inclure dans d'autres projets, pour, comme tu dis, ne pas coder tout seul.

Bonne continuation.
Le #143415
quand je dis portable, je parle bien au nom des 0.000001% de machines qui n'ont pas windows (et si, ca existe). Et la, c'est vrai, debut de dev sous du windows, test puis prod sur ces machines, ca a un sens.
Java n'est pas forcement la panacee, on utilise d'autres softs, mais il faut bien se rendre compte que chaque language et plateformes ont des avantages et des inconvenients.
Je conviens que .net te permet de faire de belles (graphiques) choses, mais demandes-toi si ca ne pourrait pas etre fait avec des moyens traditionnels.
Quand a la portabilite de .net de windows en windows, je suis sceptique (en tout cas, on ne le fait ni tourner sur NT, si sur 2K, car oui, ca existe encore).
Je ne reviendrai pas sur la documentation MS, on a assez vu dans l'actualite ce dont ils etaient capable...
Le #143416
Clair que le lionel est de mauvaise fois car je pense qu'il ne sait pas de quoi il parle.
Certes 95% des PC sont des windows. Cependant 60% des serveurs ne sont pas des windows par exemple.
Bref la notion de portabilité, c'est plus niveau matériel autre que les PC.
Crois-tu que tu peux faire tourner un truc en .net sur ton téléphone portable ' Pas assez léger mon fils
Bienvenue le java
Surtout que le java peut servir à faire des application pour les sites internet(Applet).
Donc oui le java a tout d'un grand et il va être libre.
Le #143419
je penses surtout qu'il ne voit que les PC achetes par M.Toutlemonde dans l'hyper du coin
Le #143421
Toub >>Désolé de te décevoir, mais JavaDoc ça n'a rien d'exceptionnel, tu fais absolument la même chose avec Visual Studio (ce n'est pas lié à J2EE ou .NET). D'ailleurs en ce qui concerne les méta-données dans le code lui-même, la plate-forme .NET l'intègre directement (en C# c'est les fameux attributs). Je crois que la dernière version de J2EE l'implémente aussi. Enfin bref pour ce qui est de la production de docs, les 2 plate-formes sont équivalentes et je vois mal comment les choses pourraient en être autrement tellement c'est basique comme fonctionnalité. Ceci dit, en matière de reporting, là c'est carrément autre chose. Mais c'est absolument pas lié à .NET, c'est plus en rapport avec les outils comme Team Foundation, SharePoint. Et pour te répondre sur l'accusation de troll, je ne faisais que répondre à l'allusion précédente de thepdf.

yoadip >>Contrairement à ce que tu crois, .NET possède une gamme applicative bien plus large que J2EE. En ce qui concerne l'embarqué, .NET Embedded est un sous-ensemble fonctionnel de .NET et pour peu qu'on se limite à certaines classes, une application .NET fonctionne tout aussi bien sur Windows XP que sur Windows Mobile. Ce n'est pas le cas de J2ME qui est incompatible avec J2EE. En ce qui concerne les applets Java, l'équivalent existe en .NET mais c'est très peu utilisé parce que les applets sont amenées à disparaître au profit d'applications AJAX. Et pour ta remarque sur les serveurs, j'ai bien peur que tu confondes serveurs http et serveurs tout court. Windows Server 2003 rencontre un franc succès et les applicatifs ASP.NET n'y sont pas étrangers.

thepdf >>Ben oui je privilégie l'utilisateur final. Entre un trader en salles de marché et un agriculteur perdu dans la cambrousse, ils ont tous les 2 Windows chez eux et on fait des applications pour ces 2 utilisateurs, pas pour leur OS. C'est aussi simple que ça.
Le #143422
desole, on n'a ni la meme vision des choses, ni les memes cibles.
C'est promis: je vais demander au pere noel un joli lavage de cerveau a redmond.
Suivre les commentaires
Poster un commentaire
Anonyme
:) ;) :D ^^ 8) :| :lol: :p :-/ :o :w00t: :roll: :( :cry: :facepalm:
:andy: :annoyed: :bandit: :alien: :ninja: :agent: :doh: :@ :sick: :kiss: :love: :sleep: :whistle: =]