Валерий
Чтобы случайно не выкатить релиз библиотеки, которая может взять и уронить приложение
Ilya
Хм, но ведь те же стандартные head или !! используют error
кана
Ну поэтому я не использую ни хед, ни бэнгбэнг)
кана
head должен возвращать Maybe
Валерий
Да, но это вполне понятно для таких тривиальных вещей По хорошему, хэд должен возвратить Maybe a, но это каждый раз разворачивать так себе
Валерий
В то же время ловить чёрти пойми откуда еррор крайне неприятно, а неопределённость на то и неопределённость — просто временная затычка
Aleksei (astynax)
> По хорошему, хэд должен возвратить Maybe a, но это каждый раз разворачивать так себе поэтому есть пакет safe, где есть headMay и headDef
Aleksei (astynax)
с headDef можно лишний раз не матчить
Anatolii
@astynax смотрел твои доклады про Elm и ghcjs, в последнем ты упоминал что хотел бы попробовать Purescript. Получилось с того времени Purescript в прод затащить?
Aleksei (astynax)
Нет, и даже от GHCJS отказались :)
Anatolii
и на чем же фронт пишете?
Aleksei (astynax)
Увы, у нас нет разработчиков, которые умеют pixel perfect верстку, быстро, и не на JS
Aleksei (astynax)
Мы уже не пишем, пишет наш фронтендер на жабаскрипте
Aleksei (astynax)
Впрочем, мы только в одном проекте на этапе раннего прототипа попробовали GHCJS, и то верстка у нас была уже (статичная и по БЭМ). В итоге пришлось писать свои календарики (да-да!) - это "не web scale". Поэтому отдали фронт тому же чуваку, который делает фронты для остальных проектов. Увы и ах
Dmitry
@astynax в общем, закончили тем, с чего мы начали
Dmitry
но нам вроде удалось превозмочь и писать морду к другому проекту на Elm
Aleksei (astynax)
Проблема не в ghcjs/elm/purescript. Проблема в том, что мы - не фронтенд-разработчики и даже если бы писали фронт на JS, то делали бы это медленее нашего фронтовика. А он точно не будет осваивать новый для себя стэк ради наших хотелок ради сомнительного удовольствия от написания своих календарей. В итоге остаёмся там, где мы есть...
Dmitry
обычная история.
Aleksei (astynax)
Да и профит был именно от GHCJS - переиспользование API-типов подкупало. И на этом мы точно время съэкономили. Но JS повзоляет использовать огромное кол-во либ "на все случаи жизни". А для фронтендостроения на GHCJS либ маловато и часто приходится использовать FFI - компонентик какой-нибудь к реакту прикрутить, например, и тут всё становится плохо, ибо компоненты stateful, типы динамические и т.д. и т.п. У Elm библиотеки есть для самого нужного, а в PureScript всё сильно лучше с FFI, но это уже не Хаскель, сл-но никакого code reuse, а значит и преимуществ для нас - "ненастоящих сварщиков"
Alexander
оффтоп вопрос, а кто-нибудь слушает приаттаченные звуковые сообщения, я обычно игнорирую, т.к. это не удобно
Anatolii
Я тоже их не слушаю, не понимаю зачем они нужны
Dmitry
я слушал, там шипение. просто в телеграме легко случайно включить запись
Alexander
я понимаю зачем они могут быть нужны, например если едешь в машине и надо вести диалог, то с записью ты можешь выдать более сложную мысль
Alexander
но вроде в больших каналах так никто не делает
Dmitry
на фронте тренд меняется раз в две недели
Dmitry
злые языки говорят, что раз в неделю
Дима
Это мета-тренд
Дима
Так банально дешевле
Anatolii
@astynax а абстрактному фронтэндеру Elm учить дольше чем разбираться с новым фрэймворком?
Aleksei (astynax)
> Бтв, сейчас в фронте тренд на stateless увы, нет. Компонент может выглядеть, как stateless, но по факту хакать реактово монтирование и не пересоздаваться, иметь "немножко состояния" - в глобальном скоупе, скажем. Вот это всё
Anatolii
ну вон как выше написат @voidlizard, раз в неделю что-то учить новое надо - взяли бы и выучили Elm хотя бы
Dmitry
типичные проблемы хаскеллистов: кого напрячь делать фронтенд (и на чем), и что надо бы выучить раст для тех случаев, куда хаскел не помещается.
Дима
ну вон как выше написат @voidlizard, раз в неделю что-то учить новое надо - взяли бы и выучили Elm хотя бы
Не могу отнести к абстрактным (типичным) уже тех кто понимает зачем нужен elm
Anatolii
ну если тренд пойдет - то все понянутся
Anatolii
а там и плюсы видно станет
Aleksei (astynax)
Elm потому, что там меньше всего учить
Anatolii
Elm-то зачем?
ну потому что Pure/Haskell они точно учить не будут
Aleksei (astynax)
this
Dmitry
на элме по слухам кто-то что-то сделал не игрушечное
Anatolii
мне кажется что Elm может послужить толчком к этому
Dmitry
в отличие от остального.
Anatolii
сказать что тут все как в Elm - только лучше :)
Anatolii
хотя не факт
Aleksei (astynax)
На эльме много чего делается. кто бы оный и как не ругал.
Aleksei (astynax)
И много на эльме написано именно потому, что его освоить легко
Aleksei (astynax)
И тем не менее даже то, что на эльме пишется с его кол-вом либ, пишется через боль и на голом энтузиазме. Плюс - при наличии лишнего времени на инвестиции в стэк
Aleksei (astynax)
Никогда ни один compile-to-js не догонит оный по кол-ву батареек. А это решает, когда сроки ограничены
Anatolii
я когда-то давно писал бэк на nodejs, писал месяца 2 - но даже через неделю править в коде было что-то страшно
Anatolii
я не думаю что на фронте ситуация лучше
Aleksei (astynax)
А раз своих либ не будет, остаётся FFI в стейтфул мир с динамической типизацией, глобальными переменными и дырявым скоупом.
Дима
No
Anatolii
а тесты никогда тебя не спасут от всего этого дела
Ale
Ну и flow/ts
Aleksei (astynax)
Тесты не помогают, как и типизация аля typescript
Дима
Flow — статическая типизация, никаких глобальных прости господи переменных и прочего
Dmitry
по поводу править через неделю - слеза умиления скатывается, когда я клонирую и собираю проект на окамле семилетней давности - и всё само собирается
Aleksei (astynax)
flow ещё может слегка помочь
Dmitry
возможно, как раз потому, что он застыл
Aleksei (astynax)
Проблема то в головах, а не в языке. У фронтендеров профессиональная деформация
Dmitry
семилетней, ага
Ale
Ну обезьянок много, мы сейчас вроде собственные проекты обсуждали 🤔
Anatolii
семилетней, ага
таких не бывает?:)
Dmitry
месячной давности может не собраться )
Anatolii
ну со stack уже полегче как-то
Anatolii
если нет не хаскельных зависимостей
Dmitry
а полугодовой давности валит компилятор
Dmitry
при переезде на новый ghc
Dmitry
и всё это происходит на lts
Aleksei (astynax)
Ну обезьянок много, мы сейчас вроде собственные проекты обсуждали 🤔
А в собственных проектах кто будет делать GUI с приемлемой скоростью?
Alexander
месячной давности может не собраться )
если версии запинены, то только из-за компилятора
Dmitry
ну вот да, из-за компилятора
Alexander
PVP не зря придумали и cabal freeze
Dmitry
а вернее, из-за расширений