image-fr-FR-00-18

« Salut, Amigo. Je suis le professeur Jean Brainiac. Je suis le directeur du Conseil scientifique du Voyageur interstellaire. Je supervise également nos efforts pour t'enseigner la programmation du langage Java. »

« Bonjour, professeur Brainiac. »

« Je voudrais t'expliquer pourquoi Java est un langage de programmation vraiment très cool. »

« Tu entendras souvent que l'avantage incomparable de Java est son indépendance vis-à-vis de la plateforme. Qu'est-ce que ça veut dire et à quoi ça sert, me diras-tu ? Laisse-moi t'expliquer de façon détournée. »

« Un ordinateur peut exécuter uniquement des commandes numériques simples. Pour dresser des chiens, nous utilisons des commandes comme « Au pied », « Assis », etc., pour qu'un chien fasse ce que nous voulons de lui. »

« Pour les ordinateurs, les nombres jouent le rôle de ces ordres. Chaque commande est représentée par un certain nombre ou code (parfois appelé code machine). »

« Mais il est vraiment difficile d'écrire un programme en utilisant uniquement des nombres, donc les gens ont inventé les langages de programmation et les compilateurs. Un langage de programmation peut être compris par les humains et les compilateurs. Un compilateur est un programme spécial qui convertit un programme écrit dans un langage de programmation en une série de codes machine. »

« En général, un programmeur écrit un programme dans un langage de programmation, puis exécute un compilateur, qui transforme les fichiers de code écrits par le programmeur en un fichier unique avec du code machine : le programme final (compilé). »

  • Programme en C++
  • Compilateur
  • Code machine

« Le programme résultant peut être exécuté par l'ordinateur immédiatement. La mauvaise nouvelle, c'est que le code du programme final dépend fortement du processeur et du système d'exploitation. Cela signifie qu'un programme compilé pour Windows ne fonctionnera pas sur un smartphone Android. »

« Alors, si j'écris un programme et que je le compile pour Android, il ne fonctionnera pas sous Windows ? »

« Exactement. »

« Oui, je vois. »

« Heureusement, Java utilise une approche beaucoup plus innovante. »

  • Programme en Java
  • Compilateur Java
  • Code spécial indépendant de la plateforme (bytecode)
  • JVM
  • Code machine

« Un compilateur Java ne compile pas toutes les classes en un seul programme de code machine. Au lieu de cela, il compile toutes les classes de manière indépendante et, qui plus est, pas en code machine, mais dans un code intermédiaire spécial (bytecode). Le bytecode est compilé en code machine lorsque le programme est lancé. »

« Alors qui compile le programme en code machine quand il est lancé ? »

« Il existe un programme spécial appelé Machine virtuelle Java (JVM). Il doit être lancé d'abord si tu as besoin d'exécuter un programme en bytecode. La machine virtuelle Java compilera le bytecode en code machine avant que le programme soit exécuté. »

« Intéressant. Mais à quoi ça sert ? »

« C'est une approche très puissante et l'une des raisons de la domination totale de Java. »

« Cette approche permet à d'exécuter des programmes écrits en Java sur pratiquement tous les appareils : ordinateurs, smartphones, distributeurs automatiques de billets, grille-pains et même cartes de crédit ! »

« Cool ! »

« Cette approche présente de nombreux avantages. C'est la raison pour laquelle tous les programmes Android sont également écrits en Java. Grâce à la croissance rapide de l'industrie du téléphone mobile, Java domine les domaines suivants de la programmation :

1) Entreprise : applications orientées serveur lourdes pour les banques, les grandes entreprises, les fonds d'investissement, etc.

2) Mobile : développement mobile (smartphones, tablettes), grâce à Android.

3) Web : PHP reste en tête, mais Java occupe une part croissante du marché.

4) Big Data : informatique distribuée dans des clusters (grappes) comprenant des milliers de serveurs.

5) Appareils connectés : programmes pour maisons connectées, appareils électroniques, réfrigérateurs IoT, etc. »

« Java est plus qu'un langage ; c'est une sorte d'écosystème : des millions de modules prêts à l'emploi que tu peux utiliser dans ton programme, et des milliers de communautés en ligne et de forums où tu peux obtenir de l'aide ou des conseils. »

« Plus tu écris de programmes en Java, plus tu trouveras de réponses à la question 'Pourquoi Java ?'. Ce sera tout pour aujourd'hui. »

« Merci professeur. C'était vraiment intéressant et stimulant. »