Loo
https://www.meetup.com/rustjerk/events/252640463/
саша
да блять давно пора уже ду-нотацию завезти с монадками и не плодить кучу бесполезного синтаксиса
да и прикрутить HKT, достаточный для моноидов/функторов/монад должно быть не такой уж проблемой
саша
хотя на самом деле достаточно же просто прикрутить обрезанный HKT, а остальное можно макросами сварганить
Evgεny
Лол открываю расточат и снова вижу "HKT"
Anton
откуда бред?
Loo
откуда бред?
это же классика
Loo
ща скину
Loo
https://eax.me/cpp-will-never-die/
Loo
https://eax.me/rust/
Anton
а, читал уже забыл, что количество неадеквата зашкаливает
Anton
Так вот, а раз вы все равно прогоняете тесты, почему бы не воспользоваться еще и санитайзерами? Да, они находят не все баги. Но с другой стороны, если где-то глубоко в коде вы, условно говоря, не делаете проверку на выход за границу массива, и санитайзер не ловит баг, может быть это просто потому что выше уровнем уже есть все нужные проверки и дополнительная приведет только к лишним тормозам?
Anton
Красаучег =)
Anton
Кукуха улетела на встречу комитета по принятию C++18 =)
Anton
Path clarity уже запилили или еще нет?
Anton
в расте
саша
Лол открываю расточат и снова вижу "HKT"
так монадки ведь это универсальное решение для огромного количества проблем руста
պլհկ
Path clarity уже запилили или еще нет?
Это модуль реформ что ли?
Anton
Это модуль реформ что ли?
https://rust-lang-nursery.github.io/edition-guide/2018/transitioning/modules/path-clarity.html Нашел тикет
պլհկ
В 2018 эдишне запилили
Evgεny
так монадки ведь это универсальное решение для огромного количества проблем руста
а я и не против, просто как госрачи скатываются в генерики, тут каждый день нкт
Anton
а я и не против, просто как госрачи скатываются в генерики, тут каждый день нкт
Ну дженериков не хватает всем, а HKT только хаскелистам
պլհկ
https://rust-lang-nursery.github.io/edition-guide/2018/transitioning/modules/path-clarity.html Нашел тикет
https://internals.rust-lang.org/t/help-test-out-the-2018-module-system-changes/8047
Anton
Например каких
Например что раст не хаскель =)
Anton
Педивикия говорит что хаскель "Появился в 1990", так отебитесь от раста лет на 10
Anton
ну хотяб на 5
Anton
https://internals.rust-lang.org/t/help-test-out-the-2018-module-system-changes/8047
надо попробовать на чем нить маленьком
Evgεny
Хаскель мастер рейс
Αλεχ
прикольно
Αλεχ
izip!(&mut results, 0..10, inputs) -> results.iter_mut().zip(0..10).zip(inputs)
Αλεχ
https://eax.me/cpp-will-never-die/
От создателей "кобол никогда не умрет, все банки на нем работают"
Matwey
https://www.meetup.com/rustjerk/events/252640463/
Почему когда я жму на галочку в meetup, то ничего не происходит дальше?
Cat
если не можешь отметиться, то просто приходи
Matwey
Может там что-то поблочили опять и надо через VPN ходить в meetup?
Cat
тонкостей не знаю
Matwey
потому что ты уже заассайниглся
Ок. Странный веб-интерфейс однако
Matwey
Меня пугает когда нажатия не приводят к результату
саша
Например каких
Обработка ошибок, куча if let Some(...) в ряд, футуры.
պլհկ
Обработка ошибок, куча if let Some(...) в ряд, футуры.
? решает обработку ошибок .and_then решает if let Some, async await решает футуры
саша
? решает обработку ошибок .and_then решает if let Some, async await решает футуры
А можно было ещё сделать логгирование без засорения кода, контроль за эффектами и вот всё вот это вот. Но нет, мы для каждого частного случая будем добавлять ещё синтаксиса, а если не добавим, то страдайте.
саша
Монада - это мощная (и простая по сравнению с async/await) абстракция. В Rust для них даже не пришлось бы пилить сахар вроде ду нотации, ибо есть макросы. Нужна только щепотка HKT
Sergey T 🐬
вакансия #москва #backend #rust #hft office #relocation Senior Rust Developer Описание вакансии: Ты будешь реализовывать алгоритмы на RUST для сервисов validator ,matcher,keeper..(HFT сервиса/очереди от брокера до белой международной биржи и обратно с требованием ко времени ответа в 200us) Пример задачи на первый месяц: Написать Matcher который может: Получить заявку из сети Десерилиазовать,переложить из нити принимающей заявки в очередь Вычитать из очереди во второй нити Найти для заявки все заявки которые удовлетворяют условиям Если заявки найдены то выполнить их Сериализовать и отправить отчет дальше по сети Сериализовать и отправить изменение статусов по другим заявкам На всё менее 10us Вероятность написать такое не выпадает даже опытным финансовым сишникам О backend команде: На данный момент 2 Senior Rust Developer'a планируется 5, позже 7, есть команды Senior Go/Python developer'ov Стек компании: Rust,Go,Pyrhon,React,Vuejs Дополнительная информация: Небольшая сильная команда Мало бюрократии Несколько инвесторов Профинсированы на 2 года вперед Быстрый рост в плане личной карьеры Опционы компании, белая зп, отпуск 28 дней Помощь в релокации Город: москва Метро: парк культуры Формат работы: в штат,офис Занятость: полная, Гибкий график,возможно Удаленно 2 раза в неделю(обговаривается) Зарплатная вилка: от 150 тыс ... до 300тыс по результатам собеседования Контакты: {telegram : "https://t.me/kaizenst"}
Αλεχ
А можно было ещё сделать логгирование без засорения кода, контроль за эффектами и вот всё вот это вот. Но нет, мы для каждого частного случая будем добавлять ещё синтаксиса, а если не добавим, то страдайте.
https://github.com/rust-lang/rfcs/blob/master/text/2394-async_await.md A final - and extreme - alternative would be to abandon futures and async/await as the mechanism for async/await in Rust and to adopt a different paradigm. Among those suggested are a generalized effects system, monads & do notation, green-threading, and stack-full coroutines. While it is hypothetically plausible that some generalization beyond async/await could be supported by Rust, there has not enough research in this area to support it in the near-term. Given our goals for 2018 - which emphasize shipping - async/await syntax (a concept available widely in many languages which interacts well with our existing async IO libraries) is the most logical thing to implement at this stage in Rust's evolution.
-__-
Только вот async/await уже выкинули из Rust 2018.
саша
Только вот async/await уже выкинули из Rust 2018.
А нахера тогда Rust 2018 вообще нужен?
-__-
А нахера тогда Rust 2018 вообще нужен?
Нафига был нужен Impl Period, в котором половину запланированного не заимплементили?
Marat
Там же просто сказали что не сразу заимплементят
саша
Там же просто сказали что не сразу заимплементят
А, ну тогда сделают всё, что обратная совместимость в рамках следующей эпохи не ломалась. Зарезервируют всё, что необходимо.
саша
> обратная совместимость > не ломалась > Rust
саша
Alexander
Кстати, да - в Rust могли бы уже сразу Algebaic Effects + Handlers запилить, минуя монады. Необязательно же повторять весь исторический рисёрч чтобы добраться до современных решений.
-__-
Разве выкинули?
Окей, я не так это понял. Получается, ключевые слова будут сразу в Edition 2018, а реализация — когда-нибудь потом. Но это тоже как-то тупо.
Αλεχ
про монады хоть слышал и чутка юзал
Alexander
Если сделать из Rust хаскель, то не все обрадуются.
Если НЕ сделать из Rust C++/Go/whatever, то тоже не все обрадуются. Это не аргумент. Кроме того, в Haskell нет Algebraic Effects - я про то и говорю, что можно сразу сделать лучше.
Αλεχ
прежде чем рекламировать
Alexander
я даже не знаю что это такое
https://www.quora.com/What-are-computational-effects-and-algebraic-effects
Alexander
прежде чем рекламировать
Откуда такое требование - сначала рассказать что это такое? Не говоря уже о том, что я ничего не рекламирую.
Αλεχ
Откуда такое требование - сначала рассказать что это такое? Не говоря уже о том, что я ничего не рекламирую.
чтобы все понимали, что если ты говоришь "в расте давно не хватает плюмбусов, сделали бы сразу нормально", то никто нихера не понимает, что это аткое и чем он опоможет
Αλεχ
учитывая контекст, для понимания нужно прочитать пяток занудных статей по теории типов, что там к чему
Αλεχ
продраться через формулы и понять, как это влияет на практический код
Alexander
А где есть, кроме Eff (про который я узнал минуту назад)?
Есть ещё пара языков и вот это, что для Rust актуальнее: https://www.microsoft.com/en-us/research/publication/implementing-algebraic-effects-c/
Слава
https://www.quora.com/What-are-computational-effects-and-algebraic-effects
Впечатляющая простыня с отсылками к Idris'у. Ну ок.
Alexander
продраться через формулы и понять, как это влияет на практический код
Oh no! Чтобы что-то понять нужно подумать! С чего Вы взяли, что если я буду что-то объяснять это будет а) проще, чем в статьях; б) вообще соответствовать какой-то действительности?
Αλεχ
Oh no! Чтобы что-то понять нужно подумать! С чего Вы взяли, что если я буду что-то объяснять это будет а) проще, чем в статьях; б) вообще соответствовать какой-то действительности?
потому что объяснение монады из теории типов - это херня. А вот объяснение "сморите, теперь вы можете писать async/await и избавиться от коллбеков" - это полезное практическое объяснение
Слава
Есть ещё пара языков и вот это, что для Rust актуальнее: https://www.microsoft.com/en-us/research/publication/implementing-algebraic-effects-c/
Боже мой, почему пейперы пишутся вот этим их завитушечно-витееватым, плохо читаемым с экрана шрифтом.