Автор Тема: Пока сижу в бане...  (Прочитано 47140 раз)

DIzer

  • Гость
Re: Пока сижу в бане...
« Ответ #60 : Март 06, 2012, 01:12:37 pm »
Вообще странно конечно. В основном из оборонкоре уходят не случайно зашедшие туда мейнстримщики-новички, а те кто там давно и с самого начала. Например я там с 2006 года, Сергей Губанов вообще с 2005 года. Vlad - тоже с 2005 года. Что-то у них там в консерватории поехало похоже.
А вы губы раздували , или глаза выпучивали, глотку рвали?

DIzer

  • Гость
Re: Пока сижу в бане...
« Ответ #61 : Март 08, 2012, 10:17:12 am »
Если отбросить сарказм Алексей, то ответ лежит на поверхности. Решение  реальных задач (в сфере ИТ), выходит за рамки  простых моделей   жестко пропагандируемых коровцами (хотя НЕСОМНЕННО  в них есть РАЦИОНАЛЬНОЕ ЗЕРНО - и они решают часть проблем характерных для определенной части аудитории коровника). Проблемы начинаются  когда человек развивается (рассматривает новые задачи, производит переоценку внутреннего мироощущения) - вот ТОГДА  становятся видимыми недостатки решений  построенных  ЧИСТО на пропагандируемых коровятами идеях ( с помощью чистого метода,  чистого инструмента). Возможно несколько выходов из этой ситуации, например, ограничиться существующем распорядком дел - в терминах AlexUs'a "окуклиться" (выбор коровят), и произвести "рефакторинг"  своего мировоззрения (я ПРЕДПОЛАГАЮ, что ЭТОТ форум, как раз для таких людей).

DIzer

  • Гость
Re: Пока сижу в бане...
« Ответ #62 : Март 08, 2012, 10:27:52 am »
Т. е когда по старому жить не хочется (или нет возможности), а по новому - пока не ясно как.

alexus

  • Гость
Re: Пока сижу в бане...
« Ответ #63 : Март 08, 2012, 05:18:28 pm »
Если отбросить сарказм Алексей, то ответ лежит на поверхности. Решение  реальных задач (в сфере ИТ), выходит за рамки  простых моделей   жестко пропагандируемых коровцами (хотя НЕСОМНЕННО  в них есть РАЦИОНАЛЬНОЕ ЗЕРНО - и они решают часть проблем характерных для определенной части аудитории коровника). Проблемы начинаются  когда человек развивается (рассматривает новые задачи, производит переоценку внутреннего мироощущения) - вот ТОГДА  становятся видимыми недостатки решений  построенных  ЧИСТО на пропагандируемых коровятами идеях ( с помощью чистого метода,  чистого инструмента). Возможно несколько выходов из этой ситуации, например, ограничиться существующем распорядком дел - в терминах AlexUs'a "окуклиться" (выбор коровят), и произвести "рефакторинг"  своего мировоззрения (я ПРЕДПОЛАГАЮ, что ЭТОТ форум, как раз для таких людей).
Не-е... рефакторинг - тоже зло... (нет большего противника рефакторинга, чем я... наверное...) :)
Лучше понять мир, глядя на природу или собственный пупок... а потом начинать двигаться... не зря в русских сказках 33 года на печи лежат, а потом мир чудесами удивляют... Есть в этом что-то... И у "коровят" проблема, как мне кажется в том, что они мир не видят, они видят его отражение... преломление в свете идей Н. Вирта. Поэтому критика работ Вирта воспринимается там очень болезненно.

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Пока сижу в бане...
« Ответ #64 : Март 08, 2012, 05:26:00 pm »
Поэтому критика работ Вирта воспринимается там очень болезненно.
В чем Вирт не прав?

alexus

  • Гость
Re: Пока сижу в бане...
« Ответ #65 : Март 08, 2012, 05:37:12 pm »
Поэтому критика работ Вирта воспринимается там очень болезненно.
В чем Вирт не прав?
В том, например, что включил "куцее" ООП в Оберон... Либо он понимает суть ООП, либо... нафиг-нафиг...

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Пока сижу в бане...
« Ответ #66 : Март 08, 2012, 05:52:25 pm »
Поэтому критика работ Вирта воспринимается там очень болезненно.
В чем Вирт не прав?
В том, например, что включил "куцее" ООП в Оберон... Либо он понимает суть ООП, либо... нафиг-нафиг...
То есть такое ООП не следовало вообще включать? Или поддержку ООП не нужно в языках вообще? В каком языке правильная поддержка ООП?
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

alexus

  • Гость
Re: Пока сижу в бане...
« Ответ #67 : Март 08, 2012, 07:51:15 pm »
Поэтому критика работ Вирта воспринимается там очень болезненно.
В чем Вирт не прав?
В том, например, что включил "куцее" ООП в Оберон... Либо он понимает суть ООП, либо... нафиг-нафиг...
То есть такое ООП не следовало вообще включать? Или поддержку ООП не нужно в языках вообще? В каком языке правильная поддержка ООП?
Давайте попробуем разобраться, что такое ООП... по сути. Суть ООП в классификации, то есть в разработке и создании многих типов сущностей, которые что-то получают от предков (re-use), что видоизменяют. В результате получается множество (описаний) прототипов сущностей со схожим поведением. В традиционном программировании нет аналога этому механизму, а это порождает много проблем. Например, если появляется второй прототип, чем-то похожий на первый, то надо описать его отдельно и подпрограммы, которые работали с первым прототипом необходимо пересмотреть и при необходимости, создать новые, с изменённым поведением. Но теперь мы встаём перед проблемой, что надо как-то одинаково обращаться к одинаковым по сути, но различным по имени и содержанию подпрограммам. Школьный пример, "некто" обращается к фигурам и просит их нарисовать себя... "треугольник" рисует на экране треугольник, "квадрат" рисует квадрат, "круг" рисует круг. "Некто" может и не знать, какие фигуры входят в коллекцию, но как же он тогда узнает, какие подпрограммы вызывать?.. Но если у нас определён класс фигур с методом "рисовать себя", от него унаследованы конкретные фигуры, то можно к любым фигурам обращаться одинаково, при этом каждая фигура будет вести себя сообразно своей сути. Что и требовалось. Другими словами, классификация на основе свойств сущностей позволяет упорядочить их организацию и, как следствие, снизить затраты на разработку, развитие и сопровождение.
Второй элемент ООП - полиморфизм. Сходные, но имеющие отличия свойства прототипов, являются полиморфными. Но полиморфными могут быть и сами прототипы, на этой основе работает классификация. Но при этом полиморфизм "шире" наследования, поскольку классы могут иметь полиморфные свойства, которые отсутствуют у их общего "предка" (да, и сам общий "предок" у этих классов может отсутствовать). Например, летать может самолёт и утка... означает ли это, что у них (в рамках данной предметной области) есть общий "предок", умеющий летать?.. Не очевидно...В общем случае, полиморфными могут быть: элементы структуры класса, его методы и... сами классы (в рамках наследования). Полиморфность ключевых элементов и методов является основой наследования, но полиморфными могут быть элементы и методы вне наследования.
Инкапсуляция - третий элемент ООП, он подразумевает, что структура класса сокрыта от внешних сущностей, с другой стороны, инкапсуляция подразумевает, что всё, что нужно данной сущности, реализовано в ней самой, то есть никакие внешние элементы ей не нужны. Сокрытие структуры и методов необходимо для того, чтобы внешние элементы не привязывались к частной внутренней реализации сущности, поскольку в противном случае, при изменении сущности, придётся проверять и видоизменять её окружение. Впервые инкапсуляция была реализована в подпрограммах, когда доступ к подпрограмме происходил посредством обращения к её заголовку и замещению формальных параметров фактическими. Это позволяло модифицировать подпрограммы без модификации её окружения, если, конечно, объявление подпрограммы (её интерфейс) не менялись. Если внешний код мог входить в "тело" подпрограммы, минуя её заголовок, то изменение "тела" подпрограммы могло привести программу к краху. Дальнейшее развитие инкапсуляции - это модульное программирование... где свойства инкапсулированы в модуле, и только интерфейсы "торчат" наружу.
Это основы ООП... А теперь давайте задумаемся... зачем они нужны в программировании?.. Если мы пишем программу, то зачем нам плодить множество похожих, но не одинаковых по сути, элементов, выстраивать из них классификацию, вникать в полиморфизм, защищать их организацию?.. Это всё не нужно, это мешает и снижает эффективность программы. Ведь прямой доступ, например, всегда эффективнее, чем косвенный, посредством каких-то дополнительных элементов. Почему вдруг, программист не может изменить значение поля какой-то структуры его программы?
Важность и полезность всех перечисленных элементов ООП становится понятна на некотором подмножестве программ, равно, как и полезность библиотек подпрограмм/модулей была осознана тогда, когда эти библиотеки/модули стали использоваться из многих программ. А ООП позволяет перейти от программ к системам... И здесь всё становится на свои места, каждый уровень системы имеет свой интерфейс, который реализует на множестве прототипов, и внешний уровень принципиально не должен знать устройство какого-то элемента, поскольку такое знание снижает не только надёжность, но и эффективность(!) системы в целом. Простой пример, элемент А получал нечто от элемента Б, это было хорошо и удобно, но ситуация изменилась, в системе появился элемент В, который способен обеспечивать элемент А более быстро и эффективно, но элемент А об этом ничего не знает и по-прежнему получает нечто от элемента Б... А если элемент Б исчез?.. Что будет с системой?..
Понимаю, что стучусь в открытые ворота, но... тем не менее... это надо было произнести, чтобы ответить на Ваши вопросы... Начну с конца... с последнего вопроса.
Наиболее полно и правильно ООП был реализован в SmallTalk, IMHO...
Поддержка ООП, конечно, нужна, но... это задача не одного уровня. Поддержка ООП нужна для проектирования (и, отчасти, при моделировании), чтобы можно было не программировать, а собирать/настраивать систему для решения определённого класса задач, но не для решения отдельной задачи/программы. Поддержка ООП нужна и в программировании, для реализации объектной иерархии, объявления интерфейсов (полиморфных свойств), для спецификации ролей и пр. Всё это при решении отдельной задачи - излишество. Но то, что сделано в Оберон - это "подачка бедным"... расширили структуры методами и... всё. Следует понимать, что создание иерархии классов и её использование - это совершенно разные задачи, равно как изготовление кирпичей и их использование при строительстве. Что есть в Оберон? Изготовление кирпичей... остальное отдано на совесть разработчика... Нет никаких средств для разработки надуровня... того самого, где изготовленные кирпичи превращаются в здание.
И, наконец, надо ли было включать ООП?.. Если Н. Вирт объявил Оберон языком создания систем, то, конечно, ООП надо было включать, но отвечает ли Оберон требованиям языка создания систем?.. В таком ракурсе я не могу ответить на этот вопрос... Как Вы сами считаете, удобен ли Оберон для написания систем? Не программ, а именно систем?.. На мой взгляд нет, в этом смысле он ничем не лучше Паскаля или Си... А, следовательно, ООП там излишество... Для написания программ этого не нужно. Что же касается создания систем.... то, что в есть в Оберон в плане создания и разработки архитектуры?.. Ничего...

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Пока сижу в бане...
« Ответ #68 : Март 09, 2012, 07:18:10 am »
Давайте попробуем разобраться, что такое ООП... по сути.
...
Это основы ООП...
Насколько я понял это Ваше сообщение, тот же Хаскелл -- вполне себе ООП-язык.
Классификация типов, наследование поведения, полиморфизм, инкапсуляция -- всё это в нём есть.

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

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

ЗЫ. Да, и в Обероне же не только добавили структурам методы, но ещё они могут иметь предков -- для построения иерархий типов данных...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

alexus

  • Гость
Re: Пока сижу в бане...
« Ответ #69 : Март 09, 2012, 08:26:52 am »
Насколько я понял это Ваше сообщение, тот же Хаскелл -- вполне себе ООП-язык.
Классификация типов, наследование поведения, полиморфизм, инкапсуляция -- всё это в нём есть.

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

Выходит, что все эти свойства, которые Вы приписали ООП -- на самом деле не являются исключительной прерогативой ООП, они вполне себе могут существовать и в том же ФП.
Конечно, могут... Перечисленные три парадигмы, образующие ООП: инкапсуляция, полиморфизм и наследование - "приписал" не я...

В этом плане, главное отличие ООП от того же ФП -- широкое использование мутаций данных, данные главенствуют, методы вторичны; в ФП же наоборот -- первичны методы (функции)...
В ООП нет ни главенства данных, ни главенства методов... и то и другое - это свойства объекта/класса. Есть понятие: ключевых свойств - свойств образующих семантику сущности/класса. Но и ключевые свойства могут быть представлены, как данными, так и методами.

ЗЫ. Да, и в Обероне же не только добавили структурам методы, но ещё они могут иметь предков -- для построения иерархий типов данных...
Да, конечно, но это ничего не меняет в рассуждениях, приведённых ранее.

alexus

  • Гость
Re: Пока сижу в бане...
« Ответ #70 : Март 09, 2012, 08:44:45 am »
Собственно, создавая систему (не программу!), решают три относительно независимые задачи:
  • Создание архитектуры системы: определение и спецификация уровней системы, функционального наполнения каждого из уровней, описание интерфейсов уровней
  • Разработка объектных иерархий (классификация сущностей) на каждом из уровней
  • Спецификация и решение задач на каждом уровне (разработка схем реакций на внешние/внутренние возмущения)
Каждая из этих задач нуждается в инструментальных средствах, языковых, в том числе. ООП, в том виде, в каком существует сегодня даёт возможность эффективно решать вторую, из перечня задач.

DIzer

  • Гость
Re: Пока сижу в бане...
« Ответ #71 : Март 09, 2012, 10:49:55 am »
Не-е... рефакторинг - тоже зло... (нет большего противника рефакторинга, чем я... наверное...) :)
тот рефакторинг  о котором говорю я , не есть обьект  этических оценок - это следствие:
1. Ограниченных возможностей КОНКРЕТНОГО человека воспринимать реальность, а так - же нежелания его делать
2. Окружения в котором он находиться
3. Изменчивости окружающего мира
Примеры:
1. Способность КОНКРЕТНОГО человека работать с абстрактными  вещами ограничена (более того может различаться банальная пропускная способность информации поступающей из вне, болел человек 20 лет , потом вылечился), ее можно развивать с помощью тренировок - но зачем,  если текущее положение дел устраивает
2. Пример Будды - думаю всем известен.
3. Мир изменился - например "сдохла" контора в которой он работал -ближайшие вакансии заняты - но ЖРАТЬ охота каждый день, или заболел кто- то из родственников, а денег на лечение не хватает..

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

Есть и такие, но абсолютное большинство  других - причины выше. И потом, а если вы ДОЛЖНЫ принимать решения не в 33 года,  а когда  в этом есть НЕОБХОДИМОСТЬ - менеджерам, например, приходиться делать это делать сплошь и рядом...
Цитировать
Есть в этом что-то... И у "коровят" проблема, как мне кажется в том, что они мир не видят, они видят его отражение... преломление в свете идей Н. Вирта. Поэтому критика работ Вирта воспринимается там очень болезненно.
  Мы все видим "отражения" (для того что-бы быть выше этого надо быть богом). И коровцы  делают это  в соответствии со своим уровнем развития -единственный недостаток (ИМХО) - состоит в том , что разногласие с окружающей реальностью они решают с помощью окукливания (игнорированием пластов реальности, или упрощением ее).
Но что МНЕ не нравиться категорически - это то, что  они ЗНАЯ о недостатках - вдалбливают людям (в основном неопытным) заведомо ложную картину мира (в которую и сами не верят). С моей точки зрения, тот факт, что в данном случае идет речь о ВЫЖИВАНИИ, и ЦЕЛОСТНОСТИ личности - вещей имеющих ВЫСШИЙ ПРИОРИТЕТ - их не оправдывает...
PS. Понятно, что мы обмениваемся ИНДИВИДУАЛЬНЫМИ точками зрения -  но по поводу вашей могу заметить - она не дает ничего полезного в БОЛЬШИНСТВЕ встречающихся ситуаций....

DIzer

  • Гость
Re: Пока сижу в бане...
« Ответ #72 : Март 09, 2012, 11:13:54 am »
Давайте попробуем разобраться, что такое ООП... по сути. Суть ООП в классификации, то есть в разработке и создании многих типов сущностей, которые что-то получают от предков (re-use), что видоизменяют.......
;) Как много слов для того что бы выразить следующую идею - ЯП программирования позволяет описывать окружающий мир (ставить ему в соответствие  некоторую систему)   в терминах сущностей, инструкций, моделей - но  не все все системы описываются конкретным ЯП одинаково удобно... (известно, например ,  что с помощью  Машины Тьюринга можно в принципе реализовать ЛЮБОЙ алгоритм в классическом понимании этого термина). Проблема оберона - заключается в том , что в том виде какой он есть не так уж и много систем (интересных с практической точки зрения) на которых он имеет преимущества перед СУЩЕСТВУЮЩИМИ языками. (OOP - всего лишь часть этой  проблемы).

DIzer

  • Гость
Re: Пока сижу в бане...
« Ответ #73 : Март 09, 2012, 11:46:48 am »
Собственно, создавая систему (не программу!), решают три относительно независимые задачи:
  • Создание архитектуры системы: определение и спецификация уровней системы, функционального наполнения каждого из уровней, описание интерфейсов уровней
  • Разработка объектных иерархий (классификация сущностей) на каждом из уровней
  • Спецификация и решение задач на каждом уровне (разработка схем реакций на внешние/внутренние возмущения)
Каждая из этих задач нуждается в инструментальных средствах, языковых, в том числе. ООП, в том виде, в каком существует сегодня даёт возможность эффективно решать вторую, из перечня задач.
Пункты 1-3 , хороши  - но причем тут ооп?, я всегда их решал (когда требовалось) используя понятия наиболее естественного языка(ов), различные разделы математики, физики.... , при необходимости применяя синтез их, далее просто формулировал их в терминах понятий, моделей , инструкций целевого ЯП. Впрочем если под ООП - вы понимаете ОБЬЕКТНО ОРИЕНТИРОВАННЫЙ ПОДХОД - то все ОК  :D

alexus

  • Гость
Re: Пока сижу в бане...
« Ответ #74 : Март 09, 2012, 03:58:23 pm »
Не-е... рефакторинг - тоже зло... (нет большего противника рефакторинга, чем я... наверное...) :)
тот рефакторинг  о котором говорю я , не есть обьект  этических оценок - это следствие:
1. Ограниченных возможностей КОНКРЕТНОГО человека воспринимать реальность, а так - же нежелания его делать
2. Окружения в котором он находиться
3. Изменчивости окружающего мира
Рефакторинг - зло, потому что...
  • Желание сделать опережает желание понять
  • Переделка плохого решения предпочтительнее делания "с нуля"
  • Планируют не результат, но ошибку... (ошибки кормят лучше, чем результат)

Примеры:
1. Способность КОНКРЕТНОГО человека работать с абстрактными  вещами ограничена (более того может различаться банальная пропускная способность информации поступающей из вне, болел человек 20 лет , потом вылечился), ее можно развивать с помощью тренировок - но зачем,  если текущее положение дел устраивает
... вот-вот... и я о том же, но с другого конца...

2. Пример Будды - думаю всем известен.
О каком примере идёт речь?..

3. Мир изменился - например "сдохла" контора в которой он работал -ближайшие вакансии заняты - но ЖРАТЬ охота каждый день, или заболел кто- то из родственников, а денег на лечение не хватает..
Именно... если желание "жрать" перевешивает всё остальное... то оправдать это всегда возможно. Ещё Назым Хикмет сказал:
Цитата: Назым Хикмет
Тот, кто хочет решить проблему, ищет возможность,
Тот, кто не хочет, - ищет причину

Цитировать
Лучше понять мир, глядя на природу или собственный пупок... а потом начинать двигаться... не зря в русских сказках 33 года на печи лежат, а потом мир чудесами удивляют...
Есть и такие, но абсолютное большинство  других - причины выше. И потом, а если вы ДОЛЖНЫ принимать решения не в 33 года,  а когда  в этом есть НЕОБХОДИМОСТЬ - менеджерам, например, приходиться делать это делать сплошь и рядом...
Вот мы и имеем то, что имеет нас...

Цитировать
Есть в этом что-то... И у "коровят" проблема, как мне кажется в том, что они мир не видят, они видят его отражение... преломление в свете идей Н. Вирта. Поэтому критика работ Вирта воспринимается там очень болезненно.
Мы все видим "отражения" (для того что-бы быть выше этого надо быть богом).
Нет, конечно... Можно допустить, что Бог имеет очищенное сознание, но не всякий, кто имеет очищенное сознание - Бог.

И коровцы  делают это  в соответствии со своим уровнем развития -единственный недостаток (ИМХО) - состоит в том , что разногласие с окружающей реальностью они решают с помощью окукливания (игнорированием пластов реальности, или упрощением ее).
... и это не самое плохое... плохо то, что такое поведение они считают нормой. Именно здесь истоки их агрессивности по отношению к чужому мнению... разновидность инквизиции...

Но что МНЕ не нравиться категорически - это то, что  они ЗНАЯ о недостатках - вдалбливают людям (в основном неопытным) заведомо ложную картину мира (в которую и сами не верят). С моей точки зрения, тот факт, что в данном случае идет речь о ВЫЖИВАНИИ, и ЦЕЛОСТНОСТИ личности - вещей имеющих ВЫСШИЙ ПРИОРИТЕТ - их не оправдывает...
Фарисейство - это следствие того, о чём Вы сказали выше... вплоть до готовности казнить... Бога... как в случае с Иисусом.

PS. Понятно, что мы обмениваемся ИНДИВИДУАЛЬНЫМИ точками зрения -  но по поводу вашей могу заметить - она не дает ничего полезного в БОЛЬШИНСТВЕ встречающихся ситуаций....
В повседневности - она [моя точка зрения] вредна... поскольку повседневности в ней... не предусмотрено. Одно из важных свойств очищенного сознания - это способность видеть мир... заново... в любой момент... с чистого листа...
Только поймите меня правильно, я никого к этому не призываю... хотя бы не забывайте, что это не только атрибут детства... чистое сознание может быть всегда... "каждому дано".