Anonymous
ну и в чем проблема тогда
Quet
трейтобжекты это базовые классы+виртуальные методы в с++ )
Quet
dynamic dispatch ровно как в плюсах
Anonymous
в с++ нет трейтов, какие трейтобжекты
Евгений
Немного, потому что оно привязано не к идее какой-то, а к костылям реализации
Anonymous
ооооо
Anonymous
расскажешь про костыли реализации?
Евгений
Quet
Just try to formalize rust type system
какие-то общие слова
Anonymous
в чем проблема?
Евгений
Язык строился не из типовой системы и стратегии редукцим, а из потребности разделить сущности хранящиеся на стеке и в хипе
Ilya
Just try to formalize rust type system
^ это цитата или просто английский для придания веса утверждению?
Дима
расскажешь про костыли реализации?
Ну ты сам недавно призначал что в расте в фьючерсах торчат наружу детали имплементации
Евгений
Второе :)
Anonymous
Ну ты сам недавно призначал что в расте в фьючерсах торчат наружу детали имплементации
да, а где костыли реализаций? это к другой фиче относится которую просто еще проверяют на стабильность
Quet
Ну ты сам недавно призначал что в расте в фьючерсах торчат наружу детали имплементации
ну так если они не магические и не в рантайме то детали реализации обязаны торчать но проблема ли это?
Дима
Тут нет оправдания
Quet
Нет, там торчит то что не должно
фича ушла в стабильную ветку и там торчит то что не должно?
Дима
И над этим работают, насколько я знаю, то есть проблема признаётся
Viacheslav
Язык строился не из типовой системы и стратегии редукцим, а из потребности разделить сущности хранящиеся на стеке и в хипе
вообще-то если я не ошибаюсь у rust есть попытки формализации, и даже есть вроде язык, на основе которого они строят систему типов и он формализован
Anonymous
Quet
Прикинь
ну бывает ( но вон сам говоришь работают и признали проблему
Quet
но кажется @elemir90 до фьючерсов еще не дошел )
Anonymous
я очень хочу конкретики
Viacheslav
ftp://ftp.cs.washington.edu/tr/2015/03/UW-CSE-15-03-02.pdf
Viacheslav
@elemir90
Viacheslav
язык и правда создавался так сказать ad-hoc, но они поняли, что без формализации никуда и продолжают работать в этом направлении
Viacheslav
с другой стороны, тот же FB клепает языки и забивает на их формализацию
Viacheslav
тоже живет вполне себе успешно
Viacheslav
что значит не так?
Дима
По крайней мере flow должен быть формализован
Anonymous
zerobias очень любит flow
Viacheslav
флоу вообще не язык
Viacheslav
о чем тут говорить
Viacheslav
это тайпчекер
Дима
Евгений
Самое простое -- регионы предполагают естественный порядок, при чём двойной порядок, завязанный на начале и конце. Лайфтайм -- ад хок костыли, пытающиеся решить ту жу проблему, они умеют совпадать и нет. Кому нужны такие регионы? А заимствование? Кто-нибудь нормально описал type theory, связанный с тем, что если мы мутабельно заимствуем, то у нас "линейность", а немутабельно -- её отсутствие.
Viacheslav
но вот например Hack, который конечно взять из oCaml не формализован, новый язык, который они презентовали в июне Reflex тоже не формализован, более того, я говорил с создателем и он считает, что в его кейсе — формализация это бессмыслица
Евгений
Я и не говорю, что формализация языка всегда осмысленна
Евгений
Просто сложно писать на языке с безумной системой типов, которая нигде не формализована
Viacheslav
Еще раз, Flow это не язык, это система типов + тайпчекер, док-во того, что он чекает какую-то систему типов, которая саунд — не интересно, тем более ничего нового там нет.
Евгений
Можно адаптироваться к ней, но я из тех людей, которые с чёткими инструкциями быстрее справляюсь чем с адаптацией к ад-хоку
Anonymous
ты хотел формализовать систему типов или move семантики?
Евгений
так в чем все же конкретная проблема?
В том что мне сложно учить раст
Quet
а, ну потому что ты привык к хаскелю и писал на нем
Ilya
Формализация всегда отстает от требований бизнеса/прикладной науки. Иногда на десятки лет. Это нормально.
Quet
а писал бы на плюсах было бы легко
Quet
мне вот хаскель понимать намного сложнее чем раст и насколько где хорошо формализованы типы роли не играет
Anonymous
я только после изучения rust смог нормально изучить haskell
Ilya
так-то любая формализация идёт на пользу любой области. и понимать это легче, если мозги привыкшие. но это pipe dream
Quet
формализация хорошо если пишешь компилятор языка
Quet
если просто пишешь на языке не скажу что она как-то сильно помогает
Евгений
а писал бы на плюсах было бы легко
Ну вот мне это не нравится, оно слишком похоже на плюсы. Это плюс для популярности языка, но минус для того чтобы быть красивым техническим решением
Quet
это адекватная замена плюсов
Quet
но может быть не оч адекватная замена хаскеля
Евгений
Формализация всегда отстает от требований бизнеса/прикладной науки. Иногда на десятки лет. Это нормально.
Да дело же не в том. Формализация большинства идей, используемых в расте, уже лет 10-15 есть. Просто авторы языка с ними не знакомы и придумывали велосипед. От этого решения не очень элегантны
Евгений
это адекватная замена плюсов
Да я не спорю, мне раст понравился
Евгений
Я бы не писал на нём иначе, лол
Евгений
какие примеры велосипедов?
* переизобретение регионов * переизобретение хиндли-милнера, ограниченного констрейтами * переизобретение линейных типов Например из-за последнего в rust'е нет оператора "лийнеризации" типа. Наоборот есть оператор "делинейризации", что на логическом уровне бессмысленно. Это случилось просто потому, что разработчики придумывали способ обезопасить "указатели"
Anonymous
я думал раст сделан для создания эффективных приложений
кана
вау, нашел stylish-haskell, красота
Ilya
скиньте пожалуйста что-нибудь доступное про эти ваши линейные типы и регионы
Ilya
обзорное
Зигохистоморфный
кана
нафиг hindent, мне не нравится его форматирование, да и умеет давеко не все, что умеет stylish