Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Ох, больная это тема. Я тут голосование устроил
PD>http://rsdn.ru/poll/2205.aspxАвтор: Pavel Dvorkin
Дата: 10.10.08
Вопрос: Какие критерии, на Ваш взгляд, наиболее важны для ПО ? Я намеренно ограничиваю выбор двумя пунктами — выберите наиболее важное
PD>и результаты его меня просто пугают.
welcome to real world
PD>А где там запутанность ? Нормальный код, как все на Win32 пишут.
Самому не смешно?
AVK>>Вот, кстати, характерная твоя ошибка — говорим о дизайне кода, а ты даже не в состоянии привести пример без использования специфики Win32.
PD>Опять ? Я же привел тебе описание задачи!
Тогда забудь в этом топике про слово Win32, ты же его через абзац упоминаешь.
PD> Ну не могу же я его привести, не упоминая окна и пикселей, если задача именно с окном и именно с пикселями.
Вот об этом и речь.
PD>Да никто и не заставляет. Ну не нравится тебе мое описание — сказал, я согласился, дал другое.
Нук а я тебе дал ответ. Что тебя еще не устраивает?
PD> Впрочем, чтобы IT-ские проценты сравнить в AsParallel и без, то же придется сделать. Но все же никак не пойму — чего ты к пустякам придираешься ? Ну какое отношение к распараллеливанию имеет вопрос откуда и как брать эту матрицу ?
Никакого. Только ты погляди на свои аргументы:
Если бы я это в форуме по Win32 написал ...
Если ты не очень понимаешь Win32 ...
Ну нет в Win32 иного способа параллелить и нет в Windows ничего, что не проходио бы через Win32
Распараллеливание тоже (не в С++, а в Win32)
И никак нельзя распараллелить иначе, чем Win32 ...
Win32, Win32, Win32, Win32. Напоминаю — обсуждать тут пытались конструкции языков программирования. Я понимаю, тебе про этот Win32 каждый день приходится студентам рассказывать, но надо хоть чуть чуть абстрагироваться, если тема разговора никакого отношения к Win32 не имеет.
PD>Вообще-то нет. Про ФП я могу не знать, про LinQ тоже, а вот SQL знать надо, иначе я его этот SELECT и GROUP в нем не пойму.
А ты SQL не знаешь?
AVK>>Не знаю, тебе захотелось по диагонали или еще как то там пиксели обсчитывать.
PD>Андрей, это уж никуда не годится. Я привел этот пример именно, чтобы показать, что когда мне надо не в "горизонтально-вертикальном", а в произвольном направлении ходить, ваш подход ИМХО пробуксовывает.
Нигде он не пробуксовывает. Тебе уже два человека написали — начальные итераторы (в моем коде Enumerable.Range) можно написать какими угодно, причем код будет короче за счет наличия в шарпе специальных конструкций для этого.
PD>Я вот одно понять не могу. Ну что стоит признать, что для определенной ситуации этот подход не очень хорош ?
О, вот очень удачно ты это спросил. Ты сам, лично, ни разу здесь не признал, что был не прав, даже если, порой, тебе приводили абсолютно неопровержимые аргументы. Зато с других ты это требуешь.
PD> Вот был бы я на вашем месте, ответил бы так — "да, для такого рода действий этот подход не годится или не очень эффективен (или еще что-то). Зато он очень хорош, для задач типа той, о которйк я написал".
У рыбы шерсти нет, а вот если бы была ...
PD>Понимаешь, для меня большой разницы между языком и библиотекой нет.
Вот вот.
PD> Linq твой останется, допустим, но ведь всех библиотек .NET FW я тебя лишу, если ты хочешь меня лишить Win32.
Я не хочу тебя лишать Win32 (боже упаси), я хочу чтобы в этой теме не присутствовало обсуждение особенностей этого самого Win32.
PD>Да пойми ты наконец, что все проходит через эту замочную скажину
PD>но если мне кто-то скажет, что в ЛИСПЕ можно записать файл, минуя в конечном счете WriteFile
А если не скажет? Сам выдумываешь оппонента и потом с ним споришь. Какая разница, через что там будет запись, если речь нге о механизмах записи файла, а о конструкциях языка?
PD>Ну это обсуждать не будем, предлагаю так, а то мы еще один флейм устроим.
Ну ты же настаиваешь, что для линка изменение порядка обхода — неразрешимая проблема.
PD>>> Вот ответь прямо — да или нет ?
AVK>>Отвечаю прямо — неважно.
PD>Не ответил
Ответил. И очень плохо, что ответ понят ты то ли не хочешь, то ли не можешь.
>>Не уводи от темы. Распараллеливание здесь в качестве примера, а не самоцель.
PD>А вот в этом не уверен.
А я уверен.
PD> IT именно это и заявил — могу , мол, легко распараллелить.
Он это заявил для того, чтобы продемонстрировать, как легко изменять функциональный код. Потому что именно наличие ФВП и возможности их комбинирования позволяет переместить в библиотеку не только конкретные алгоритмы, но и шаблоны кусков этих алгоритмов, не требуя при этом создания специальных классов или методов. Суть не в том, что это в Win32 обращается и что то там реально параллелит, а в сложности организации подобного в императивном коде.
Вот именно поэтому тебе и предлагают реализовать предложенный пример, чтобы ты понял, в чем именно преимущество ФП.
>>Если не можешь съехать с Win32, я могу в примере заменить распараллеливание на, скажем, кеширование.
PD>Ты хочешь, чтобы мы еще флейм на тему кеширования завели ? Не надо
Я хочу, чтобы ты наконец оглянулся вокруг и попытался думать чуть более абстрактно.
PD>Да просто, кто спорит.
Ты
PD> Я еще раз говорю — я совсем не противник этого.
Незаметно, если честно.
А не возникала ли у тебя мысль — а может, ничего и не надо ?
PD> Я не согласен, когда это за панацею выдается.
А кто тут выдавал ФП за панацею. Цитату можно? Вот кусочек сообщения IT, с которого эта нитка пошла:
Вот здесь два примера того, как правильные высокоуровневые конструкции могут сделать код ...
"Могут" это, по твоему, синоним панацеи? Причем, опять же, IT тебе на "могут" внимание уже обращал, так что на невнимательность списать не получится.
PD>А все же, как с диагоналями ?
. Мне-то несложно.
Ну так привел бы.
PD> Ты уже засомневался
Я не засомневался, я просто указываю тебе на то, что управление приоритетами находится за рамками разговора. Никаких особенных возможностей языка оно ни при каком раскладе не требует.
PD>, и это верно, хочешь какой-то параметр (в скобках — или метод, или аттрибут или еще что-то).
Я не хочу, я просто указываю на то, что параметр, решающий твою проблему, добавить в метод AsParallel совсем не сложно (если его там уже нет) и это не приведет ни к какому ощутимому усложнению кода.
PD> Дело в том, что поручив все это системе(библиотеке, FW) и надеясь, что она сделает все наилучшим образом, ты очень скоро поймешь, что иногда да, это совсем неплохо, а иногда — ни в какие ворота.
То же можно сказать и о Win32. Но ты, я гляжу, упорно пытаешься увести разговор в сторону.
AVK>>Только даже на такой пустяковой задачке прекрасно видно, насколько твой императивнй код запутаннее.
PD>Андрей, не надо.
Надо. Именно в этом суть головного сообщения топика. Если ты этого понять не можешь — разговаривать, собственно, не о чем. Подробности Win32 обсуждай, пожалуйста, без меня, последние лет 5 меня сии знания не интересуют.
AVK>>У него алгоритм намного сложнее, а, главное, там уровень косвенности выше.
PD>У него в реальных его задачах — не сомневаюсь.
В примере тоже. Ты тут так красиво расписывал, что тебе какие то там проценты нипочем. А как до дела дошло — результата 0, одни слова.
PD> Алгоритм вычисления процентов — мб и сложнее, чем вычисления сумм, но, по правде сказать, обоим (как алгоритмам) место в средней школе во втором-третьем месяце изучения программирования.
Ну и отлично. Ждем код.
AVK>>Ты сделай сперва без распараллеливания, и мы обсудим результат.
PD>Ну опять
Конечно, а ты как думал? Ты уже неделю тут пытаешься что угодно обсудить, а кода все нет и нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>