
Евгений
14.06.2018
10:10:08

? animufag ?
14.06.2018
10:10:44

Pineapple
14.06.2018
10:11:03

Google

Aleksey
14.06.2018
10:11:05

? animufag ?
14.06.2018
10:12:07
хотя вообще хз что там с обероном
я помню в приложении к какой-то книге прочитал что разрабатывается оберон и там тоже всё будет хорошо

Pineapple
14.06.2018
10:12:34
Встречал я оберонщиков. Странные люди

? animufag ?
14.06.2018
10:12:38
король эльфов и фей

Евгений
14.06.2018
10:12:52

Pineapple
14.06.2018
10:14:13
Я так считаю, что подобные шуточки им не повредят

Alexander
14.06.2018
10:14:13
в том что половина хаскель-чата фронтендеры есть своя ирония
может запилим реактивный фрейворк для ghcjs?
с css in haskell и прочими прибаутками

? animufag ?
14.06.2018
10:16:43
(не часто читаю этот чат, вроде тут уже несколько модерирующих ботов на сабже запилили)
чёт наверное в обероне нет дженериков
хотя в вики встречается generic module

Stepan
14.06.2018
10:27:21

Google

Alexander
14.06.2018
10:28:54

A64m
14.06.2018
10:31:33
даже в каких-то поздних оберонах (зоннон или как там его) есть дженерики. даже вирт менее дремучий и пещерный чем пайк

Yuuri
14.06.2018
10:41:14
Зоннон вроде уже не виртовский: Designed by Jürg Gutknecht

IC
14.06.2018
10:45:14

A64m
14.06.2018
10:47:13
а что, оберонщики го не любят?
я их как-то последние лет 10 в интернетах встречать перестал

? animufag ?
14.06.2018
10:48:25
Ну а кто го любит

A64m
14.06.2018
10:49:04
ну, то, за что го не любят обычно - оберонщики-то как раз любят

Yuuri
14.06.2018
10:49:44
На Хабре три года назад была эпичная Неделя Оберона, срач в комментах утроился

A64m
14.06.2018
10:50:04
я хабр не читаю

IC
14.06.2018
11:19:10
в чём профит использовать alex в качестве токенизатора перед мегапарсеком? (на скорость пока пофиг)

? animufag ?
14.06.2018
11:23:27

Denis
14.06.2018
11:26:30

Yuriy
14.06.2018
11:29:34
что не так с 8.4? почему его до сих пор нет на matrix.hackage.haskell.org?

Александр
14.06.2018
11:31:07
И почему люди стремятся воткнуть монаду во все типы, которые могли бы без этого обойтись, а монадические операции могли бы быть выполнены отдельно?

Yuriy
14.06.2018
11:32:00

Александр
14.06.2018
11:32:38
Монада / Функтор / Аппликатив - это, конечно, очень сильные инструменты, но если есть возможность написать некую машинерию без внесения туда дополнительных свойств (которые получаются вовне так же легко), то такая машинерия становится менее хрупкой и более композабельной
Мой поинт: обязательно нужно разделять консерны, если к этому нет явного показания. Вещи, делающие разное, должны быть по максимуму независимы друг от друга.

A64m
14.06.2018
11:37:16
ну инстансы монады дают кучу функций, синтаксис и т.д.
вполне понятно зачем их делают

Александр
14.06.2018
11:38:05
Погоди, я не про инстансы монад.

Google

Александр
14.06.2018
11:41:31
Я про какой-нибудь такой тип:
data Foo a b m = Foo a (m b)
Где сам функтор m можно вообще не пихать сюда, и ничего страшного не произойдет, если он будет
data Foo a b = Foo a b
потому что вся машинерия может быть сделана без монады, а монадические вызовы могут быть сделаны рядом, в каком-нибудь комбинаторе
withFooM :: Foo a b -> m b

Дмитрий
14.06.2018
11:42:06

A64m
14.06.2018
11:46:30

Denis
14.06.2018
11:48:51
Foo m a b тогда уж
функтор то по b
ну т.е. может и по a, но по b точно

Александр
14.06.2018
11:53:20
Ну или так, не суть

A64m
14.06.2018
11:55:14
ну бывает что может, да

Александр
14.06.2018
11:58:47
А что вы (все, хаскеллисты, функциональщики и сочувствующие) думаете, что есть "идиоматично функциональный код", и нужно ли его придерживаться? Или можно лепить императивщину в IO и забить на все?
Ну то есть, я знаю, что комбинаторный стиль - это функциональный код. А есть еще критерии?

Alister
14.06.2018
11:59:09
иммутабельность
ленивость

Александр
14.06.2018
11:59:48
Это слишком абстрактно. У меня каждая вторая программа на С++ использовала иммутабельность, и ленивые лямбды по возможности

Ilya
14.06.2018
12:00:33

Александр
14.06.2018
12:00:45
Ленивость, она и в Хаскеле по прямому назначению редко используется. Обычный код будет работать и без лени, даже если его в PureScript закопипастить

Дмитрий
14.06.2018
12:01:07
Шаг влево шаг вправо и вся иллюзия рассеивается, и пурса в этом лучший пример
Люди решили что они пишут на хаскеле а во что это компилируется — мелочи; результат столкновения с реальностью — чудовищно неоптимизированный код

A64m
14.06.2018
12:03:04
других языках там такие боль и ужас будет, что только держись

Google

Дмитрий
14.06.2018
12:03:46
lazy by default это просто протекающая абстракция

A64m
14.06.2018
12:04:47

Александр
14.06.2018
12:04:51

A64m
14.06.2018
12:05:37
ленивость используется много где

Александр
14.06.2018
12:05:59
а вот и нет
Почему?
Сколько кода ни пишу, есть там ленивость, нету ли ее - все едино. Разве что, на характеристики программы влияет

Дмитрий
14.06.2018
12:06:14
А разве это кому-то нужно?
Пурса или что?) Там в ряде случаев банально стек вышибет или все ресурсы системы кончатся потому что в V8, как и в большинстве других рантаймов ленивость не бесплатна

Александр
14.06.2018
12:06:51
Я не очень понял про Пурсу и ленивость

A64m
14.06.2018
12:07:28
код который пищут "как на хаскеле" предполагает, что ленивость работает
также он предполагает что оптимизации работают.
без этого получается вот так
ФЯ 90-х
| comp | VM | t |
| --------------------- | --------------- | ------ |
| ghc 8.2.2 (O2) llvm 6 | stg ghc x64 | 7 |
| clean | abc | 40 |
| ocaml 4.04 flambda O3 | | 72 |
против ФЯ 2010-х
| idris 0.99 | | 54308 |
| purescript 0.11.4 | node v7.10.0 V8 | 128369 |
а работающая ленивость и оптимизации вообще непосильны для имплементаторов идриса и пурскрипта
им в это надо больше человекочасов вбухать чем во все что они сделали до этого

Piu
14.06.2018
12:11:08

Дмитрий
14.06.2018
12:11:37
Да. По сути это портирование ghc выходит. Следствие: подходы хаскеля требуют хаскель рантайма, без него ни шагу сделать нельзя

Александр
14.06.2018
12:11:46

Anatolii
14.06.2018
12:12:30
я думал на плюсах пишут когда нужен только производительный код

A64m
14.06.2018
12:12:55
да на плюсах много чего пишут где на производительность вообще плевать

Piu
14.06.2018
12:12:56

Дмитрий
14.06.2018
12:13:01
В purescript по вышеописанным причинам производительности нет вообще ни при каких условиях

Google

Александр
14.06.2018
12:13:10
На плюсах пишут по разным причинам, часто не очень рациональным, но просто брать и писать производительный код - это вряд ли, даже если программист так будет думать
Пока не начнешь работать над плюсовым кодом в угоду производительности, он будет обычный

Piu
14.06.2018
12:13:43

Anatolii
14.06.2018
12:13:54

Александр
14.06.2018
12:13:55

Anatolii
14.06.2018
12:14:12
а в чем у пурсы заточеность под фронт?

kana
14.06.2018
12:14:13
пурсе все равно

Anatolii
14.06.2018
12:14:19
вот у эльма заточенность под фронт

kana
14.06.2018
12:14:32
пурса заточена на фронт ровно так же, как жс заточен на фронт

Piu
14.06.2018
12:14:45

Дмитрий
14.06.2018
12:14:47
Фиг там был

Piu
14.06.2018
12:15:03

Дмитрий
14.06.2018
12:15:10
У ноджс есть обязательства перед энтерпрайзом

A64m
14.06.2018
12:15:23
нету у пурсы заточенности на фронт, есть всякие идеологические проблемы с оптимизациями (не делать их чтоб читаемый выхлоп был и т.д.)

Дмитрий
14.06.2018
12:15:26
И какие то разумные рамки производительности

Александр
14.06.2018
12:15:30

A64m
14.06.2018
12:16:02
но если хоть необольшие усилия к этому приложат - уже будет на порядки быстрее в таких тестах

Piu
14.06.2018
12:16:09
NodeJS
какой слишком специфичный кейс - начальник запретил все кроме ноды, но разрешил фп языки

A64m
14.06.2018
12:16:28
но чтоб как ghc было уже адовый труд понадобится

Александр
14.06.2018
12:16:28