Повечето съвременни компютърни и мобилни приложения използват OOP техники.
Кредит на изображението: SoulArt/iStock/Getty Images
Обектно-ориентирани езици за програмиране като C++, Java и Visual Basic са разработени от компютърни учени за ускоряване на програмирането и подобряване на качеството на софтуера. Софтуерните техники на ООП разбиват програмите на функционални блокове, наречени обекти, което прави често необходими функции като бутони за управление, управление на база данни и математика, по-лесни за използване и споделяне между програмисти. Предимствата обаче идват с компромиси като допълнителна сложност на софтуера и намалена производителност.
По-добра производителност
ООП техниките налагат правила върху програмиста, които в дългосрочен план й помагат да свърши повече работа; готовите програми работят по-добре, имат повече функции и са по-лесни за четене и поддръжка. Програмите, които не използват ООП, обикновено са големи, непрекъснати блокове от текст като много дълги глави в книга. Когато програмистите се намесят, за да го променят, текстът в крайна сметка става неорганизиран и по-труден за следване. За разлика от тях, ООП програмистите вземат нови и съществуващи софтуерни обекти и ги „зашиват“ заедно, за да направят нови програми. Тъй като библиотеките с обекти съдържат много полезни функции, разработчиците на софтуер не трябва да изобретяват колелото толкова често; повече от времето им отделя за създаването на новата програма.
Видео на деня
По-ниски разходи за програмиране
Специално за по-големи проекти, OOP помага за намаляване на разходите за труд по програмиране. Служителите, работещи по проект, могат да разработят своя собствена библиотека от софтуерни обекти, позволявайки на програмистите да използват работата на другия лесно и намалявайки часовете, необходими за разработване на програми. С подобреното качество на софтуера разработчиците прекарват по-малко време в коригиране на неизправни програми, като допълнително намаляват разходите за труд.
По-стръмна крива на обучение
За да овладее ООП, начинаещият трябва да научи нови, абстрактни понятия като напр полиморфизъм -- повторно използване на обекти при добавяне на нови функции към тях -- и капсулиране -- скриване на части от вътрешните данни на обекта за подобряване на сигурността -- нито една от идеите не се среща в по-старите стилове на програмиране. Не само, че тези концепции изискват време за научаване, те може да са твърде сложни за по-младите потенциални програмисти или тези, които програмират само от време на време.
По-бавен софтуер
Обектно-ориентираният софтуер може да включва допълнителен код за поддръжка, който не е необходим на други компютърни езици; компютърът трябва да изпълни допълнителното програмиране, забавяйки времето за реакция на приложението. За проекти, при които скоростта е важна, програмистите могат да изберат да напишат най-критичните във времето части в не-OOP езици като асемблер или C, запазване на OOP код за прозорци или бутони - области, в които обектите имат ясна предимство.