Критика ооп
Не дивлячись на окремі критичні зауваження на аресу ООП, в даний час саме ця парадигма використовується в переважній більшості промислових проектів. Проте, не можна вважати, що ООП є якнайкращою з методик програмування у всіх випадках.
Критичні вислови на аресу ООП:
Дослідження Thomas E. Potok, Mladen Vouk і Andy Rindos [1] показало відсутність значущої різниці в продуктивності розробки програмного забезпечення між ООП і процедурним підходом.
Крістофер Дейт указує на неможливість порівняння ООП і інших технологій багато в чому через відсутність строгого і загальновизнаного визначення ООП (C. J. Date, Introduction to Database Systems, 6th-ed., Page 650)
Олександр Степанов, в одному зі своїх інтерв'ю, указував на те, що ООП «методологічно неправильно» і що «. ООП практично така ж містифікація як і штучний інтелект.» ([2]).
Фредерік Брукс (Frederick P. Brooks, Jr.) в своїй статті «No Silver Bullet. Essence and Accidents of Software Engineering» (Computer Magazine; April 1987) указує на те, що найбільш складною частиною створення програмного забезпечення є « . специфікація, дизайн і тестування концептуальних конструкцій, а зовсім не робота по виразу цих концептуальних конструкцій.». ООП (разом з такими технологіями як штучний інтелект, верифікація програм, автоматичне програмування, графічне програмування, експертні системи і ін.), на його думку, не є «срібною кулею», яка могла б на порядок величини (тобто приблизно в 10 разів, як мовиться в статті) понизити складність розробки програмних систем. Згідно Бруксу «.ООП дозволяє скоротити тільки привнесену складність у вираз дизайну. Дизайн залишається складним за своєю природою.». ([3])
Едсгер Дейкстра указував: «. то про що суспільство в більшості випадків просить — це зміїне масло. Природно, „зміїне масло“ має дуже вражаючі імена, інакше буде дуже важко щось продати: „Структурний аналіз і Дизайн“, „Програмна інженерія“, „Моделі зрілості“, інформаційні системи“ (Management Information Systems), що „Управляють, „Інтегровані середовища підтримки проектів“, „Об'єктна орієнтованість“, „Рєїнжінірінг бізнес-процесів“.» — EWD 1175: The strengths of the academic enterprise
Никлаус Вірт вважає, що ООП — не більше ніж тривіальна надбудова над структурним програмуванням, і перебільшення її значущості, що виражається, зокрема, у включенні в мови програмування все нових модних «об'єктно-орієнтованих» засобів, шкодить якості програмного забезпечення, що розробляється.
Патрік Киллеліа в своїй книзі «Тюнінг веб-сервера-сервера» писав: «. ООП надає вам безліч способів уповільнити роботу ваших програм .»
Відома оглядова стаття проблем сучасного ООП-програмування перераховує деякі типові проблеми ООП — Чому об'єктно-орієнтоване програмування провалилося
Якщо спробувати класифікувати критичні вислови на аресу ООП, можна виділити декілька аспектів критики даного підходу до програмування.
Критика реклами ООП.
Критикується явно висловлюване або таке, що мається на увазі в роботах деяких пропагандистів ООП, а також в рекламних матеріалах «об'єктно-орієнтованих» засобів розробки уявлення про об'єктне програмування як про якийсь всемогутній підхід, який магічним чином усуває складність програмування. Як помічав багато хто, зокрема згадані вище Брукс і Дейкстра, «срібної кулі не існує» — незалежно від того, якої парадигми програмування дотримується розробник, створення нетривіальної складної програмної системи завжди зв'язане із значними витратами інтелектуальних ресурсів і часу. З найбільш кваліфікованих фахівців в області ООП ніхто, як правило, не заперечує справедливість критики цього типу.
Заперечування ефективності розробки методами ООП.
Критики оспорюють тезу про те, що розробка об'єктно-орієнтованих програм вимагає менше ресурсів або приводить до створення якіснішого ПО. Проводиться порівняння витрат на розробку різними методами, на підставі якого робиться вивід про відсутність у ООП переваг в даному напрямі. Враховуючи крайню складність об'єктивного порівняння різних розробок, подібні зіставлення, як мінімум, спірні. З іншого боку виходить що рівно так само спірні і твердження про ефективність ООП.
Продуктивність об'єктно-орієнтованих програм.
Указується на те, що цілий ряд «природжених особливостей» ООП-технології робить побудовані на її основі програми технічно менш ефективними, в порівнянні з аналогічними необ'єктними програмами. Не заперечуючи дійсно наявних додаткових накладних витрат на організацію роботи ООП-ПРОГРАММ (див. розділ «Продуктивність» вища), потрібно, проте, відзначити, що значення зниження продуктивності часто перебільшується критиками. У сучасних умовах, коли технічні можливості комп'ютерів надзвичайно великі і постійно ростуть, для більшості прикладних програм технічна ефективність виявляється менш істотна, чим функціональність, швидкість розробки і сопровождаемость. Лише для деякого, дуже обмеженого класу програм (ПО вбудованих систем, драйвери пристроїв, низькорівнева частина системного ПО, наукове ПО) продуктивність залишається критичним чинником.
Критика окремих технологічних рішень в ООП-мовах і бібліотеках.
Ця критика численна, але зачіпає вона не ООП як таке, а прийнятність і застосовність в конкретних випадках тих або інших реалізацій її механізмів. Одним з улюблених об'єктів критики є мова C++, що входить до числа найбільш поширених промислових ООП-3
