• Каков статус языка Rust в данный момент?

    @freecoder_xx
    Rust развивается стабильно, новые возможности и исправления вводятся с каждым релизом раз в 6 недель. Замеченные баги тоже исправляются оперативно в нерегулярных минорных релизах. Иногда такая динамика развития даже может служить препятствием: многие "живые" библиотеки требуют новой версии компилятора, но не всякая компания способна быстро обновлять его на своих проектах.

    Инфроструктура вокруг Rust хотя и развивается, все равно еще остается сырой. Многие библиотеки, хотя и работают уже достаточно стабильно, все равно в реальном использовании требуют небольших доработок. Если вы готовы форкать на GitHub такие библиотеки и слегка дорабатывать под свои нужды, то я думаю у вас больше никаких особых проблем с использованием Rust в боевых проектах возникнуть не должно.

    Что касается веба - вот тут есть список актуальных компонентов: www.arewewebyet.org

    Какого-то единого сборника лучших практик использования Rust, насколько я знаю, пока нет. Много полезных советов есть в официальной документации (в так называемых Книгах), а также разбросано по разным отдельным статьям. Однако, существуют списки полезных статей, которые помогут найти среди них нужную. Например эти:
    https://github.com/ctjhoa/rust-learning
    https://github.com/brson/rust-anthology/blob/maste...

    В новых проектах Rust используется, и пока тенденция идет на расширение. Вот на этой странице вы можете посмотреть, какие компании используют Rust сейчас и для чего: https://www.rust-lang.org/en-US/friends.html

    Итак, если вы планируете использовать Rust в производстве, готовьтесь вот к чему:
    1. Довольно высокий порог входа в язык. Тут нет особой сложности, просто потребуется практика на языке и поначалу время на следование советам компилятора по устранению постоянно возникающих ошибок компиляции.
    2. Достаточно частые обновления компилятора по добавлению новых возможностей в язык. Это может приводить к тому, что нужная вам библиотека будет требовать свежую версию компилятора.
    3. Сыроватые библиотки. Вероятно, вам придется их слегка дорабатывать под себя.
    4. Rust упрощает сложное, но усложняет простое. Для совсем простых проектов, не требующих высокой производительности и серьезных доработок в будущем, возможно, Rust будет не лучшим выбором.
    Но что вы получите от использования Rust?
    1. Высокую производительность программ, автоматическое управление памятью без сборщика мусора.
    2. Высокую надежность и защищенность программ, устранение большого количества потенциальных проблем на этапе компиляции.
    3. Достаточно легкий и безопасный процесс рефакторинга и доработки программ, благодаря развитой системе типов.
    4. Развитую систему управления зависимостями проекта.
    5. Действительно хороший универсальный инструмент: Rust подойдет и для прототипирования, и для разработки, причем для любого типа программ (утилиты, настольные приложения, веб-приложения, мобильные приложения, встраиваемые системы). Хорошая поддержка пока еще есть не для всего, но на перспективу - это большой плюс.
    Ответ написан
    7 комментариев
  • Каков статус языка Rust в данный момент?

    @snuk182
    Rust развивается основательно. Не семимильными шагами, потому что каждый шаг согласовывается с сообществом и ресурсами на его воплощение, но достаточно быстро, и крупных жалоб пока нет (кроме кривой обучения, но это субъективно, главное понять принцип владения данными). Best Practices есть. Для новых коммерческих проектов его выбирают в основном в отрасли блокчейна и специальных вебсервисов с быстрым откликом. Веб фреймворков россыпь, пока лидируют Actix и Rocket. Десктопного гуя стабильного нет, пользуются биндами к gtk.
    Ответ написан
    5 комментариев
  • Странный дизайн Rust?

    Rust это не C++. Почему он должен брать термины из C++?

    В Java вон тоже ссылки - это указатели в терминологии C++.

    Более того, ссылка от указателя отличается лишь абстракцией. В памяти это будут одинаковые ячейки, содержащие адрес.
    Ответ написан
    Комментировать
  • Rust использует виртуальную машину?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Видимо, данный вопрос возник из-за того что код на Rust сначала компилируется в LLVM-байткод, а далее этот байт-код компилируется в машинный код для заданной системы. Примерно так работает LLVM: исходный код → фронтенд (компилятор языка) → LLVM → бэкенд (транслятор из LLVM-байткода в машкод целевой платформы) → бинарник в машкодах целевой системы.
    Таким образом, готовый бинарник является нативным кодом и не использует виртуальную машину или байт-код.

    P.S. Ну конечно когда мы компилируем в wasm, то получается код для виртуальной машины, потому что WebAssembly ею является, но для этой машины полученный код является нативным. Вот так всё просто и понятно!:)
    Ответ написан
    Комментировать
  • Подойдёт ли Rust для 3D игр?

    @snuk182
    Можно, но дописанных и стабильных движков нет, и все придется делать самому. Если интересно, как устроены игровые движки, то это даже плюс. Если цель получить в краткие сроки игру, не занимаясь велосипедостроением - вам не сюда ближайшее время.
    Из графики наиболее предсказуемым способом будет использование врапперов над OpenGl, которые закинуты с поддержкой, но свою работу выполняют. Упомянутый здесь gfx находится в активной разработке и в перспективе довольно привлекателен, но нестабилен. Если вы знакомы с джаваскриптовым three.js, есть родной аналог three.rs, тоже активно пилится. Также есть англоязычный ресурс Are We Game Yet? с описанием всех возможных библиотек для разработки игр на Rust. Еще есть сообщество в Gitter, где всегда можно спросить совет.
    Ответ написан
    Комментировать
  • Подойдёт ли Rust для 3D игр?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Если прям горите желанием, то можно, но готовьтесь к тому, что весь функционал придётся писать самому и тулчейн тоже. Ну и багов дофига. Рано ещё, подождите пару лет.
    Ответ написан
    Комментировать