Personnelement, je trouve qu'il est plus dur de faire un "bon" programme C++, qu'un "bon" programme Java.
par "bon", je parle de lisibilité, de maintenabilité, d'extensibilité, de respect des paradigmes/regles, de fiabilité, et bien sur de perfomances.
Le C++ permet de TOUT faire, fonctionnellement parlant. Mais en terme de lisibilité, fiabilité, ... il faut etre un expert dans beaucoup de domaine:
- la programmation imperative (type C, avec variables globales)
- la programmation objet (type C++, avec instances de classes)
- la gestion structure/mémoire (struct/union/class, malloc/free/new/delete, tableaux/collections, pointeurs/reference/valeur)
Le Java permet de faire moins de choses que le C++, fonctionnellement parlant (pas de jeux, pas de drivers, ...) . Mais il est beaucoup plus facile de faire un "bon" programme car seule la maitrise du paradigme OO est necessaire.
Une fois que le design d'une classe est choisi (UML/Pattern), il n'y a generalement qu'une seule maniere de la coder (syntaxe restreinte, compilateur stricte, JDK standard).
En C++, on a toujours des "choix" possibles au mement de coder. Ce sont ces choix qui permettent des optimisations au niveau "performance" qu'on ne pourra pas faire en Java. Le probleme, c'est qu'un non-expert risque souvent de faire un mauvais choix pour des raisons de facilité d'ecriture.
Bien sur, ca n'empeche pas qu'il existe des mauvais programme Java (une classe, tout en static

) et de tres bon programme C++. Mais, de par mon experience, je trouve qu'il est plus facile d'analyser, comprendre et corriger une appli Java qu'une appli C++.
Petite question: Combien de règles faut-il respecter pour faire un "bon" programme C++ ? Et Java ?
Partager