Bitcoin Forum
May 04, 2024, 09:47:11 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.)
Доверие - это разновидность мошенничества.
1714859231
Hero Member
*
Offline Offline

Posts: 1714859231

View Profile Personal Message (Offline)

Ignore
1714859231
Reply with quote  #2

1714859231
Report to moderator
1714859231
Hero Member
*
Offline Offline

Posts: 1714859231

View Profile Personal Message (Offline)

Ignore
1714859231
Reply with quote  #2

1714859231
Report to moderator
Even in the event that an attacker gains more than 50% of the network's computational power, only transactions sent by the attacker could be reversed or double-spent. The network would not be destroyed.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714859231
Hero Member
*
Offline Offline

Posts: 1714859231

View Profile Personal Message (Offline)

Ignore
1714859231
Reply with quote  #2

1714859231
Report to moderator
1714859231
Hero Member
*
Offline Offline

Posts: 1714859231

View Profile Personal Message (Offline)

Ignore
1714859231
Reply with quote  #2

1714859231
Report to moderator
1714859231
Hero Member
*
Offline Offline

Posts: 1714859231

View Profile Personal Message (Offline)

Ignore
1714859231
Reply with quote  #2

1714859231
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!