Absolument d'accord avec toi.
J'ajouterai juste que tu parles de quelqu'un qui s'y connait. Qui connait deja la plupart des pieges et qui sait s'en depatouiller. Bref, pas a la portee du premier venu. C'est pourquoi personnellement je prefere Java : le langage a justement ete cree (designe) de telle maniere qu'on ne puisse pas faire la plupart des erreurs qu'un debutant en C++ ferait.
De plus, Java incite a se concentrer sur l'algorithmique et non pas sur l'optimisation. Chose qu'on ne fait pas en c++, car comme tu dis en C++ on est conscient qu'un appel virtuel ca coute du temps, ... Mais il y a pire : si tu met ou il faut comme il faut des const tu permet au compilo de faire plus d'optimisations. Tu peux aussi declarer tout un tas de methodes inline pour encore plus optimiser ton code.
Ou je veux en venir ?? A ceci :
en C++ on perd trop de temps a penser son programme en tant qu'architecture + optimisation. Resultat au lieu de penser architecture propre, on degrade le cote architecture pour le cote optimisation, et a la fin on a un truc qui pourrait etre largement mieux d'un point de vue architecture.
Le point de vue de Java c'est : pensez architecture ! Les optimisations, c la JVM qui s'en charge. Ca ne doit pas etre votre probleme.
Bon, ca c'est la theorie. En pratique la JVM fait tourner ton programme nettement moins vite que ton compilo C++. Mais je trouve que ca va dans le bon sens. Et c'est ca qui compte. Car finalement le compilateur (ou la JVM) est l'entite la mieux place pour savoir ou mettre les optimisations.
Maintenant combien de temps ca prendra pour optimiser mieux que le programmeur ??
On arrive deja a pondre du code assembleur meilleur que le pekin qui s'y connait, je pense que cette etape viendra. Peut etre pas tout de suite mais elle viendra. Et en attendant, mieux vaut penser architecture propre, puis refaire une passe optimisation que l'inverse ... :-)
[^] # Re: Erreurs de C++
Posté par Epsos . En réponse à la dépêche C# et Java, une étude comparée. Évalué à 3.
J'ajouterai juste que tu parles de quelqu'un qui s'y connait. Qui connait deja la plupart des pieges et qui sait s'en depatouiller. Bref, pas a la portee du premier venu. C'est pourquoi personnellement je prefere Java : le langage a justement ete cree (designe) de telle maniere qu'on ne puisse pas faire la plupart des erreurs qu'un debutant en C++ ferait.
De plus, Java incite a se concentrer sur l'algorithmique et non pas sur l'optimisation. Chose qu'on ne fait pas en c++, car comme tu dis en C++ on est conscient qu'un appel virtuel ca coute du temps, ... Mais il y a pire : si tu met ou il faut comme il faut des const tu permet au compilo de faire plus d'optimisations. Tu peux aussi declarer tout un tas de methodes inline pour encore plus optimiser ton code.
Ou je veux en venir ?? A ceci :
en C++ on perd trop de temps a penser son programme en tant qu'architecture + optimisation. Resultat au lieu de penser architecture propre, on degrade le cote architecture pour le cote optimisation, et a la fin on a un truc qui pourrait etre largement mieux d'un point de vue architecture.
Le point de vue de Java c'est : pensez architecture ! Les optimisations, c la JVM qui s'en charge. Ca ne doit pas etre votre probleme.
Bon, ca c'est la theorie. En pratique la JVM fait tourner ton programme nettement moins vite que ton compilo C++. Mais je trouve que ca va dans le bon sens. Et c'est ca qui compte. Car finalement le compilateur (ou la JVM) est l'entite la mieux place pour savoir ou mettre les optimisations.
Maintenant combien de temps ca prendra pour optimiser mieux que le programmeur ??
On arrive deja a pondre du code assembleur meilleur que le pekin qui s'y connait, je pense que cette etape viendra. Peut etre pas tout de suite mais elle viendra. Et en attendant, mieux vaut penser architecture propre, puis refaire une passe optimisation que l'inverse ... :-)