> Речь была вот о чем.
>
> Я отвечал вот на это утверждение hummermania:
> >>> Там где императивные языки встают в тупик при банальной задаче запуска десятков(сотен/тысяч) тредов с высокой интенсивностью обмена данных между ними - Эрланг справляется на ура, не говоря уже про распараллеливание вычислений между нодами.
>
> Здесь он не прав - эрланговские возможности распараллеливания никак не завязаны на функциональную парадигму, о чем я и написал. Имеете что возразить?Он был не прав, но и вы ответили не лучше. Вот это я и имею возразить.
Вы оба с ним стали рассуждать о вещах, к функ парадигме не относящимся, так как будто они к ней относятся.
Он попытался противопоставить Эрланг императивным языкам, тогда как у Эрланка ядро тоже императивное, потому и параллелится с помощью сообщений. А вы заявили: "а уж потом - за счёт своей функциональной природы". Из ваших слов получается, что якобы "функциональная природа" плохо параллелится.
В том то и дело, что в Эрланге этой "функциональной природы" попросту нет. Не в укор языку, система хорошая, только те кто не понимают, начинают потом сеять дезу, рассуждая о функциональных языках на примере Эрланга.
> Насчёт гусей я не в курсе, а "функциональный параллеллизм" (то есть когда рантайм за счет чистоты может распараллелить выполнение какой-то функции) - штука таки пакетная, вы не можете в середине выполнения этой самой фукции проверить какое-то внешнее условие и изменить поведение - отдали агрументы, получили результаты. Понятно, что это by design, но в реальном мире это часто неудобно, хотя обходные пути придумать можно, конечно.
О том и речь, что вы не знаете про гусей так же, как не знаете про параллелизм в функциональной парадигме. И рассуждая про "обработку пакетных заданий" и про "функциональщину", так и остаетесь в императивной плоскости мышления.
> И да - эрланг impure, что и делает, собственно, его пригодным для реальных задач. А вот насчет изменяемых переменных - я начинаю подозревать, что эрланга вы в глаза не видели. Иначе знали бы, что переменные там вполне себе иммутабельные
Опять не знаете о чем говорите. "Вполне себе иммутабельные" - вы этим словосочетанием сами подтвердили, сами не заметив как, что они самые настоящие мутабельные. Это вам не живопись где достаточно полутонов.
> (чему я, допустим, восем не рад - с его микроскопическими размерами функций
Это давно известно, что люди с императивным мышлением предпочитают длинный код.
> мутабельные локальные переменные никаких проблем бы не создали,
Они проблем не создают, они делают бессмысленными какие либо разговоры о функциональной парадигме.
> зато читабельность повысилась бы за счет возможности использования императивных конструкций
Если функциональные конструкции для вас не читабельны, лучше вообще в эту область не лезть и спокойно пользоваться императивными языками.
> хоть циклов тех же
Тем более функциональные языки не для вас.
> Функциональная, как и императивная, паардигма - это,знаете ли, не Святой Грааль и не истина, данная свыше. Это инструменты, которые выбирать надо в зависимости от области деятельности, а не молиться на чистоту. Авторы эрланга, к слову, понимали это очень хорошо, поэтому в нём существует масса способов взаимодействия с кодом, написанным на других языках - как посредством сообщений, так и путем создания модулей, которые предоставляют функции, с точки зрения пользователя неотличимые от эрланговских, и это вполне обычное дело (вон, и до автора CouchDB уже дошло). И, разумеется, поддерживается обработка крешей в таких модулях, перезапуск и т.п. Вот это - реальный подход реальных опытных инженеров.
"Чистота" в информатике - это не как в живописи или литературе, на нее не молятся, а есть совершенно конкретные критерии и четкие математически обоснованные механизмы реализации этой самой "чистоты". Вы просто смотрите на информатику с гуманитарной точки зрения. И говорите всякую чушь, к предмету не относящуюся.