Интересно, какой опыт были у крупных проектов с Rust, особенно w.r.t. управление графом объектов, его безопасность и производительность по сравнению с управляемыми языками и небезопасными языками, такими как C ++.
Исходя из объектно-ориентированного фона, я довольно привык рассматривать проектирование программного обеспечения как планирование и работать со сложными объектными графами (я могу быть предвзятым, но я не думаю, что есть лучший способ взглянуть на проектирование программного обеспечения сегодня).
В частности, мне интересно, как разработчики серво чувствуют язык, поскольку серво нужно манипулировать одним графом средних объектов, а именно DOM.
Официальный Руст Часто задаваемые вопросы рекомендует использовать Rc<RefCell<T>>
или арена / плита в качестве косвенного слоя. Оба из которых не соответствуют обещанию нулевой стоимости:
Rc<>
а также RefCell<>
ввести две операции записи в оперативную память для доступа к объекту, одну для получения ссылки, а другую для освобождения ссылки. Это вполне может привести к накладным расходам GC на управляемых языках и, возможно, больше из-за интенсивной записи этих оболочек, возможно, делает недействительными кэши ЦП и генерирует избыточный трафик шины.unsafe{}
Повсюду с блоками, вам, вероятно, лучше использовать небезопасный C ++, не прибегая к заимствованиям и времени жизни.РЕДАКТИРОВАТЬ:
Перефразируя как более конкретный вопрос: кому-нибудь удалось построить граф объектов в Rust и быть довольным результатами, с точки зрения производительности и безопасности? Если это так, как мои оговорки могут быть решены выше?
Задача ещё не решена.
Других решений пока нет …