Java à la mode Sun Eric Lapaille World Wide Web est devenu la principale source de trafic sur Internet. Les “browsers” WWW, naviguant dans une mer d’informations balisée par des liens hypertexte, souffrent encore pourtant de lacunes. Ils ont été pensés en terme d’information statique, ne s’accomodent que de données de type texte, son ou image et se prêtent encore difficilement à la programmation dynamique. L’ambition de Sun avec sa technologie HotJava est d’insuffler une philosophie dynamique à l’information, de transférer en même temps que l’objet le module logiciel qui sera capable de le traiter, le représenter ou le visualiser. Cette philosophie est héritée en droite ligne du langage Java, également conçu par Sun, avec lequel il a été écrit. Et Java, ce n’est pas le nom d’une danse mais celui d’un café corsé ! Lorsqu’un navigateur traditionnel rencontre un nouveau type d’objet pour lequel il n’est pas préparé, il doit céder la main à une application extérieure ou sauver l’objet sur disque, faute d’outil de traitement adéquat. HotJava par contre peut délivrer via Internet un objet et la pièce de code nécessaire à son décodage. La même conception objet est appliquée à la gestion des protocoles de transfert de données. A côté du protocole HTTP, HotJava peut accepter dynamiquement de nouvelles formes de protocoles incluant par exemple de l’encryption. Chaque concepteur d’un protocole propriétaire peut intégrer dans un navigateur HotJava le code nécessaire à son bon fonctionnement. Si le client HotJava ne connaît pas encore le nouvel objet ou le nouveau protocole, il réclame simplement au serveur les portions logicielles requises. Pour encourager les développeurs à produire des extensions à ce navigateur d’un nouveau genre, Sun met à la disposition de tous sur http://www.sun.com un kit de développement en phase alpha incluant le browser HotJava et les spécifications du langage Java. Le kit est disponible pour stations Solaris et NT, les versions Windows 95 et Macintosh devant suivre très rapidement. Nous avons installé les 11 MB du SDK sur une machine Intel tournant sous Windows NT Server 3.51. Selon Sun, Java est un langage orienté objet, distribué, interpreté, sûr, portable, multi-thread et dynamique. Disons qu’il s’agit d’une version du langage C++ qu’on aurait allégé de sa complexité formelle. On en a par exemple retiré les notions d’héritage multiple et de surcharge des opérateurs (operator overloading) mais on lui a ajouté une efficace “garbage collection”. Java s’est aussi inspiré d’Objective C pour le concept d’interface et de résolution dynamique des méthodes. La taille de l’interpréteur est de 40 KB auxquels il faut ajouter 175 KB de librairies et DLL. Java est fin prêt pour la programmation distribuée puisqu’il est capable d’ouvrir et accéder des objets à distance via différents protocoles. Java utilise un modèle de pointeurs empêchant d’écrire dans des portions de mémoire non allouées, l’arithmétique de pointeurs est limitée à sa plus simple expression pour éviter des problèmes de corruption de zone mémoire. Sécurité au niveau de l’application mais aussi des transactions puisque Java utilise pour ses transferts une technique d’encryption basée sur le système de clé publique. Pour accentuer le caractère portable des données, Java utilise un format neutre de fichier objet capable d’être interprété puis utilisé sur un grand nombre de plates-formes et processeurs différents. La création d’applications incluant plusieurs processes ou threads est facilitée par la présence de primitives vouées à la synchronisation de ces threads. Sun et Netscape Communications font de gros efforts de rapprochement. HotJava supporte plus d’extensions de Netscape au langage HTML et Netscape promet l’intégration du langage Java dans de futures versions de ses navigateurs. Sans même encore écrire de code Java, il est possible d’intégrer des animations sonores et visuelles dans une page HTML sous forme d’”applet”. La portion de page HTML suivante est suffisante pour traiter une animation graphique ou un fichier son. Hot Java supporte déjà le son 8 kHz, 8 bits au format .au et est capable de réaliser une animation à partir d’une série de fichiers graphiques GIF. <BODY> My HelloWorld applet: <APP CLASS="ImageLoopItem" SRC="doc:/demo/" IMG="images/duke"> </BODY> Une application complète ressemble à ceci import browser.Applet; import awt.Graphics; class HelloWorld extends Applet { public void init() { resize(150, 25); } public void paint(Graphics g) { g.drawString("Subliminal Hello world!", 50, 25); } } On l’appelle dans le corps d’une page HTML avec la commande <APP CLASS=“HelloWorld”> Les mots réservés de la syntaxe Java sont finalement très peu nombreux : ( ill javaspec.gif) Les opérateurs sont identiques à ceux du langage C, des librairies C pouvant aussi être ajoutées à une application Java. Le concept de garbage collection est poussé à l’extrême puisque le programmeur ne doit jamais se soucier de libérer la mémoire, des file descriptors ou des contextes graphiques. Java est décrit à travers une machine virtuelle, un modèle abstrait et logique incluant un jeu d’instructions, un jeu de registres, un stack, un heap et une espèce de segment texte baptisé ici “method area”. Toute une série de classes prédéfinies permettent de jongler avec des objets de base aux noms évocateurs d’Url, Ftp, Http, telnet, smtp, nntp ou sockets. Bref, on dispose d’une librairie de classes World Wide Web très fournie et le développement d’applications Internet en est considérablement simplifié. L’intention de Sun n’est pas de faire de Java un langage propriétaire. Au contraire, les sources sont distribuées librement de manière à susciter la création d’extensions au langage. Plusieurs grandes entreprises ont déjà marqué leur intérêt pour le langage Java. Internet Shopping Network est en train de développer un système de vente aux enchères électroniques réunissant un maximum de 250 participants. Dimension X, une société de San Francisco, prépare divers projets Java pour plusieurs studios Hollywoodiens (Fox et Disney notamment) avec des animations sonorisées et des créations en 3D. Les navigateurs Hot Java sont disponibles gratuitement sur l'Internet pour les utilisateurs individuels, tandis que les kits pour développeurs seront payants. Sun vient de frapper très fort avec son langage Java. 70 pour cent des serveurs World Wide Web tournent sur stations Sun qui n’aura aucune peine à conserver cette avance si le puissant langage Java rencontre le succès qu’il mérite. [email protected]