Ответы пользователя по тегу Rust
  • Не понимаю когда нужно заимствование?

    @potan
    Функциональный программист
    Если функция получает ссылку, то не она управляет ее временем жизни. Когда функция получила объект не по ссылке, она им владеет и больше ни кто не имеет к нему доступа пока функция его не вернет ли куда-либо передаст. Если функция его не вернула и ни куда не сохранила, занятая объектом память освобождается при завершении функции.
    Ответ написан
    Комментировать
  • Что означает ->! в Rust?

    @potan
    Функциональный программист
    Функция ни когда не завершается, что позволяет ее вызывать так, как будто она возвращает любой заданный тип.
    Ответ написан
    Комментировать
  • Учебный материал по работе с памятью?

    @potan
    Функциональный программист
    По возможности, выделяйте на стеке. Выделять в куче то, что можно выделить на стеке стоит если приложение сильно многопоточное, не 64-битное или используется без MMU.
    Если не получается выделить на стеке (Rust об этом сообщит ошибками во владении), то выделяйте в куче.

    На C++ лучше не смотрите - там слишком много сложностей.
    Ответ написан
    Комментировать
  • А что можно написать на Rust?

    @potan
    Функциональный программист
    Хорошие задачи, в которых я бы сам с удовольствием поучаствовал:
    Области, где много унаследованного, но слишком мало нового - СУБД (типа Virtuoso), САПР, ОС.
    Программы, баги и тормоза в которых могут сильно мешать жить - эмулятор терминала, оконный менеджер, shell, аналог iPython/Jupiter.
    Робототехника и встраиваемые системы на базе 32-разрядных процессоров с небольшой памятью.
    Виртуальные машины типа JVM, .NET, Parrot.
    Ядро системы компьютерной алгебры.

    Скорее всего Rust приживется в gamedev, но эта тема мне мало интересна (если сама игра не заитересует).
    Ответ написан
    2 комментария
  • Как дела в системном программировании?

    @potan
    Функциональный программист
    На сколько я знаю, биндингов к OpenCV еще нет. И управление памятью в OpenCV довольно таки запутанное, что мешает разработать хорошие биндинги. Если ресурсов системы хватает, для компьютерного зрения можно использовать Julia или Scala - к ним необходимые биндинги есть.
    Для работы в ограниченных ресурсах, типа однокристальных компьторов на ARM, Rust подходит лучше всего. Если смириться со сложностью интелгации с OpenCV, то от C/C++ можно отказываться.
    Ответ написан
    Комментировать
  • Rust или C++/C?

    @potan
    Функциональный программист
    Код, по сравнению с C++, конечно, сократится, но в скорости разработки много выиграть не получится. "Владение" требует более тщательного продумывания, которое отнимает время.
    Ключевая фишка Rust - надежность. Там сложно сделать ошибку, которая потребует сложной отладки и может пролезть в продакшен. Так что проекты с длительным жизненым циклом лучше начинать на нем, несмотря на нестабильность компилятора. Если программу не планируется длительное время поддерживать, то скорее всего выгоднее остаться на C++.
    Ответ написан
    Комментировать
  • Rust или Go(golang)?

    @potan
    Функциональный программист
    В области, где силен Go, много конкурентов, как старых проверенных, так и новых перспективных. Он займет свою долю в этой экосистеме, но не думаю, что будет доминировать.
    У Rust практически один конкурент - C++. И хотя у C++ много фанатиков, Rust имеет важные преимущества - надежность и привлекательность для привыкших к современным фичам (pattern matching, замыкания, иммутабельность). Уверен, что Rust будет медленно, но верно занимать все большую часть этого рынка и в обозримом будущем станет там доминировать.
    Ответ написан
    1 комментарий
  • Хочу начать изучать Rust. С чего начать, где взять базу?

    @potan
    Функциональный программист
    Неплохой базовый курс, в меру интерактивный. rustbyexample.com
    Когда я его смотрел, некоторые примеры были устаревшие. Но исправить проблем не составило.
    Ответ написан
    Комментировать