Эксперименты с Elm

Из подкаста JavaScript Jabber я узнал про язык Elm и то, что он как-то связан с JavaScript. Заинтересовался, решил попробовать.

Очень понравилось то, как автор языка Evan Czaplicki подходит к продвижению, рассказу о преимуществах, идеям, которые закладываются в язык и платформу и многим другим деталям. Очень круто выглядят информативнейшие сообщения об ошибках. Про них ретвитил даже Джон Кармак.

Elm — функциональный язык программирования, который компилируется в JavaScript. Компилятор написан на Haskell. В целом синтаксис его и напоминает Haskell (тут могу ошибаться, поскольку опыта совсем немного). И я порекомендовал бы посмотреть и попробовать Elm каждому фронтендеру, потому что совершенно иной подход к написанию программ очень освежает. Чтобы написать функцию, которая будет из списка оставлять только уникальные элементы мне понадобился не один час, но оно того стоило. Плюс для фронтендера в том, что программы на Elm предназначены именно для создания веб-приложений. Если даже изучать только архитектуру, которую предлагает Elm для построения сложных веб-сайтов, то можно почерпнуть много полезного. В частности Дэн Абрамов, автор известного фреймворка Redux, брал идеи для его реализации из Elm.

Для вдохновления рекомендую видео с прошедшей конференции по React.js. Jamison Dance, один из участников JavaScript Jabber, рассказывает о преимуществах функционального подхода на простых примерах, не вдаваясь в зубодробительные подробности.

Кроме функции про список я прорешал пару задач с Project Euler. Также я начинал пару туториалов: Elm by Example — автор забросил его и не обновляет до новых версий языка, что лично для меня стало проблемой. И Elm Tutorial, который поддерживается и показался мне более основательным.