Подтвердить что ты не робот

Как Elm сравнивается с ClojureScript?

Я достигаю точки, где кодирование GUI с объектно-ориентированным шаблоном MVC Backbone.js становится довольно сложным и оглядывается на другие парадигмы. MDV, FRP, ECS, о мой.

Как Elm по сравнению с ClojureScript? Где они перекрываются?

Оба языка сильно отличаются от JS, которые компилируются в JS. Я понимаю, что Elm - это язык функционального реактивного программирования (FRP). ClojureScript не обязательно FRP, но вы можете сделать FRP с ним. Elm компилируется с Haskell и ClojureScript с JVM, поэтому оба эти требования являются дополнительными требованиями для магазина Node.

Возможно, это просто сводится к Clojure vs Haskell.

4b9b3361

Ответ 1

Оба заставляют вас использовать более декларативный/функциональный стиль программирования, чем чистый JS. ClojureScript больше похож на замену JS, тогда как Elm больше похожа на замену всего веб-стека разработки (HTML/CSS/JS).

Другие отличия:

  • Синтаксис Elm намного более похож на Haskell
  • ClojureScript намного ближе к традиционному синтаксису Lisp
  • Elm очень оптимизирован для изменяющихся во времени значений ( "сигналы" в Elm)
  • ClojureScript более зрелый, и вы можете найти для него сладостные инструменты разработки (плагины Eclipse, LightTable и т.д.).
  • Elm статически типизирован, ClojureScript динамически типизирован

Надеюсь, это поможет. Я все еще изучаю оба этих языка, поэтому я, возможно, что-то пропустил.

Ответ 2

Просто обновите это для 2017 года.

Elm больше не FRP, который ушел несколько релизов назад в пользу Elm Architecture.

Основная победа Elm заключается в том, что у нее есть система статического типа, которая позволяет компилятору делать много утверждений о правильности программы во время компиляции. Например, вы знаете, что никогда не будет времени, когда case case не распространяется на конкретный случай. Или что HTML из функции view создаст событие, которое обновление не знает, как с этим бороться.

Другие преимущества Elm

  • Сообщения об ошибках
  • Пакеты имеют принудительное семантическое управление версиями
  • Пакеты и инструменты имеют действительно очевидные имена.