Introduction au langage Java

duke3d

Je me demande bien pourquoi je n’ai pas encore parlé du java sur ce blog alors qu’il s’agit de mon langage de programmation préféré. Et comme j’ai tout un tas d’astuces à vous faire partager sur ce langage si sympathique, je me devais de faire une courte introduction sur le langage, son utilité, sa raison d’être, etc.

Alors je vais tacher d’être clair et synthétique, ce qui signifie que je risque aussi d’en oublier. Pour les détails, se reporter à l‘article correspondant de Wikipedia (qui est un peu technique). Alors la première chose qu’il faut avoir en tête, c’est qu’autrefois (jusqu’à il y a 15 ans), les ordinateurs n’étant pas rapides, il convenait d’utiliser des langages de programmation très efficaces qui collent beaucoup à la machine pour en tirer une efficacité maximale. Exemples: le C, l’assembleur, voire même le langage machine pour les plus courageux (le langage machine n’apportant en fait pas grand chose de plus que l’assembleur). La contrepartie à payer était la suivante: La programmation était plus compliquée pour  le programmeur, et les programmes étaient dépendants du système d’exploitation et des caractéristiques physiques de l’ordinateur du programmeur.

De nos jours, les objectifs des programmeurs ont cependant changé. On dispose désormais de machines puissantes, et on veut des langages de programmation faciles d’utilisation permettant de faire de belles choses. Dans ce cadre, la programmation objet a de beaux jours devant elle, et le java en est une référence. Voici maintenant les caractéristiques principales de ce langage:

  • Programmation Objet
  • Sécurité
  • Fort typage et bonne Traçabilité des bugs.
  • Portablilité
  • Facilité d’utilisation et notamment facilité d’interfaçage avec les réseaux de télécommunications et les autres technologies.

Reste à expliquer ce qu’est la programmation objet. Nous verrons cela dans un article ultérieur. La portabilité est sans nul doute l’avantage le plus connu, puisqu’elle permet d’exécuter indifféremment le même langage sur des machines différentes équipées de matériels physiques différents et tournant sous des systèmes d’exploitation différents. Et voici comment ça fonctionne:

Lorsque l’on compile un code java, celui ci est traduit sous forme de bytecode par le compilateur. Le bytecode correspond en gros à une phase intermédiaire de compilation. Il s’agit de la phase la plus poussée jusqu’à laquelle on peut aller avant d’avoir à se préoccuper du système d’exploitation ou des caractéristiques physiques de l’ordinateur.

Ensuite, sur chaque ordinateur où l’on veut exécuter un programme java, on installe un programme que l’on appelle machine java. C’est ce programme qui va se charger d’interpréter le bytecode pour permettre son exécutions sur la machine en question. La machine java dépend bien sûr par contre du système d’exploitation. Alors c’est sûr que ça peut paraitre un peu bête d’un certain point de vue, parce que comparé à un programme écrit dans un autre langage, on installe deux programmes (la machine java +le programme) au lieu d’un seul, et qu’en plus l’exécution sera plus lente vu qu’il faut le temps que le bytecode soit interprété. Mais dés le moment où l’on installe plus d’un programme, on gagne au contraire en place, vu que toute l’interface avec le système est déjà là. Les développeurs gagnent énormément de temps puisqu’au lieu de devoir développer une version de leur programme par système d’exploitation cible, ils n’en ont plus qu’une à développer, et en outre les avantages de facilité d’utilisation, de communication, et de sécurité, alliés à la philosophie de l’orienté objet font du java un langage tout à fait incontournable et très en vogue en ce moment…

Parmis les facilités d’utilisation on notera par exemple le fait que le programmeur n’a plus à se soucier de l’usage de la mémoire. Les allocations et désallocations dynamiques sont gérées par le système de manière automatique grâce notamment à l’existence d’un programme qui tourne en tache de fond, le ramasse miettes (garbage collector en anglais), qui se charge de repérer les objets qui ne sont plus référencés, et ne peuvent donc plus être utilisés par le programme, et qui les désalloue automatiquement.

Bien sûr cet article reste vague, beaucoup de choses n’ont pas été dites, et il faut notamment savoir que tous les avantages cités ont tout de mêmes des limites, mais bon c’était un peu dur de  tout dire en l’espace d’un article ;).

Publicités

Une réflexion au sujet de « Introduction au langage Java »

  1. Ping : edito: Bilan de 4 mois de blogging « Aldian’s Blog

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s