Interet de programmer un concurent de java en plus rapide?

  • Auteur de la discussion nicobzz
  • Date de début

nicobzz

Nouveau membre
bonjour, il y'a quelques années, pensant que le java n'était pas très performant, j'avais eu l'idée de créer une machine virtuelle pouvant tourner sur différent OS comme java mais utilisant un autre langage que le java, mais étant donné que cette machine virtuelle aurait utilisé d'autres astuces pour permettre la sécurité de l’exécution du code, le code exécuté aurait été quasiment aussi rapide que du C++.

Après quelques discussions sur de forum, on m'a dit que le java était quasiment aussi rapide que le C++.

Qu'en pensez vous? apparemment tout le monde n'est pas de cet avis!


 

Zharnt

Expert
Salut,

Tu mélange deux choses, d'abord Java est pas comparable à C++ car c'est un langage de plus haut niveau et beaucoup plus riche, pour faire la même chose en C++ qu'en Java tu doit ajouter des bibliothèques. A ce titre le concurrent de Java n'est pas C++ mais C#.

La plateforme Java propose un environnement Managé ce qui apporte des inconvénients mais aussi beaucoup d'avantages, et à ce titre le concurrent de Java c'est la plateforme Microsoft dotnet.

Donc le probleme de rapidité n'est pas seulement lié au langage mais à la plateforme d'une part, et d'autre part passer d'une compilation native à un environnement managé n'apporte pas que des inconvénients mais aussi beaucoup d'avantages.

A l'arrivée chacun choisi sa technologies selon ses besoins, certains éditeurs de logiciels utilisent encore C++ (pas tous) pour ses performances, alors qu'à l'inverse beaucoup de grand comptes pour leurs applications utilisent un environnement managé comme Java ou dotnet car cela apporte de nombreux avantages.
 

nicobzz

Nouveau membre
Quand tu parles d'environnement Managé, tu veux parler entre autre du garbage collector?

En fait pour être plus précis, mon projet aurait été un concurent de java sur le fait qu'il soit multi-platform, mais un concurent du C++ sur la manière dont on le programme.

Tu me diras alors pas besoin de créer une virtual machine pour faire tourner du C++ sur différentes Os facilement, il suffit de créer des librairies qui font le pont entre un code C++ commun à plusieurs OS et l'OS en question.
 

nicobzz

Nouveau membre
par contre ça garderait l'interet de ne pas à avoir à recompiler le programme si nouvel Os ou nouveau type de processeur.
 

batchy

Grand Maître
Si j'ai bien compris, tu voudrai une VM qui fait tourner du code pas managé. Pourquoi pas, mais je suis pas sur que les perfs soit bien meilleures que java. une VM ça bouffe quand même. Si tu veut de la perf, faut peut être plutôt trouver un moyen de compiler du bytecode en code natif

regarde quand même du coté de LLVM.
 

nicobzz

Nouveau membre
ben l'idée c'était de compiler le code sur la plateforme dans la virtual machine, comme java le fait d'ailleurs, mais sans forcément utiliser tout les trucs de java qui font qu'il est lent et prend beaucoup de mémoire.

En même temps j'avais commencé ce projet, je ne sais pas si j'aurais le temps de le terminé un jour, mais c'est clair qu'il faut d'abord chercher à savoir si ça peut être intéressant avant de se lancer dedans!

merci pour LLVM, ça a l'air sympa... Si jamais je me relance dedans.
 

nicobzz

Nouveau membre
ah oui à y regarde j'ai l'impression que LLVM c'était la même idée proche de la mienne, sauf que mon idée était de vraiment faire une virtual machine pour que ça soit sécurisé, qu'un programme lancé sur n'importe quel machine ne puisse rien abîmer.

Faudra que je regarde ça par curiosité!

j'avais programmé ça en fait à l'époque:
http://sourceforge.net/projects/mp-project/

j'ai mis beaucoup de temps mais je n'ai jamais terminé donc ça n'avait pas d'interet.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 811
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut