A64m
не знаю
Anonymous
@js_monk будет жить. Поприветствуем!
Artem
Добрый день, коллеги!
Хочу поинтересоваться у людей, которые писали на Haskell web apps. Какие библиотеки или транспилируемые языки вы использовали на frontend(желательно связанные с Functional Programming)?
Заранее спасибо :)
Ilya
А что такое "транспилируемые"?
Vladislav
Значит target language компилятора высокоуровневый язык
Vladislav
например JS
Ilya
Ок, век живи, век учись
кана
кана
потом транспилил его в жс
кана
жс в жс - будущее
jm
Vladislav
full stack PS подразумевает ноду на бэкенде?
Vladislav
зачем так жить
A64m
нужно чтоб оправдать то, что он не оптимизируется и адово тормозит
Anonymous
Maxim Gurskoy будет жить. Поприветствуем!
Aleksei (astynax)
Cheese
Vladislav
Трансляция вообще с любого языка в любой, то есть это более общий термин
Vladislav
Так что да, так тоже можно назвать. Но людям было скучно и они придумали еще термин зачем-то.
Cheese
Vladislav
только ли они
jm
jm
Vladislav
только ли они
Anonymous
некоторые библиотеки оч даже полезные.
с 2010 качественно шагнули. Сейчас совсем другая ситуация.
Vladislav
я могу представить идентичное обсуждение Хаскеля в JS-чате
Vladislav
придумывают бесполезные монады, перепридумывают императивное программирование со своими IO/IORef
A64m
Vladislav
а что тогда?
Кстати, написать PS -> Haskell должно быть несложно
Vladislav
У него система типов вроде строго слабже, за исключением рядового полиморфизма
Cheese
Vladislav
Вообще-то это ты его рядовым назвал когда-то давно и я подхватил
A64m
A64m
для рекордов емнип буккипер использовал
Cheese
A64m
Зигохистоморфный
вообще у пурсы стали появлятся такие штуки
https://purescript-resources.readthedocs.io/en/latest/
Зигохистоморфный
и недавно добавили Instance chains
jm
а что тогда?
https://github.com/purescript/documentation/blob/master/ecosystem/Alternate-backends.md
Любой бекенд который вас устраивает, скорее всего pcc.
Vladislav
никогда
да, видимо я путаю с другой ситуацией и другим термином
"рядовой полиморфизм" это детище @qnikst
jm
Я не вижу проблем с нодой на бекенде для "веб-приложений". Не все же крипивалюты пишут.
jm
Главное на Elm не писать.
A64m
Vladislav
> Я не вижу проблем с нодой на бекенде
Ну да, кому нужны speed или security
jm
A64m
уж лучше с фулстек хаскелем страдать чем с этим говном, которое еще и не написано даже
jm
Я не знаю, я для своих пет проектов наслаждался пурскриптом пока понял что мои пет проекты никому не нужны и можно делать не веб интерфейсы.
Vladislav
Достоинство PS в том, что сгенерированный JS действительно маленький, никакой прогрузки 5 MiB
jm
Фуллстек пурскриптом, that is.
Vladislav
Для бэкенда у него достоинств нет
jm
Есть.
A64m
Vladislav
code sharing, но если это сильно хочется, то лучше тащить GHCJS уже на фронт
jm
Ноль геммороя для шаринга типов между беком и фронтом.
Vladislav
A64m
с этим-то да
Vladislav
мне не нравится в GHCJS полная (и полурабочая) перереализация GHC RTS на JS
Vladislav
я надеюсь в wasm-бэкендом ее можно будет выкинуть и заживем
jm
Когда я раньше смотрел на ghcjs было две большие проблемы – версия компилятора лаговала за основной, ничего не работало.
A64m
у васмобекенда типа webghc ртс все равно будет неполноценная, а для второго (аустериус или как там) ее и не написали еще даже на самом игрушечном уровне
jm
Покажите мне как пошарить типы с прозрачной сериализацией между браузером и хаскелным бинарником в 2018м.
Vladislav
A64m
но немного получше гхцжс будет, да
Vladislav
то есть когда надо передать хаскельную функцию как коллбэк в JS-функцию
Cheese
A64m
да
Vladislav
@s9gf4ult возможно помнит про этот ад с коллбэками в GHCJS, мы вместе разбирались
Vladislav
там был какой-то критический размер функции, после которого все ломалось
Vladislav
После этого я на GHCJS крест поставил
Зигохистоморфный
Aleksey
Помню такое но не помню детали
Aleksey
Да, там внутри все было очень плохо
Aleksey
В ghcjs очень плохой рантайм
Aleksey
Там было куча каких то допущений внутри сделано
Алексей
Как вы будете интегрировать ваш хаскель/пурскрипт с кучей существующего жс кода? Или будете свои фреймворки, библиотеки и прочие велосипеды заново писать?
Aleksei (astynax)
Есть же интероп. В purescript он ещё и довольно простой в использовании