PrécédentSommaire

La poire en 2

Internet a posé une nouvelle forme de problèmes à l'informaticien moyen : comment accéder à des documents et exécuter des programmes divers sur toutes les machines connectées au réseau, qui ont des architectures (microprocesseurs, systèmes d'exploitation…) différentes. Pour les documents, il a suffi de définir une norme (le HTML) selon laquelle ils sont décrits et que les logiciels de navigation doivent connaître. Pour les programmes, c'est le langage Java qui a apporté la solution. Celui ci est fortement inspiré de C++, qui est le langage de programmation par objets le plus répandu. Les concepts en ont tout de même été simplifiés et des sécurités ajoutées afin de faciliter les développements. Java est un langage compilé, ce qui permet d'éliminer bon nombre d'erreurs d'écriture dès le départ. Cependant l'exécutable obtenu n'est pas codé dans le langage machine d'un microprocesseur particulier mais en byte code, qui est en quelque sorte le langage machine d'un processeur virtuel. Tout ordinateur qui fait fonctionner des programmes écrits en Java doit avoir une partie de logiciel interprétant et traduisant le byte code. Le processeur virtuel est émulé de cette façon.

La question de l'universalité du poste de travail est ainsi réglée : tout ordinateur connecté à Internet peut exécuter tout programme Java que l'utilisateur y trouvera. Pourtant Java n'est pas la panacée parce que l'interprétation du byte code pose un problème de performances. Il n'est évidemment pas possible de réaliser une telle opération aussi vite que si c'était du langage machine directement utilisé par un microprocesseur. S'il est acceptable de consommer 10 ou 20 fois plus de temps de calcul pour effectuer une même tâche sur un micro-ordinateur (monoposte), celui d'un gros système coûte cher et ne doit pas être gaspillé. La solution pour implémenter des applications centralisées dans ces conditions est donc d'avoir des programmes spécifiques à une machine englobés dans des composants en Java. Ceux ci les masquent à l'utilisateur et ce procédé est appelé encapsulation (terme employé en programmation par objets).