Из подкаста JavaScript Jabber я узнал про язык Elm и то, что он как-то связан с JavaScript. Заинтересовался, решил попробовать.
Очень понравилось то, как автор языка Evan Czaplicki подходит к продвижению, рассказу о преимуществах, идеям, которые закладываются в язык и платформу и многим другим деталям. Очень круто выглядят информативнейшие сообщения об ошибках. Про них ретвитил даже Джон Кармак.
That should be an inspiration for every error message. https://t.co/w9eGALovYw
— John Carmack (@ID_AA_Carmack) May 24, 2016
Elm — функциональный язык программирования, который компилируется в JavaScript. Компилятор написан на Haskell. В целом синтаксис его и напоминает Haskell (тут могу ошибаться, поскольку опыта совсем немного). И я порекомендовал бы посмотреть и попробовать Elm каждому фронтендеру, потому что совершенно иной подход к написанию программ очень освежает. Чтобы написать функцию, которая будет из списка оставлять только уникальные элементы мне понадобился не один час, но оно того стоило. Плюс для фронтендера в том, что программы на Elm предназначены именно для создания веб-приложений. Если даже изучать только архитектуру, которую предлагает Elm для построения сложных веб-сайтов, то можно почерпнуть много полезного. В частности Дэн Абрамов, автор известного фреймворка Redux, брал идеи для его реализации из Elm.
Для вдохновления рекомендую видео с прошедшей конференции по React.js. Jamison Dance, один из участников JavaScript Jabber, рассказывает о преимуществах функционального подхода на простых примерах, не вдаваясь в зубодробительные подробности.
Кроме функции про список я прорешал пару задач с Project Euler. Также я начинал пару туториалов: Elm by Example — автор забросил его и не обновляет до новых версий языка, что лично для меня стало проблемой. И Elm Tutorial, который поддерживается и показался мне более основательным.