Le C est tellement proche de l'implémentation machine qu'il sera toujours plus performant.
C'est indéniable en théorie, mais la pratique est tellement plus compliquée...
Les benchmarks dont on parle sont des petits problèmes purement algorithmiques : tri, recherche, inversion de matrices... Il semble assez évident que pour de tels problèmes, un assembleur optimisé sera mieux que C, qui sera mieux que C++, qui sera mieux que n'importe quel langage interprété.
Maintenant, dans la vraie vie, à quoi les CPU servent-ils? 99% du temps, à rien, et le reste, c'est quoi? Du jeu vidéo, de l'encodage/décodage de vidéo, du rendu dans les navigateurs, etc. Très souvent, ces choses sont plus ou moins optimisées, et le choix du langage est en général adapté (en tout cas, peu de jeux 3D sont codés en perl...).
Du coup, la vraie question, c'est si tu remplaces tous les scripts perl et python livrés avec ta distrib par des exécutables codés en C, tu vas gagner combien de temps et combien d'énergie? Ça sera sûrement assez négligeable.
Par contre, optimiser encore plus les algos les plus gourmands, ça peut être particulièrement efficace.
[^] # Re: Quid sur de gros programmes ?
Posté par arnaudus . En réponse au lien Faites du C pour sauver la planète!. Évalué à 2.
C'est indéniable en théorie, mais la pratique est tellement plus compliquée...
Les benchmarks dont on parle sont des petits problèmes purement algorithmiques : tri, recherche, inversion de matrices... Il semble assez évident que pour de tels problèmes, un assembleur optimisé sera mieux que C, qui sera mieux que C++, qui sera mieux que n'importe quel langage interprété.
Maintenant, dans la vraie vie, à quoi les CPU servent-ils? 99% du temps, à rien, et le reste, c'est quoi? Du jeu vidéo, de l'encodage/décodage de vidéo, du rendu dans les navigateurs, etc. Très souvent, ces choses sont plus ou moins optimisées, et le choix du langage est en général adapté (en tout cas, peu de jeux 3D sont codés en perl...).
Du coup, la vraie question, c'est si tu remplaces tous les scripts perl et python livrés avec ta distrib par des exécutables codés en C, tu vas gagner combien de temps et combien d'énergie? Ça sera sûrement assez négligeable.
Par contre, optimiser encore plus les algos les plus gourmands, ça peut être particulièrement efficace.