Size: a a a

2020 May 02

RP

Roman Proskuryakov in rust_offtopic
что-нибудь еще?
источник

RP

Roman Proskuryakov in rust_offtopic
вдруг что дельное нашёл, я исправлю
источник

VS

Victor Sapiens in rust_offtopic
@nlinker вообще Orleans Streams это больше tcp соединения. Они там опять же на RPC насчитаны а Akka.Net стримы я так понял работают просто через оперативку.
источник

EG

Emmanuel Goldstein in rust_offtopic
Я тебе подробно расписал претензии к аргументации.
Для протокола: я не считаю, что Rust медленнее C++ (я вообще ничего по этому поводу не считаю, у меня нет адекватных аргументов в ту или иную сторону).
Я считаю, что приведённые контраргументы во многих случаях некорректны, что несколько дискредитирует сообщество — любой человек, который это заметит, будет считать что Rust действительно медленнее C++.
источник

RP

Roman Proskuryakov in rust_offtopic
> Представим, что у тебя есть старая проприетарная кодовая база на C — чтобы перейти на C++ тебе нужно приложить примерно ноль усилий, чтобы перейти на Rust — нужно писать обёртки.

C и C++ - это разные языки. ты C++ сам бесплатно умеет подключать сишные либы? там везде размазано #ifdef CXX и прочее говно, чтобы заставить это работать
источник

VS

Victor Sapiens in rust_offtopic
@nlinker Я через Orleans Stream Пушил новое игровое состояние с сервера на клиент. В принцыпе норм получалось. Даже лучше чем SignalR
источник

RP

Roman Proskuryakov in rust_offtopic
поэтому сложность у встраивания С в С++ - амортизированная за все годы написания С библиотек
источник

EG

Emmanuel Goldstein in rust_offtopic
Roman Proskuryakov
> Представим, что у тебя есть старая проприетарная кодовая база на C — чтобы перейти на C++ тебе нужно приложить примерно ноль усилий, чтобы перейти на Rust — нужно писать обёртки.

C и C++ - это разные языки. ты C++ сам бесплатно умеет подключать сишные либы? там везде размазано #ifdef CXX и прочее говно, чтобы заставить это работать
C++ умеет дёшево подключать сишные либы.
источник

RP

Roman Proskuryakov in rust_offtopic
Emmanuel Goldstein
C++ умеет дёшево подключать сишные либы.
которые к этому готовы.
источник

RP

Roman Proskuryakov in rust_offtopic
потому что языки разные.
источник

NL

Nick Linker in rust_offtopic
Victor Sapiens
@nlinker вообще Orleans Streams это больше tcp соединения. Они там опять же на RPC насчитаны а Akka.Net стримы я так понял работают просто через оперативку.
Про Orleans слышал много хорошего, про Akka.Net не слышал ничего :-) Думаю, лучше дождаться Жуковского, он возможно ответит по типизированным акторам в Akka.Net.
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
C++ умеет дёшево подключать сишные либы.
также как и раст через extern "C"
источник

EG

Emmanuel Goldstein in rust_offtopic
Любые — всё равно дешевле, чем Rust. Просто потому, что Rust даёт больше гарантий.
источник

RP

Roman Proskuryakov in rust_offtopic
@emmanuelGoldstein ладно. спасибо за ревью статьи. давай вернемся к этому завтра. сегодня у меня шампанское.
источник

RP

Roman Proskuryakov in rust_offtopic
я обязательно рассмотрю твои коментарии без наездов
источник

RP

Roman Proskuryakov in rust_offtopic
просто на сегодня уже хватит
источник

RP

Roman Proskuryakov in rust_offtopic
mem::transmute - это круто, но это вызов extern fn функции, а не отключение всех гарантий языка
источник

EG

Emmanuel Goldstein in rust_offtopic
В самом худшем случае тебе в случае C ←→ C++ требуется экстерн, а в случае C ←→ Rust требуется extern, конвертация типов и, желательно, safe-обёртка.
Я бы это аргументировал примерно так:
Базовый вариант подключения C к Rust можно сделать довольно дёшево с помощью биндгена по хидерам, но у тебя везде будет ансейф. В C++ обычно можно использовать сами хидеры вместо биндгена по ним, что несколько уменьшает кост, но тебе всё равно придётся делать «сейф»-обёртку, если ты хочешь работать с красивыми умными указателями и RAII-типами плюсов. Если же ты в плюсах используешь функции из C как они были, то ты можешь то же самое делать в Rust, просто расставляя unsafe на местах вызова.
источник

VS

Victor Sapiens in rust_offtopic
Nick Linker
Про Orleans слышал много хорошего, про Akka.Net не слышал ничего :-) Думаю, лучше дождаться Жуковского, он возможно ответит по типизированным акторам в Akka.Net.
Там на приём сообщение есть одни которые деприкейтед и другие которые кривые ReciverActor. Но блин, все они на строне пользователя превращаются  в IActorRef у кооорого метода Tell(object) который просто тип object принимает а я хочу как в Orleans строго типизированы клиент (ссылку) для актора.
источник

EG

Emmanuel Goldstein in rust_offtopic
Roman Proskuryakov
mem::transmute - это круто, но это вызов extern fn функции, а не отключение всех гарантий языка
Проблема в том, что ты можешь сломать любые гарантии языка из ансейф-блока.
Хуже того, ты можешь сломать что-то в ансейф-блоке так, чтобы гарантия сломалась в сейф-коде (тривиальный пример — Pin::new_unchecked())
источник