Рубріки: Мнение

H значит Haskell: развеиваем мифы о языке программирования «для гениев»

Вікторія Пушкіна

На канале YouTube-блогера и разработчика АйтиБороды вышло интервью с адептом Haskell, Senior Haskell Developer и автором книг по этому языку Александром Граниным.

В интервью Александр развеял миф, что для программирования на Haskell нужно быть гуру матанализа, и рассказал, где используется язык с репутацией «академического».

Highload публикует главное из этого разговора.

Александр Гранин / LinkedIn

Что такое Haskell

Раньше Haskell был исключительно академическим языком. Он появился в 1990 году из желания сделать открытый язык в стиле семейства ML: есть С-подобные языки, LISP-подобные и ML-подобные; у LISP самый чистый синтаксис, ML — на втором месте.

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

Так как Haskell предназначался только для исследований, сначала в нем не было даже ввода/вывода. Но позже его расширили.

Сегодня, хотя все по-прежнему воспринимают Haskell как академический язык, он используется и в промышленной разработке. Но все равно сильно отличается от Java или C++.

Как выглядит код на Haskell

Код на Haskell — это не шаги, а цепочки выражений. Они связываются между собой монадами. Монада — математический термин, но его не нужно понимать, чтобы писать код на Haskell. В контексте этого языка каждая конкретная монада предназначена для какой-то функции: например, для ввода/вывода или отлова ошибок.

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

Вычисление бесконечного списка чисел Фибоначчи за линейное время на Haskell и Java

Что пишут на Haskell

На Haskell пишут компиляторы для других языков и для самого Haskell, а еще банковский софт. 

В финтехе Haskell используется потому, что это очень безопасный язык: у него отдельная группа концепций, которые как на уровне типов, так и на уровне значений хорошо между собой сочетаются. Так, например, в С++ есть фичи, которые плохо между собой сочетаются, и это может приводить к багам.

Другой безопасный язык, востребованный в финтехе — это COBOL. Но у COBOL-программистов другая задача: поддерживать старые мейнфреймы.

Также Haskell частично используется в блокчейн. Так, есть несколько проектов (например, Cardano), которые пишут на нем внешний язык для смарт-контрактов.

Как начать учить Haskell

На Windows Haskell работает, но «шатко-валко». На линуксоидных системах можно поставить компилятор GHC. Но если не хочется ставить Linux, можно зайти в онлайн-компилятор и там начать изучать синтаксис. 

IDE для Haskell нет. Обычно используют плагины для продвинутых текстовых редакторов. Но функциональность, которую дают плагины, далека от того, что можно делать в IDE с Java, например.

Кстати, классический дебаггинг по шагам в Haskell тоже не сделаешь, потому что Haskell-код — это выражения, а не шаги. А с тем, что сверху накладывается ленивость, вызываться все может вообще вперемешку. Но можно пользоваться тестами 🙂

Первичный источник информации о Haskell — это официальный сайт. Разобраться в языке можно также с помощью книг:

  • Денис Шевченко, «О Haskell по-человечески»
  • Уилл Курт, «Программируй на Haskell»
  • Миран Липовача, «Изучай Haskell во имя добра!»
  • Vitaly Bragilevsky, ‘Haskell in Depth’ (русского перевода пока нет)

Книгу Мирана Липовача можно почитать на официальном сайте бесплатно (in english)

Вакансий на Haskell больше, чем желающих поработать. В свете пандемии, вакансии в основном мидловые и сеньорные, но джунов тоже берут. Главное требование: уметь писать код на Haskell и тесты к нему и корректно использовать монады. В остальном в требованиях к вакансиям стандартный набор типа понимания баз данных, форматы файлов и т.п.

Результаты ресерча от редакции Highload: на DOU вакансий для Haskell-разработчиков нет, но есть вакансии Scala, Rust или Erlang Developers с пониманием Haskell.

Скриншот части требований к вакансии Erlang Developer на DOU

В LinkedIn ситуация лучше — одна вакансия Haskell Engineer в Украине и 226 открытых предложений в ЕС. Например, разработчика на Haskell ищет польский офис Luxoft.

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

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023