Java, un langage de programmation pour le Web…

I) Les origines du langage Java

Dans le milieu des années 80, un ingénieur de Sun Microsystems – James Gosling – trouve que les langages existants sont peu adaptés à ses besoins. Il souhaiterait disposer d’un langage puissant, de qualité, et qui lui permette d’exécuter ses programmes sur des plates-formes diverses allant du simple appareil électroménager jusqu’aux calculateurs les plus puissants. De cette idée naîtra un nouveau langage qui ne tardera pas à prendre le nom de Java.

Selon la légende, les concepteurs de Java ont donné à leur langage le même nom qu’une île du pacifique, dont l’économie repose essentiellement sur la production de café, car ils étaient eux même très friands de cette boisson.

La première version du langage Java a été mise au point en 1991. Java a connu depuis un essor considérable.

II) Les concepts du langage Java

1) La portabilité

Quand vous écrivez un programme dans le langage C, vous écrivez le code source du programme puis vous le compilez. La compilation vous fournit un code natif qu’il est possible d’exécuter sur la plate-forme pour laquelle il a été généré. Un programme C compilé pour une plate-forme Linux ne sera pas exécutable sur une plate forme Windows, et inversement : le code natif n’est pas portable. La compilation d’un programme Java produit par contre un byte-code qui n’est pas directement exécutable sur une plate forme. Le byte-code est interprété par un autre programme, appelé « Machine Virtuelle ». La machine virtuelle diffère donc d’une plate-forme à l’autre, mais le byte-code reste exécutable sur toutes les machines virtuelles pour lesquelles il a été conçu. L’exécution du byte code est certes moins performante que l’exécution directe d’un code natif, mais le gain en portabilité est un avantage non négligeable pour qui souhaite assurer la diffusion de ses applications.

2) La programmation Objet

Java est un langage orienté objet. Chaque programme est conçu comme un ensemble d’objets autonomes qui interagissent entre eux. Lorsqu’elles sont bien conçues, les bibliothèques d’objets sont facilement réutilisables. Elles permettent une organisation dans le programme qui facilite grandement le développement d’applications ainsi que les développements faisant intervenir de nombreux programmeurs. Assimiler les concepts de la programmation objet n’est pas chose évidente mais le programmeur ne tarde pas à en tirer un certain nombre de bénéfices.

III) Java et le Web

1) Les applets

La portabilité des applications développées en Java n’a pas tardé à attirer l’attention des développeurs de navigateurs. Ainsi, dès 1995, Netscape, très rapidement suivi par Microsoft, a intégré une machine virtuelle au sein de son navigateur.

Les programmes Java développés pour des navigateurs sont appelés des applets. Ils sont téléchargés par l’internaute et exécutés sur sa machine : ce sont des applications « coté client ». Ce type de comportement n’est pas sans danger car il n’est pas conseillé d’exécuter n’importe quel programme sur une machine. Afin d’éviter tout comportement nuisible, les applets ont des droits très restreints : ils ne peuvent ni lire, ni écrire de données sur la machine de l’internaute.

Aujourd’hui, Java constitue l’un des principaux supports d’applications « coté client ». Son principal rival est la technologie Flash de « Macromédia », moins lourde à mettre en œuvre et plus adaptée pour véhiculer des contenus multimédia.

2) Les Servlets et les JSP

Les servlets et les JSP – Java Server Pages – sont des solutions Java destinées à être utilisées « coté serveur ». Le principe est qu’un processus est exécuté sur le serveur chaque fois qu’un internaute effectue une requête. La ressource demandée est alors générée et renvoyée au demandeur. Pour l’internaute, ce processus est totalement transparent puisqu’il ne se rend même pas compte qu’il génère l’exécution d’un processus sur le serveur. Il existe plusieurs serveurs qui permettent de gérer les servlets, l’un des plus connu, en open-source, est le serveur Tomcat.

Un servlet est un programme à part entière qui se doit de générer la totalité de la ressource demandée par l’internaute. Un servlet est compilé comme un programme Java et déposé sur le serveur. Le fonctionnement des servlet s’apparente donc aux CGI – Common Gateway Interface – qui permettent d’exécuter des programmes écrits dans différents langages comme le C ou le Perl.

Une JSP – Java Server Page – s’apparente à une page HTML simple dans laquelle du code Java a été incorporé. La page est alors interprétée par le serveur qui génère une servlet correspondant à la JSP. Les JSP sont analogues aux pages PHP, à la seule différence près que les JSP sont compilée une fois pour toute par le serveur alors que les pages PHP sont interprétées à chaque appel de la page.

En matière d’application « coté serveur », c’est le langage PHP qui règne en maître. Les servlets et JSP constituent cependant des alternatives très crédibles, au même titre que des technologie plus ancienne comme les CGI/Perl ou que les ASP et autre solutions .NET de Microsoft.

IV) Conclusion

A l’heure du bilan, force est de constater que la technologie Java n’est pas la plus répandue. Elle possède cependant de nombreux atouts et est la seule technologie qui couvre à la fois les applications coté serveur et coté client.

Références

http://java.sun.com : Site officiel du langage Java
http://jakarta.apache.org/tomcat/index.html : Site web sur Tomcat