Merci pour l'information, je ne suis pas spécialiste en code mais le langage C++ est plus léger et stable pour le système?
Plus légers oui car le Java utilise ce que l'on appel une JVM (Java Virtual Machine). En gros, le Java n'est pas un langage où tu as un exécutable à la fin et des DLL de partout, ce sont des fichiers .class (ou des .jar, qui est l'archive java, équivalent du ZIP mais lancé par la JVM) qui ne sont pas utilisable sans la machine virtuelle ; c'est plus lent car c'est la JVM (donc un programme) qui exécute le programme, il n'y a pas non plus d'optimisations bas niveau possible dans le code du programme car c'est interne à la JVM.
En revanche, le Java a l'avantage que tu codes par exemple sous windows et l'utilise tel quel sous windows, linux, mac et tout autre système du moment que la JVM soit utilisable dessus et sans rien faire. Le revers de la médaille étant, que la JVM est gourmande en ressource et des problèmes (en particulier de sécurité) sont présent depuis le Java 1.3 voir 1.2 et jamais corrigé par Sun à l'époque et Oracle maintenant.
Le C++ lui, à l'avantage d'être "compilé" et directement exécutable par le système sans avoir besoin d'une machine virtuelle, donc l'exécution et plus rapide. En revanche, il faut compiler pour la plateforme, donc si tu codes sous windows, il faut recompiler sous linux (ou faire de la cross-compilation) pour que ça marche sous linux et ainsi de suite.
Le principal soucis du C++ c'est dans le choix des librairies, en effet il suffit pas d'aller compiler pour linux pour que ça marche dessus, il faut aussi que le programme utilise l'API du système qui est différent entre Windows, Linux, Mac et autres systèmes ; ainsi, soit il faut coder une version par plateforme (si le code est fait correctement, c'est à la compilation que les bons appels sont faits), soit utiliser une librairie multiplateforme (QT par exemple pour l'affichage de fenêtres, SFML pour faire des jeux 2D...), on fait alors appel à l'API de cette librairie à la place de l'API du système et c'est la librairie qui derrière dispose d'une version pour chaque plateformes cibles, il suffit donc qu'elle soit installée, on compile sur le système et c'est bon.
Chacun des deux à ses avantages et inconvénients, le principal soucis du Java c'est la sécurité de la JVM officielle et la pertes de performances induite par le fait que c'est interprété et pas exécutable directement par le système ; son avantage c'est qu'on code une fois pour toute, c'est la JVM qui fait les appels, pas le code.
Par contre le C++ lui à l'avantage de la vitesse avec les possibles optimisations bas niveaux et le fait que c'est un exécutable et non quelque chose d'interprété. Le problème en revanche étant qu'il faut compiler sur chaque plateforme cible et bien faire son choix au départ : API système ou librairie multiplateforme, et dans ce dernier cas, laquelle choisir vu qu'elles sont nombreuses.