A quoi sert Java ?

VulcanBrain

Architecte en herbe
22 Août 2015
256
5
75
Bonjour,

Ma question est un peu spéciale, car elle traite plus de l'environnement java que de Minecraft.
Je sais que Java est un langage de programmation et une plateforme pour les applications.

Mais c'est pas très clair pour moi. En fait à quoi sert le programme java qu'on utilise conjointement avec les jeux, applis et navigateurs web ? Que fait il ?

Merci de vos lumières.

Cordialement

VulcainBrain
 
Salut,
L'asm, le C, le C++ sont des langages natifs. Les instructions générés par ces derniers sont exécutés directement par le processeur, ce dernier est donc capable de les comprendre.

Un programme Java contient des instructions qui ne peuvent pas être comprit par le processeur. C'est le byte code java. La JVM (java virtual machine) s'occupe de transformer à la volé le byte code java en instructions natives qui peuvent être comprit par le processeur. Le processeur exécute ensuite ces derniers.

Le programme Java que tu installes sur ton ordinateur est le JRE (Java Runtime Environment), c'est justement lui qui contient la JVM ainsi que toutes les bibliothèques Java de base.

L'intérêt principal de l'approche de Java et qu'il est possible de faire un binaire unique qui pourra être exécuté sur n'importe quel ordinateur ayant une JVM (peu importe l'architecture du processeur et le système d'exploitation utilisé).

Un programme en ASM doit être presque complètement réécrit pour fonctionner sur une autre architecture. Et il y a du code à modifier pour le faire fonctionner sur un autre OS.
Un programme en C doit être compilé pour chaque architecture et chaque OS. Il peut avoir des variantes dans le code en fonction de l'OS ou de l'architecture. En général on utilise des conditions et les préprocesseurs afin d'avoir un code unique pour tous les OS (mais qui devrait être quand même compilé pour chaque OS / architecture, donc il y aura plusieurs binaires).


Je déplace la discussion dans la section informatique, ça me semble plus approprié.
 
Merci pour le cours professeur aha. J'ai appris un truc maintenant. Du coup le JRE, si on vulgarise la chose, c'est un interpréteur de code en gros ? Il traduit le code java ayant été programmé sur Minecraft pour le processeur, afin qu'il le comprenne ? C'est ça ?

Désolé de ne pas avoir choisi la bonne section.

EDIT : pour aller plus loin : le java n'est pas compris par le processeur ? Pourtant il a bien fallu un ordi, avec un process, pour avoir créé le code java non ? :D
 
Hello, je crois que j'ai compris, le C est natif et compris de base depuis le processeur, mais le java est donc un code non natif, qui a été programmé à la base en C. Mais comment rend on un langage natif ? N'est il pas possible de programmer les processeurs pour y rendre le java natif ?
 
La JVM est en C, pas le Java. Le java est un langage, pas un programme.

Pour qu'un langage soit natif il que ses instructions soit compréhensible pas le processeur.
Or les instructions du byte code Java ne le sont pas.

Il est peut-être possible de concevoir un processeur capable de comprendre nativement les instructions byte code, mais je ne suis pas sûr, ça dépasse mes connaissances.
 
Haha, les miennes aussi, mais je projette, je ne suis limité que par mon imagination.
 
Théoriquement, c'est possible, mébon, ça serait se faire chier pour rien.
Faudrait sans doute créer une nouvelle architecture etc...
Pour commencer, il faudrait que Apple et Windows se réconcilient question compatibilité...c'est pas gagné !