Несмотря на то, что это язык, который я знаю лучше всего, я всегда не любил JavaScript. Только пока я не увидел доклад Гэри Бернхардта под названием Рождение и смерть JavaScript, я стал уверен, что JS будет заменен чем-то лучшим раньше, чем я ожидал. Я стал осматриваться и, наконец, остановился на Вяз. Я хочу назвать несколько причин, помимо того, что я просто утверждаю, что это отличный язык, который делает все настолько простым и быстрым:

  • Вяз вырывается из JS. Множество фреймворков, которые дополняют JS современными концепциями программирования, такими как реактивные, веб-компоненты и т. Д., Остаются с JS. Очевидно, это облегчает принятие, но проблема остается с языком. JS больше не справляется с этой задачей. Elm (и несколько других языков, которые не являются JS, но компилируются в JS) решили, что в результате их кривая обучения может быть крутой, но в конечном итоге вам будет лучше. Я согласен.
  • Нет конвейера ресурсов: с elm вы можете попрощаться с npm, gulp, grunt, webpack, brunch, make и всем остальным. Исходные тексты elm компилируются с помощью elm-make, который создает один файл elm.js, и все. Такое облегчение.
  • Эван Чапикли, создатель Elm, понимает, что разработка языка - это не только его быстрое совершенствование. Он изучал другие языки и их сообщества и строит вяз в разумных темпах, следя за тем, чтобы все у него было правильно, даже если что-то сломается (но всегда есть легкий путь миграции). См. Его доклад на первой конференции Elm conf.
  • Инструменты: еще одна вещь, которую понял Эван, - это то, что еще один важный аспект языка - это понятные ошибки, простые инструменты, немного команд. Он рекомендует использовать в названиях пакетов серьезные имена, такие как автозаполнение, а не голодный лобстер. Краткое руководство по стилю вяза положит конец бесконечным спорам о том, как лучше всего отформатировать JS.
  • Благодаря строгой типизации Elm вы можете писать надежный код. Я уже касался этого раньше. В одном предложении: он заставляет вас обрабатывать все ветки кода, что вначале может быть утомительным, но вы создаете код, который заставляет вас чувствовать себя в безопасности.
  • Рефакторинг - это просто. Я обычно скептически отношусь к языкам, которые утверждают, что они позволяют избежать технических долгов и рефакторинга кода (какой язык не делает). Хотя я обнаружил, что первое было неизбежно, второе сдерживает свои обещания. Но, честно говоря, мое самое большое приложение для вязов на данный момент насчитывает всего около 700 строк.

Честно говоря, есть несколько вещей, которые могут оказаться трудными при использовании вяза:

  • Доступность в Интернете: я не проводил исследования того, как интерфейсные приложения, созданные elm, работают с вспомогательными технологиями, но я беспокоюсь, что это может быть не лучше, чем любая другая структура SPA. Мне еще предстоит проверить это утверждение со своими коллегами-экспертами по специальным возможностям. Надеюсь вскоре доложить об этом. Поддержка старых браузеров также может вызывать беспокойство (если вас волнуют подобные вещи), и я сейчас проверяю это.
  • Поскольку CSS создается и управляется с помощью кода, а не декларативно, возможности широко открыты, поскольку вы можете естественным образом воспроизвести все возможные функции SASS и любого расширения CSS. Звучит здорово, но это также означает, что вы можете плохо выстрелить в еду, если начнете слишком либерально управлять своим стилем: мне все еще немного неудобно, что части CSS и HTML в моих приложениях выглядят как код.
  • Кривая обучения. Меня это больше не беспокоит, но вам нужно убедить своих коллег-разработчиков, прежде чем вводить Элма в свою организацию. К счастью, Эван написал об этом хороший пост.

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