Re[27]: Axum: паралельное программирование
От: thesz Россия http://thesz.livejournal.com
Дата: 17.05.09 19:39
Оценка:
T>>Nope. В C# 3.0 ты можешь создать лямбду с побочным эффектом.

AVK>Ну и что? Лямбду без побочного эффекта на C# создать можно, а уж что там можно еще — дело десятое. Это называется — мультипарадигменный.


Таким образом он не подпадает под определение "функциональный". Ни под одно из имеющихся в сети (что по моей ссылке выше).

T>>Тему про "достаточность функциональности" не я поднял.

AVK>А кто?

По-моему, ты
Автор: AndrewVK
Дата: 17.05.09
. Нет?

T>> Мне, главное опровергнуть, чтобы она не послужила аргументом в споре.

AVK>Это не причина.

Здесь я узнаю почерк ВладаД2. Влад, это ты?

Это должен быть ты. Уж больно на твои non-sequitur-ы похоже.

T>>Мне достаточно, что ты это принял.

AVK>Я? Зачем?

Принял ли ты, что C# недостаточно функционален?

Если нет, то почему. Хотя я понимаю, почему нет. Потому, что в твоей системе ценностей он уже "достаточно функционален", поэтому он не может быть "недостаточно функционален" вообще никогда.

T>>>>Я считаю, что Axum — это PR .Net.

AVK>>>С верой спорить бесполезно.
T>>Я здесь пытаюсь показать минимальность нового в Axum
AVK>Не, это исключительно твоя вера, потому что никаких фактов в поддержку этого ты не приводишь.

Я привожу сравнение с Эрлангом, где всего для параллельного программирования больше.

T>>, из чего следует, что это PR

AVK>Из того что ты пытаешься следует? Отличная логика. И прекрасная демонстрация того, что это все таки вера.

"Что это PR" следует из минимальности нововведений в Axum.

T>>. В ответ со мной соглашаются, но продолжают утверждать, что это хорошая штука.

AVK>Я с тобой никогда в этом не соглашался. Просто потому что у меня несколько больше информации о причинах внутренних течений в МС.

Ух ты.

Но ты не spokeperson и у тебя нет странички в MSR. Поэтому я не стану брать твои слова на веру.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[27]: Axum: паралельное программирование
От: thesz Россия http://thesz.livejournal.com
Дата: 17.05.09 19:41
Оценка:
T>>При изменяемости значений нет смысла в сравнении с образцом. Рассуждения запутываются настолько, что смысл пропадает.
MC>Согласен, что сопоставляемому значению лучше во время сопоставления не меняться. Другой вопрос — должен ли это контролировать программист или компилятор.

Компилятор, конечно. Он железный, ему проще.

T>>Все (практически, все) языки со сравнением с образцом имеют неизменяемые значения. На ум в качестве опровержения приходит только Refal.

MC>Scheme, lua (с ней могу ошибаться).

Уверен насчёт Scheme? Приведешь источник сведений?
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[29]: Axum: паралельное программирование
От: thesz Россия http://thesz.livejournal.com
Дата: 17.05.09 19:46
Оценка:
T>>Точно до конца этого года неизменяемые значения не появятся в доступном рядовому пользователю C#
AVK>Ну это уж 100%. Дизайн C# 4 уже финализован, а C# 5 раньше 2011 года ждать не стоит. Это очевидные вещи. Только здесь то обсуждается ресеч, нацеленный как раз на тот самый предполагаемый релиз Dev11.

Каюсь, я тоже не сперва указал сроков действия моего утверждения. Mea culpa. Я неявно подразумевал, что для практических целей сроки появления неизменяемых значений в C# настолько велики, что их можно считать бесконечными.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[29]: Axum: паралельное программирование
От: thesz Россия http://thesz.livejournal.com
Дата: 17.05.09 19:48
Оценка:
T>> Ты же ангажирован.
AVK>Бессмысленный и необоснованный личный наезд.

Почему это? Ангажированность не свойство личности. Это может быть следствием заблуждений.

AVK>>>Я бы 100 рублей на это не поставил. (С)

T>>Видимо, тебя задело.
AVK>Нет.
T>>Кстати, а ты знаешь, что творится-то в Parallel Haskell?
AVK>Нет, это мне на данный момент не очень интересно.

Однако имеешь уверенность что-то утверждать насчёт "100 рублей".
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[28]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 19:53
Оценка:
Здравствуйте, thesz, Вы писали:

T>Таким образом он не подпадает под определение "функциональный".


Таким образом он не попадает под определение "исключительно функциональный". Я об этом с самого начала говорил. А по тому, что по ссылке — попадает.

T>>>Тему про "достаточность функциональности" не я поднял.

AVK>>А кто?

T>По-моему, ты
Автор: AndrewVK
Дата: 17.05.09
. Нет?


Нет. Это ты тут стал бросаться обвинениями, что шарп не функциональный, а посему декларативный подход к асинхронности ему не доступен.
Более того — доработка в направлении изоляции и контроля стейтов (state contraints) (в том числе та самая неизменяемость, но не только) — одна из главных целей в C# 5.

T>>> Мне, главное опровергнуть, чтобы она не послужила аргументом в споре.

AVK>>Это не причина.

T>Здесь я узнаю почерк ВладаД2. Влад, это ты?


Нет, это не он. Я, собственно, не из под анонимного аккаунта пишу.

T>>>Мне достаточно, что ты это принял.

AVK>>Я? Зачем?

T>Принял ли ты, что C# недостаточно функционален?


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

T>Если нет, то почему. Хотя я понимаю, почему нет. Потому, что в твоей системе ценностей он уже "достаточно функционален", поэтому он не может быть "недостаточно функционален" вообще никогда.


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

AVK>>Не, это исключительно твоя вера, потому что никаких фактов в поддержку этого ты не приводишь.


T>Я привожу сравнение с Эрлангом, где всего для параллельного программирования больше.


Сам понимаешь, где логическая ошибка?

T>"Что это PR" следует из минимальности нововведений в Axum.


Попробуй это доказать. Я пока логической цепочки не вижу. Вижу логическое нарушение — то, что ты не можешь придумать никакого другого объяснения, кроме того что это PR, никак не следует что это действительно PR.
Погляди от Re[6]: Axum: паралельное программирование
Автор: AndrewVK
Дата: 13.05.09
и вниз по ветке — исключительно бездоказательные утверждения. Именно поэтому я и назвал это верой.

T>Но ты не spokeperson и у тебя нет странички в MSR. Поэтому я не стану брать твои слова на веру.


Твое право.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[30]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 19:57
Оценка:
Здравствуйте, thesz, Вы писали:

T>Каюсь, я тоже не сперва указал сроков действия моего утверждения. Mea culpa. Я неявно подразумевал, что для практических целей сроки появления неизменяемых значений в C# настолько велики, что их можно считать бесконечными.


Тогда это утверждение малоценно и тривиально, потому что отсутствие изменений до C# 5 ни у кого сомнений не вызывает. Увы, неприятные особенности мейнстрима.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[30]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 19:57
Оценка:
Здравствуйте, thesz, Вы писали:

T>Почему это?


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

T> Ангажированность не свойство личности. Это может быть следствием заблуждений.


Здесь не обсуждаются мои заблуждения.

T>>>Кстати, а ты знаешь, что творится-то в Parallel Haskell?

AVK>>Нет, это мне на данный момент не очень интересно.

T>Однако имеешь уверенность что-то утверждать насчёт "100 рублей".


Потому что у меня есть кое какая информация, которой я здесь поделиться, к сожалению, не могу, NDA.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[28]: Axum: паралельное программирование
От: Mr.Cat  
Дата: 17.05.09 19:57
Оценка:
Здравствуйте, thesz, Вы писали:
T>Уверен насчёт Scheme?
В том, что для нее реализован матчинг? Было бы странно, если бы это было не так, ибо макросы рулят.
В plt scheme, например, оно вот так: http://docs.plt-scheme.org/reference/match.html.
Есть еще немного другой вариант — http://synthcode.com/scheme/match.scm — он подходит для разных имплементаций (ссылку проверить не могу, т.к. почему-то synthcode.com у меня дома не работает).
Re[29]: Axum: паралельное программирование
От: VoidEx  
Дата: 17.05.09 20:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Таким образом он не попадает под определение "исключительно функциональный". Я об этом с самого начала говорил. А по тому, что по ссылке — попадает.

functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data

Не can avoid, а avoids. Можно ли написать на C# такую лямбду, чтобы она _гарантированно_ avoids state and mutable data? До тех пор, пока за это ответственнен автор лямбды и компилятор это не проверяет, функциональным языком будет и Паскаль, где никто не мешает мне написать function foo(x) result := x*x
Re[29]: Axum: паралельное программирование
От: Mr.Cat  
Дата: 17.05.09 20:11
Оценка:
Здравствуйте, Mr.Cat, Вы писали:
MC>В том, что для нее реализован матчинг? Было бы странно, если бы это было не так, ибо макросы рулят.

А, ну и не забываем про матчинг в самих макросах: syntax-rules и syntax-case.
Re[30]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 20:14
Оценка: :))
Здравствуйте, VoidEx, Вы писали:

VE>Не can avoid, а avoids.


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

P.S. Я тут счас скажу кое кому, что язык на букву Н не функциональный, они вас буденовками закидают .
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[26]: Axum: паралельное программирование
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.05.09 20:17
Оценка:
Здравствуйте, thesz, Вы писали:

T>>>2) Использовать агенты в HPC — немного совсем малоэффективное решение.

E>>Агенты в HPC вполне могут заменить старый добрый MPI более современными решениями.

T>А чем они от него отличаются-то?


Если речь об Axum, то там, насколько я могу судить, на уровне языка декларируются контракты между агентами. Тогда как в MPI сборкой/разборкой сообщений программист занимается вручную. Соответственно, в MPI накосячить гораздо проще и косяки эти будут вылезать в run-time.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[31]: Axum: паралельное программирование
От: VoidEx  
Дата: 17.05.09 20:19
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


VE>>Не can avoid, а avoids.


AVK>Правильно, потому что для чисто функционального кода это не допустимо. Вообще, поражаюсь простой вещи — как что то по делу спрашиваешь, с кодом там, реакция вялая. Зато как терминологический спор — желающих хоть отбавляй.

AVK>В контексте этого топика важна именно возможность, а не отсутствие поддержки других стилей.
А где я требую отсутствие поддержки других стилей? Ради бога, пусть можно создать лямбду с побочками. Но вот это должно быть обязательно:
void pureFoo(PureFunc<int, int> f) { Console.WriteLine(f(5)); }
void foo(Func<int, int> f) { Console.WriteLine(f(5)); }

pureFoo(x => { Console.WriteLine(x); return x; }); // error! lambda is not pure
foo(x => { Console.WriteLine(x); return x; }); // ok
pureFoo(x => x*x); // ok
foo(x => x*x); // ok

Вот пока еррора нет, никакой функциональщины тоже нет. Она держится лишь на добром слове авторов соответствующих функций.
Re[24]: Axum: паралельное программирование
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.05.09 20:27
Оценка: 6 (1)
Здравствуйте, Gaperton, Вы писали:

E>>Стоит сменить предметную область с fault-tolerant systems на high perfomance computing и окажется, что практически все эти достоинства, в лучшем случае, окажутся мертвым грузом.


G>Преимущества Эрланга имеют большое значение в любых серверных приложениях с требованием 24х7, которые работают не в пакетных (как high-performance computing), а в интерактивных сценариях.


Даже в области серверных приложений с требованиями 24x7 подход Erlang-а далеко не единственный. За десять лет до начала работ для Erlang-ом в лабораториях Ericsson компания Tandem разработала свой набор принципов обеспечения отказоустойчивости. Который и был успешно воплощен в Tandem-ах (ныне HP NonStop). Хотя в чем-то эти подходы совпадают, например, в следованию принципу fail fast.

G>High-performance computing — это настолько узкая и малораспространенная область, что сменить что-либо на нее будет очень затруднительно. И она достаточно уныла, чтобы не возникало такого желания.


Существует мнение, что с приходом массовых multicode машин под HPC будут попадать даже такие утилиты, как IrfanView и ACDSee. Которые будут использовать 8-16 имеющихся в их распоряжении ядер даже для простейшей обработки 20-30 мегапиксельных фотографий. Какой толк от Erlang-а во внутренностях IrfanView (с горячей заменой кода, немутабельных данных, сопоставлении с образцом и принципом let it fail) я не представляю. В отличии от использования data-flow механизмов на агентах типа Axum-овских.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[24]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 20:28
Оценка:
Здравствуйте, thesz, Вы писали:

G>>>>С имеративностью я прогнал. В спеке по языку написано что axum поддерживать должен все функциональные фичи C# 3.0. Правда компилятор далек еще от этого состояния.

T>>>Да ничего ты не прогнал. C# как был императивным, так и останется. Функциональным ему не быть вовек.
G>>С чего бы? Только потому что pattern-matching нету?

T>Потому, что в нём никогда (практически никогда) не будет чего-то типа монады IO Хаскеля.

Монада IO в хаскеле не от хорошей жизни. ИМХО язык должен давать возможность писать имеративный код там где надо и иметь возвожность декларативно ограничивать запуск такого кода.

T>В нём не будет разделения типов выражений с эффектом и без.

И зачем оно надо?

T>Да и неизменяемых значений тоже не будет. А без них не будет и сравнения с образцом.

Неизменяемые значения есть. Более того в составе Axum есть компилятор C# с какими-то эксперементалтными фичами, связанными как раз с иммутабельностью.

T>>>Строгая типизация страдает.

G>>Чем страдает?

T>Ухудшением проверок. Неужто непонятно? У тебя часть на строготипизированном ЯП, другая на менее строготипизированном ЯП (вообще на скриптовом языке, как в пределе).

Ни разу не страдал от ухудшения проверок в .NET. Может пример адекватный приведешь?

T>Чем и хороши DSeL, что они пользуются всей мощью проверок типов базового языка.

Дык в Axum проверки более сильные, чем в C#. Так что про DSEL мимо кассы.

G>>>>Кстати, есть примеры удачного создания агентной модели как DSEL в существующем языке?

T>>>Нет. Попробуй написать на Хаскеле, должно хорошо получиться.
G>>Зачем писать в хаскеле агентную систему, если она уже есть в axum, со всем необходимым сахаром.

T>Но без удобных вещей типа синтаксиса, системы типов, чистого кода и сравнения с образцом.

Угу, сомневаюсь что в исследовательском проекте это все необходимо.
А если уж необходимо то есть F#.

G>>>>Ну давай посмотрим. В чем Erlang настолько больше?

T>>>Функции высших порядков, передаваемые по любому каналу. Неизменяемые данные. Глубокая инспекция данных, что обычно называют сравнением с образцом и что произрастает на их неизменности.
G>>Неизменяемые данные есть и в Axum, там это называется схемами. Только схемы там сериализуемые должны быть, поэтому ФВП непердавать нельзя.
G>>Хотя не знаю насколько необходимо передавать ФВП, там ведь полностью поддерживается ООП.
T>Ты, вообще, HOF пользовался?
что есть HOF?

T>>>Горячая замена кода.

G>>Горячая замена кода есть и в .NET, только больше приседаний для нее надо.
T>И стратегия замены только одна — поддерживаемая .Net. Сравни с Эрлангом, где только в тезисе Джо Армстронга описаны две стратегии.
И что это меняет?

T>>>>>(обнаружил себя в непривычной ситуации защиты Эрланга)

G>>>>(а я вроде как и не против Erlang был)
T>>>Ты за этот Axum + .Net. То есть, поддерживаешь микрософтовскую пропаганду.
G>>Улыбнуло. Разве кто-то говорит что надо срочно бросить все и писать на axum?
T>Да вообще о нём забыть надо.
А то вдруг .NET задавит erlang и haskell.
Re[33]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 20:35
Оценка:
Здравствуйте, Gaperton, Вы писали:

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


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


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


AVK>>Но при этом ты доказываешь, что твои фокусы с файберами, которые магия куда как более хардкорная, это тоже хорошо


G>Секунду. Все что я доказываю, это что синхронная запись лучше асинхронной. И все.

Как в анекдоте:
-синхронная запись лучше, чем асинхронная
-чем лучше?
-чем асинхронная!


G>Данная "декларативность" его имхо затрудняет.

Данная декларативность не влияет на наблюдаемое поведение.
Re[25]: Axum: паралельное программирование
От: VoidEx  
Дата: 17.05.09 20:36
Оценка:
Здравствуйте, gandjustas, Вы писали:

T>>Потому, что в нём никогда (практически никогда) не будет чего-то типа монады IO Хаскеля.

G>Монада IO в хаскеле не от хорошей жизни. ИМХО язык должен давать возможность писать имеративный код там где надо и иметь возвожность декларативно ограничивать запуск такого кода.
Обоснуешь? Тем, кто не писал, кажется, что это костыль для того, чтобы иметь возможность писать императивно, хотя бы через какие-то монады.
Я лично всё больше жалею, что такого способа нет в обычных языках.
Re[32]: Axum: паралельное программирование
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.05.09 20:37
Оценка: +1 :))
Здравствуйте, VoidEx, Вы писали:

VE>Вот пока еррора нет, никакой функциональщины тоже нет. Она держится лишь на добром слове авторов соответствующих функций.


Блин, Klapaucius-а на вас c thesz нужно натравить. Он мне тут года полтора назад убедительно доказывал, что раз в языке Nice можно сделать функцию curry
Автор: Klapaucius
Дата: 01.02.08
, значит он функциональный. И все, ни о каких побочных эффектах речи не было.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[25]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 20:44
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


G>>Преимущества Эрланга имеют большое значение в любых серверных приложениях с требованием 24х7, которые работают не в пакетных (как high-performance computing), а в интерактивных сценариях. High-performance computing — это настолько узкая и малораспространенная область, что сменить что-либо на нее будет очень затруднительно


AVK>Тем не менее, Евгений мыслит в абсолютно правильном направлении — в МС рассматривают прежде всего реюз мультикора для ускорения рассчетов.

Не думаю что Axum поможет при ускорении расчетов. Для числомолотилки доожен быть прямолинейный код, который исполняется на всех доступных ядрах одновременно. Axum же дает возможность писать системы в которых взаимодействют множество разных потоков, при этом задействовать минимум ресурсов. При этом появляется небольщой оверхед, но сильно экономится на синхронизации.
Re[32]: Axum: паралельное программирование
От: VoidEx  
Дата: 17.05.09 20:46
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Вот пока еррора нет, никакой функциональщины тоже нет. Она держится лишь на добром слове авторов соответствующих функций.

На всякий случай поясню мысль.
Сказать, что C# функциональный всё равно, что сказать, что Си (без const, да и наличие не помогает, вообще-то) достаточно поддерживает иммутабельность, никто же не мешает нам переменную не менять.
Однако это, очевидно, чушь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.