Size: a a a

Elm Lang сообщество разработчиков

2017 September 13

AW

Arthur Welf in Elm Lang сообщество разработчиков
Alexander Nuikin
Elm является более высокоуровневым языком по сравнению с JS и предоставляет больше гарантий при решении более узкого класса задач (UI в браузере).

На JS можно сделать больше разнообразных программ. Например, это класс программ, содержащие Runtime ошибки и класс программ, делающих что-то за пределами задачи "UI в браузере". Например, сервер на node.js.
Elm не даёт нам написать программы из этих классов.

Т.е. Elm предлагает некоторую модель разработки того, что нужно, при это запрещая разработку того, что не нужно и вредно.
Причем проверка запретов происходит на стадии компиляции - до того как программа попадёт к пользователю.
Это прекрасно с точки планирования времени:
1. Для разработчика: если задача решена (скомпилировалось - значит уже целый класс ошибок устранён) - к ней уже можно не возвращаться - можно спокойно думать о другом. Или спать :-)
2. Для менеджера: если таск закрыт, значит он закрыт и крайне маловероятно, что возникнет куча багов по этой задаче, которые сожрут ещё неизвестное количество времени.
А ещё Elm очень облегчает рефакторинг и добавление новых фич, что делает довольным и заказчика, поскольку убирает проблему "в этом коде уже не разберёшься, поэтому давайте перепишем всё с нуля".

Ну и для стартапов это хорошо, т.к. чем быстрее стратап проверяет свои гипотезы (что связано с постоянным переписыванием и дописыванием первоначального продукта), тем больше шансов, что он (стартап) выживет. В большинстве языков программирования это ведёт к тому, что уже через полгода-год в коде продукта разобраться не может никто, и, внедряя новую фичу, постоянно ломается что-то из того, что было написано ранее, а Elm позволяет избежать этой проблемы, т.к. если это компилируется, то это работает.
источник

AN

Alexander Nuikin in Elm Lang сообщество разработчиков
Arthur Welf
А ещё Elm очень облегчает рефакторинг и добавление новых фич, что делает довольным и заказчика, поскольку убирает проблему "в этом коде уже не разберёшься, поэтому давайте перепишем всё с нуля".

Ну и для стартапов это хорошо, т.к. чем быстрее стратап проверяет свои гипотезы (что связано с постоянным переписыванием и дописыванием первоначального продукта), тем больше шансов, что он (стартап) выживет. В большинстве языков программирования это ведёт к тому, что уже через полгода-год в коде продукта разобраться не может никто, и, внедряя новую фичу, постоянно ломается что-то из того, что было написано ранее, а Elm позволяет избежать этой проблемы, т.к. если это компилируется, то это работает.
Именно!
источник

AW

Arthur Welf in Elm Lang сообщество разработчиков
Alexander Nuikin
1й вопрос: зачем нужен Elm
2й вопрос: учить его сразу или сначала JS
1. Elm нужен, чтобы не страдать при разработке фронтенда. Хотя, если страдать и мучиться нравится, можно писать на JS.

2. Если брать языки программирования, на которых я что-то писал, то мой первый язык - это Haskell (хотя почти всю жизнь я занимался IT, выучиться кодить самостоятельно сподобился лишь в 40 лет), а второй - Elm. JS я, конечно, немного знаю, но никогда на нём ничего не писал. Но изучить JS было весьма полезно - для того, чтобы понять, что если есть хоть какая-то возможность его не использовать, то этой возможностью нужно пользоваться ;). И чтобы понять, насколько более клёвая разработка фронтенда Elm по сравнению с разработкой на JS.

P.S.: Но у меня не стояло задачи устроиться на работу разработчиком, мне нужны были удобные инструменты, которые бы позволяли самостоятельно делать прототипы веб-сервисов для быстрой проверки своих идей, не тратя кучу семейных средств на оплату труда сторонних разработчиков.
источник

PF

Pawel Filimonenkow in Elm Lang сообщество разработчиков
имхо роль elm-а - показать что в программировании под веб есть математика. Ещё лет 5 назад 99.9% людей на вопрос "как сделать редактор с undo", отвечали "надо реализовать паттерн command, и к каждой command сделать метод unCommand". Теперь хотя-бы 0.9% знает куда копать. Этого достаточно. Остальное все либо сдохнет в муках, либо перейдет под руководство людей, которых Elm поцеловал.
источник

PF

Pawel Filimonenkow in Elm Lang сообщество разработчиков
Anatoliy
Я считаю, что исключительно для образовательных целей лучше брать язык который научит дисциплине мышления, поэтому elm лучше, чем js. Если в профессиональной деятельности придется использовать js, то, зная elm, будешь лучше подготовлен к суровой действительности, используя надежные практики.

К примеру, многие ругают декодеры в elm за сложность. Мы же позаимствовали эту идею и используем даже в js, это позволяет сократить количество сюрпризов.
не думаю что Elm удачный выбор для изучения программирования. Для этого хорошо бы ЯП, на котором писать годные программы можно проще и быстрее, а на Elm для решения практических задач нужно иметь солидный бэкграунд в ФП, Web и flux одновременно. Кроме того в большинстве практических задач под браузер хирург со скальпелем в виде Elm бесполезен, а нужен ниггер с мотыгой в виде JS. Для изучения программирования рекомендую TypeScript
источник

PF

Pawel Filimonenkow in Elm Lang сообщество разработчиков
Arthur Welf
1. Elm нужен, чтобы не страдать при разработке фронтенда. Хотя, если страдать и мучиться нравится, можно писать на JS.

2. Если брать языки программирования, на которых я что-то писал, то мой первый язык - это Haskell (хотя почти всю жизнь я занимался IT, выучиться кодить самостоятельно сподобился лишь в 40 лет), а второй - Elm. JS я, конечно, немного знаю, но никогда на нём ничего не писал. Но изучить JS было весьма полезно - для того, чтобы понять, что если есть хоть какая-то возможность его не использовать, то этой возможностью нужно пользоваться ;). И чтобы понять, насколько более клёвая разработка фронтенда Elm по сравнению с разработкой на JS.

P.S.: Но у меня не стояло задачи устроиться на работу разработчиком, мне нужны были удобные инструменты, которые бы позволяли самостоятельно делать прототипы веб-сервисов для быстрой проверки своих идей, не тратя кучу семейных средств на оплату труда сторонних разработчиков.
Разработка на Elm клёвая до определённого момента:
- когда нет внешних JS зависимостей, если есть хоть одна, Elm практически не пригоден
- когда не нужно писать дикие декодеры json для внешних данных
- если в проекте не более 2-3 человек
- если нет острой необходимости в нормальной IDE
- когда кондовое ФП с довольно куцым синтаксисом не превращается в говнокод
На практике проекты под web, удовлетворяющие одновременно всем данным ограничениям, случаются редко, а чтобы за них платили - почти  никогда.

Elm полезен когда нужны маленькие изолированные компоненты с вводом от UI и websocket-ом, который  очень годно реализован в elm. И  для WebGL, потому что Elm понимает текст шейдеров на GLSL и проверяет согласованность используемых типов между шейдерами и основной программой - ничего подобного ни в одном из примеров про WebGL на js я не видел. Ну и сама библиотека для работы с WebGL более высокоуровневая и удобная, чем то, что есть в js.
источник

RS

Roman Salnikov in Elm Lang сообщество разработчиков
Pawel Filimonenkow
Разработка на Elm клёвая до определённого момента:
- когда нет внешних JS зависимостей, если есть хоть одна, Elm практически не пригоден
- когда не нужно писать дикие декодеры json для внешних данных
- если в проекте не более 2-3 человек
- если нет острой необходимости в нормальной IDE
- когда кондовое ФП с довольно куцым синтаксисом не превращается в говнокод
На практике проекты под web, удовлетворяющие одновременно всем данным ограничениям, случаются редко, а чтобы за них платили - почти  никогда.

Elm полезен когда нужны маленькие изолированные компоненты с вводом от UI и websocket-ом, который  очень годно реализован в elm. И  для WebGL, потому что Elm понимает текст шейдеров на GLSL и проверяет согласованность используемых типов между шейдерами и основной программой - ничего подобного ни в одном из примеров про WebGL на js я не видел. Ну и сама библиотека для работы с WebGL более высокоуровневая и удобная, чем то, что есть в js.
Сомнительные ограничения перечислены. Но скоро смогу подтвердить или опровергнуть из практики. Предстоит немаленький проект на elm+js в команде больше 3х человек)
источник

PF

Pawel Filimonenkow in Elm Lang сообщество разработчиков
Pawel Filimonenkow
Разработка на Elm клёвая до определённого момента:
- когда нет внешних JS зависимостей, если есть хоть одна, Elm практически не пригоден
- когда не нужно писать дикие декодеры json для внешних данных
- если в проекте не более 2-3 человек
- если нет острой необходимости в нормальной IDE
- когда кондовое ФП с довольно куцым синтаксисом не превращается в говнокод
На практике проекты под web, удовлетворяющие одновременно всем данным ограничениям, случаются редко, а чтобы за них платили - почти  никогда.

Elm полезен когда нужны маленькие изолированные компоненты с вводом от UI и websocket-ом, который  очень годно реализован в elm. И  для WebGL, потому что Elm понимает текст шейдеров на GLSL и проверяет согласованность используемых типов между шейдерами и основной программой - ничего подобного ни в одном из примеров про WebGL на js я не видел. Ну и сама библиотека для работы с WebGL более высокоуровневая и удобная, чем то, что есть в js.
кончно сомнительны, это не более чем рационализация личного опыта, она у всех разная.
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Elm хорош для графики на вебе, да
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Канвас тоже, не только WebGL
источник

RS

Roman Salnikov in Elm Lang сообщество разработчиков
В одного чисто на эльме писать одно удовольствие, конечно
источник

QZ

Quet Zal in Elm Lang сообщество разработчиков
Pawel Filimonenkow
Разработка на Elm клёвая до определённого момента:
- когда нет внешних JS зависимостей, если есть хоть одна, Elm практически не пригоден
- когда не нужно писать дикие декодеры json для внешних данных
- если в проекте не более 2-3 человек
- если нет острой необходимости в нормальной IDE
- когда кондовое ФП с довольно куцым синтаксисом не превращается в говнокод
На практике проекты под web, удовлетворяющие одновременно всем данным ограничениям, случаются редко, а чтобы за них платили - почти  никогда.

Elm полезен когда нужны маленькие изолированные компоненты с вводом от UI и websocket-ом, который  очень годно реализован в elm. И  для WebGL, потому что Elm понимает текст шейдеров на GLSL и проверяет согласованность используемых типов между шейдерами и основной программой - ничего подобного ни в одном из примеров про WebGL на js я не видел. Ну и сама библиотека для работы с WebGL более высокоуровневая и удобная, чем то, что есть в js.
сам только что выдумал эти ограничения? ) про декодеры и "хоть одну зависимость" особенно смешно
источник

QZ

Quet Zal in Elm Lang сообщество разработчиков
про 3 человека максимум тоже..
источник

PF

Pawel Filimonenkow in Elm Lang сообщество разработчиков
Quet Zal
сам только что выдумал эти ограничения? ) про декодеры и "хоть одну зависимость" особенно смешно
у тебя стокгольмский синдром
источник

QZ

Quet Zal in Elm Lang сообщество разработчиков
Pawel Filimonenkow
у тебя стокгольмский синдром
нет )
источник

PF

Pawel Filimonenkow in Elm Lang сообщество разработчиков
ну ладно, удачи в написании декодеров))
источник

QZ

Quet Zal in Elm Lang сообщество разработчиков
у элма полно проблем но ты как-то умудрился их вообще не упомянуть )
источник

QZ

Quet Zal in Elm Lang сообщество разработчиков
пфф ты не осилил декодеры что ли? (
источник

PF

Pawel Filimonenkow in Elm Lang сообщество разработчиков
Quet Zal
пфф ты не осилил декодеры что ли? (
логика школоты. если что-то не нравится - то однозначно не осилил. Говном оно быть не может по определению ,оно же мне нра
источник

QZ

Quet Zal in Elm Lang сообщество разработчиков
тебе не нравятся декодеры? знаешь способ сделать их лучше и не потерять типизацию?
источник