J'ai lu tout le fil de discussion et je suis globalement d'accord avec toi sur le fond.
Il est clair que poser du byte code par dessus une machine virtuelle elle-même exécutée par un OS, en toute logique, ne peut pas constituer une méthode plus performante ou même plus satisfaisante en terme d'utilisation des ressources qu'une conception fondée sur un programme directement exécuté par l'OS. Et quels que soient les artifices utilisés (appel de bibliothèques binaires externes, réutilisation du code déjà compilé just in time, ...).
Il est certain aussi que dans ce genre de débat avec les tenants de la chose, tu n'aura jamais le dernier mot, mais essaye de discuter de sécurité avec des militants Microsoft et tu auras les mêmes sensations.
Cependant, si les performance et l'utilisation des ressources ne sont pas optimals avec ce type d'architecture, si la portabilité est une légende dans la mesure où on compile du C/C++ sur beaucoup plus de plateformes différentes qu'il n'existe de JVM, Java en tant que technologie présente des avantages sympas :
- La compilation JIT offre des possibilités dynamiques qu'on peut difficilement imiter en C++ (ex: instanciation d'un objet à partir d'une classe désignée par une chaîne de caractères)
- L'abstraction poussée permet généralement un développement plus rapide pour, notamment lorsque l'application finale nécessite des performance, une maquette
- Lorsqu'on distribue un produit multi-plateformes, il est très agréable de n'en maintenir qu'une version et de laisser tes clients se démerder pour trouver la JVM adaptée à leur environnement
Java présente certainement bien d'autres aspects intéressants mais je ne suis pas assez versé dans ce truc pour les connaître.
Pour finir, au fait, un truc que je ne comprend pas, mais pourquoi, si Java est une technologie plus performante que le compilé, la libc n'est-elle pas développé en Java ? (j'ai vu la question mais pas de réponse)
[^] # Re: Excellent
Posté par Pipo2 . En réponse à la dépêche Le code de Java3D est disponible. Évalué à 0.
Il est clair que poser du byte code par dessus une machine virtuelle elle-même exécutée par un OS, en toute logique, ne peut pas constituer une méthode plus performante ou même plus satisfaisante en terme d'utilisation des ressources qu'une conception fondée sur un programme directement exécuté par l'OS. Et quels que soient les artifices utilisés (appel de bibliothèques binaires externes, réutilisation du code déjà compilé just in time, ...).
Il est certain aussi que dans ce genre de débat avec les tenants de la chose, tu n'aura jamais le dernier mot, mais essaye de discuter de sécurité avec des militants Microsoft et tu auras les mêmes sensations.
Cependant, si les performance et l'utilisation des ressources ne sont pas optimals avec ce type d'architecture, si la portabilité est une légende dans la mesure où on compile du C/C++ sur beaucoup plus de plateformes différentes qu'il n'existe de JVM, Java en tant que technologie présente des avantages sympas :
- La compilation JIT offre des possibilités dynamiques qu'on peut difficilement imiter en C++ (ex: instanciation d'un objet à partir d'une classe désignée par une chaîne de caractères)
- L'abstraction poussée permet généralement un développement plus rapide pour, notamment lorsque l'application finale nécessite des performance, une maquette
- Lorsqu'on distribue un produit multi-plateformes, il est très agréable de n'en maintenir qu'une version et de laisser tes clients se démerder pour trouver la JVM adaptée à leur environnement
Java présente certainement bien d'autres aspects intéressants mais je ne suis pas assez versé dans ce truc pour les connaître.
Pour finir, au fait, un truc que je ne comprend pas, mais pourquoi, si Java est une technologie plus performante que le compilé, la libc n'est-elle pas développé en Java ? (j'ai vu la question mais pas de réponse)