Pull to refresh
6
0
Олег Серых @seryh

Fullstack Web Developer

Send message

слишком много тегов "CUSTIS", от такой навязчивой рекламы в глазах рябит

Смысл есть, «Hy» имеет распространенный диалект лиспа. Автор теперь может писать свой тормознутый высокоуровневый код и компилировать его в быстрый JVM байт-код (Clojure), js на фронте (ClojureScript), NodeJs (lumo), C++ (ferret-lang) и многое другое. Сложность синтаксиса вещь субъективная, после преодоления порога входа (да большой), писать на лиспах — быстро, просто и приятно. Читать чужие исходники на диалектах лиспа с иммутабельностью (Clojure), выходит еще проще чем документацию. Ну и бодрости к скорости разработки добавляет мощный REPL (если есть под диалект).

В Clojure сильная динамическая типизация, и в помощь даны metadata и spec

Ошибка, вы в тексте используете название Clojure хотя по смыслу должно быть Closure. Разница между ними довольно большая.

Не существует единственного правильного пути

Это для меня в свое время оказалось большим недостатком. Когда нужно было быстро стартануть в проект, запутался в огромном количестве статей и советов, один лучше другого. Вся это react мешанина превратилась в конструктор "собери себе свой язык программирования", вот тебе ФП стиль, ООП, реактивный стиль, пот тебе строгая типизация (привет flow) и ворох либ к этому на любой вкус, написанных на 3 стандартах EcmaScript. В итоге быстрей удалось стартануть внезапно в ClojureScript'овском re-frame. Хотя до этого только бекенд на Clojure трогал.

По наличию соответствующей записи о языке в wikipedia.

После позитивного опыта с Clojure, у меня сложилось мнение, что
писать на JavaScript в функциональном стиле, это лучший способ
испортить себе все впечатление об ФП. Как ни крути но JS это ООП язык
и функциональный стиль привнесен туда через сомнительного удобства
костыли. Кто хочет использовать функциональный подход, который сделает
разработку фронтенд приложений приятным времяпровождением, смотрите — Elm, ClojureScript, PureScript.

Стоит добавить к списку ClojureScript, попробовал его работе с использованием обвязки вокруг ReactJS — reagent+re-com+re-frame. Это потрясающе!

Мое высказывание: "Из плюшек дает все тоже самое — функциональщина, иммутабельность, легкий рефакторинг, мощный REPL."


Вы вырезали из него "дает все тоже самое" придумали удобный вам контекст. И далее действовали как троль.


Вам достаточно таких обоснований?

Вы вообще понимаете что пишете? Вы хотите чтобы я изучил Elm, Elm Architecture, написал вам в этой архитектуре (WAT?) пример на ClojureScript в удобном вам стеке WebGL изучив его мимоходом, что бы вам что то доказать?


Так вот это противоречит формальной логике.

Вы на ходу меняете контекст моих доводов, додумываете что то сами, предполагаете что я могу читать ваши мысли. О какой логике может идти речь? Этот диалог потерял всякий смысл, и у меня нет никакого желания его продолжать.

Из Вашего утверждения следует, что в CS есть функциональность с аналогичным API и именно её я ожидал увидеть

В моем утверждении я через запятую перечислил что дает ClojureScript. В контексте статьи.

с чего Вы взяли, что CS дает тоже что и Elm,

Внезапно прочитал статью выше, и ничего не увидел по WebGL.
В любом случае WebGL не мой стек. Поэтому ничего по этому поводу сказать не могу.

Ну тут сабж о фронтенд разработке а не о серверной, теоретически можно хот релоадить и на сервере, подняв lein repl в докер контейнере на проде, не занимался таким. По фронту, важный момент в ClojureScript hot-reload, в том что не теряется стейт, когда у вас большое SPA терять стейт по F5 при разработке, становится расточительной тратой времени.

Непонятно что вы имеете ввиду под "реализации Elm архитектуры на CS", и как вы себе это представляете. Если вам интересно как на ClojureScript можно работать с WebGL то могли бы воспользоваться гуглом и поковырять исходных код библиотек по типу этой: https://github.com/alexkehayias/chocolatier, обычно там Interop в какую-либо популярную js библиотеку.

Elm обладает развитой системой типов с автоматическим выводом,

В ClojureScript версии 1.9 появился spec, можно очень гибко и удобно покрыть весь код типами если нужно.


Можете пояснить что вы подразумеваете под легким рефакторингом в Clojure.

Можно легко перекраивать приложение, тут множество положительных факторов для этого — иммутабельность, REPL, хот-релоад без потери стейта через figwheel, мощь s-выражений. Попробуйте )

То что язык можно применять только под фронтенд, не мотивирует тратить время на изучение. Выбрал для себя Clojure/ClojureScript так как позволяет покрыть очень широкий круг задач. Из плюшек дает все тоже самое — функциональщина, иммутабельность, легкий рефакторинг, мощный REPL. Проблем с разделением кода на модули нет никаких, команда пакетного менеджера lein new re-frame <project-name> создаст всю структуру, а документация к re-frame подробно все разжует. Если под задачу не подходит архитектура, то есть масса других шаблонов.

Компиляцией в высокопроизводительный Javascript код уже никого не удивить. а вот "interactive programming" штука интересная, ее умеют например elm и clojurescript как с этим дела у ScalaJS?

Вы совершенно неверно ассоциируете Lisp с чем то древним. Возьмем диалект Clojure, современный и активно развивающийся диалект lisp под JVM, за него могу сказать что он намного проще чем JavaScript и стартануть с него в современную фронтенд веб-разработку на ClojureScript намного проще чем скажем с ворохом js либ в виде react+redux+babel+webpack+lodash+npm+nodejs

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity