Re[36]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.01.14 15:33
Оценка:
Здравствуйте, alex_public, Вы писали:

I>>Тебе сюда — http://db.cs.berkeley.edu/papers/cidr11-bloom.pdf


_>И какое отношение эта поделка имеет к проблемам композиции в императивном коде? )


Там написано.
Re[30]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.01.14 15:34
Оценка:
Здравствуйте, alex_public, Вы писали:

I>>Аналог это что бы и ссылка-указатель была и модификация состояния и синтаксис, как в С++ ?


_>Синтаксис не обязательно. )


let x = y + 10
Re[29]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 15:39
Оценка:
Здравствуйте, Klapaucius, Вы писали:

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


Контролируемая (т.е. всякие там монады st/io) или же не явная, скрытая внутри языка? Если первое, то это не подходит. А вот второе было бы классно, но я таких языков что-то не знаю...

K>Такое — это какое? Имеется в виду контролируемая мутабельность? Она, разумеется, во всех чистых языках есть. Развитая система для контроля уникальности ссылок есть в Clean. Оптимизации, устраняющие промежуточные результаты, там где это возможно есть в GHC, для списков в стандартной библиотеке и пакете stream-fusion, для массивов в пакетах vector и repa. Вполне работающие.


Мы про конкретный пример говорили (кадры видео и набор комбинаций фильтрующих функций). Так вот, можем ли мы написать чистый (это принципиально естественно, иначе весь смысл теряется) код, который при этом осуществлял бы фильтрацию на месте? ) В том смысле, что код был бы в обычном стиле "всё копируем", но при этом компилятор разглядел бы что можно оптимизировать и превратил бы это всё в фильтрацию массива на месте.
Re[65]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 15:40
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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

I>Правильно и это значит, что нужна универсальная функция.

Ну покажи как ты решаешь данную задачу, если у тебя допустим есть такая функция. )
Re[49]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 15:55
Оценка:
Здравствуйте, Klapaucius, Вы писали:

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


1. Я нигде не соглашался, что обобщённый код на C++ нетипизирован. Наоборот, я говорил что с этим никаких проблем нет.

2. Я утверждал, что нельзя реализовать одновременно и быстрый параметрический полиморфизм и раздельную компиляцию. В начале были какие-то непонятности насчёт Хаскеля в этой области (т.к. он позволяет и то и то, только не одновременно), но потом мы пришли к выводу, что в нём всё аналогично (правда не два крайних положения, а есть ещё и промежуточные), т.е. никаких чудес, как и в C++.

3. Разговор про метапрограммирование в D к теме обобщённого программирования имеет лишь косвенное отношение и является отклонением от темы, как я сам и указал ещё несколько сообщений назад.
Re[34]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.01.14 16:14
Оценка: :)
Здравствуйте, alex_public, Вы писали:

I>>Ну стало быть, согласно твоим словам, ты считаешь что Эрлан это другое название для С++, других объяснений нет


_>Нет) Я просто не пойму, почему ты считаешь, что факт существования каких-то аналогов MPI противоречит факту лидирующего положения MPI в программирование суперкомпьютеров и вычислительных кластеров.


Я не знаю, про какие ты супер-копмьютеры говоришь. В суперкомпьютерах бОльшей частью не С++, а какой нибудь фортран или вовсе питон. Фортран потому что никто не хочет переписывать сотни миллионов строчек кода, а питон потому, что программы на суперкомпьютерах обычное дело, работают меньше, чем пишутся.
Эта куча супер-компьютеров, которые реально существуют и их нет на рынке и никогда не будет, в них может быть всё что угодно и это ничего не доказывает — исследования, наблюдения за погодой и тд и тд и тд.

А вот что происходит реально http://www.slideshare.net/max_posedon/world-of-tanks-27831490

Всего ничего — самая массовая онлайн игра в реальном времени, и это Питон и немного С++. Последний рекорд, позавчера, 1.1КК пользователей одновременно

Что касается MPI то это просто стандарт, набор функций. Функции вызываются из __любого__ языка. Реализации есть и на питоне и на джаве.
Re[27]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 16:35
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Я надеюсь, вы это все не всерьез пишете.


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

K>Да почему не имеет-то? Да, если не использовать мутабельные ссылки, то семантически наблюдаемой разницы между передачей по ссылке и копированием нет. Но эффективность реализации имеет критическое значение. Какой смысл в фиче, если ее нельзя использовать из-за неприемлимой тормознутости?


Я и говорил, что семантической разницы нет. Разница в том что нам надо править для достижения результата. Базовые принципы или же оптимизацию.

K>Это не так, потому что в декларативных языках есть, в основном, все то же самое, что и в императивных — только в более управляемом виде. Но, даже если и так — так что с того? Императивному языку не нужно это поддерживать в лямбдах? Как раз наоборот, нужно. И императивные языки с решенной UFP вроде C# поддерживают.


Всё очень просто: если чистый функциональный язык полностью обходится в своей работе копированием (возможно оптимизированным) вверх/вниз, то C++, тоже имеющий оптимизированное копирование вверх/вниз, без проблем должен решать все задачи ФП.

K>Чего непонятного-то? Я же объяснил. Этот самый "эффективный [=]" позволяет иметь сколько угодно "копий", а то, о чем вы говорите подразумевает только передачу, а не разделение.


Ну так это же используется только при передаче вверх (т.е. когда старая копия всё равно разрушается сразу). А передав вверх, мы можем уже дальше размножать как угодно обычным const&.

K>Целый парад инвалидов. А нормальной ссылки как не было — так и нет. Выбор хорош тогда, когда его можно не делать — есть хорошее решение по умолчанию, а какое-то другое решение нужно принимать в краевых ситуациях. На C++ же нормального решения по умолчанию нет, есть только краевые, и вдоль вот этих вот стенок "пространства решений" программисту и предлагается двигатся. В результате ФП для него будет не средством облегчения написания и поддержки кода, а цирком с конями в лучшем случае, и изощренной пыткой в остальных.


Как раз это всё без проблем работает, т.к. за исключением shared_ptr это всё встроенные средства самого языка (а не стандартной библиотеки) и соответственно удобно и красиво обрабатывается. А вот при попытке поработать с неконстантной ссылкой в Хаскеле, мы действительно видим инвалидный код. Причём он ещё не просто сам страшный, но и заражает всё вокруг, так что просто так не избавишься от эффектов.
Re[31]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 16:41
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>
I>let x = y + 10
I>


И кто тут у нас изменяемая ссылка? ) И кстати что за язык? )
Re[32]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.01.14 16:48
Оценка:
Здравствуйте, alex_public, Вы писали:

I>>
I>>let x = y + 10
I>>


_>И кто тут у нас изменяемая ссылка? ) И кстати что за язык? )


Языков под этот синтаксис наберется наверное пару сотен. Это нормальный эквивалентный код
Re[35]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 17:06
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Я не знаю, про какие ты супер-копмьютеры говоришь. В суперкомпьютерах бОльшей частью не С++, а какой нибудь фортран или вовсе питон. Фортран потому что никто не хочет переписывать сотни миллионов строчек кода, а питон потому, что программы на суперкомпьютерах обычное дело, работают меньше, чем пишутся.


Не, сейчас там в основном C.

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


Вообще то MPI работает не только для суперкомпьютеров, но и для любых кластеров. Более того, он не требуется обязательно специальной ОС и настройки кластера на таком уровне, а позволяет сам построить эффективный кластер на базе произвольной сети компьютеров, работающих под разными ОС.

I>А вот что происходит реально http://www.slideshare.net/max_posedon/world-of-tanks-27831490


Ага, ага. Особенно мне понравился последний слайд с их базовыми идеями: "синхронный подход везде где можно". )))

I>Всего ничего — самая массовая онлайн игра в реальном времени, и это Питон и немного С++. Последний рекорд, позавчера, 1.1КК пользователей одновременно


Да, да, заглядывал туда позавчера. ) По 4 минуты в бой собирало — ужас. )))
Re[33]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 17:11
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Языков под этот синтаксис наберется наверное пару сотен. Это нормальный эквивалентный код


Чистый функциональный? )
Re[36]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.01.14 18:16
Оценка:
Здравствуйте, alex_public, Вы писали:

I>>Я не знаю, про какие ты супер-копмьютеры говоришь. В суперкомпьютерах бОльшей частью не С++, а какой нибудь фортран или вовсе питон. Фортран потому что никто не хочет переписывать сотни миллионов строчек кода, а питон потому, что программы на суперкомпьютерах обычное дело, работают меньше, чем пишутся.


_>Не, сейчас там в основном C.


Там винигрет всего подряд.

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


_>Вообще то MPI работает не только для суперкомпьютеров, но и для любых кластеров. Более того, он не требуется обязательно специальной ОС и настройки кластера на таком уровне, а позволяет сам построить эффективный кластер на базе произвольной сети компьютеров, работающих под разными ОС.


И где исследования рынка ? "С++ реализация MPI занимает XX(>50) процентов рынка распределенных приложений"


I>>А вот что происходит реально http://www.slideshare.net/max_posedon/world-of-tanks-27831490


_>Ага, ага. Особенно мне понравился последний слайд с их базовыми идеями: "синхронный подход везде где можно". )))


Я в курсе. Странно, что люди решили писать как проще, а не как быстрее, и построили один из наиболее нагруженых игровых проектов.

I>>Всего ничего — самая массовая онлайн игра в реальном времени, и это Питон и немного С++. Последний рекорд, позавчера, 1.1КК пользователей одновременно


_>Да, да, заглядывал туда позавчера. ) По 4 минуты в бой собирало — ужас. )))


Перформанс здесь ни при чем. Это балансер так работает, алгоритм подбора команд кривой. 9й-10й левел практически без задержек, а 8й ни разу не дождался. Я за день вкинул примерно 50 боёв и ни разу не было проблемы с пингом или лагами.
Re[37]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 19:35
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>И где исследования рынка ? "С++ реализация MPI занимает XX(>50) процентов рынка распределенных приложений"


Я не писал про C++ ничего такого. Я писал именно про MPI. И уточнил ещё, что это родная техника для C/C++. )

I>Я в курсе. Странно, что люди решили писать как проще, а не как быстрее, и построили один из наиболее нагруженых игровых проектов.


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

А действительно самый нагруженный игровой проект, это вроде как EVE Online, т.к. там чуть ли не единый мир для всех игроков. Т.е. там тоже есть какое-то деление на регионы, но технически все игроки могут собраться в одном. И когда такое бывает, то она адски тормозит. ))) Ну это по слухам, я сам не играл в неё.

I>Перформанс здесь ни при чем. Это балансер так работает, алгоритм подбора команд кривой. 9й-10й левел практически без задержек, а 8й ни разу не дождался. Я за день вкинул примерно 50 боёв и ни разу не было проблемы с пингом или лагами.


Нормальный там балансер, это просто сами игроки такое устроили (не знаю почему, акция что ли какая-то была?). Я там видел в процессе ожидания расклад типа 8000 человек в очереди на 8-ом уровне и по 500 человек на остальных. Т.е. балансер тупо не успевал раскидать 8-ок. Но при этом надо отдать должное, работал без единого сбоя, просто медленно (ну так и онлайн был рекордный). Т.е. в целом у них система отличная сейчас.
Re[38]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.01.14 20:08
Оценка:
Здравствуйте, alex_public, Вы писали:

I>>И где исследования рынка ? "С++ реализация MPI занимает XX(>50) процентов рынка распределенных приложений"


_>Я не писал про C++ ничего такого. Я писал именно про MPI. И уточнил ещё, что это родная техника для C/C++. )


Какой то новый термин. Родная техника это когда для hello world нужны простыни кода ?

_>На самом деле он у них самый нагруженный только по числу пользователей. Но т.к. бои все не больше чем по 30 человек, то оно очень сильно и без всяких напрягов распараллеливается. Т.е. грубо говоря, если мы сумели построить шуструю систему для одного боя, то дальнейший рост не так сложен.


Шустрые системы для одного боя были еще в 90х и шота выходит, все кто ни брался, не знали твою истину. Так что ли ?

_>А действительно самый нагруженный игровой проект, это вроде как EVE Online, т.к. там чуть ли не единый мир для всех игроков. Т.е. там тоже есть какое-то деление на регионы, но технически все игроки могут собраться в одном. И когда такое бывает, то она адски тормозит. ))) Ну это по слухам, я сам не играл в неё.


Интересный аргумент — еще один Питон + немного С++.

I>>Перформанс здесь ни при чем. Это балансер так работает, алгоритм подбора команд кривой. 9й-10й левел практически без задержек, а 8й ни разу не дождался. Я за день вкинул примерно 50 боёв и ни разу не было проблемы с пингом или лагами.


_>Нормальный там балансер, это просто сами игроки такое устроили (не знаю почему, акция что ли какая-то была?). Я там видел в процессе ожидания расклад типа 8000 человек в очереди на 8-ом уровне и по 500 человек на остальных. Т.е. балансер тупо не успевал раскидать 8-ок. Но при этом надо отдать должное, работал без единого сбоя, просто медленно (ну так и онлайн был рекордный). Т.е. в целом у них система отличная сейчас.


И представь — это Питон, который такой тормозной против С++
Re[39]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 21.01.14 20:55
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Какой то новый термин. Родная техника это когда для hello world нужны простыни кода ?


Это ты вообще о чём? )

I>Интересный аргумент — еще один Питон + немного С++.


Ты так говоришь, как будто бы это не два моих любимых языках. ))) Хотя да, D всё же на мой вкус лучше, но у него нет инфраструктуры...

I>И представь — это Питон, который такой тормозной против С++


Ну вообще то сайт и у нас на Питоне работает. ))) Так что я как-то не пойму что ты хочешь сказать этим. )
Re[40]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 22.01.14 06:22
Оценка:
Здравствуйте, alex_public, Вы писали:

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


I>>Какой то новый термин. Родная техника это когда для hello world нужны простыни кода ?


_>Это ты вообще о чём? )


I>>Интересный аргумент — еще один Питон + немного С++.


_>Ты так говоришь, как будто бы это не два моих любимых языках. ))) Хотя да, D всё же на мой вкус лучше, но у него нет инфраструктуры...


Это очень интересные сведения. Наверное то хочешь сказать, что питон уже догнал С++ по производительности ?

I>>И представь — это Питон, который такой тормозной против С++


_>Ну вообще то сайт и у нас на Питоне работает. ))) Так что я как-то не пойму что ты хочешь сказать этим. )


Все ты понимаешь, только притворяешься, — и клиент и сервер eve online написаны в основном на питоне, точнее на stackless Python.
Re[30]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Klapaucius  
Дата: 22.01.14 08:34
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>В смысле? Возможно одновременное изменение/чтение одних и тех же данных из нескольких потоков — поэтому и вводится синхронизация.


"на ровном месте" означает "без нужды". Тут может быть три варианта:
1) Вы считаете, что ленивость не нужна.
2) Вы не поняли зачем это нужно. (вычеркиваем)
3) У вас есть идея получше, как обеспечить ту же функциональность.
Предполагаю, что правильный ответ — 1.
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[41]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 22.01.14 10:56
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Это очень интересные сведения. Наверное то хочешь сказать, что питон уже догнал С++ по производительности?


Не) Даже pypy версия только отдалённо приближается к js(v8)/Java/C#, а в нормальном Питоне вообще мрак в этом смысле. ))) Но там, где мы его используем, скорость вообще не принципиальна.

I>Все ты понимаешь, только притворяешься, — и клиент и сервер eve online написаны в основном на питоне, точнее на stackless Python.


Ну я про это не в курсе, но если ты говоришь, то наверное так и есть. ) И что? )
Re[42]: Есть ли вещи, которые вы прницпиально не понимаете...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 22.01.14 11:11
Оценка:
Здравствуйте, alex_public, Вы писали:

I>>Это очень интересные сведения. Наверное то хочешь сказать, что питон уже догнал С++ по производительности?


_>Не) Даже pypy версия только отдалённо приближается к js(v8)/Java/C#, а в нормальном Питоне вообще мрак в этом смысле. ))) Но там, где мы его используем, скорость вообще не принципиальна.


Опаньки ! И это, представь, не является препятствием для построения суперкомпьютера навроде evo online, который входит в top 500.

I>>Все ты понимаешь, только притворяешься, — и клиент и сервер eve online написаны в основном на питоне, точнее на stackless Python.


_>Ну я про это не в курсе, но если ты говоришь, то наверное так и есть. ) И что? )


Это показывает, что твои аргументы про С++ несостоятельны.
Re[43]: Есть ли вещи, которые вы прницпиально не понимаете...
От: alex_public  
Дата: 22.01.14 11:54
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Опаньки ! И это, представь, не является препятствием для построения суперкомпьютера навроде evo online, который входит в top 500.


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

I>Это показывает, что твои аргументы про С++ несостоятельны.


Ээээ какие аргументы? Я вообще не пойму с чем ты споришь последний день. ) Вроде бы всё началось с твоего утверждения, что функциональные языки имеют какие-то таинственные преимущества при создание распределённых программ. Тогда причём тут примеры с Питоном, который функциональный не более чем тот же C++?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.