Слышал жалобы на то, что якобы введение Раста в ядро Линукса нарушит идиллию, так как сейчас весь код на Си, а теперь будет смесь двух языков.Простите, но а как же ассемблерные вставки в коде ядра? Наверняка они там есть(буду очень удивлен если их там нет), причем под разные платформы. То есть, зоопарк ассемблеров это не проблема, а еще один язык, причем высокоуровневый (по сравнению с ассемблером) почему-то приведет к проблемам.
Для начала есть предложение разобраться, для чего нужны эти вставки.
Потом подумать.
> Для начала есть предложение разобраться, для чего нужны эти вставки.
> Потом подумать.Я знаю зачем. Но какая разница если к сонму языков добавят еще один язык? можно даже в этом же духе использовать, только для небольших наиболее критичных участков кода
Большая разница. Эти вставки используются только там, где иначе нельзя. В основном или жёсткие оптимизации, или просто платформозависимый код.
> Большая разница. Эти вставки используются только там, где иначе нельзя. В основном
> или жёсткие оптимизации, или просто платформозависимый код.А это без разницы. Значит инфрастуктура, опыт и т.п. для смешивания Си с другими языками в ядре уже есть. Поэтому я не вижу причин почему надо бояться что ядро пойдет по швам от такого "неслыханного" шага. У разработчиков оказывается не лапки и они как-то умудряются не сойти с ума с зоопарком ассемблеров. А это наверняка хардкор покруче чем обуздать Растовый код в ядре
Суть проблем с сопровождением в том, что Rust-обвязки ставят сопровождающих в зависимость от кода на языке Rust. На первый взгляд кажется, что обвязки лишь надстройки над Си-структурами и функциями, которые никак не влияют на разработку и сопровождение кода на Си. Но это не так. При наличии подобных обвязок разработчики подсистем, написанных на Си, должны учитывать влияние их изменений на продолжение работоспособности обвязок. Любое изменение структур данных или внутренних функций на Си может привести к необходимости изменения кода обвязок, поэтому влияющие на обвязки изменения в Си коде нужно отслеживать и синхронизировать с кодом на Rust. Многие сопровождающие не готовы брать на себя дополнительную ответственность за исправление проблем, возникающих в коде на Rust, и не намерены тратить своё время на отслеживание состояния Rust-обвязок.
Пойми разницу между _любимкой_ и _необходимостью_.
> То есть, зоопарк ассемблеров это не проблема, а еще один язык, причем
> высокоуровневый (по сравнению с ассемблером) почему-то приведет к проблемам.Именно так, и это любому кто реально таким вот занимался - понятно без слов :)
А с Rust проблем даже больше чем если бы решили к примеру C++ втянуть (упаси нас) ...
Тоже разжёвывать почему? :)PS: Да не волнуйтесь вы так карапузики! Засунут раст в ведро, засунут несмотря на кровищщу и вот это вот всё ... кто девушку танцует - уже порешил ...