Re[4]: Почему объектно-ориентированное программирование пров
От: мыщъх США http://nezumi-lab.org
Дата: 31.01.11 17:28
Оценка:
Здравствуйте, shrecher, Вы писали:

S>Здравствуйте, мыщъх, Вы писали:


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



М>>вопрос о провале ООП действительно встает на манагеровских митингах.


S>Итересно, почему вопрос встает на манагеровских митингах, не должны ли программисты или архитекты об этом заботится? Или в Макафи манагеры лучше рабираются на чем код писать? Хе-хе.


разбираются. и даже сам код пишут. в прошлом сами неплохие программисты и ведущие разработчики. а правильный выбор инструментов очень важен.
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[2]: Почему объектно-ориентированное программирование пров
От: Michael7 Россия  
Дата: 31.01.11 17:39
Оценка: +2
Здравствуйте, Pavel Dvorkin, Вы писали:

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


Это в том случае когда сам тезис (провалилось) спорен или вовсе не верен. А если — нет, например "Почему X провалился на выборах?" До выборов, такой вопрос будет некорректен, но после — вполне, если X и в самом деле их не выиграл.
Re[3]: Почему объектно-ориентированное программирование пров
От: Pavel Dvorkin Россия  
Дата: 31.01.11 17:44
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Здравствуйте, Pavel Dvorkin, Вы писали:


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


M>Это в том случае когда сам тезис (провалилось) спорен или вовсе не верен. А если — нет, например "Почему X провалился на выборах?" До выборов, такой вопрос будет некорректен, но после — вполне, если X и в самом деле их не выиграл.


Совершенно верно. Хорошая, кстати, демонстрация. "Почему X провалится на выборах ?" — типичный прием того, о чем я говорил. А в твоем варианте — все корректно, провалился он.
With best regards
Pavel Dvorkin
Re[3]: Почему объектно-ориентированное программирование пров
От: shrecher  
Дата: 31.01.11 18:18
Оценка: +1
Здравствуйте, Michael7, Вы писали:

M>Здравствуйте, Pavel Dvorkin, Вы писали:


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


M>Это в том случае когда сам тезис (провалилось) спорен или вовсе не верен. А если — нет, например "Почему X провалился на выборах?" До выборов, такой вопрос будет некорректен, но после — вполне, если X и в самом деле их не выиграл.


Да, но на выборах есть арбитр и объективный критерий -- подсчет голосов. В утверждении про ООП сплошной субъективизм.
Re[2]: Почему объектно-ориентированное программирование пров
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.01.11 19:01
Оценка: 1 (1)
Здравствуйте, Vlad_SP, Вы писали:

V_S>вот именно "разобраться и ответить на главный вопрос" — не получилось. Вся статья — исключительно пересказ чужих высказываний (отнюдь не первой свежести, кстати), собственных же тезисов, их доказательства и выводов автора — ноль целых, ноль десятых. Если RSDN Magazine считает возможным опубликовать такую статью — стыдно за RSDN.


Мы считаем, что полезны различные точки зрения. Тем более, что данной точки зрения придерживаются не мало людей многие из которых весьма авторитетны.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Почему объектно-ориентированное программирование пров
От: Вертер  
Дата: 31.01.11 19:02
Оценка: 31 (4)
М>кстати, в bat файлах нету функций.

как это нет — есть. Вот пример:

rem Параметры воспринимаются вместе с кавычками (то есть они тоже передаются как часть параметра)
IF NOT EXIST myfolder (
 call :MyFunction "param1" param2
 rem после вызова MyFunction, управление вернётся обратно на эту строчку
)
rem bla-bla

goto :EOF
rem :EOF определена по умолчанию для goto


:MyFunction
rem смотрите описание call, там сказано, что кавычки можно убирать так: %~1
IF EXIST %1 bla-bla
IF EXIST %2 bla-bla
rem всё, уходим вконец файла и автоматически возвращаемся в то место, откуда вызвали
goto :EOF

: MyFunction2
goto :EOF


Есть товарищи, которые на бат файлах делают морской бой
Re[2]: Почему объектно-ориентированное программирование пров
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.01.11 19:10
Оценка: -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Читать не буду, потому что неинтересно.


Где-то я это уже слышал... "Сам я Пастернака не читал, но как и весь Советский народ осуждаю..."
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Почему объектно-ориентированное программирование пров
От: мыщъх США http://nezumi-lab.org
Дата: 31.01.11 19:30
Оценка: :)
Здравствуйте, Вертер, Вы писали:


М>>кстати, в bat файлах нету функций.


В>как это нет — есть. Вот пример:

афигеть! я и не знал даже. у меня попроще было.
call %0 --func func_name arg1...argN

а в начало файла воткнут фрейморк, который видит в первом аргументе '--func' и вызывает функцию func_name с аргументами, возвращаясь на место вызова автоматом. работает со всеми версиями даже с древней досей. а под досей функций не было ;+(
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[2]: Почему объектно-ориентированное программирование пров
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.01.11 20:06
Оценка: +1
Здравствуйте, Eye of Hell, Вы писали:

EOH>Пустой аргумент, ни в пользу ООП ни против. Какая разница что с чем связали?


Разница в том, что многие под достоинствами ООП понимают другие вещи. Например, я считаю достоинством ООП — удобное создание Абстрактных Типов Данных (АТД). Но нельзя не согласиться с Грэмом, что это фишка есть и вне ООП. А раз так, то относить ее к достоинствам ООП уже некорректно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Почему объектно-ориентированное программирование пров
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.01.11 20:47
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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

I>Простейшая задача имеет порой заумную реализацию в ООП. Например требуется реализовать сравнение на равенство определенное следующим образом: два объекта равны, если все их составные части попарно равны.


Это не верная формулировка при наличии подтипов (что возможно и без наследования).

I> На шаблонах C++ реализация записывается буквально в соответствии с определением и в одну строку,


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

I> в ООП, на том же C++, или на Java, или на С# начинаются пританцовывания на ровном месте с проверкой типа и т.п.


Дык причем тут ООП? Это будет в любой системе поддерживающей подтипы (например, интерфейсы или типы классов). Это обратная сторона полиморфизма. Два объекта имеющих один статический тип могут на самом деле быть подтипами этого типа. Наследование реализации тут никаким боком.

Что до определения таких методов, то вот как данная задача решается в Немерле (выделено жирным):
using System;
using System.Linq;
using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;
using Nemerle.Extensions;

namespace Tests
{
  using NorthWind;
  /// <summary>Description of Customer.</summary>
  [Record, StructuralEquality, StructuralHashCode]
  class Customer
  {
    [Accessor] _customerID : int;
    [Accessor] _name       : string;
    [Accessor] _country    : string;
    [Accessor] _city       : string;
    
    public override ToString() : string
    {
      $"Customer(CustomerID=$CustomerID; Name=$Name)"
    }

    public Orders : IQueryable[Order]
    {
      get { _orders.Where(o => o.CustomerID == CustomerID).AsQueryable() }
    }
  }
}
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Почему объектно-ориентированное программирование пров
От: Pavel Dvorkin Россия  
Дата: 01.02.11 05:07
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Читать не буду, потому что неинтересно.


VD>Где-то я это уже слышал... "Сам я Пастернака не читал, но как и весь Советский народ осуждаю..."




Название я прочитал. А о содержании не высказывался.
With best regards
Pavel Dvorkin
Re[2]: Почему объектно-ориентированное программирование пров
От: Трурль  
Дата: 01.02.11 06:32
Оценка:
Здравствуйте, samius, Вы писали:

S>Да, возможно было навязано. Некрасиво, согласен. Но это не причина провала.

Ну, смотря что подразумевать под "провалом".
Исходя из того, что пишет Гэбриэл

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

можно заключить, что "провалилась" означает "не оправдала оказанного доверия".

S>Возможно стоит сменить название на следущее: Что считают гуру причиной провала ООП?

Или так: Почему ООП утратило доверие?
Re[3]: Почему объектно-ориентированное программирование пров
От: samius Япония http://sams-tricks.blogspot.com
Дата: 01.02.11 06:54
Оценка:
Здравствуйте, Трурль, Вы писали:

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


S>>Да, возможно было навязано. Некрасиво, согласен. Но это не причина провала.

Т>Ну, смотря что подразумевать под "провалом".
Т>Исходя из того, что пишет Гэбриэл
Т>

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

Т>можно заключить, что "провалилась" означает "не оправдала оказанного доверия".

Не оправдала доверия потому как была навязана? Тоже не годится. Надо зайти с другой стороны:
Т.е. Гэбриэл ожидал что использование объектной парадигмы приведет к чему-то важному для него, но этого не случилось. Причин этому может быть несколько: Гэбриэл что-то делал не так, либо действительно парадгима не в состоянии обеспечить это. Вот это последнее, наверное и может быть причиной утраты доверия. Но не тот факт что ООП была навязана или свалилась с неба в качестве откровения.

Откуда фраза, кстати? Что там было вышесказанного?

S>>Возможно стоит сменить название на следущее: Что считают гуру причиной провала ООП?

Т>Или так: Почему ООП утратило доверие?
неа, на вопрос "почему" нужно отвечать. А по поводу гуру — можно просто накидать цитат и оставить все на суд читателя, что собственно и сделано в статье.

А то получается как в недавней передаче про отшельников (не помню по какому каналу и как называлась), где перед каждой рекламой трагическим голосом обещали рассказать "почему Перельман отказался от миллиона". В конце оказалось что интервью он им таки не дал, в итоге от всей передачи один только осадок.
Re[12]: Почему объектно-ориентированное программирование про
От: igna Россия  
Дата: 01.02.11 07:46
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я не буду спорить и настаивать на слове "неудача". Но найди иное слово, без эмоциональной окраски. Провал — слишком эмоционально. Если у меня что-то не получилось, это неудача, печально, а вот если провал — тут уже гораздо хуже. Давай оставаться по возможности в области рацио, а не эмоций. Целью же является убедить в правоте своей точки зрения, а не подсознательно навязать, так ?


Так реальное ООП и есть "гораздо хуже" чем просто печально. Устрашающее ведь количество человеко-лет и все на говно. Коммунизму и то можно поболее в плюс записать тем более если вспомнить чему на смену он пришел. А в программировании все было вполне неплохо, распространился Pascal, структурное программирование, языком восьмидесятых должны были стать Ada и Modula-2, в первом были даже какие-никакие генерики, вполне вероятно, что функциональное программирование начало бы входить в mainstream на 20 лет раньше, если бы не вдруг откуда не возьмись это ООП, да еще и в виде ужаса под названием C++.

Ну еще должен заметить, что под ООП имею в виду ООП с наследованием реализации, как его с появлением и внедрением C++ продавали широким массам вроде меня.
Re[13]: Почему объектно-ориентированное программирование про
От: Pavel Dvorkin Россия  
Дата: 01.02.11 08:06
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Я не буду спорить и настаивать на слове "неудача". Но найди иное слово, без эмоциональной окраски. Провал — слишком эмоционально. Если у меня что-то не получилось, это неудача, печально, а вот если провал — тут уже гораздо хуже. Давай оставаться по возможности в области рацио, а не эмоций. Целью же является убедить в правоте своей точки зрения, а не подсознательно навязать, так ?


I>Так реальное ООП и есть "гораздо хуже" чем просто печально. Устрашающее ведь количество человеко-лет и все на говно. Коммунизму и то можно поболее в плюс записать тем более если вспомнить чему на смену он пришел. А в программировании все было вполне неплохо, распространился Pascal, структурное программирование, языком восьмидесятых должны были стать Ada и Modula-2, в первом были даже какие-никакие генерики, вполне вероятно, что функциональное программирование начало бы входить в mainstream на 20 лет раньше, если бы не вдруг откуда не возьмись это ООП, да еще и в виде ужаса под названием C++.


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

I>Ну еще должен заметить, что под ООП имею в виду ООП с наследованием реализации, как его с появлением и внедрением C++ продавали широким массам вроде меня.


Начнем очередной флейм о С++ ? Лучше не надо.
With best regards
Pavel Dvorkin
Re[4]: Почему объектно-ориентированное программирование пров
От: Undying Россия  
Дата: 01.02.11 08:31
Оценка: -1
Здравствуйте, VoidEx, Вы писали:

VE>Почему ни одна ссылка на странице невалидна?


По-видимому, из-за того, что статья была переведена в 2003 и с тех пор страница не обновлялась.

VE>Можно поподробнее про это?


Непереведенные работы Хатча есть здесь: http://ivanik3.narod.ru/linksHatch.html
Re[4]: Почему объектно-ориентированное программирование пров
От: Трурль  
Дата: 01.02.11 08:34
Оценка: 2 (1)
Здравствуйте, samius, Вы писали:

S>Откуда фраза, кстати? Что там было вышесказанного?

Да вот, из списка литературы.

S>Т.е. Гэбриэл ожидал что использование объектной парадигмы приведет к чему-то важному для него, но этого не случилось. Причин этому может быть несколько: Гэбриэл что-то делал не так, либо действительно парадгима не в состоянии обеспечить это. Вот это последнее, наверное и может быть причиной утраты доверия. Но не тот факт что ООП была навязана или свалилась с неба в качестве откровения.


Провал кукурузы в 60-х был обусловлен не какими-то имманентными свойствами кукурузы, а как раз тем, что она свалилась с неба.
Re[4]: Почему объектно-ориентированное программирование пров
От: igna Россия  
Дата: 01.02.11 08:45
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Это не верная формулировка при наличии подтипов (что возможно и без наследования).


Подтипы без наследования в широком смысле (включая имплементирование интерфейсов) обсуждать не готов. Кроме того мое "наследование реализации" надо понимать в еще более широком смысле. Постараюсь объяснить, что имею в виду.

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

Такое обобщенное понимание интерфейса есть у Саттера (Exceptional C++, Item 32: Name Lookup and the Interface Principle).

Я использовал слово "имплементирование", когда речь идет об имплементировании интерфейсов в смысле implements в Java, и слово "реализация" когда речь идет об общем случае реализации. Для различения наследования в смысле extends в Java, и "наследования реализации" в обобщенном смысле во втором случае заключал это слово в кавычки.

VD>Если это так просто, то просьба продемонстрировать эту реализацию прямо здесь.


template <class T1, class T2>
bool operator==(my_pair<T1, T2>& l, my_pair<T1, T2>& r)
{
    return l.first == r.first && l.second == r.second;
}
Re[5]: Почему объектно-ориентированное программирование пров
От: samius Япония http://sams-tricks.blogspot.com
Дата: 01.02.11 08:53
Оценка:
Здравствуйте, Трурль, Вы писали:

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


S>>Откуда фраза, кстати? Что там было вышесказанного?

Т>Да вот, из списка литературы.
Даже в закладках оказалась

S>>Т.е. Гэбриэл ожидал что использование объектной парадигмы приведет к чему-то важному для него, но этого не случилось. Причин этому может быть несколько: Гэбриэл что-то делал не так, либо действительно парадгима не в состоянии обеспечить это. Вот это последнее, наверное и может быть причиной утраты доверия. Но не тот факт что ООП была навязана или свалилась с неба в качестве откровения.


Т>Провал кукурузы в 60-х был обусловлен не какими-то имманентными свойствами кукурузы, а как раз тем, что она свалилась с неба.

Провалилась не кукуруза, а идея ее повсеместного засилия. Хотя не сказать что совсем провалилась, в моих широтах (средний урал) ей нынче кормят скот, а до 60х ей тут и не пахло
Re[3]: Почему объектно-ориентированное программирование пров
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 01.02.11 09:07
Оценка:

>>Пустой аргумент, ни в пользу ООП ни против. Какая разница что с чем связали?
Разница в том, что многие под достоинствами ООП понимают другие вещи. Например, я считаю достоинством ООП — удобное создание Абстрактных Типов Данных (АТД). Но нельзя не согласиться с Грэмом, что это фишка есть и вне ООП. А раз так, то относить ее к достоинствам ООП уже некорректно.


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