Предности и недостаци објектно оријентисаног програмирања

Рачунарски код. Дубоко зелени екран

Већина модерних рачунарских и мобилних апликација користи ООП технике.

Кредит за слику: СоулАрт/иСтоцк/Гетти Имагес

Објектно оријентисани програмски језици као што су Ц++, Јава и Висуал Басиц развили су компјутерски научници како би убрзали програмирање и побољшали квалитет софтвера. ООП софтверске технике разбијају програме у функционалне блокове који се називају објекти, чинећи често потребним функције као што су контролна дугмад, управљање базом података и математика лакши за коришћење и дељење програмери. Међутим, предности долазе са компромисима као што су додатна сложеност софтвера и смањене перформансе.

Боља продуктивност

ООП технике примењују правила на програмеру која јој, на дуге стазе, помажу да обави више посла; готови програми раде боље, имају више функција и лакши су за читање и одржавање. Програми који не користе ООП обично су велике, непрекидне плоче текста попут веома дугачких поглавља у књизи. Када програмери уђу да га промене, текст на крају постаје неорганизован и теже га је пратити. Насупрот томе, ООП програмери узимају нове и постојеће софтверске објекте и "спајају" их заједно да би направили нове програме. Пошто библиотеке објеката садрже много корисних функција, програмери софтвера не морају тако често да поново измишљају точак; више времена одлази на израду новог програма.

Видео дана

Нижи трошкови програмирања

Посебно за веће пројекте, ООП помаже у смањењу трошкова рада програмирања. Особље које ради на пројекту може да развије сопствену библиотеку софтверских објеката, омогућавајући програмерима да лако користе рад једни других и смањујући сате потребне за развој програма. Са побољшаним квалитетом софтвера, програмери троше мање времена на поправљање неисправних програма, додатно смањујући трошкове рада.

Стрмија крива учења

Да би савладао ООП, почетник мора научити нове, апстрактне концепте као што су полиморфизам -- поновно коришћење објеката док им се додају нове карактеристике -- и инкапсулација -- сакривање делова интерних података објекта ради побољшања безбедности -- ниједна идеја се не налази у старијим стиловима програмирања. Не само да је за учење ових појмова потребно време, они могу бити превише сложени за млађе програмере или оне који програмирају само повремено.

Спорији софтвер

Објектно оријентисани софтвер може укључивати додатни код за одржавање који није потребан у другим компјутерским језицима; рачунар мора да изврши додатно програмирање, успоравајући време одговора апликације. За пројекте где је брзина важна, програмери могу изабрати да напишу делове који су временски најкритичнији у не-ООП језицима као што су асемблер или Ц, резервишући ООП код за прозоре или дугмад -- области у којима објекти имају јасан предност.