Почему скомпилированный «Hello World», на Rust занимает на диске 10 Мегабайт?
10мб звучит многовато. порядка 2-5 скорее должен - точнее зависит от платформы.
А место во влоб собранном "пустом" helloworld'е занимают, по идее, куски стандартной либы - println! хоть и выглядит просто, но тянет за собой машинерию форматирования, обработки потенциальных ошибок, раскрутки, бектрейсов и т.п. И все это с отладочными символами.
Почему нельзя было сделать как в python, один раз установил либру, пользуешься везде!
В общем-то, в современной серьезной разработке на питоне это не так - пакетные менеджеры тоже делают свое окружение со своими зависимостями для каждого проекта. Иначе, как минимум, сложно получить воспроизводимость сборок.
Разработчики Rust собираются фиксить это?
Насколько я знаю, сейчас нет четкого консенсуса нужно ли это вообще "исправлять", так что я бы в обозримом будущем не ждал тут больших изменений. В данный момент можно самому явно попросить cargo использовать общую target директорию:
1) прописать нанужном уровне в `.cargo/config`:
[build]
target-dir = "/hone/username/myrusttarget"
Или воспользоваться переменной окружения:
export CARGO_TARGET_DIR = "/hone/username/myrusttarget"
Но надо учитывать, что у некоторых нетривиальных зависимостей могут возникнуть проблемы с фичами или замороченной логикой build.rs скриптов и могут перестать работать не рассчитанные на это cargo плагины.