
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"