Haskell, первые впечатления

22/03/2014

Прошедший месяц начался с маленького исследования функциональщины — второго числа ко мне приехали две книги — Программирование на Clojure и Изучай Haskell во имя добра!.

Первую читал долго, потому что написана она, как по мне, не очень. Немного про функциональное программирование — что такое и зачем; сотня страниц про pattern matching, две сотни про коллекции, еще две про конкурентность и параллелизм, ну и остального совсем понемногу. Читается сложно, зато подробно объясняется как и что там устроено изнутри. Язык хороший, но меня не впечатлил, или я просто не могу найти для него применение в своих задачах. Да и книга написана скорее для тех, кто хочет сразу стать матерым кложуристом, а не познакомиться с лиспом на джаве.

Дальше пошла книга про Haskell, она понравилась с первых страниц. Автор часто шутит и очень легко объясняет. Примеры кода в книге простые, вместо тонны часто непонятного кода, как с Clojure.

joke

Если честно, я до последнего сомневался в Haskell, пока не начал читать книгу. До знакомства с языком его исходники казались ровестником brainfuck'а.

Библиотеки

После прочтения нескольких страниц я пошел искать библиотеки. У языка есть все, что нужно и куча ништяков в придачу. Например Helm игровой движок с FRP, PureScript, Scotty, CloudHaskell.

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

Немного дегтя

Cabal, который менеджер пакетов, работает крайне странно, точнее редко не работает как надо. Я, например, сутки потратил на установку Helm, который в итоге так и не завелся из-за старой версии XCode. Здесь не помог даже Haskell Platform. Кривым решением бед были два аргумента --reinstall --force-reinstalls и спуск по зависимостям. Может кто-то объяснит что не так с этим менеджером? :)

Маленький бонус

Для тех, кто дочитал сей бред до конца есть ссылка на книженцию, которая позволяет очень быстро ознакомиться с языком и начать писать первые строки кода — О Haskell по-человечески. Именно из-за этой книги я удалил весь код и обзор конструкций языка из блогозаписи.