Bitcoin Forum
April 25, 2024, 12:54:32 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: ООП как... мифология разработки?  (Read 2137 times)
fruit (OP)
Legendary
*
Offline Offline

Activity: 1064
Merit: 1023


habr


View Profile
December 15, 2014, 05:39:10 PM
 #1


Почему объектно-ориентированное программирование провалилось?

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

    «Я уверен, что ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой.

    Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы приходите к тому, что вы в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле».

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

«Как только ты сказал слово „объект“, можешь сразу забыть о модульности»

    «ООП ради самой ООП уже давно превратилось в замкнутый круг. Конечно, можно считать C# в .NET 3.5 с более чем 50,000 реализованных классов „венцом эволюции“. Добавить в следующей версии .NET ещё миллион классов — что может быть более правильным и более вожделенным, с точки зрения ООП-программиста? Говорите, это и есть то самое бегство от сложности?» (на этом месте интервью Ричард демонстративно делает паузу и выкашливается от приступа смеха).

Java/C# не являются ни развитием, ни «осознанием ошибок» C++. Они взяли наихудшую парадигму из языка и возвели ее в степень настоящей догмы. А именно — идею наследования.

Наследование — это самая большая провокация в индустрии. Ни в каком моделировании наследования не существует (и в реальной жизни его нет тоже) — ни в электронике, ни в бухгалтерии, ни в политике, ни где бы то ни было еще. Есть лишь одна область, где наследование теоретически встречается — генеалогия (эй, парни, лучше не путать это с гинекологией). Но это не имеет ни малейшего отношения к тому, что называется наследованием в программировании. Все эти многоэтажные иерархии классов только усложняют жизнь программиста, вместо того, чтобы упрощать по своему замыслу.



Полня статья: http://blogerator.ru/page/oop_why-objects-have-failed


~DefaultTrust (Trust - is fraud.)
Доверие - это разновидность мошенничества.
Each block is stacked on top of the previous one. Adding another block to the top makes all lower blocks more difficult to remove: there is more "weight" above each block. A transaction in a block 6 blocks deep (6 confirmations) will be very difficult to remove.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714049672
Hero Member
*
Offline Offline

Posts: 1714049672

View Profile Personal Message (Offline)

Ignore
1714049672
Reply with quote  #2

1714049672
Report to moderator
bee7
Hero Member
*****
Offline Offline

Activity: 574
Merit: 523


View Profile
December 16, 2014, 03:20:14 AM
 #2

Любопытная статейка.

Думаю, что всё хорошо, когда мера соблюдается. Сейчас почти не принято (хотя в крипто- и криптовалютных технологиях этот вид оптимизации как раз встречается очень часто) писать критичные по времени участки кода на ассемблере, но 20 лет назад в любой статье по оптимизации можно было найти "правило 95%" - т.е. примерно 95% кода могут быть реализованы без ущерба для производительности на языке высокого уровня и, в худшем случае, около 5% подлежат скруппулезной оптимизации, в том числе, с использованием машинно-ориентированных языков.

Кстати, хороший, на мой взгляд, пример сбалансированного использования возможностей C++ - это биткоин-клиент. Код не перегружен разнообразием никчемных классов, при этом очень активно используется мехнизм шаблонов и перегрузки операций, что облегчает понимание сути кода и разработку (доработку/модификацию).

Т.е. если не ставить ООП как самоцель, а именно, что бы всё было кошерно и согласно вумным книжкам, то и эта технология имеет право на существование, на мой взгляд.
Wi-Fu
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


View Profile
December 16, 2014, 05:10:39 AM
 #3

Опять ООП провалилось?

Quote
Прошло ровно 10 лет с публикации..
Снова прошло 10 лет? Как-то знакомо это..

Нашел оригинал: http://rsdn.ru/article/philosophy/WhyOOP.xml

Осматриваем снизу
Quote
Эта статья опубликована в журнале RSDN Magazine #2-2010. Информацию о журнале можно найти здесь

Глянул дату первого коментария в блоге:
Quote
Дмитрий
21.09.2010 в 17:59

То есть статья 2010 года и тогда прошло 10 лет. То есть "ООП провалилось" где-то в 2000-м году..

Прошло почти 15 лет, а воз и ныне там. Неужели все так плохо?

awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
December 16, 2014, 07:51:38 AM
 #4

Просто парадигма ООП в программировании продолжает "проваливаться" точно так же, как Запад "загнивать", а доллар "рушиться"...

Was mich nicht umbringt macht mich stärker [F.N.]
bee7
Hero Member
*****
Offline Offline

Activity: 574
Merit: 523


View Profile
December 16, 2014, 12:18:58 PM
 #5

Просто парадигма ООП в программировании продолжает "проваливаться" точно так же, как Запад "загнивать", а доллар "рушиться"...

Проблема то именно в том, что запад действительно гниет (чего стоит разрешение однополых браков, например). Но это уже разговор о политике а не о ЯП.
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
December 16, 2014, 12:56:13 PM
 #6


Запад гниёт.
Север замерзает?
Юг поджаривается?
Восток - дело тонкое?  (всё что и приходит на ум... А где тонко, там и рвётся[логика Roll Eyes])

icreator
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
December 18, 2014, 06:18:23 AM
 #7

писал на Си и как только появился первый ООП - попробовал, думал - ура! можно создать мир объектов типа нашего мира и тд.
но - тьфу

во всех ООП пишу только статические классы - по сути подпрограммы

полезной сути в объектах не вижу - лишнее замусоривании памяти компа и снижение его скорости работы

вместо того чтобы хранить данные в массивах и обрабатывать их в продпрограммах - народ их пихает в объекты и создает кучу проблем - как по памяти так и по скорости

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
January 07, 2015, 10:42:05 PM
 #8

Т.е. если не ставить ООП как самоцель, а именно, что бы всё было кошерно и согласно вумным книжкам, то и эта технология имеет право на существование, на мой взгляд.

Именно так. Что то удобно, что то неудобно. Пользуйтесь тем, что когда и кому удобно.
Сдуру - можно и хер сломать, чего уж там...

Статья - повод поговорить журналюгам. Работа такая.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!