?

Log in

No account? Create an account
Occupy FP - Дважды мудак [entries|archive|friends|userinfo]
Декларативное рулит

Site Meter

[ website | Мой сайт ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Occupy FP [июл. 15, 2015|16:21 pm]
Andy Melnikov
[Tags|, ]

ФП оккупировано учоными и хеллоувордистами, часто в одном лице.

Они говорят "ФП лучше для оптимизации", а сами забили на оптимизатор, потому что экстенсивно долбить оптимизатор - это скучный и бесконечный процесс.

Они говорят "ФП лучше для рефакторинга" - и для Хаскеля нет аналогов IDEA, есть говноподелка HaRe под емакс, которой никто, кроме емаксодрочеров, не может воспрользоваться, которая многие годы (после "диссертации") лежала гнила. И даже обычные IDE только недавно стали юзабельными (ака вышли из альфы по качеству).

Они говорять "ФП лучше для параллелизации" - и точно также все эти 100500 библиотек и компиляторов не выходят из альфы. Более-менее зрелый - только рантайм GHC, который низкоуровневый и которому 10 лет в обед - никакой тебе полиэдрической компиляции и GPU и т.д.

А на бумаге да, "ФП лучше". Но пока худшие впереди.
СсылкаОтветить

Comments:
[User Picture]From: mipa
2015-07-15 01:54 pm
В ФП не хеллоувордисты, а фибонначисты, что еще более бессмысленно.
(Ответить) (Thread)
[User Picture]From: nponeccop
2015-07-15 02:07 pm
Не, фазу фибоначчистов-проджектэйлеристов ФП преодолело уже давно. Тот же

https://github.com/HIPERFIT/accelerate-opencl

или

http://disciple.ouroborus.net/

или

https://ghc.haskell.org/trac/ghc/wiki/GpHEden

выходят далеко за рамки фибоначчизма
(Ответить) (Parent) (Thread)
From: migmit
2015-07-15 02:24 pm
Тут большой вопрос, что понимать под ФП. Верно ли, что ФП — это такой эвфемизм для слова "Хаскель"?
(Ответить) (Thread)
[User Picture]From: ext_1684112
2015-07-15 02:54 pm
Насколько мне известно, остальные-то еще хуже.
(Ответить) (Parent) (Thread) (Развернуть)
(Удалённый комментарий)
[User Picture]From: helvegr
2015-07-15 05:57 pm
> для Хаскеля нет аналогов IDEA

Да, но при этом он всё равно лучше для рефакторинга.
(Ответить) (Thread)
[User Picture]From: slonopotamus
2015-07-15 08:15 pm
Я тут заглянул в статистику использования мной рефакторингов идеи. Лидеры (пропуская smart completion): introduce variable, rename, change method signature (как правило, для смены порядка или добавления аргумента). Каким местом тут поможет хаскель?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: m0dest87
2015-07-15 06:07 pm
Так а те кто используют ФП в продакшене получается никакого преимущества от ФП не получают?
(Ответить) (Thread)
[User Picture]From: nponeccop
2015-07-15 10:24 pm
Конечно. Они просто дураки и у них нет пиписьки.
(Ответить) (Parent) (Thread)
From: Игорь Петров
2015-07-15 06:51 pm
"ФП лучше для параллелизации"

Тут самое смешное, что рантаймы подавляющего большинства имплементаций ФЯ не поддерживают SMP вообще, либо не поддерживали до относительно недавнего времени.
(Ответить) (Thread)
[User Picture]From: thesz
2015-07-17 01:09 pm
Id90, язык с lenient evaluation order, работал на CM-5, машине с многими процессорами (SPARC, до 1024-х процессоров) в начале 90-х.

Это один из первых языков, где было введено ограничение параллелизма (throttling), а иначе количество параллельных микропотоков превышало возможности системы.
(Ответить) (Parent) (Thread)
[User Picture]From: vit_r
2015-07-15 08:42 pm
Параллелизация в Эрланге вполне нормальная. И это то ФП, которое нужно миру.
(Ответить) (Thread)
[User Picture]From: nponeccop
2015-07-15 10:27 pm
А вот скажите, как единственный здесь представитель Реального Мира™, как обстоят дела с IDE в кровавом энтерпрайзе? Я почему-то думал, что IDE в обязательном порядке спускают сверху, хомячков обязывают есть, что дают. Насколько в реальности с этим демократично, и какое распределение используемых текстовых редакторов в команде?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: vshabanov
2015-07-15 08:44 pm
> ФП оккупировано учоными и хеллоувордистами, часто в одном лице.

Вообще-то ФП пробирается во многие языки. Я бы даже сказал, что ФП это мейнстрим -- лямбды и first class functions есть много где. Pattern matching уже реже, но это в принципе и не совсем ФП.

> Они говорят "ФП лучше для оптимизации", а сами забили на оптимизатор, потому что экстенсивно долбить оптимизатор - это скучный и бесконечный процесс.

В среднем, обычный код написанный на хаскелле получается не медленнее, чем на java. С низкоуровневой числодробильней надо конечно возиться, но с ней и в других языках надо возиться.

И над оптимизатором GHC вполне себе работают. Но меньше, чем над GCC, LLVM или .Net

> Они говорят "ФП лучше для рефакторинга"

Скорее чистый код лучше, т.к. меньше шансов налажать при перестановке строк местами.

> и для Хаскеля нет аналогов IDEA

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

> Они говорять "ФП лучше для параллелизации

Чистый код легче параллелится и оптимизируется даже C++/Java/C#.

У GHC отличный многопоточный рантайм. Позволяет по другому проектировать системы, т.к. пустить сотню тысяч нитей не проблема.

> никакой тебе полиэдрической компиляции и GPU и т.д.

И часто ли это нужно? Числодробильню можно и на Си написать.
(Ответить) (Thread)
[User Picture]From: nponeccop
2015-07-15 10:38 pm
> лямбды и first class functions есть много где

Да, я это в ФП даже не записываю. В перле всё было в мохнатом году, и т.п.

> не медленнее, чем на java

Это означает, что ФП не лучше для оптимизации, чем Java, ЧТД. Преимущество не реализовано, осталось на бумаге.

> Хаскелл выбирают те, кто предпочитает язык, им среда не нужна.

Они дураки и у них нет пиписьки. Конечно, среда не нужна, из-за Blub Paradox. Hадо будет попросить товарища из THIRTEEN на следующем ICFPC писать скринкаст. Ну, и среды уровня IDEA всё равно нет.

> И часто ли это нужно?

Муахаха, это ж снова Blub Paradox. FP обещает автоматическую векторизацию и параллелизацию трудно параллелизируемого кода. Это не нужно, потому что этого нет (за исключением исследовательских прототипов - гуглите polytope model).

> Числодробильню можно и на Си написать.

Вы OpenCL видели? Там нереально что-то писать.

Edited at 2015-07-15 22:39 (UTC)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: thesz
2015-07-17 06:14 am
Деньги?
(Ответить) (Thread)
[User Picture]From: nponeccop
2015-07-17 11:35 am
И этот человек выступает против однострочных комментариев! Какие деньги?
(Ответить) (Parent) (Thread) (Развернуть)