Как я перестал ненавидеть Javascript и научился любить Elm JS

Обо мне

Я опытный разработчик Rails.

Почему я хотел изучить Elm JS

Я нахожу непредвиденную сложность фреймворков Javascript неприятной. Инструменты сборки — беспорядок, управление зависимостями — кошмар, и хотя React — это шаг вперед, мне этого далеко не достаточно.

Как я подошел к изучению Elm JS

Я сделал самое простое, что могло сработать — установил Elm JS, скопировал и вставил пример, заработал в браузере.

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

Проблемы, с которыми я столкнулся

Самой большой проблемой было понять стиль Elm. Раньше я баловался функциональным программированием — Elixir, Clojure — но Elm довольно чистый.

Поначалу синтаксис очень странный, плюс форматер делает вещи совсем по-другому.

Однако компилятор был невероятным — он фактически научил меня большей части языка! Мне пришлось гуглить одну или две вещи в первые 10 часов.

Основные выводы

Мне понравился компилятор и то, какими простыми были сообщения об ошибках! Это был замечательный опыт — возможно, лучший опыт изучения нового языка, который у меня был.

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

Я больше никогда не увижу скомпилированные языки такими же, как прежде.

Советы и советы

Застрять — сделать что-то до смешного простое. И не читайте много, думая «в конце концов я это получу». Просто ныряйте и не сворачивайте, когда код не компилируется — вот где работа!

Заключительные мысли и следующие шаги

Моя следующая цель — использовать это в производственном проекте. Торговая реклама или Talk GDPR — идеальные кандидаты.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *