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