« Java » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 2 : Ligne 2 :


==Introduction==
==Introduction==
Java est un language de programmation orienté objet. Développé par Sun Microsystems ([http://www.sun.com Sun]) au début des années 1990.
Java est un langage de programmation orienté objet. Développé par Sun Microsystems ([http://www.sun.com Sun]) au début des années 1990.


==Historique et particularités==
==Historique et particularités==
A l'origine, le projet Green fonde les bases d'un language orienté objet ayant comme particularité d'être multi-plateforme. Mais le projet est abandoné faute d'applications. Peu de temps après, Netscape cherche une technologie pour rendre les pages Web un peu plus attrayantes et dynamiques. Sun Microsystems resort sont projet des cartons et lance Java avec ses fameuses "Applets" ([http://fr.wikipedia.org/wiki/Applet ici pour plus de détails])
A l'origine, le projet Green fonde les bases d'un langage orienté objet ayant comme particularité d'être multi-plateforme. Mais le projet est abandonné faute d'applications. Peu de temps après, Netscape cherche une technologie pour rendre les pages Web un peu plus attrayantes et dynamiques. Sun Microsystems ressort sont projet des cartons et lance Java avec ses fameuses "Applets" ([http://fr.wikipedia.org/wiki/Applet ici pour plus de détails])


Le language Java a de multiple facettes. La première d'entre elle se situe dans son mode de distribution, car en effet, son code source est accessible en Open Source. De plus, son accès est libre et gratuit. (Attention à l'amalgame, Open Source ne veut pas forcément dire gratuit, [http://www.lesoir.be/la_vie_du_net/actunet/open-source-vs-logiciel-libre-2009-04-03-699344.shtml ici pour plus d'infos]). Comme on le sait, Internet connais un essort incroyable grace au Web et tiré par cet ascension, Java connais le même succès.
Le Java a de multiples facettes. La première d'entre elle se situe dans son mode de distribution, car en effet, son code source est accessible en Open Source. De plus, son accès est libre et gratuit. (Attention à l'amalgame, Open Source ne veut pas forcément dire gratuit, [http://www.lesoir.be/la_vie_du_net/actunet/open-source-vs-logiciel-libre-2009-04-03-699344.shtml ici pour plus d'infos]). Comme on le sait, Internet connait un essort incroyable grâce au Web et tiré par cette ascension, Java connait le même succès.


L'autre aspect est celui d'être multi-plateforme, c'est à dire que les programmes écrits en java peuvent s'exécuter de la même manière sur une plateforme Window, MacOS, Linux ou Solaris. Ceci est dû à son architecture faisant appel à une Machine Virtuelle (ou VM)
L'autre aspect est celui d'être multi-plateforme, c'est à dire que les programmes écrits en java peuvent s'exécuter de la même manière sur une plateforme Windows, MacOS, Linux ou Solaris. Ceci est dû à son architecture faisant appel à une Machine Virtuelle (ou VM)


==Java Virtual Machine==
==Java Virtual Machine==
Si l'on devait résumer deux mondes concernant l'exécution d'un programme informatique, on pourrait les décrire comme suit:
Si l'on devait résumer deux mondes concernant l'exécution d'un programme informatique, on pourrait les décrire comme suit:


===Programme complié===
===Programme compilé===
Un programme complié est une succession de commandes écrites dans un language informatique, et qui une fois lu par le ''compliateur'' est traduit en un programme directement lisible par le microprocesseur d'un ordinateur. L'ordinateur charge le programme ainsi compilé d'un bloc dans sa mémoire et la machine l'exécute.
Un programme compilé est une succession de commandes écrites dans un language informatique, et qui une fois lu par le ''compilateur'' est traduit en un programme directement lisible par le microprocesseur d'un ordinateur. L'ordinateur charge le programme ainsi compilé d'un bloc dans sa mémoire et la machine l'exécute.
* Avantage: l'exécution d'un tel programme est rapide
* Avantage: l'exécution d'un tel programme est rapide
* Désavantage: le programme ne peut être exécuté que sur un seul type de processeur pour qu'un seul type de système d'exploitation. Si l'on veut changer de machine, il faut utiliser un autre compilateur, voir même modifier le programme source.
* Désavantage: le programme ne peut être exécuté que sur un seul type de processeur pour qu'un seul type de système d'exploitation. Si l'on veut changer de machine, il faut utiliser un autre compilateur, voir même modifier le programme source.


===Programme interprété===
===Programme interprété===
Un programme interprété possède la caractéristique d'être lu commande par commande par une module d'interprétation (qui est lui-meême un programme), et c'est ce module qui va, en fonction de ce qu'il lit, communiquer les commandes au microprocesseur une par une, et non pas d'un seul bloc.
Un programme interprété possède la caractéristique d'être lu commande par commande par une module d'interprétation (qui est lui-même un programme), et c'est ce module qui va, en fonction de ce qu'il lit, communiquer les commandes au microprocesseur une par une, et non pas d'un seul bloc.
* Désavantage: l'exécution est plus lente qu'un programme complié
* Désavantage: l'exécution est plus lente qu'un programme compilé


Et Java dans tout ça?
''Et Java dans tout ça?''
Ce dernier a une forme hybride. Le programme Java est d'abord précompilé, c'est à dire qu'il passe tout de même par une phase de transformation vers un langage proche du processeur (appelé le byte-code) et qui permettera une exécution plus rapide. Le résultat de cette opération produit un code qui est identique pour toutes les plateformes. Arrive ensuite une étape d'interprétation qui va exécuter le programme à proprement parler. C'est cet interpréteur que l'on appelle la Machine Virtuelle. Pourquoi cette méthode?
Ce dernier a une forme hybride. Le programme Java est d'abord précompilé, c'est à dire qu'il passe tout de même par une phase de transformation vers un langage proche du processeur (appelé le byte-code) et qui permettra une exécution plus rapide. Le résultat de cette opération produit un code qui est identique pour toutes les plateformes. Arrive ensuite une étape d'interprétation qui va exécuter le programme à proprement parler. C'est cet interpréteur que l'on appelle la Machine Virtuelle. Pourquoi cette méthode?
;Avantages
;Avantages
:Le programme est plus rapide à exécuter car pré-complié. Donc, phase d'interprétation plus rapide.
:Le programme est plus rapide à exécuter car pré-compilé. Donc, avec une phase d'interprétation plus rapide.
:Le byte-code est identique sur tous les ordinteurs, il suffit que celui-ci intègre un environnement d'exécution Java (JVM: Marchine Virtuelle Java) et le programme s'exécutera sur n'importe quel plateforme.
:Le byte-code est identique sur tous les ordinateurs, il suffit que celui-ci intègre un environnement d'exécution Java (JVM: Machine Virtuelle Java) et le programme s'exécutera sur n'importe quel plateforme.


C'est pour cela que l'on retrouve des applications écrites en Java sur PC, Mac ainsi que sur téléphone portable ou encore PDA.
C'est pour cela que l'on retrouve des applications écrites en Java sur PC, Mac ainsi que sur téléphone portable ou encore PDA.


==Paradigme objet==
==Paradigme objet==
Le paradigme objet se place assez tôt dans l'histoire de l'informatique et paradoxalement tard dans le monde du développement commercial. Simula (~1960), considéré comme le premier langange objet, avais la prétention de "simuler" le mode de pensée humain pour résoudre un problème.
Le paradigme objet se place assez tôt dans l'histoire de l'informatique et paradoxalement tard dans le monde du développement commercial. Simula (~1960), considéré comme le premier langage objet, avais la prétention de "simuler" le mode de pensée humain pour résoudre un problème.
En effet, si on considère grossièrement le raisonnement humain, on constate qu'il est plus enclin à schématiser un ensemble d'éléments d'un "monde" restreint qu'à échafauder des algorithmes linéaires.
En effet, si on considère grossièrement le raisonnement humain, on constate qu'il est plus enclin à schématiser un ensemble d'éléments d'un "monde" restreint qu'à échafauder des algorithmes linéaires.


Or, c'est le propre du mode de pensée objet. Philosophiquement, il ne fait pas appel à la thèse de Pascal (tout problème peut se décomposer en une somme finie de sous problèmes), mais plutôt à la manière d'Aristote qui définit un "objet" comme un ensemble d'attributs (un caillou a tel taille, tel poids, tel forme, tel couleur, etc) et des méthode pour modifier ces attributs.
Or, c'est le propre du mode de pensée objet. Philosophiquement, il ne fait pas appel à la thèse de Pascal (tout problème peut se décomposer en une somme finie de sous problèmes), mais plutôt à la manière d'Aristote qui définit un "objet" comme un ensemble d' ''attributs'' (un caillou a telle taille, tel poids, telle forme, telle couleur, etc.) et des ''méthodes'' pour modifier ces attributs.
Dont pour finir, qui place la résolution au niveau d'une interaction entre les objets plutôt que d'une séquence de tâches à effectuer dans un certain ordre.
Dont pour finir, qui place la résolution au niveau d'une interaction entre les objets plutôt que d'une séquence de tâches à effectuer dans un certain ordre.


[[Utilisateur:Roberto_R|Roberto R]]
[[Utilisateur:Roberto_R|Roberto R]]

Version du 15 octobre 2009 à 17:28

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Introduction

Java est un langage de programmation orienté objet. Développé par Sun Microsystems (Sun) au début des années 1990.

Historique et particularités

A l'origine, le projet Green fonde les bases d'un langage orienté objet ayant comme particularité d'être multi-plateforme. Mais le projet est abandonné faute d'applications. Peu de temps après, Netscape cherche une technologie pour rendre les pages Web un peu plus attrayantes et dynamiques. Sun Microsystems ressort sont projet des cartons et lance Java avec ses fameuses "Applets" (ici pour plus de détails)

Le Java a de multiples facettes. La première d'entre elle se situe dans son mode de distribution, car en effet, son code source est accessible en Open Source. De plus, son accès est libre et gratuit. (Attention à l'amalgame, Open Source ne veut pas forcément dire gratuit, ici pour plus d'infos). Comme on le sait, Internet connait un essort incroyable grâce au Web et tiré par cette ascension, Java connait le même succès.

L'autre aspect est celui d'être multi-plateforme, c'est à dire que les programmes écrits en java peuvent s'exécuter de la même manière sur une plateforme Windows, MacOS, Linux ou Solaris. Ceci est dû à son architecture faisant appel à une Machine Virtuelle (ou VM)

Java Virtual Machine

Si l'on devait résumer deux mondes concernant l'exécution d'un programme informatique, on pourrait les décrire comme suit:

Programme compilé

Un programme compilé est une succession de commandes écrites dans un language informatique, et qui une fois lu par le compilateur est traduit en un programme directement lisible par le microprocesseur d'un ordinateur. L'ordinateur charge le programme ainsi compilé d'un bloc dans sa mémoire et la machine l'exécute.

  • Avantage: l'exécution d'un tel programme est rapide
  • Désavantage: le programme ne peut être exécuté que sur un seul type de processeur pour qu'un seul type de système d'exploitation. Si l'on veut changer de machine, il faut utiliser un autre compilateur, voir même modifier le programme source.

Programme interprété

Un programme interprété possède la caractéristique d'être lu commande par commande par une module d'interprétation (qui est lui-même un programme), et c'est ce module qui va, en fonction de ce qu'il lit, communiquer les commandes au microprocesseur une par une, et non pas d'un seul bloc.

  • Désavantage: l'exécution est plus lente qu'un programme compilé

Et Java dans tout ça? Ce dernier a une forme hybride. Le programme Java est d'abord précompilé, c'est à dire qu'il passe tout de même par une phase de transformation vers un langage proche du processeur (appelé le byte-code) et qui permettra une exécution plus rapide. Le résultat de cette opération produit un code qui est identique pour toutes les plateformes. Arrive ensuite une étape d'interprétation qui va exécuter le programme à proprement parler. C'est cet interpréteur que l'on appelle la Machine Virtuelle. Pourquoi cette méthode?

Avantages
Le programme est plus rapide à exécuter car pré-compilé. Donc, avec une phase d'interprétation plus rapide.
Le byte-code est identique sur tous les ordinateurs, il suffit que celui-ci intègre un environnement d'exécution Java (JVM: Machine Virtuelle Java) et le programme s'exécutera sur n'importe quel plateforme.

C'est pour cela que l'on retrouve des applications écrites en Java sur PC, Mac ainsi que sur téléphone portable ou encore PDA.

Paradigme objet

Le paradigme objet se place assez tôt dans l'histoire de l'informatique et paradoxalement tard dans le monde du développement commercial. Simula (~1960), considéré comme le premier langage objet, avais la prétention de "simuler" le mode de pensée humain pour résoudre un problème. En effet, si on considère grossièrement le raisonnement humain, on constate qu'il est plus enclin à schématiser un ensemble d'éléments d'un "monde" restreint qu'à échafauder des algorithmes linéaires.

Or, c'est le propre du mode de pensée objet. Philosophiquement, il ne fait pas appel à la thèse de Pascal (tout problème peut se décomposer en une somme finie de sous problèmes), mais plutôt à la manière d'Aristote qui définit un "objet" comme un ensemble d' attributs (un caillou a telle taille, tel poids, telle forme, telle couleur, etc.) et des méthodes pour modifier ces attributs. Dont pour finir, qui place la résolution au niveau d'une interaction entre les objets plutôt que d'une séquence de tâches à effectuer dans un certain ordre.

Roberto R