
Quet
30.09.2017
18:02:30
трейтобжекты это базовые классы+виртуальные методы в с++ )
dynamic dispatch ровно как в плюсах

illiatshurotshka❄️
30.09.2017
18:02:50
в с++ нет трейтов, какие трейтобжекты

Евгений
30.09.2017
18:02:52
Немного, потому что оно привязано не к идее какой-то, а к костылям реализации

Google

illiatshurotshka❄️
30.09.2017
18:03:14
ооооо
расскажешь про костыли реализации?

Quet
30.09.2017
18:03:26

Евгений
30.09.2017
18:04:45

Quet
30.09.2017
18:05:46

illiatshurotshka❄️
30.09.2017
18:05:47
в чем проблема?

Евгений
30.09.2017
18:05:50
Язык строился не из типовой системы и стратегии редукцим, а из потребности разделить сущности хранящиеся на стеке и в хипе

Ilya
30.09.2017
18:06:05

Quet
30.09.2017
18:06:19

Дмитрий
30.09.2017
18:06:27

Евгений
30.09.2017
18:06:27
Второе :)

illiatshurotshka❄️
30.09.2017
18:07:17

Google

Quet
30.09.2017
18:07:22

Дмитрий
30.09.2017
18:07:39
Тут нет оправдания

Quet
30.09.2017
18:07:57

Дмитрий
30.09.2017
18:08:00
И над этим работают, насколько я знаю, то есть проблема признаётся

Vyacheslav
30.09.2017
18:08:04

Дмитрий
30.09.2017
18:08:13

illiatshurotshka❄️
30.09.2017
18:08:17

Quet
30.09.2017
18:08:28
Прикинь
ну бывает ( но вон сам говоришь работают и признали проблему

Дмитрий
30.09.2017
18:08:56

Quet
30.09.2017
18:09:07
но кажется @elemir90 до фьючерсов еще не дошел )

illiatshurotshka❄️
30.09.2017
18:10:01
я очень хочу конкретики

Vyacheslav
30.09.2017
18:10:08
ftp://ftp.cs.washington.edu/tr/2015/03/UW-CSE-15-03-02.pdf
@elemir90
язык и правда создавался так сказать ad-hoc, но они поняли, что без формализации никуда и продолжают работать в этом направлении
с другой стороны, тот же FB клепает языки и забивает на их формализацию
тоже живет вполне себе успешно

Дмитрий
30.09.2017
18:12:24

Vyacheslav
30.09.2017
18:12:32
что значит не так?

Google

Дмитрий
30.09.2017
18:12:44
По крайней мере flow должен быть формализован

illiatshurotshka❄️
30.09.2017
18:12:47
zerobias очень любит flow

Vyacheslav
30.09.2017
18:12:52
флоу вообще не язык
о чем тут говорить
это тайпчекер

Дмитрий
30.09.2017
18:13:55

Евгений
30.09.2017
18:14:07
Самое простое -- регионы предполагают естественный порядок, при чём двойной порядок, завязанный на начале и конце. Лайфтайм -- ад хок костыли, пытающиеся решить ту жу проблему, они умеют совпадать и нет. Кому нужны такие регионы?
А заимствование? Кто-нибудь нормально описал type theory, связанный с тем, что если мы мутабельно заимствуем, то у нас "линейность", а немутабельно -- её отсутствие.

Vyacheslav
30.09.2017
18:14:32
но вот например Hack, который конечно взять из oCaml не формализован, новый язык, который они презентовали в июне Reflex тоже не формализован, более того, я говорил с создателем и он считает, что в его кейсе — формализация это бессмыслица

Евгений
30.09.2017
18:15:10
Я и не говорю, что формализация языка всегда осмысленна

Vyacheslav
30.09.2017
18:15:30

Евгений
30.09.2017
18:15:33
Просто сложно писать на языке с безумной системой типов, которая нигде не формализована

Vyacheslav
30.09.2017
18:16:41
Еще раз, Flow это не язык, это система типов + тайпчекер, док-во того, что он чекает какую-то систему типов, которая саунд — не интересно, тем более ничего нового там нет.

Евгений
30.09.2017
18:16:51
Можно адаптироваться к ней, но я из тех людей, которые с чёткими инструкциями быстрее справляюсь чем с адаптацией к ад-хоку

Quet
30.09.2017
18:19:06

illiatshurotshka❄️
30.09.2017
18:19:09
ты хотел формализовать систему типов или move семантики?

Евгений
30.09.2017
18:22:09

Quet
30.09.2017
18:22:43
а, ну потому что ты привык к хаскелю и писал на нем

Ilya
30.09.2017
18:22:44
Формализация всегда отстает от требований бизнеса/прикладной науки. Иногда на десятки лет. Это нормально.

Quet
30.09.2017
18:22:48
а писал бы на плюсах было бы легко

Google

Quet
30.09.2017
18:23:36
мне вот хаскель понимать намного сложнее чем раст и насколько где хорошо формализованы типы роли не играет

illiatshurotshka❄️
30.09.2017
18:24:26
я только после изучения rust смог нормально изучить haskell

Ilya
30.09.2017
18:24:48
так-то любая формализация идёт на пользу любой области. и понимать это легче, если мозги привыкшие. но это pipe dream

Quet
30.09.2017
18:27:01
формализация хорошо если пишешь компилятор языка
если просто пишешь на языке не скажу что она как-то сильно помогает

Евгений
30.09.2017
18:27:53
а писал бы на плюсах было бы легко
Ну вот мне это не нравится, оно слишком похоже на плюсы. Это плюс для популярности языка, но минус для того чтобы быть красивым техническим решением

Quet
30.09.2017
18:28:56
это адекватная замена плюсов
но может быть не оч адекватная замена хаскеля

Евгений
30.09.2017
18:30:23
Я бы не писал на нём иначе, лол

illiatshurotshka❄️
30.09.2017
18:31:50

Ilya
30.09.2017
18:32:00

Евгений
30.09.2017
18:44:00
какие примеры велосипедов?
* переизобретение регионов
* переизобретение хиндли-милнера, ограниченного констрейтами
* переизобретение линейных типов
Например из-за последнего в rust'е нет оператора "лийнеризации" типа. Наоборот есть оператор "делинейризации", что на логическом уровне бессмысленно. Это случилось просто потому, что разработчики придумывали способ обезопасить "указатели"

illiatshurotshka❄️
30.09.2017
18:52:08
я думал раст сделан для создания эффективных приложений

kana
30.09.2017
18:53:24
вау, нашел stylish-haskell, красота

Ilya
30.09.2017
18:53:34
скиньте пожалуйста что-нибудь доступное про эти ваши линейные типы и регионы
обзорное

Google

Denis
30.09.2017
18:53:54

kana
30.09.2017
18:54:24
нафиг hindent, мне не нравится его форматирование, да и умеет давеко не все, что умеет stylish

Mikhail
30.09.2017
18:54:43
@kana_sama Эти тулзы не взаимозаменяемы и тебе нужны будут обе.
(наверное)

Denis
30.09.2017
18:55:08
ну а brittany?

Mikhail
30.09.2017
18:55:49
ну а brittany?
Я лично опыта не имею, но малонастраиваемость hindent'а огорчает конечно.

Quet
30.09.2017
18:56:37
форматтер кода желательно должен вообще не настраиваться
ну или минимально )

Mikhail
30.09.2017
18:57:06
Утверждение так себе.
Задача заставить весь haskell community писать в одном стиле, мягко говоря, сложновата.

Quet
30.09.2017
18:58:03
и этим форматтером желательно должны пользоваться все
тогда самый профит )

kana
30.09.2017
18:58:09
hindent раздражает тем, как переводит строки для каждой переменной конструктора, какой-нибудь F a b c d будет на 5 строк растянут

illiatshurotshka❄️
30.09.2017
18:58:43
если же использовать вместо consume
fn not_consume(x: A) -> A { x }
то после вызова мы можем опять использовать x (но более простое решение, которое и используют, это создать референс типа &A и передать его)

Ilya
30.09.2017
19:10:49
реквест обзорных статей остаётся в силе

illiatshurotshka❄️
30.09.2017
19:11:31
линейные типы это типы которые используются только один раз. статей у меня нет, сорь

Ilya
30.09.2017
19:13:03
Ну на хабре я читал про раст несколько статей. Принцип борроу-чекера и лайфтаймы мне понятны.
Но ни разу в тех статьях не видел слов "линейные типы" и "регионы"
за этим видимо какая-то теория стоит? вот её хочется увидеть

illiatshurotshka❄️
30.09.2017
19:13:41

Диёр
30.09.2017
19:14:32

Ilya
30.09.2017
19:15:33
линейная логика
на русском гуглится какой-то трэш
на английском нашлось вот это https://en.wikipedia.org/wiki/Linear_logic
оно?