Что такое язык Elm? Основные характеристики

Что такое язык Elm? Основные характеристики

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

  • Redux;
  • React-js;
  • Apache;
  • Apache Samza;
  • Lambda


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


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


Дополнительно разработчик в силах в любой период выполнения остановить процедуру и вернуть код в подходящий момент времени. Во время дебаг-отладки действие незаменимо, оно многократно ускоряет работу.  Особенно полезно при отладке кратковременных евентов в UI, вроде анимации или динамических элементов. Одним из динамических компонентов является поле для автозаполнения, где сверху показывается панель с кнопками управления, а администратору предоставляется доступ к журналу событий.


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


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


Для некоторых фреймворков инкрементные величины не являются проблемой, к ним относятся virtual-dom и React-js, это справедливо по меньшей мере в отношении web-программирования. Отмечается также обратный эффект, код приобретает очевидность, ведь он пишется подобным методом, как и весь пользовательский интерфейс, вырисовывая его по новой. Функциональность и чистота языка создают дополнительное преимущество – при многократном вызове функции с одинаковым аргументом, результат подвергается кешированию, что увеличивает скорость возврата значений.


В отношении асинхронных запросов также есть выход – специальные конструкции, они не отличаются изящностью, но просты и достаточно эффективны.


С учётом всех достоинств и недостатков, делаем вывод, что язык программирования Elm способен реализовать данный подход, оставаясь чистым, быстрым и многофункциональным. После компиляции он преобразуется в JS-код, который предназначается для построения приложений по технологии HTML5, правда требуется выполнение работы и со стороны серверной части. Опробовать язык можно на официальном сайте Elm, здесь представлены живые примеры использования и продемонстрированы возможности. На сайте богатая база знаний для углублённого изучения архитектуры языка и работы с асинхронными запросами

Перспективы

Негативной стороной языка Elm Software Foundation является минимальное количество обновлений. Качественная и полноценная поддержка прекратилась в 2016 года. Основателем является Эван Чаплицкий, который уделяет минимум времени развитию языка. Его основное время провождение – поездки по миру для выступлений на конференциях с целью указания причин, почему языку суждено стать будущим программирования.


Нельзя сказать, что Elm пора списывать со счётов, так как язык действительно удобный, но он приобретает небольшое количество приверженцев естественными методами. Если посмотреть на рейтинг TIOBE, ELM входит в число 100 популярных языков. Другой немаловажной причиной является отсутствие конкуренции, одни направлены на покрытие огромного пласта программирования, а остальные известны только в узком кругу. Всё же остаётся надежда, что Эван или NoRedInk начнут всерьёз развивать детище, тогда Elm войдёт в ряды мейнстрим-языков.


Если ваша сфера деятельности связана с Web, обязательно следует ознакомиться с Elm. Углублённого изучения не потребуется, а весёлое времяпровождение гарантировано.

17 Апреля 2018
|
Рейтинг ()

Возврат к списку