Avantages et inconvénients de la programmation orientée objet (POO)
Les langages de programmation orientée objet (POO) comme C++, Java et Visual Basic ont été développés par des informaticiens pour accélérer la programmation et améliorer la qualité logicielle. La POO découpe les programmes en blocs fonctionnels appelés objets, rendant des fonctionnalités fréquentes (boutons, gestion BDD, maths) plus faciles à utiliser et partager. Mais ces avantages ont des contreparties : complexité logicielle accrue et performances réduites.
Meilleure productivité
La POO impose des règles qui, à long terme, aident le programmeur à en faire plus : programmes finis plus robustes, plus fonctionnels, plus lisibles et maintenables. Les programmes sans POO sont de gros blocs de texte continus, comme de très longs chapitres. Quand des programmeurs interviennent pour modifier, le texte devient désorganisé et difficile à suivre. En POO, on "coud" ensemble objets nouveaux et existants pour créer de nouveaux programmes. Comme les bibliothèques d'objets contiennent beaucoup de fonctions utiles, les développeurs ne réinventent pas la roue aussi souvent ; plus de temps va dans le nouveau programme.
Coûts de programmation réduits
Surtout pour gros projets, la POO réduit le coût de la main-d'œuvre. L'équipe peut développer sa propre bibliothèque d'objets, laissant les programmeurs réutiliser le travail des autres et réduisant les heures de développement. Avec une meilleure qualité logicielle, les développeurs passent moins de temps à corriger des programmes défaillants, réduisant encore les coûts.
Courbe d'apprentissage plus raide
Pour maîtriser la POO, un débutant doit apprendre de nouveaux concepts abstraits comme le polymorphisme — réutiliser des objets en y ajoutant des fonctionnalités — et l'encapsulation — cacher des parties des données internes d'un objet pour améliorer la sécurité — concepts absents des anciens styles de programmation. Non seulement ces concepts prennent du temps à apprendre, ils peuvent être trop complexes pour jeunes programmeurs ou ceux qui programment occasionnellement.
Logiciels plus lents
Le logiciel orienté objet peut entraîner du code de "ménage" supplémentaire inutile dans d'autres langages ; l'ordinateur doit exécuter ce code additionnel, ralentissant le temps de réponse. Pour projets où la vitesse est critique, les programmeurs peuvent écrire les parties les plus critiques en langages non-POO comme l'assembleur ou le C, réservant la POO aux fenêtres ou boutons — domaines où les objets ont un avantage clair.
