вторник, 8 сентября 2009 г.

[comp.prop] Просмотрел презентацию "Multicore Programming in Haskell Now!"

Просмотрел презентацию "Multicore Programming in Haskell Now!"...

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

В начале улыбнула фраза: "Mature: 20 year code base, long term industrial use, massive library system". Ну тут либо я слишком недружелюбно настроен, либо Haskell-исты выдают желаемое за действительное. Но, сугубо имхо, промышленным использованием Haskell-я до сих пор не пахнет. Поскольку промышленное, в моем понимании -- это масштабы. Большие программы, большие коллективы, большое количество разработок. И, главное, ориентация на программистов-винтиков, которых можно быстро обучить и легко заменить. Есть все это для Haskell-я? Для C++ есть, для Java есть, для C#, даже для Python/Perl/Ruby и старого (не)доброго C это все есть.

Ну и в очередной раз убедился, что у математиков (а с Haskell-ем, по-моему, возятся в первую очередь сильные математики) своеобразное чувство прекрасного. Например, оператор для параллельного выполнения нужно обозвать не как-нибудь, а `par` (именно в кавычках). Обязательно нужно придумать новый синтаксис для data parallelism: [: e :], ну и функции для параллельной обработки данных нужно обозвать именно mapP, sumP, zipP, foldP (поскольку parallel_map, parallel_sum и т.д. -- это оскорбляет их тонкое эстетическое чувство). Да, и в примере нужно было объявить функцию sumsq. Видимо, это специальный IQ-тест на отсеивание нежелательных читателей. С Haskell-ем должны работать только те, кто сразу поймут, что это название обозначает сумму квадратов. А такие чайники, как я, которые ожидают увидеть название вида sumSquares, из-за скудоумия не должны к Haskell-ю допускаться под страхом смертной казни. Ибо сказано "Avoid Success At Any Cost!"

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

4 комментария:

Rubanets Myroslav комментирует...

я кстати тоже не понял что там mature - если параллельный рантайм появился в этом году грубо говоря (я точно не знаю ибо х. не юзал). И для большинства функций стоит приписка - юзайте прямо из контроля версий ибо нерелизнутое.
Но это философские вопросы в стиле "пишут ли софт математики" :)

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

Евгений Охотников комментирует...

mature -- это к самому Haskell-ю, я так понимаю. Хотя опять же, Haskell и GHC -- две большие разницы, если не ошибаюсь.

У презентации есть одно хорошее качество: она показывает, что никакой silver bullet пока нет. Функциональщина не дает автоматического выигрыша, если разработчик бездумно расставил `par` (о чем там даже пример есть).

Boris Sivko комментирует...

> Но, сугубо имхо, промышленным использованием Haskell-я до сих пор не пахнет. Поскольку промышленное, в моем понимании -- это масштабы. Большие программы, большие коллективы, большое количество разработок.

Возможно вот это похоже на масштабное применение Haskell'я:
http://thesz.livejournal.com/1353350.html
http://thesz.livejournal.com/1356340.html

У автора подробностей не спрашивал, мопед не мой (;

Yauheni Akhotnikau комментирует...

@Boris Sivko:

Не, как-то не похоже. По крайней мере на то, что видно снаружи (а видно крайне мало).