Re[5]: Как мало людей понимает ООП...
От: elmal  
Дата: 28.07.12 03:44
Оценка:
Здравствуйте, IT, Вы писали:

IT>Другими словами твоя цель — контроль над сложностью проекта. Остальное побоку. Я прав?

Угу. А что, могут быть другие цели ? Типа фен шуй рулит ?
Re[14]: Как мало людей понимает ООП...
От: мыщъх США http://nezumi-lab.org
Дата: 28.07.12 04:13
Оценка: +2
Здравствуйте, Mamut, Вы писали:


M>Расскажи, как ложится на ООП-парадигму такое банальное описание, как «открыть дверь». С нетерпением жду

создать объект "дверь". у двери могут быть состояния: открыта, закрыта, закрыта-и-замкнута, на-обслуживании. у двери есть методы...

да, все это круто, но только в данном случае метод "открыть", вероятно, придется наследовать от абстрактного объекта от которого наследуется еще и окна, т.к. они открываются по аналогичной схеме. ящики в столе, как ни странно, тоже.

возникает вопрос -- что общего между окном и ящиком? в процедурном программировании можно создать функцию open(obj) и абстрагироваться от объекта (в частности, у окна может быть свойство прозрачности/матовости).

в случае ооп мы пишем obj->open(). поскольку obj приходится наследовать от абстрактного класса, которому трудно дать осмысленное имя, то добавление новых объектов затруднено и реально только в рамках одного компилятора.

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

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

не знаю как думаете вы, а я уверен, что в плюсах неправильный ооп и все беды идут от него. у меня в резюме заявлен пятнадцатилетный опыт. щас получит лет пять опыта в большом проекте. и только-только начал робко пробовать ооп с удивлением обнаружив, что я знаю как его готовить (местами). или я даун или одно из двух. а чего вы хотите от тех, кто сразу начал с ооп, других языков не видел, асм не курил и не под капот компилятора не заглядывал? причем, наблюдая за плюсами, я обнаруживаю как они героически решают проблемы, которые сами же и создают, в результате чего и без того переусложненный язык превращается в монстра.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[15]: Как мало людей понимает ООП...
От: мыщъх США http://nezumi-lab.org
Дата: 28.07.12 04:19
Оценка:
Здравствуйте, Steamus, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>>>Здравствуйте, samius, Вы писали:


S>Любой чел, который не спал последние 10 лет, хорошо знает, что этот эксперимент, совсем даже не мысленный, а чётко осязаемый, поставила сама жизнь. И в нём, со счётом миллион к одному, выиграли C++, Java и C#.


широко используется си (без плюсов). широко используется питон (на нем вроде как ютуб частями написан). широко используются JS и AS.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[8]: Как мало людей понимает ООП...
От: Философ Ад http://vk.com/id10256428
Дата: 28.07.12 04:45
Оценка:
Здравствуйте, 0x7be, Вы писали:

0> с тем ООП, которое мы наблюдаем в нынешнем мэйнстриме.


а мне вот больше нравится реализация ооп в MASM'е — вот там чистейшее ооп.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[8]: Как мало людей понимает ООП...
От: MTD https://github.com/mtrempoltsev
Дата: 28.07.12 05:39
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Смешно читать громкие, ничем не обоснованные заявления от людей на форумах.


Правильно — воздержись.
Re[15]: Как мало людей понимает ООП...
От: grosborn  
Дата: 28.07.12 05:44
Оценка: +2 -2 :))
> Любой чел, который не спал последние 10 лет, хорошо знает, что этот эксперимент, совсем даже не мысленный, а чётко осязаемый, поставила сама жизнь. И в нём, со счётом миллион к одному, выиграли C++, Java и C#.
> Эрланг, Хаскель и Лисп, так любимые ботаниками-маргиналами, далеко в аутсайдерах. Но, их нежно и с любовью пользуют там где они уместны. Давно уже не рассуждая об этих вещах. И тактично обходя любые дискуссии, дабы не задеть легкоранимое самолюбие кухонных теоретиков от ФП, давно и основательно дистанцировавшихся от реальной жизни.

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

Только вот эта... сейчас уже каждый ребенок знает функциональное программирование. И это естественно как сама жизнь. И ты вообще, ботаник маргинал
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[17]: Как мало людей понимает ООП...
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.07.12 05:46
Оценка:
Здравствуйте, Steamus, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>>>Любой чел, который не спал последние 10 лет, хорошо знает, что этот эксперимент, совсем даже не мысленный, а чётко осязаемый, поставила сама жизнь. И в нём, со счётом миллион к одному, выиграли C++, Java и C#.

S>>Я вижу что вы избегаете обсуждения своих тезисов о связи ООП с необходимой моделью, связи ООП с работой мозга, но легко переключаетесь на самолюбие кухонных теоретиков от ФП. Я фактически этого и ожидал.


S>Рад, что оправдал Ваши ожидания, но я тут (и не только тут) уже столько написал, что упрекать меня в том, что я чего-то там где-то избегаю — просто неприлично.

Вместо аргументации одного сомнительного тезиса вы приводите другой сомнительный тезис. А вместо его аргументации следуют эпитеты. Когда я вам указываю на противоречия, вы их скипаете. Имхо, упреки справедливы.

S>Я согласен с тем, что большинство программиеров книг про ФП не читали.

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

S>Но архитекторы обычно люди более широко эрудированные, и они таки понадкусывали эти книги. И многие даже используют ФП языки, ибо инструмент в своей нише — мощный. В своей нише. По сути в этом то и точка соприкосновения.

Ну вот а я считаю что там не точка соприкосновения, я считаю что ниши у подходов пересекаются в значительной мере. Причем я затрудняюсь назвать области, где рулит ООП и не рулит ФП. А наоборот — легко.
Так же считаю что мозг работает в большей мере таким образом, каким обучен. И что минимальная достаточная модель (по-вашему "реальная модель мира") вообще не относится ни к ФП ни к ООП и что люди описывать такую модель вряд ли смогут. Ведь по вашему определению нет требований что бы такая модель была понятна хотя бы части программистов.
Re[18]: Как мало людей понимает ООП...
От: Steamus Беларусь  
Дата: 28.07.12 08:00
Оценка: 1 (1)
Здравствуйте, samius, Вы писали:

S>Здравствуйте, Steamus, Вы писали:


S>>Здравствуйте, samius, Вы писали:


S>S>>>Любой чел, который не спал последние 10 лет, хорошо знает, что этот эксперимент, совсем даже не мысленный, а чётко осязаемый, поставила сама жизнь. И в нём, со счётом миллион к одному, выиграли C++, Java и C#.


S>>>Я вижу что вы избегаете обсуждения своих тезисов о связи ООП с необходимой моделью, связи ООП с работой мозга, но легко переключаетесь на самолюбие кухонных теоретиков от ФП. Я фактически этого и ожидал.


Я не избегаю обсуждений. Но вы постоянно переворачиваете и подменяете мою мысль, пытаясь выставить её надуманным вами боком, что бы затем использовать удобный аргумент. Полирнув это всё словами ...так я и знал...

Ещё раз — я нигде не говорил, что ФП это плохо. Моя мысль проста как слеза — мозг мыслит объектно, соответственно моделирование/проектирование/реализацию системы разумнее вести с учётом этой особенности мозга. Проще ему так внутри себя всё держать. И стало быть вы сможете построить более сложную систему не потеряв над ней контроль. ФП удобно для реализации алгоритмов определённого толка. К чему предлагать проводить экперименты, если они уже проделаны самой цивилизацией? ООП методология не вчера появилась. Ей уже много лет и она доказала все те посылы о которых я пишу. Если кому-то нравится оригинальничать и называть это всё ненужным, то это его право. Я могу пояснять какие-то мысли, но не перевоспитывать/переучивать чьи-то мозги. Это дело самого человека. Если ему это нужно. И не говорите мне в сотый раз что ваш мозг другой и он не держит предметных абстракций, а мыслит функциями. Считайте что я это уже признал.
Re[15]: Как мало людей понимает ООП...
От: Steamus Беларусь  
Дата: 28.07.12 08:08
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>Здравствуйте, Mamut, Вы писали:



М>да, все это круто, но только в данном случае метод "открыть", вероятно, придется наследовать от абстрактного объекта от которого наследуется еще и окна, т.к. они открываются по аналогичной схеме. ящики в столе, как ни странно, тоже.


Мдя...

Открыть можно ящик стола, ящик Пандоры, Америку, окно, дверь, глаз, рот, душу... От того, что глагол 'открыть' применим ко всем этим существительным, абсолютно никак не следуют что все они имеют общего предка. Дверь и окно, если мы говорим о комнате, могут иметь предка ДыраВСтене или ЭлементИнтеръера или ЭлементПокраски или ГорючийМатериал или. То есть некую абстракцию, несущую общие ствойства этих предметов в контексте решаемой задачи.
Re: Как мало людей понимает ООП...
От: pkl  
Дата: 28.07.12 08:15
Оценка:
Здравствуйте, SV., Вы писали:

SV.>...и это невероятно печально.


SV.>Примеры. Допустим, некто спрашивает, зачем нужно наследование интерфейсов. Я привожу пример, когда оно нужно. В ответ приводится пример, как то же самое можно сделать без наследования интерфейсов. История, конечно, вымышлена, все возможные совпадения случайны. Как хотите, а для меня такой ответ — признак полнейшего непонимания ООП. Оно нужно не потому, что без него не обойтись, и не потому, что сокращает количество кода, и не потому, что что-то там гарантирует (на любую хитрую жопу, как известно всегда что-нибудь найдется). Любой ОО-код переписывается в процедурный роботом на автомате. Не говоря про машину Тьюринга. А нужно оно только для того, чтобы сделать код чуточку понятнее любому нубу на проекте (в том числе, клиентам библиотек/фреймворков/сервисов). Чтобы было можно быстрее сопоставить примитивы в коде со знанием предметной области. Все.


SV.>Другой пример. Когда я обсуждал эту (конечно же, чисто гипотетическую) ситуацию, один человек прямо сказал: все дело в бэкграунде. У тебя, грит, оопный бэкграунд, а придет нуб с функциональным бэкграундом и скажет — ни хрена непонятно. А были бы, грит, чистые функции, он бы все понял мгновенно. И такое высказывание для меня другой признак непонимания ООП. Во-первых, ООП не находится в антагонистических отношениях с ФП. Они отлично уживаются, просто потому, что нужны в разных местах. Во-вторых, НЕТ, НЕПРАВДА, с любым бэкграундом (ФП, ООП, лапша) проект, выдержанный в ОО-духе понять легче. Просто потому, что мы мыслим объектами.


SV.>На протяжении долгих лет я встретил ровно одного человека, который излагал (насколько я его понял) то же самое — Эрика Липперта. По удивительному совпадению (это сарказм), кокреатора одного из лучших языков — C#, а также отца Roslyn. На следы жизнедеятельности таких людей я натыкался чаще (взять тот же .NET FCL), но не сильно. Так вот, не дайте угаснуть моей вере в человечество или добейте ее окончательно.

Какая цель топика? Повозмущаться существованием в природе всяких уродов? Ну дальше что? Сам без греха? А ну ка быстро кинул в меня стотонный камень.
Re[6]: Как мало людей понимает ООП...
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 28.07.12 10:14
Оценка:
Здравствуйте, 0x7be, Вы писали:

S>>Назовите какое-нибудь, хотя бы одно, существительное для которого нет более высокого абстрактного понятия.

0>"Нечто"

Это не существительное, это местоимение.
Re[19]: Как мало людей понимает ООП...
От: Mamut Швеция http://dmitriid.com
Дата: 28.07.12 10:41
Оценка:
S>Ещё раз — я нигде не говорил, что ФП это плохо. Моя мысль проста как слеза — мозг мыслит объектно, соответственно моделирование/проектирование/реализацию системы разумнее вести с учётом этой особенности мозга.

Нуну. А банальное «открыть дверь» ты так и не смог описать так, чтобы оно легло на реальную жизнь.


dmitriid.comGitHubLinkedIn
Re[20]: Как мало людей понимает ООП...
От: pkl  
Дата: 28.07.12 10:42
Оценка:
Здравствуйте, Mamut, Вы писали:


S>>Ещё раз — я нигде не говорил, что ФП это плохо. Моя мысль проста как слеза — мозг мыслит объектно, соответственно моделирование/проектирование/реализацию системы разумнее вести с учётом этой особенности мозга.


M>Нуну. А банальное «открыть дверь» ты так и не смог описать так, чтобы оно легло на реальную жизнь.

А чё там сложного? Дверь — это не объект штоле?
Re[19]: Как мало людей понимает ООП...
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.07.12 10:47
Оценка: 38 (1) +5 :))
Здравствуйте, Steamus, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>>>>Я вижу что вы избегаете обсуждения своих тезисов о связи ООП с необходимой моделью, связи ООП с работой мозга, но легко переключаетесь на самолюбие кухонных теоретиков от ФП. Я фактически этого и ожидал.


S>Я не избегаю обсуждений. Но вы постоянно переворачиваете и подменяете мою мысль, пытаясь выставить её надуманным вами боком, что бы затем использовать удобный аргумент. Полирнув это всё словами ...так я и знал...

Ну как же, избегаете. А иначе почему вы скипаете все текущее сообщение и отвечаете на часть позапрошлого?

S>Ещё раз — я нигде не говорил, что ФП это плохо. Моя мысль проста как слеза — мозг мыслит объектно,

Вот еще один пример. Вашу мысль о том что мозг мыслит объектно вы уже декларировали. Но ни одного подтверждающего обстоятельства не привели. Т.е. то что мозг мыслит объектно, выдвигается вами за постулат. Причем, выглядит это так, что утверждение абсолютно. Если у вас в принципе мозг может оперировать лишь объектами при решении задач вроде там нахождения факториала, задачи о ферзях, моделировании физических процессов, то у вас ООПГМ.

S>соответственно моделирование/проектирование/реализацию системы разумнее вести с учётом этой особенности мозга. Проще ему так внутри себя всё держать. И стало быть вы сможете построить более сложную систему не потеряв над ней контроль.

Нет такой особенности мозга, пока не доказано обратное. Соответственно моделировать надо исходя из соображений разумности выбора модели. Выбор объектной модели далеко не всегда самый разумный. Примеры: расчеты физических явлений, расчеты вероятности происхождения явлений, компьютерное зрение. Объекты идут лесом. Причем заметьте, я не доказываю что там ФП подойдет лучше. Я пытаюсь показать что при решении некоторых задач мозг сразу отметает объекты и их взаимодействие через посылку сообщений и стремится к известным ему моделям, ну там незнаю, к идеальному газу, к формуле Байеса, сегментации отрезков и т.п.
Да, какие-то процессы описываются с помощью объектов и их взаимодействия. Но утверждать на этом фоне об объектных особенностях мозга — абсурд. Точно так же некий математик из НИИ может утверждать что мозг мыслит дискретными сетками.

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

Так приведите уже эти доказательства. Если ваши доказательства основаны на численном сопоставлении количеств разработок в разных парадигм, то я могу таким же образом доказать что лучший автопроизводитель автоваз а самая продвинутая страна — Китай.

S>Если кому-то нравится оригинальничать и называть это всё ненужным, то это его право. Я могу пояснять какие-то мысли, но не перевоспитывать/переучивать чьи-то мозги. Это дело самого человека. Если ему это нужно. И не говорите мне в сотый раз что ваш мозг другой и он не держит предметных абстракций, а мыслит функциями. Считайте что я это уже признал.

Да я вам про функции даже разу не сказал.
Мозг склонен использовать проверенные решения и строить новые на основе проверенных. Соответственно, если вы не видили букварь по ФП, то вряд ли ваши решения будут иметь отношение к ФП. Если вы не видели букварь по ООП, то ваши решения вряд ли будут иметь отношение к ООП. У меня много примеров перед глазами. Сотни. ООП дается со скрипом даже тем, кто от него получает фан. Вы и тему-то именно об этом завели. Но продолжаете исходить из того что мозги работают объектно. Второй раз об этом пишу. И да, я намеренно пытаюсь свернуть полет вашей мысли к противоречию.
Re[20]: Как мало людей понимает ООП...
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.07.12 10:56
Оценка: +1 :))
Здравствуйте, Mamut, Вы писали:


S>>Ещё раз — я нигде не говорил, что ФП это плохо. Моя мысль проста как слеза — мозг мыслит объектно, соответственно моделирование/проектирование/реализацию системы разумнее вести с учётом этой особенности мозга.


M>Нуну. А банальное «открыть дверь» ты так и не смог описать так, чтобы оно легло на реальную жизнь.


интерфейс ИОткрывашка

класс Пинок : ИОткрывашка

класс Сквозняк : ИОткрывашка


класс Дверь
  метод Откройся(ИОткрывашка)

туц Дверь().Откройся(туц Сквозняк())

Навеяно by земля.копайся()
Автор: Sinclair
Дата: 03.10.11
(ц) Sinclair
З.Ы. туц == new
Re[19]: Как мало людей понимает ООП...
От: Wolverrum Ниоткуда  
Дата: 28.07.12 10:56
Оценка: +1
Здравствуйте, Steamus, Вы писали:

S>Моя мысль проста как слеза — мозг мыслит объектно


Мысль простая... и ложная.

Мозг не работает объектно. Мозг хз как работает. Просто если бы народ знал, что мозг мыслит объектно, ИИ в его первоначальном понимании был бы создан лет 20 назад. Но ИИ до сих пор нет и не редвидится. Ах и увы.
Re[21]: Как мало людей понимает ООП...
От: Wolverrum Ниоткуда  
Дата: 28.07.12 11:00
Оценка:
Здравствуйте, samius, Вы писали:

S>ИОткрывашка

ТКласс!
Re[7]: Как мало людей понимает ООП...
От: 0x7be СССР  
Дата: 28.07.12 11:02
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Это не существительное, это местоимение.

В именительном и винительном падежах "нечто" применяется как существительное.
Re[20]: Как мало людей понимает ООП...
От: Steamus Беларусь  
Дата: 28.07.12 11:29
Оценка:
Здравствуйте, Mamut, Вы писали:


S>>Ещё раз — я нигде не говорил, что ФП это плохо. Моя мысль проста как слеза — мозг мыслит объектно, соответственно моделирование/проектирование/реализацию системы разумнее вести с учётом этой особенности мозга.


M>Нуну. А банальное «открыть дверь» ты так и не смог описать так, чтобы оно легло на реальную жизнь.


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


class Дверь {
  открыть();
  закрыть();
};

Дверь дверь = new Дверь();

дверь.открыть();
дверь.закрыть();
Re[20]: Как мало людей понимает ООП...
От: Steamus Беларусь  
Дата: 28.07.12 11:32
Оценка:
Здравствуйте, Wolverrum, Вы писали:

W>Здравствуйте, Steamus, Вы писали:


S>>Моя мысль проста как слеза — мозг мыслит объектно


W>Мысль простая... и ложная.


W>Мозг не работает объектно. Мозг хз как работает. Просто если бы народ знал, что мозг мыслит объектно, ИИ в его первоначальном понимании был бы создан лет 20 назад. Но ИИ до сих пор нет и не редвидится. Ах и увы.


Да. Это я неправильно сказал употребив фразу ...мозг работает... Никто не знает как он там себе работает. Скажем так, было замечено, что для понимания проблемы мозг "опускает" незначащие детали и оперирует только теми, которые важны для понимания проблемы. То есть делает некое абстрагирование, декомпозицию.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.