Le World Wide Web est structuré de telle manière que la mission d'un navigateur ordinaire est purement passive. Le navigateur ne fait que transmettre à un serveur les requêtes de l'utilisateur, recevoir les fichiers expédiés en réponse à ces demandes, et les afficher.Toutes les tâches permettant de faire vivre les pages Web sont effectuées par le serveur. Les navigateurs actuels doivent maîtriser pratiquement tous les protocoles Internet et connaître tous les types de fichiers courants. Il doivent être en mesure d'afficher des images diponibles dans de nombreux formats. Enfin, ils doivent bien entendu pouvoir comprendre et exploiter les tags HTML. Les futurs navigateurs n'auront sans doute plus besoin de toutes ces connaissances. Par exemple, lors de l'insertion d'un fichier graphique enregistré dans un format inconnu sur une page Web, le driver nécessaire à l'affichage du graphique sera fourni du même coup sous forme d'Applet. La nécessité actuelle d'harmonisation pourrait être considérablement atténuée.
Java est né en 1991 dans un laboratoire de la Silicon Valley appartenant à Sun Microsystems. Sun avait mis en place une petite équipe de programmeurs chargée de concevoir un environnement de programmation pour des appareils d'électronique grand public. La cheville ouvrière de cette équipe était un jeune programmeur: James Gosling. James Gosling voulait faire de Java un langage optimisé pour une classe d'applications très particulières, très petites, interactives pouvant être téléchargées rapidement par un réseau et pouvant s'exécuter sur n'importe quel type de processeur. Il voulait corrigé les défauts du C++ qui est inapte à ces tâches, notamment par sa complexité excessive et son manque de robustesse dus aux facilités trop larges accordées aux programmeurs. Java est en quelque sorte un C++ apprivoisé.
Dans sa structure, Java est comparable au langage de programmation C++. Les Applets expédiés sur le réseau ne sont ni un code source, ni un code exécutable. Il s'agit pour ainsi dire d'un niveau intermédiaire, où les commandes sont appelées "bytecodes", car leur taille fait toujours un octet. Ce bytecode est valable sur tous les systèmes. Un interpréteur, qui sera intégré aux futurs navigateurs, traduit chaque bytecode, puis l'efface une fois le travail effectué. Java langage interprété.
Java a donc été conçu comme un langage interprété afin d'assurer sa portabilité sur toutes sortes de plateforme.Un programme exécuté sur la Java Virtual Machine (JVM), l'interpréteur de référence commercialisé par Java Soft, tourne plus lentement qu'un programme C++ compilé.
Bon nombre d'observateurs du monde de l'informatique prévoient que Java, ou des technologies similaires, auront une large influence sur l'évolution globale des techniques informatiques. Aujourd'hui, il est courant de voir chaque poste de travail, pourvu d'un PC puissant, sur lequel sont chargés de nombreux programmes standard, dont l'utilisation est réduite ou inexistante. Ainsi, chaque poste de travail informatisé a un prix de revient relativement élevé.
On prévoit donc la création, dans un futur proche, d'un nouveau type de machine. Il s'agira d'ordinateurs très bon marché, qui fonctionneraient pratiquement sans système de sauvegarde de masse. Ces appareils, qui devront naturellement être raccordés à un réseau, fonctionneront essentiellement grâce à cette nouvelle génération de navigateurs. Ces derniers se procureront chaque programme nécessaire au moment même où l'utilisateur en aura réellement besoin. Les premières machines réseau bon marché (Network terminals) ont été présentées au plublic en octobre 1996 par le trio IBM-ORACLE-SUN. Jini est un ensemble de technologies basées sur JAVA ayant pour objectif se
simplifier la programmation de systèmes distribués.
Historique de Java
Caractéristiques de Java
Comment faire pour accélérer Java, sans devoir en faire un langage compilé ce qui lui ferait perdre l'avantage de sa portabilité ? En différant la compilation à un moment plus proche de l'exécution. Beaucoup d'éditeurs (Borland, Symantec, Microsoft) travailent sur des compilateurs dynamiques qui compilent le code Java au dernier moment. Dans ce cas il n'y a pas de perte de portabilité, car les autres plateformes peuvent toujours exécuter le même code en mode interprété.
Perspectives d'avenir
Pour développer le marché de la domotique qui s'est toujours heurté à
la complexité de l'installation et de la configuration de systèmes informatiques
pour le grand public, SUN prévoit d'utiliser JINI.