LINUX.ORG.RU

ООП - большой пузырь?

 


1

2

Доброго времени! По Вашему мнению, имеет ли смысл возня вокруг ООП? Все чаще ловлю себя на мысли, просматривая сорцы какого нибудь фреймворка, что всё слишком усложнено и виной этому ООП, скорее даже виной этому являются авторы кода, которые слишком глубоко упёрлись в программирование ради программирования. Код сложен, много слоёв абстракций, сложные иерархии наследования, примеси... Кажется все это существует чтобы просто усложнить процесс разработки и получать больше денег, больше занятости, имитировать деятельность. Не кажется ли вам, что просто Си или какой нибудь Го, проще для разработки реального кода в краткие сроки, вместо просиживания штанов за построением архитекторы ООП кода? Говорю с колокольни давнего ООПшника, который от этого дерьма подустал. Хоть в админство иди...


Ответ на: комментарий от Dark_SavanT

Детка, тыж пойми что для тебя «хорошей» будет то что является говном с т.з. архитектуры, ибо все остальное для тебя не понятно.

Deleted
()
Ответ на: комментарий от monk

Возьмём простую программу, перепишем её через классы, получилось на порядок больше кода. Зато, если, вдруг, нам когда-нибудь понадобится что-нибудь поменять, то это будет намного проще

Может в учебниках так и пишут, но такие учебники читать не стоит. Нормальное ООП сокращает количество строк экспонцеально. Самые выразительные языки — это именно ООП - языки. Причем, не на синтетических примерах, как хаскель например, а именно в реальном коде.

sadlinuxoid
()

Вот есть что-то нездоровое в самом словосочетании «объектно-ориентированное». Сразу веет чем-то сектантским, каким-то культом. Так то объект всего лишь ещё одна абстракция, ничего ужасного или прекрасного. А вот от этой «ориентации» и связанных с ним ритуальных практик действительно подташнивает. То же самое касается и пуристского ФП впрочем.

anonymous
()
Ответ на: is hoax было выше ужо али ? от qulinxao

Не даром он столько лет сливался в экстазе с плюсами. Кею, by contrast, одного взгляда хватило. Этот клоун не понимает вообще, что такое ООП. BTW, что он общего нашел между аксиомами и классами? может он реально больной? По его мнению, мы можем произвольным образом расширять аксиомы? Специализировать? Наследовать от них?

sadlinuxoid
()
Ответ на: is hoax было выше ужо али ? от qulinxao

I find OOP methodologically wrong. It starts with classes. It is as if mathematicians would start with axioms. You do not start with axioms - you start with proofs. Only when you have found a bunch of related proofs, can you come up with axioms. You end with axioms. The same thing is true in programming: you have to start with interesting algorithms. Only when you understand them well, can you come up with an interface that will let them work.

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

sadlinuxoid
()
Ответ на: комментарий от sadlinuxoid

Самые выразительные языки — это именно ООП - языки.

ЩИТО?

Берём что-нибудь с одинаковой функциональностью на ООп и не ООП и сравниваем. Например, есть SDK для couchbase. Для всех языков примерно одинаковая функциональность:

Для Си:

$ git clone https://github.com/couchbase/libcouchbase
...
$ cd libcouchbase/src
$ find -type f | xargs cat | wc
  36658  121136 1065986

Для Java

$ git clone https://github.com/couchbase/couchbase-java-client
$ git clone https://github.com/couchbase/couchbase-jvm-core
$ cd couchbase-java-client/src/main/java/com/couchbase
$ find -type f | xargs cat | wc
  36677  187165 1529007
$ cd -
$ cd couchbase-jvm-core/src/main/java/com/couchbase/client/
$ find -type f | xargs cat | wc
  33103  141556 1228744

Итого 36658 строк и 1065986 символов на Си против 69780 строк и 2757751 на Java.

monk ★★★★★
()
Ответ на: is hoax было выше ужо али ? от qulinxao

Да и не факт, что аксиомами все заканчивается, это не догмат. Без разницы вообще. Если начал с аксиом, и смог выстроить теорию, оставив их в неизменном виде, ок. Он и математик сильный, как я погляжу.

sadlinuxoid
()
Ответ на: комментарий от monk

А кто сказал, что жаба имеет что-то общее с ООП? Да и сравнения ты мутные берешь, надо еще доказать, что функциональность действительно одинаковая. Незачет.

sadlinuxoid
()
Ответ на: комментарий от sadlinuxoid

А кто сказал, что жаба имеет что-то общее с ООП?

А какой язык по-твоему ООП?

надо еще доказать, что функциональность действительно одинаковая

Заявлено производителем: http://developer.couchbase.com/documentation/server/4.0/sdks/intro.html

Через любой из них доступны все возможности Couchbase.

monk ★★★★★
()
Ответ на: комментарий от monk

На них есть хоть один крупный проект (кроме Ruby on Rails)?

Да какая разница? Главное, что библиотеки доступа к couchbase у них занимают 0 строк и 0 символов, что явно круче библиотек на остальных языках, типа этих твоих Сишных 37к и 1М соответственно. =)

Хотя, думаю, для руби всё же есть реализация.

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

для руби всё же есть реализация.

Реализация для руби использует Сишный libcodebase + 10 строк на Си для создания рубевских объектов. Можешь попробовать осилить нативную реализацию...

monk ★★★★★
()
Ответ на: комментарий от monk

А какое это имеет отношение к вопросу? Ынтырпрайзное быдло не может писать на таких ЯП, поэтому их и нет, так всегда было и будет. Это судьба всех подобных вещей на земле, не только языков. Прекрасное подыхает, а уродливое расцветает и процветает. В разных вариациях причем. Например, scheme и cl не имея ничего общего с лиспом, навесили на себя ярлык лиспа и процветают, а лисп, тем временем издох давно. То же самое и с джавой. Псевдоооп для контор с синими воротничками, негодный язык, который почивает на лаврах смоллтока. ИЧСХ, кстати, один веселый гай приложил ко всем 3 руку. Совпадение?

sadlinuxoid
()
Ответ на: комментарий от sadlinuxoid

Кстати, даже если абстрагироваться от бредовости ассоциаций этого шалунишки, он все равно не прав.

Шалунишку зовут Александр Степанов. Почему-то цитата дана без указания авторства.

uuwaan ★★
()
Ответ на: комментарий от qulinxao

Ты привел пруф моих же слов

The modernist tendency in computing is to engage in totalizing discourse in which one paradigm or one story is expected to supply all in every situation. Try as they might, OO’s promoters cannot provide a believable modernist grand narrative to the exclusion of all others. OO holds no privileged position. So instead of Java for example embracing all the components developed elsewhere, its proponents decided to develop their own versions so that all computing would be embraced within the Java narrative.

Objects, as envisioned by the designers of languages like Smalltalk and Actors—long before C++ and Java came around— were for modeling and building complex, dynamic worlds. Programming environments for languages like Smalltalk were written in those languages and were extensible by developers. Because the philosophy of dynamic change was part of the post-Simula OO worldview, languages and environments of that era were highly dynamic.

But with C++ and Java, the dynamic thinking fostered by object-oriented languages was nearly fatally assaulted by the theology of static thinking inherited from our mathematical heritage and the assumptions built into our views of computing by Charles Babbage whose factory-building worldview was dominated by omniscience and omnipotence.

Абсолютно верно сказано, стопудово. Я примерно о том же тут и распинаюсь:) Только не ясно к чему ты это привел:) ты бы хот откомментировал как-то?

sadlinuxoid
()
Ответ на: комментарий от uuwaan

Шалунишку зовут Александр Степанов

Спасибо кэп, я в курсе

Почему-то цитата дана без указания авторства.

это был отвер на пост со ссылкой, поэтому так. Из контекста ясно все. Кому интересно, тот найдет, нет нужды дублировать

sadlinuxoid
()
Ответ на: комментарий от monk

Можешь попробовать осилить нативную реализацию...

Нет, спасибо. =)

korvin_ ★★★★★
()
Ответ на: комментарий от sadlinuxoid

Ынтырпрайзное быдло не может писать на таких ЯП, поэтому их и нет, так всегда было и будет.

Как будто couchbase выбирает Ынтырпрайзное быдло, а не всякие хипстеры, типа рубильников. Ынтырпрайзное быдло всегда и везде использует СУБД от Оракл, например.

korvin_ ★★★★★
()
Ответ на: комментарий от anonymous

Да конечно, все знают, что веб пишут только дауны. То ли дело формошлепство, вот там по-настоящему крутые парни.

Зачем ты передергиваешь? Вэб пишут не только дауны, но и дауны тоже. Причем их тут гораздо больше.

Suntechnic ★★★★★
()
Ответ на: комментарий от qulinxao

Кстати, сильно сказано,

was nearly fatally assaulted by the theology of static thinking inherited from our mathematical heritage

Габриэль красава, ваще:) надо запомнить:) Спасибо за статью

sadlinuxoid
()
Ответ на: комментарий от Suntechnic

Причем их тут гораздо больше.

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

sadlinuxoid
()
Ответ на: комментарий от Suntechnic

Зачем ты передергиваешь?

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

anonymous
()

Разве программист это не такое существо что подобно экстремофилам варится в ООП и не погибает от этого?.. ;)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от monk

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

Suntechnic ★★★★★
()
Ответ на: комментарий от sadlinuxoid

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

Не соглашусь. Дело в том, что хот сколько нибудь сложные событийно-ориентированные вещи пишут единицы. А их потом дорабатывают при практическом применении. Где ты видел столько форков любого десктопного приложения, сколько имеет любой, даже самый никудышний фреймворк в вэбе?

Suntechnic ★★★★★
()
Ответ на: комментарий от anonymous

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

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

Suntechnic ★★★★★
()
Ответ на: комментарий от anonymous

А че ты мне за левак кидаешь? Ты думаешь я не знаю кто такой Карри, или чо? Это тот самый чувак, который взял труды нашего математика Шонфенкеля, и выдал их за свои, попутно еще свое позорное имя приклепав — каррирование ога, которое так и не стало шонфенкелированием, такая шуточка ходит в научных кругах. Ему и так есть там, короче, от чего перевернуться на 360, а может даже не в гробу, а на сковороде.

Ладно, ближе к делу. Причем тут ООП?

sadlinuxoid
()
Ответ на: комментарий от sadlinuxoid

Ладно, ближе к делу. Причем тут ООП?

В том-то и дело, что ни при чём. ООП - это изначально ненужный маркетоидный костыль для индусокодеров.

anonymous
()
Ответ на: комментарий от anonymous

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

sadlinuxoid
()
Ответ на: комментарий от Suntechnic

Потому что мой самый крупный заказчик компания которая сама почти ничего не делает, а берет на поддержку сайты после других разработчиков и саппортов.

Ты формошлепного легаси наверно не видел? Какую-нибудь бэк-офисную херотень на плюсах (или дельфи!), которую 5 поколений нубов писали-дописывали. Легаси - оно всегда адово.

anonymous
()
Ответ на: комментарий от sadlinuxoid

ядро ничем не отличается от юзерлевел, концептуально это одно и то же

Слишком легко выстрелить себе в ногу. И сложнее выделить пакет изменениями для переноса на другую машину/версию платформы.

Разве что расширения просто складывать в конфигурационные файлы, но тогда это Emacs с неудобным языком программирования.

monk ★★★★★
()
Ответ на: комментарий от Midael

javadoc в зачет плохой выразительности пошел?

Нет. Комментарии в .h и в описании интерфейсов практически идентичны.

monk ★★★★★
()
Ответ на: комментарий от siraenuhlaalu

Где абстрактная фабрика? Где билдеры? А если придется писать декоратор, твой Понимать к этому готов? А в кластере этот сервис работать будет?

bytecode ★★
()
Последнее исправление: bytecode (всего исправлений: 1)

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

anonymous
()

ООП - большой пузырь?

Да.

А вообще это удобная абстракция позволяющая при правильном использовании делать легко поддерживаемый и расширяемый код.

rezedent12 ☆☆☆
()

Тебе нужен однозначно Haskell, так как там менее сложный ООП.

HyperCOGENT
()

Программирование ради программирования - не совсем плохо. Рай для эстетов, романтиков, ботанов. :)

Vinni_Pooh ★★★★★
()

Народ не то что функциональное программирование, банальный if по-уму написать не могут, а вы их от готового ООП отнять желаете. Как они после этого работать будут? Те, кто освоил в основном С++ и особенно Pythom (кстати, если будешь сисадмин, то на нем будешь писать больше, чем программистом) никогда тебя не поймут. Они будут месяц искать готовое решение, в то время как на том же Perl это решение напишешь в одну строку и будет работать.

alkash
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.