?

Log in

No account? Create an account
светлое будущее
Mike Potanin potan
Previous Entry Share Next Entry
Фронт с роботами.
В порядке паралельного изучения ELM и ROS состыковал одно с другим.
Хотя в ELM не хватает тайпклассов и макросов, UI на нем пишется поразительно быстро и легко. Я уже просто не понимаю, зачем делать фронтенд на чем либо еще.

У вас там опечатка - "предскавление".

Все-таки, ISWIM'овский синтаксис очень приятен, не правда ли? ;-) Особенно его Miranda/Clean/Haskell вариант.

Edited at 2017-10-20 11:42 pm (UTC)

Ну использование только отступов мешает при отладки с помощью REPL. Haskell все-таки разрешает и фигурные скобки. Но в целом да, приятнее чем обилие пунктуации в традиционном синтаксисе.

А как же тогда в ELM'е вводить λ-функции? На эти грабли - двумерный синтаксис без одномерного, в Питоне наступили, т.к. его автор - "чукча-писатель". В результате, lambda: - это не просто функция без имени, а какая-то совершеннейшая херня.

Да в общем то ни каких проблем, если в редакторе.
(\x -> let
y = x
z = y
in
z)
В REPL приходится \ в конце строки добавлять и отсчитывать пробелы.

Спасибо. Т.е. в тексте просто пробелы добиваются так, чтобы \ было левее всего?

Кстати, вы не знаете, есть ли REPL (кроме Jupyter'а - он не работает) для того же Хаскеля, аналогичный Mathematica Notebook или его производным?

В телеграме про ELM недавно REPL обсуждали. Там какой-то встроенный в Atom упоменался.
Для Haskell больше не слышал. Впрочем, ghci, на мой взгляд, лучший REPL, из тех, что я видел. В Jupyter идея интерсная, но реализована не слишком хорошо.

> В Jupyter идея интерсная, но реализована не слишком хорошо.

Хорошо она реализована в Wolfram Mathematica 4.0 примерно 20 лет назад. :-)

> Я уже просто не понимаю, зачем делать фронтенд на чем либо еще.

Тем не менее, все известные мне практикующие Elm-еры разбрелись, кто на Purescript, кто на GHCJS :)

Я лично пока ещё держусь (хоть я и весьма редко фронтенды делаю), но purescript уже немножко подосвоил =)

Я еще не созрал для purescript. Вроде для него пакетов сильно меньше?

Elm прекрасен в качестве первой (второй, третьей) дозы. Когда садишься на это дело плотно нужен стафф потяжелее. Я на эльме начал тренироваться когда он еще был настоящий FRP, и подсев на идею, перешел на пурескрипт :-)

А на Purescript можно программировать не зная про js и DOM?

Самое близкое к этому, имхо, https://github.com/slamdata/purescript-halogen
Он вполне production ready и активно девелопится Сламдатой. При этом в отличие от Эльма, в любой момент можно опуститься до унизительного js и втулить какой-нибудь сране jquery widget. Ну или по крайней мере я себя так уговариваю, я пока Галоген не освоил, у меня фронт написан по старинке (пурескрипт у меня на ноде).

Вот как раз опускаться до js я и не хочу. ELM меня привлекает именно тем, что js я не знаю.

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

Галоген все равно выглядит как-то низкоуровнево. Для бекенда нормально (я обычно использую Scala, но безсерверный AWS Lambda с ней не очень хорошо работает, с нодой заметно лучше - надо будет попробовать), а вот во фронте хочется чего-то попроще.

А десктопный фронтенд тоже на Elm, чтобы тащить с собой браузер?

Вполне рабочий вариант, на джаваскрипте десктоп вполне делают.
Но для десктопа много альтернатив, та же Scala. Для Rust были даже реализации TEA (relm например).
Сейчас появился Flow9, который компилирует сразу для web (html5+даваскрипт), мобилки и десктопы (через C++ или neko). Библиотека UI не TEA, но хотя бы FRP. Проект сырой, но мне кажется перспективным.