is_реклам: Интернет-магазин оборудования песчаный фильтр для бассейна санкт петербург и сочи

пошук, категорії та ін. показати ▼

Чому ООП потерпіло крах?

Чому ООП потерпіло крах?
автор опубліковано

Ігор Савчук, підняв досить цікаву тему для обговорення в однойменній статті на своєму блозі, пропоную почитати її і вам. Стаття автора, переклад та адаптація зроблені мною. Ось стаття:

Пройшло 20 років з публікації відомої і класичної в світі програмування статті, написаної Річардом Гебріелом. Його стаття стала настільки гострою для свого часу, що визвала бурхливий сплеск обговорень серед програмістів, цілий ряд кодерів включились в відкриту полеміку із автором, від редакції відомого журналу серед програмістів Др. Доббс, до таких вчених як Енді Танненбаум.

Битва під час конференції

Автор цієї гучномовної статті, доктор компютерних наук Стендфорда, старший архітектор по розробці ПО спочатку Sun, в подальшому і в IBM, Річард Гебріел, ніколи не приховував свого скептичного ставлення до парадигми ООП. В 2002 році, автора запросили виступити, тепер уже наживо і перед великою аудиторією, - викласти свої критичні бачення на щорічній конференції OOPSLA (центральна конференція ІТ-спеціалістів по об'єктно-орієнтованим мовам і методологіям розробки ПО).

Для того щоб перетворити цей захід на шоу, по старій добрій американській традиції, в якості опонента запросили Гая Стілі, батька-розробника мови Scheme, крупного спеціаліста-теоретика по ООП. Щоб максимально відобразити всі сторони, їх вирішили укріпити ще двома учасниками. В якості "анти-об'єктника" додатково запросили Пола Грема, великого фахівця по Lisp, згідно вікіпедії в 1995 році разом із Робертом Моррисом вони створили перший в світі web-додаток - Viaweb, який в подальшому викупило у них Yahoo.

ООП як ... методологія міфологія розробки

Люди згадують, що у всіх склалося стійке враження, що аргументація Lisp'ерів була куди переконливіше і послідовніше, ніж прихильників ООП (цікаво, що головним доповідачем з ООП був творець мови Scheme - Головного сучасного діалекту того ж Lisp'а).

Пол Грем, стверджував, що половина всіх концепцій ООП є скоріше поганими, ніж хорошими, у зв'язку з чим він щиро співчуває ООП-програмістам. Тоді як друга половина від решти концепцій - і зовсім не має ніякого відношення до ООП, з якими їх чомусь постійно асоціюють

Наприклад, він говорить:

« У вісімдесятих роках метод повторного використання якимось незрозумілим мені чином почали пов'язувати з об'єктно-орієнтованим програмуванням, і як завгодно численні наявні докази зворотного, мабуть, уже не позбавлять цей метод від отриманого клейма.

Хоча іноді об'єктно-орієнтований код дійсно годиться для повторного використання, таким його робить зовсім не об'єктно-орієнтованість, а програмування в стилі "знизу вгору". Візьмемо, наприклад, бібліотеки: їх можна довантажувати і повторно використовувати скільки завгодно, тому що, по суті, вони являють собою окрему мову. І при цьому, зовсім неважливо, написані вони в об'єктно-орієнтованому стилі чи ні.»

Інший великий критик ООП - це відомий фахівець з програмування - Олександр Степанов , який працюючи в Bell Labs брав участь у створенні C + + разом c Бьерном Страуструпом , а згодом, вже на запрошення в HP Labs, написав Standard Template Library (STL).

Олександр Олександрович повністю розчарувався в парадигмі ООП, зокрема він пише:

« Я впевнений, що ООП методологічно невірна. Вона починає з побудови класів. Це як якщо б математики починали б з аксіом. Але реально ніхто не починає з аксіом, всі починають з доказів. Тільки коли знайдений набір відповідних доказів, лише тоді на цій основі виводиться аксіома. Тобто в математиці ви закінчуєте аксіомою.

Теж саме і з програмуванням: спочатку ви повинні починати розвивати алгоритми, і тільки в кінці цієї роботи приходите до того, що ви в змозі сформулювати чіткі і несуперечливі інтерфейси. Саме через цю плутанину в ООП так популярний рефакторинг - через ущербність парадигми ви просто приречені на переписування програми, вже в той самий момент, коли тільки задумали її спроектувати в ООП-стилі.»

Річард Столлман також відомий своїм критичним ставленням до ООП, особливо він любить жартувати щодо міфу об'єктників що ООП «прискорює розробку програм»:

«Як тільки ти сказав слово "об'єкт", можеш відразу забути про модульність»

« ООП заради самої ООП вже давно перетворилося на замкнене коло. Звичайно, можна вважати C#, .NET з більш ніж 50,000 реалізованих класів "вінцем еволюції". Додати в наступної версії .NET ще мільйон класів - що може бути більш правильним і більш жаданим, з точки зору ООП-програміста? Кажете, це і є та сама втеча від складності? » (На цьому місці інтерв'ю Річард демонстративно робить паузу і покашлює від сильного сміху).

Спадкування - це найбільша провокація в індустрії. Ні в якому моделюванні спадкування не існує (і в реальному житті його немає теж) - ні в електроніці, ні в бухгалтерії, ні в політиці, ні де б то не було ще. Є лише одна область, де спадкування теоретично зустрічається - гінеологія (агов, краще не плутати це з гінекологією). Але це не має ні найменшого відношення до того, що називається спадкуванням в програмуванні. Всі ці багатоповерхові ієрархії класів тільки ускладнюють життя програміста, замість того, щоб спрощувати за своїм задумом.

Томас Потік з MIT навіть провів масштабне прикладне дослідження , Яке продемонструвало, що немає ніякої помітної різниці в продуктивності між програмістами працюючими в ООП і в звичайному процедурному стилі програмування. «Це просто міф, який відмінно працює вкупі з невіглаством мас - якщо ви ніколи не бачили нічого крім ООП, як же взагалі ви можете в ній сумніватися?».

Ніклаус Вірт , творець мов Паскаль і Модула, один з творців структурного програмування , Стверджує, що ООП - не більш ніж тривіальна надбудова над структурним програмуванням, і перебільшення її вагомості, що виражається, зокрема, у включенні в мови програмування все нових модних «об'єктно-орієнтованих» коштів, безумовно, шкодить якості розроблюваного програмного забезпечення. Ніклаус дуже здивований тією увагою, яка приділяється нині ООП.

Ідеальна розробка з точки зору ООП ...

Про той самий виступ...

Майже всі пункти свого виступу і претензії до ООП як до парадигми, Річард Гебріел, пізніше, заново систематизував, з урахуванням широкого обговорення і критики, після чого все було зведено в брошуру Objects Have Failed, яку Річард виклав у вільний доступ разом з пояснюючими її слайдами. Після цього дуже сильного виступу в нього з'явилося дуже багато послідовників, які спробували систематизувати всі міфи і дефекти ООП у своїх численних статтях і роботах.

Сектантство в академічній науці

Щоб розкрити коріння подібного «культу окремо-взятій технології», Річард Гебріел несподівано порівнює нинішню ситуацію з ООП з провалом ефіродінамікі у фізиці початку 20 століття, коли, по суті, відбулася «тиха революція». Молоді прихильники теорії відносності, масово прийшли в номенклатуру університетів, тоді поступово захопили владу в галузі викладання фізики, нав'язавши свою маловідому, але настільки улюблену інтелектуалами того часу теорію відносності вже широким масам фізиків.

Насправді, в той час були як позитивні експерименти і досліди, що підтверджують існування ефіру, так і негативні. Перші були повністю проігноровані і виключені адміністративними заходами з усіх підручників фізики

Після чого ефір був незаслужено «закритий» і відправлений у відставку, і ось, вже нинішнє покоління студентів-фізиків навіть і не знає про ті вельми успішних дослідах по виявленню ефірного вітру.

«Ну і де ми тепер, з цієї вашої красивою теорією відносності, хто-небудь може мені назвати хоч якісь реально-практичні результати її застосування у вашій повсякденній життя після цілого століття її колупання і масового насадження?» - Як завжди уїдливо запитує Гебріел.

На думку Річарда, абсолютною точністю теж саме сталося і з ООП, яка в 80-их роках була проголошена «срібною кулею» у «боротьбі зі складністю буття програміста», була штучно і безальтернативно нав'язана в академічному середовищі, причому міфи, які кочують з підручника в підручник з ООП - «часто забавні і висмоктані буквально з пальця».

Замість висновку

Тільки час покаже, хто в підсумку виявиться правим, а хто в цій гарячій методологічній дискусії - щиро помилявся. Але в будь-якому випадку, особисто я за те, щоб у нас завжди залишалися можливості для альтернативних поглядів, хай навіть відмінних від вибору більшості (як провокаційно помічають американці в таких випадках - «лемінги не можуть помилятися»).

І так, будьте сміливіше в своїх пошуках і роздумах, не потрібно боятися, якщо в черговий раз в історії раптом виявиться, що ... «Король-то голий»!

За матеріалами сайту: http://blogerator.ru/

Висловлюйте свої думки в коментарях до посту, приємно буде дізнатись ваше бачення ситуації.

схоже за тегами

Коментарів 2

  1. В теорії практика і теорія мають збігатися. На практиці – ні:)
    В теорії Ліспи, Хаскелі і т. д. є чи не найкращими мовами програмування, а на практиці зараз повністю домінує ООП.

    • dnister.lark пише:

      Згідний із тим що теорія і практика мають крокувати разом, але на рахунок домінування ООП позволю не погодитись, скажу навіть те що на практиці домінує намагання зробити все як диктує ооп, бо це є ніби модно і сучасно, тому і отримується як би перевага останнього, і зовсім не через практичність цього підходу.

Залишити коментар:

Яндекс цитирования UA TOP Bloggers