Critères de comparaison, évolutions des langages, et fonctionnalités.
Pfiou, j'ai tenté de tout lire, mais il me semble que le débat aborde beaucoup trop de concept pour comparer les 2 langages:
Est-ce qu'on compare les fonctionnalités, les performances, la diffusion selon le type de plate-forme, la présence sur le marché: autant de de sujet de débat.
ce qui m'intéresserais en priorité:
-En tant que responsable de projet: c'est ce que je peux faire du langage, est-ce qu'il est plus adapté à ma problématique, et moins compliqué ou plus rapide à utiliser, donc moins cher au développement?
-En tant que développeur: quel sera le langage dans lequel l'emploi marchera le mieux dans mon domaine, et ne risque pas de s'obsolétiser comme ce fut le cas de Basic ou Pascal?
Pour ouvrir sur un autre point, ce qui nous intéresse dans ce débat, c'est peut-être:
"Est-ce qu'il est possible d'avoir un seul langage unifié, le C++ ou le Java, pour répondre à toutes les problématiques?"
Je pense qu'à l'heure actuelle faudrait pour que ce soit le cas soit faire évoluer l'un des langages, soit en créer un 3ème, mais je ne suis pas convaincu par le C# .
<La question du proxy>
le proxy est par exemple utile pour analyser le code à l'exécution, notamment faire du profiling. J'ignore si le profiling est possible en C++, mais ce qui est sur, c'est que le proxy dynamique utilise l'invocation d'une méthode par son nom, ce que est de la pure réflecivité, et est donc impossible en C++.
il doit être en revanche possible de générer une classe de proxy avant la compilation, par un compilateur had-hoc.
edit: le mapping de données est également intéressant ;) mais pourrais être obtenu également par génération de code avant compilation.
La réflexivité n'est qu'une des fonctionnalités qui diffère entre Java et C++
On pourrait se demander lesquelles sont indispensables:
Code:
1 2 3 4 5 6
|
Java C++ Pour Contre
Réflexivité O N Exécution et chargement dynmique Compilation difficile et code plus lent
Héritage multiple N O meilleur factorisation Code compliqué, ambigu et Contournement possible par délégations
Generics/templates O O Code + modulaire et pas de casts Compliqué
Garbage collector O N Mémoire mieux gérée Désallocation plus lente et mal maitrisée |
etc.