Avantages et inconvénients de la programmation orientée objet
Les langages de programmation orientés objet tels que C++, Java et Visual Basic ont été développés par des informaticiens pour accélérer la programmation et améliorer la qualité des logiciels. Les techniques logicielles POO divisent les programmes en blocs fonctionnels appelés objets, ce qui facilite l'utilisation et le partage des fonctionnalités fréquemment utilisées telles que les boutons de commande, la gestion de base de données et les mathématiques entre les programmeurs. Cependant, les avantages s'accompagnent de compromis tels qu'une complexité logicielle accrue et des performances réduites.
Meilleure productivité
Les techniques POO appliquent des règles à un programmeur qui, à long terme, l'aident à faire plus de travail ; les programmes finis fonctionnent mieux, ont plus de fonctionnalités et sont plus faciles à lire et à entretenir. Les programmes qui n'utilisent pas la POO ont tendance à être de grands blocs de texte continus comme de très longs chapitres dans un livre. Lorsque les programmeurs interviennent pour le modifier, le texte finit par devenir désorganisé et plus difficile à suivre. En revanche, les programmeurs OOP prennent des objets logiciels nouveaux et existants et les "assemblent" pour créer de nouveaux programmes. Parce que les bibliothèques d'objets contiennent de nombreuses fonctions utiles, les développeurs de logiciels n'ont pas à réinventer la roue aussi souvent; une plus grande partie de leur temps est consacrée à la création du nouveau programme.
Réduction des coûts de programmation
Surtout pour les grands projets, la POO aide à réduire le coût de la main-d'œuvre de programmation. Le personnel travaillant sur un projet peut développer sa propre bibliothèque d'objets logiciels, permettant aux programmeurs d'utiliser facilement le travail des autres et réduisant les heures nécessaires pour développer des programmes. Grâce à une qualité logicielle améliorée, les développeurs passent moins de temps à réparer les programmes défectueux, ce qui réduit encore les coûts de main-d'œuvre.
Courbe d'apprentissage plus abrupte
Pour maîtriser la POO, un débutant doit apprendre de nouveaux concepts abstraits tels que le polymorphisme -- réutiliser des objets tout en leur ajoutant de nouvelles fonctionnalités -- et encapsulation -- cacher des parties des données internes d'un objet pour améliorer la sécurité -- aucune de ces idées ne se trouve dans les anciens styles de programmation. Non seulement ces concepts prennent du temps à apprendre, mais ils peuvent être trop complexes pour les jeunes programmeurs potentiels ou ceux qui ne programment qu'occasionnellement.
Logiciel plus lent
Les logiciels orientés objet peuvent impliquer un code de gestion supplémentaire qui n'est pas nécessaire dans d'autres langages informatiques; l'ordinateur doit exécuter la programmation supplémentaire, ce qui ralentit le temps de réponse d'une application. Pour les projets où la vitesse est importante, les programmeurs peuvent choisir d'écrire les parties les plus urgentes dans des langages non OOP tels que l'assembleur ou le C, en réservant le code OOP pour les fenêtres ou les boutons - domaines dans lesquels les objets ont un net avantage.