Envoyé par
Kurisu
Au grand risque de me repeter:
Le grand défaut de Java par rapport à C++, c'est qu'il faut la JVM pour faire tourner un programme Java.
Or il y a des plateformes pour lesquelles il n'existe pas de JVM (genre, Wii, DS et je parle là de mon expérience), donc ce débat ne se pose même pas.
Un programme C++ compilé de facon native pour une plateforme ne tournera, certes, que sur cette plateforme, mais il tournera. Et s'il est bien concu, il pourra facilement être recompilé pour tourner sur une autre plateforme.
Un programme Java par contre ne tournera que sur sa JVM, de préférence de la même version pour laquelle il a été concu. Il tournera sur d'autres plateformes, à condition que sa JVM existe. Donc pas de JVM, pas moyen de faire tourner le programme.
(Ok, on pourrait maintenant retorquer qu'il faut un compilateur C++ pour compiler son code en executable pour une plateforme donnée, mais un compile C++, ca se trouve plus facilement qu'une JVM).
Pour l'argument de la taille du code binaire, ca ne peut pas compter. Certes un objet C++ est gros. Il peut même devenir très gros si on inclut du code complètement inutile (ou des libs totalement inutilisées comme MSVC le sait si bien faire), mais une grosse partie du code binaire superflu va jarter pendant le passage dans le linker.
Pour ce qui est de ce débat, on pourrait aussi poser le même genre de questions pour d'autres languages... D, C#, Python, Perl, Ruby, Moo... Ca ne nous avancerait pas plus de toutes facons.
La seule question à se poser en début de projet reste de savoir si les coûts engendrés par le choix de telle ou telle technologie valent le profit à en tirer.
Donc si tel ou tel language permet d'économiser une certaine somme d'argent ou permettrait, à même coûts, de faire plus de profit, cela vaudra le coup de l'utiliser. Sinon, c'est de la peine perdue.
Je ne stopperai aucun développeur amateur de faire son jeu en Java ou en Brainfuck s'il le veut. Mais s'il veut devenir professionnel, il faudra s'adapter à démande du marché.
Partager