Rust против C++: баг, который расставляет всё по местам
Byte Without Bite
0:00 / 0:00
Rust против C++: баг, который расставляет всё по местам
7 702 просмотра · 15 часов назад
Byte Without Bite
3,49 тыс. подписчиков
7 702 просмотра · 15 часов назад
Сравнение Rust и C++ становится понятнее, если обратить внимание на одну ошибку: ссылка, которая становится недействительной после увеличения размера вектора. В этом сравнении рассматривается, как оба языка обрабатывают память, владение, параллелизм и производительность, а также почему код, компилируемый на C++, может быть отклонен Rust.
Современный C++ уже имеет автоматическое управление ресурсами с помощью RAII, деструкторов и умных указателей. Но очистка памяти не гарантирует, что каждая ссылка на нее останется действительной. Мы объясняем, как проверка заимствований и время жизни в Rust решают эту проблему, а затем сравниваем семантику перемещения в C++ с передачей прав собственности в Rust.
Различия становятся еще более важными при работе с несколькими потоками. Вы узнаете, почему shared_ptr и Arc не защищают автоматически хранящиеся в них данные, как трейты Send и Sync в Rust помогают предотвратить состояния гонки данных, и почему взаимоблокировки и логические ошибки по-прежнему требуют тщательного проектирования.
Мы также рассматриваем, чего на самом деле стоит безопасность, от проверок границ и атомарного подсчета ссылок до блокировок и ненужного клонирования. Ни один из языков автоматически не выигрывает по производительности. Мы рассмотрим инженерные компромиссы, связанные с выбором Rust для нового компонента, поддержкой устоявшейся системы на C++ и связью этих двух компонентов посредством тщательно разработанных интерфейсов.
☕ Понравилось видео? Поддержите канал Byte Without Bite, купив мне чашечку кофе. Ваша поддержка помогает мне продолжать создавать понятные и наглядные обучающие видео по программированию.
Купить мне кофе: https://buymeacoffee.com/eminemmernd
Подпишитесь на канал Byte Without Bite, чтобы получать объяснения концепций программирования на основе кода и наглядных визуализаций.
#Rust #C++ #СистемноеПрограммирование