Synergie avec Java, XML et CORBA

La tendance inexorable des dernières décennies a été le retour aux normes standards, au dépens des normes propriétaires. Linux n'écrira pas l'histoire seul. D'autres technologies industrielles le compléteront dans les années à venir, formant un panel incontournable de solutions complètement ouvertes et adaptées au marché. Trois de ces technologies en marge de Linux sont Java, XML et CORBA.

Java une technologie qui a été décriée plus d'une fois, mais il existe maintenant des signes tangibles de son adoption généralisée. La courte victoire de Sun sur Microsoft laisse présager une unique version "non polluée" de Java, ce qui procurera concrètement aux utilisateurs une portabilité sur toute plateforme des applications. Java semble avoir passé l'étape de la campagne publicitaire, et en être à la phase de pleine adoption.

En tant que langage, Java est propre, puissant et relativement facile à assimiler. Des fonctionnalités avancées telles que le multithreading sont très simples à mettre en oeuvre, et permettent aux applications de s'adapter aux serveurs. Le dispositif automatique de ramasse-miettes (garbage collection) de Java interdit toute fuite de mémoire due aux applications. C'est très important pour les applications qui doivent fonctionner constamment sans relancements périodiques du système. L'expérience montre également que les programmeurs ayant pratiqué Java sont peu enclins à retourner à C ou C++, laissant présager pour un avenir proche qu'un grand nombre de développeurs expérimentés passeront à Java.

Du coté plateforme, Java est très proche de sa maxime initiale "écrire une fois, exécuter n'importe où". Quand tous les systèmes d'exploitation courants offriront les machines virtuelles Java 2, la plateforme sera prête pour des applications sérieuses destinées à l'entreprise.

Linux n'a jamais été l'une des premières plateformes à proposer Java, principalement parce que le Sun Microsystems n'a jamais par le passé considéré Linux comme une plateforme stratégique. Cela change. Pour la première fois, Sun assiste activement un groupe de programmeurs indépendants, le Blackdown Groupe, dans leur effort de portage d'une plateforme Java 2 sous Linux. Au moment où ces lignes sont écrites, un portage certifié est sur le point d'être annoncé d'un jour à l'autre. Le Netbeans IDE (Environnement Intégré de Développement) est un exemple du degré de sophistication et de finition auquel l'environnement Java-Linux est parvenu.

Une copie d'écran du Netbeans IDE.

Java a été "soustrait" du joug de Microsoft, mais il s'agit maintenant de le libérer de celui de Sun. Clairement, Java est trop important pour l'industrie pour être contrôlé par un unique constructeur, quel qu'il soit. Au cours de l'année prochaine, Sun pourrait être contraint par l'industrie (y compris son meilleur allié pour Java, IBM) de franchir le pas de sa "Community Source Licence" et confier le contrôle de Java à un organisme de standards industriels, peut-être sous une licence de type BSD ou même GPL. D'excellentes machines virtuelles Java (JVMs) existent aujourd'hui, comme le Transvirtual's Kaffe et le Hungry Programmers' Japhar. Mais le processus de certification de Sun que requiert l'utilisation commerciale de JCK (kit de compatibilité Java) implique qu'il est difficile pour des JVMs libres d'obtenir l'estampille officielle Java, un exemple du contrôle excessif de Sun sur le cahier des charges de Java. Project Mauve est une alternative libre du JCK propriétaire de Sun, auquel même HP a contribué avec sa suite de test Chai.

La popularité croissante de Java et la disponibilité des applications qui l'utilisent a pu stimuler l'adoption de Linux. Avec Java, un système d'exploitation ne serait plus jugé que sur sa vitesse d'exécution et sa stabilité, deux point forts de Linux.

Java dispose du potentiel pour rendre irrecevable tout argument lié au système d'exploitation, et il sera intéressant de voir l'effet que cela aura sur Linux. Java n'est certainement pas un ennemi de Linux, et quelques analystes s'attendent à ce que la combinaison Java-Linux soit un très large succès. Cette combinaison serait certainement de bonne facture.

Si Java représente la portabilité des programmes, XML est son pendant pour les données. XML permet un marquage spécifique des données qui peut gérer les plus complexes relations entre les données, et en plus stocker le tout sous un format purement en texte ASCII qui est portable sur toutes les machines et les architectures. Java et XML sont comme frére et soeur. La plupart des programmes d'analyse syntaxique de XML sont écrit en Java. Des fichiers XML peuvent être facilement analysés dans des objets Java. Tous les deux gèrent Unicode, le codage qui permet de gérer toutes les particularités linguistiques existant à travers le monde. Les applications Java/XML peuvent donc aisément prétendre à l'I18N (Internationalisation). XML reste une technologie nouvelle, et certaines caractéristiques doivent encore être standardisées. Néanmoins, c'est une technologie qui semble sortir du lot.

Linux une plateforme naturelle pour XML. Les fichiers texte sous Linux sont déjà enregistrès sous format ASCII. Aucun obstacle ne s'oppose donc à la l'implémentation d'applications XML.

Pour conclure, rappelons qu'une autre architecture, CORBA, atteint également sa pleine maturité. Bon nombre d'applications répandues utilisent maintenant CORBA. Une fois de plus, comme pour XML, c'est Java qui est à l'origine de CORBA. Java RMI (méthode d'invocation à distance) et CORBA IIOP (protocole Internet Inter-ORB) sont des exemples de la synergie Java-CORBA. CORBA, en tant qu'architecture objet fonctionnant sur toutes les plateformes, peut faire presque n'importe quoi avec les objets distribués mis à part le passage d'un objet d'un hôte à un autre. Et Java peut faire cela avec la "serialisation" d'objet et RMI. L'architecture de CORBA 3 a standardisé EJB (Enterprise JavaBeans), mettant de côté tout prétexte à la neutralité du langage. Quels que soient les mérites de cette décision, la combinaison de Java, XML et CORBA fournissent aux développeurs une puissance sans précédent pour réaliser des applications complexes sous une forme libre et non propriétaire, Linux fournissant naturellement une plateforme solide pour de telles applications.

Contrairement à cette joyeuse photographie de famille, l'utilisation de Visual Basic/COM+ semble isolationiste, à l'image d'une vision purement "Microsoft" du monde. Il est vrai que c'est une suite technologique bien intégrée, mais avec sa part de marché, elle sera dans son entier prise pour ce qu'elle est, une technologie propriétaire qu'il vaut mieux éviter.

Avec le développement de Linux qui rattrapera bientôt MS-Windows sur le marché des serveurs, toute décision en faveur d'une technologie propriétaire en lieu et place d'une technologie normalisée sera extrêmement difficile à justifier.

Références :

Java sous Linux

Java n'est pas une norme ISO

L'état des tests du portage de Java sous Linux

Le Netbeans IDE (libre pour un usage non-commercial)

La JVM Transvirtual's Kaffe

La JVM The Hungry Programmers' Japhar

Project Mauve

XML et outils Java téléchargeables sur le site d'IBM Alphaworks

Les outils libres de James Clark

ORBit, un CORBA ORB libre, sous licence GPL, qui fait partie de Gnome

OmniORB, un CORBA ORB libre, sous licence GPL, sorti des laboratoires Olivetti/Oracle