НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Феномен Haskell

В ИТ-мире существует немало функциональных языков, и немалая часть из них применяется в немалом числе прикладных проектов. Однако именно Haskell компьютерные СМИ отмечают как одного из главных лидеров в нише функционального программирования; eWeek пытается разобраться, почему.

[spoiler]Википедия достаточно подробно рассказывает о Haskell-е, на мой взгляд, его ключевые фишки -- "pure" функциональность ("доказательство -- это программа; формула доказательства -- тип этой программы"), отложенные вычисления, многоуровневый полиморфизм (фактически, мета-программирование), строгая типизация (для функциональных языков не слишком характерная), очень выразительный синтаксис.

Обозреватель Darryl Taft, пообщавшись на конференции Microsoft Lang.Next с экспертами по компьютерным языкам, подробно поговорил с Andy Adams-Moran, основателем фирмы Galois, которая поставляет уникальный инженерно-математический инструментарий (созданный почти полностью на Haskell) американским энергетикам и биотехнологам, военным и силовым структурам. Посмотреть слайды Galois можно на eWeek по вышеприведенной ссылке, вот краткое резюме:
- код получается очень компактным;
- новые версии языка и рантаймов хорошо совместимы со старыми, понятия "легаси-кода" для Хаскела практически не существует;
- Haskell хорошо подходит для коллективной разработки и отвечает требованиям agile-процессов;
- активное коммьюнити, большой набор сопутствующих инструментов;
- Haskell отлично себя проявляет в задачах, где качество крайне важно (минимум или полное отсутствие багов);
- хорошо обеспечена сетевая безопасность;
- на Хаскеле эффективно программируются алгоритмы гомоморфного шифрования;
- структура языка допускает сложный рефакторинг;
- хорошо работает концепция повторного использования для Haskell-кода;
- очень высокий уровень абстракций, удобно создавать модели сложных систем, применять шаблоны программирования.

С другой стороны, название "Haskell" в этой радужной (хотя, надо признать, весьма объективной) картине вполне можно заменить на другое (например, Python), и степень истинности этих высказываний изменится не сильно. Так можно ли считать именно Haskell уникальным явлением среди других функциональных языков, и почему? Попробуем разобраться (далее).