Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Сильные стороны

Некоторые уникальные преимущества Rust:

  • Безопасность памяти на этапе компиляции — целые классы ошибок работы с памятью предотвращаются во время компиляции

    • Нет неинициализированных переменных.
    • Нет двойных освобождений.
    • Нет использования-после-освобождения (use-after-free).
    • Нет NULL указателей.
    • Нет забытых заблокированных мьютексов.
    • Нет гонок данных между потоками.
    • Нет инвалидации итераторов.
  • Отсутствие неопределённого поведения во время выполнения — то, что делает каждая инструкция Rust, никогда не остаётся неопределённым

    • Проверка границ массива.
    • Переполнение целых чисел определено (паника или циклическое переполнение).
  • Современные возможности языка — такие же выразительные и удобные, как в языках высокого уровня

    • Перечисления и сопоставление с образцом.
    • Обобщения (generics).
    • Нет накладных расходов для FFI.
    • Абстракции с нулевой стоимостью (zero-cost abstractions).
    • Отличные ошибки компилятора.
    • Встроенный менеджер зависимостей.
    • Встроенная поддержка тестирования.
    • Великолепная поддержка протокола языкового сервера (LSP).
This slide should take about 3 minutes.

Не тратьте на это много времени. Все эти пункты будут разобраны подробнее позже.

Обязательно спросите учащихся, с какими языками у них есть опыт работы. В зависимости от ответа вы можете подчеркнуть различные особенности Rust:

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

  • Опыт работы с Java, Go, Python, JavaScript…: вы получаете ту же безопасность памяти, что и в этих языках, плюс похожее ощущение языка высокого уровня. Кроме того, вы получаете быструю и предсказуемую производительность, как у C и C++ (без сборщика мусора), а также доступ к низкоуровневому оборудованию (если понадобится).