00:00:00 О чём курс 00:05:06 История появления Rust 00:24:41 Преимущества и недостатки Rust 00:27:19 Проблемы кода на C 00:33:55 История развития Rust 00:41:40 Hello, World! 00:43:30 Типы данных, объявление переменных 00:48:44 Арифметика 00:51:57 Преобразование типов 00:57:12 Overflow 01:00:57 Floating point 01:02:23 Boolean 01:02:54 Tuple, Shadowing 01:14:42 Array 01:17:07 Ссылки 01:20:46 Указатели 01:24:02 Box 01:24:31 Функции 01:28:30 Expressions and statements 01:31:44 Структуры 01:49:25 Generics 01:58:27 if, while, for, loop 02:05:09 Enum 02:10:25 Match 02:30:29 if let, while let 02:34:42 Rust enum vs C++ enum, union 02:40:51 Vector 02:42:32 Slices 02:44:58 panic! 02:47:18 println! 02:52:39 Конец
@ДмитрийЛевашов-й8с Жыл бұрын
курс отличный, за таймкоды отдельный респект
@user-coffeus-kotus4 ай бұрын
❤
@artishoo2 жыл бұрын
Огромное спасибо за курс! Бесконечно рад его видеть на просторах ютуба.
@Mnbvc-oc8wv Жыл бұрын
Спасибо за лекции 😍
@JolahMilovski22 күн бұрын
крутая первая лекция, это лучше чем расткнига, даже для такого новичка как я. автор объясняет для людей, а не как для подписчиков. а когда увидел еще и домашние задания - точно понял, буду учиться тут. точка.
@punkplusplus11522 жыл бұрын
Обожаю вас! Спасибо огромное за курс)
@tianned21 күн бұрын
Обожаю когда лектор харкает, чавкает и шмыгает носом
@trampampushavilk13812 жыл бұрын
Убедительная просьба. Если выкладываете курс или лекцию, то обеспечьте пожалуйста, чтобы было слышно и те вопросы и комментарии, что озвучиваются из зала.
@КириллЧе-я5ы2 жыл бұрын
Ну как бы выкладывается курс в первую очередь для студентов фпми…
@okolenmi75112 жыл бұрын
Было бы забавно если бы студентам передавали микрофон, когда они хотят задать вопрос.
@trampampushavilk13812 жыл бұрын
@@okolenmi7511 Можно и не давать, но звук надо делать нормальным
@ubermenh Жыл бұрын
@@trampampushavilk1381 А как делать звук без микрофона?
@user-coffeus-kotus4 ай бұрын
@@ubermenhповторить вопрос лектору
@МаксимПанов-я6ъ Жыл бұрын
Спасибо за замечательную лекцию!
@fourbytes111 ай бұрын
1:15:50 а почему тут компилятор должен был сказать, что не понимает какой это тип? В расте же тип по умолчанию i32 для целочисленных типов.
@fourbytes111 ай бұрын
2:06:27 как же не даёт? варианты энама можно же скастить к целочисленному типу, тот же MyEnum::Third as u8 и будет 2.
@okolenmi75112 жыл бұрын
Если тут 15к просмотров, то на следующей части 3к, а на последней всего 1.2к... Выжили немногие, как я посмотрю.
@OrgStinx Жыл бұрын
Borrow не осилили
@Мудрый_Гусь Жыл бұрын
Погоди, мы перевариваем...
@sezamotkroisya Жыл бұрын
сам по себе спискер нудный
@voxel15473 ай бұрын
Остались самородки
@JolahMilovski22 күн бұрын
заржавелли по дороге
@jerrody54002 жыл бұрын
Конечно, есть много мест, где можно прикопаться с точки зрения того, что автор говорит о Rust. Есть места, где упустил детали, не рассказал, высказал ложную информация - некритично! Во-первых, выступает перед публикой, сам знаю такой опыт, немного нервно, когда говоришь о совершенно новой вундервафле людям. А так, очень приятно, что просвещают людей и рассказывают людям о Rust. Продолжай и работай над ошибками!
@dmitriidemenev52584 ай бұрын
Я его пожурил, но полностью поддерживаю. Он выступил на достойном уровне.
@trypophobia74972 жыл бұрын
Спасибо!
@cyanmargh10 ай бұрын
Поставили бы плашку 18+ в начале, а то эта серия видео на статью тянет (КоАП РФ 6.21)
@seoonlyRU2 жыл бұрын
огонь!!!! лайк с ходу от СЕООНЛИ
@phisumba11 ай бұрын
👍🤡 Контора клоунов, репортнул
@killerjohn9131 Жыл бұрын
Интересный курс!
@sobol9612 ай бұрын
Есть возможность где-то домашки получить?
@blackdragon70474 ай бұрын
00:41:40 - Начало
@Devof-n9i2 жыл бұрын
Хорошее дело, но курс, всё же, правильнее было бы назвать Rust для разработчиков на C++, судя по методике подачи в сравнении.
@OrgStinx11 ай бұрын
Так C это база
@Devof-n9i11 ай бұрын
@@OrgStinx вряд ли без знания С++ изучение Rust станет невозможным. Так что базой его назвать, наверное, было бы неверным.
@cyanmargh10 ай бұрын
С - база, плюсы - нет)))
@mwnilipng2 жыл бұрын
The lecture is great, explanation is also great. Maybe add visuals from the class, so that we can at least see the lecturer?
@siarheimarozau6763Ай бұрын
Лучше один раз отвернуться и высмаркаться в платочек чем два часа хлюпать носом.
@FODrive Жыл бұрын
Забавно, что для курса требуются знания с++ и конкурентности, но начался курс с перфокарт😂
@dmitrybogdanovich37672 жыл бұрын
1:19:49 Не очень корректное сравнение. Ссылки в Rust больше похожи на указатели в С++, чем на ссылки. Первые класть в вектор можно
@alexandernaumochkin9 ай бұрын
Лектор, если у C или Rust “нет рантайма”, то откуда у программы уже в точке main есть, например, целых три FILE * - stdin | stdout | stderr? “Нет рантайма” и “Есть возможность оторвать рантайм” - это сильно не одно и то же.
@АнтонАнтипин-п2ъ Жыл бұрын
Спасибо за видео. Почему слайды не на Русском?
@damascake Жыл бұрын
Потому что программистов готовят сразу на экспорт. Обидно, досадно, но ничего личного, детка, просто бизнес.
@женяБаранов-ю2ф Жыл бұрын
так если все эти ошибки можно отловить на стадии компиляции разве это не значит, что такой компилятор можно просто разработать для c++ и все?
@vechnonedovolen666 Жыл бұрын
Werror
@hey-rg9lk Жыл бұрын
дак тогда надо сам с++ тоже переписать и получится раст)
@makaedg Жыл бұрын
В C++ нет отдельного синтаксиса для лайфтаймов, поэтому некоторые проверки невозможно сделать теоретически.
@fanisir2 жыл бұрын
Круто👍🏿
@БабулькаБабушкина11 ай бұрын
Уважаемые авторы, только честно, я не знаю си, с++. Но хочу выучить раст как первый язык? Вы считаете что это невозможно? А если возможно, то зачем все эти ненужные отсылы к си и с++ и сравнение с ними? В конце концов мы что изучаем то , раст или не раст.
@punkkss120410 ай бұрын
бро, это записи лекции с фпми, в первую очередь - для студентов физтех-школы. каждый, кто сидит в аудитории шарит за плюсы, поэтому странно говорить о ненужности сравнения с плюсами.
@nanoqsh9 ай бұрын
Смысл учить раст не зная си? Желательно, конечно, ещё и плюсы для полноты
@syogun544Ай бұрын
@@nanoqshзачем учить раст если знаешь плюсы?Зачем учить плюсы если есть раст ?😊
@alexandernaumochkin9 ай бұрын
Сразу видно человека, который о перфокартах что-то слышал, а остальное придумал :) Перфокарта никак не связана с машинным кодом. На неё можно набить всё, что угодно. Это всего лишь хранилище байтов в количестве 80 штук. Я, например, “программировал на перфокартах” на языке Algol-60. Далековато от машинного кода :)
@yuryzaburdaev29682 ай бұрын
Если вы вместо "странных" названий "переменная на стеке" будете использовать 'локальная переменная", то это будет гораздо понятнее. А то вы сами в них постоянно путаетесь
@ikronos4951 Жыл бұрын
Смотрите, друзья, Кладова. Не понравился лектор и уровень подачи
@ИванАукин Жыл бұрын
Слишком много отсылаешься на плюсы. Человеку, знающему плюсы не нужно расписывать арифметику Раста, он в документации за 20 минут прочитает это, а не трёх часовое видео будет смотреть
@mirvin112 ай бұрын
6:58 ага, взял и появился, до него точно ничего не было
@dmitriidemenev52582 жыл бұрын
2:42:05 Лектор подаёт плохой пример. Лучше использовать `core::mem::size_of` вместо `std::mem::size_of` чтобы поддерживать #![no_std].В остальном отличная лекция.
@jerrody54002 жыл бұрын
Опять же, а для каких случаев? Для определенных. Большинство людей использует `std`, когда надо будет, программист сам поймет загвоздку и примет информацию на вооружение. Людям со старта об этом говорить не надо. Все порционно, последовательно и методативно.
@ZOXEXIVO2 жыл бұрын
Не идёт ни в какое сравнение лекциями Кладова
@ГрыжаПротрузьев2 жыл бұрын
Кладов лучше объясняет?
@alexeiguirik9463 Жыл бұрын
@@ГрыжаПротрузьев Кладов - грамотный чувак, хоть и объясняет не очень. А этот господин с нежным голосом местами просто не в теме.
@СултанЛенву7 ай бұрын
Который год слышу, что Rust уж точно скоро будут абузить в коммерции, но если смотреть по объему вакансий на профильных ресурсах - чуда не случилось. Язык до сих пор нишевый и не имеет ISO-стандарта. Ну и как обычно, отбитый фанатик раста не удержится от бесконечных сравнений с плюсами. Неужели язык настолько не самодостаточен, что без сравнений говорить о нем не получается?
@SergiusBfg9 ай бұрын
Начинающим - НЕ СМОТРЕТЬ! Начните с официальной доки! Начните кодить. Потом можно глянуть немного
@wsxpocxeafx4 ай бұрын
Почему не судьба сразу сказать?
@dmitriidemenev52582 жыл бұрын
41:03 Лектор соврал. У Раст не одна реализация. Есть одна распространённая реализация (rustc). Также есть mrustc который поддерживает уже немного устаревшую версию Rust 1.39.0 Update: теперь ещё есть gccrs
@wsxpocxeafx4 ай бұрын
А зачем делают новые? От скуки?
@dmitriidemenev52584 ай бұрын
@@wsxpocxeafx Современные компиляторов пишут на основе существующих наборов библиотек называемых compiler architecture. Две самые популярные - LLVM и GCC. Эти архитектуры имеют разные подходы к оптимизации, наборы оптимизирующих пассов и, самое главное, промежуточных представлений (IRs). LLVM работает с LLVM bitcode, а GCC с GIMPLE. mrustc это особый вид компилятора называемый транспилятором. Транспиляторы конвертируют код из одного языка в другой. Например, TypeScript чаще всего транспилируется.
@dmitriidemenev52584 ай бұрын
@@wsxpocxeafx разные архитектуры компиляторов (GCC и LLVM). Разные подходы (компиляция через специфичный для архитектуры компиляторов IR и транспиляция). Мой предыдущий ответ был подробнее, но его ютуб удалил.
@wsxpocxeafx4 ай бұрын
@@dmitriidemenev5258 1234555
@wsxpocxeafx4 ай бұрын
предыдущий ответ, скорее всего, скрыт. Нужно зайти в свой аккаунт ютуба и там в списке своих сообщений найти, которое скрыто). Наверняка, там саагрились на какое-то английское слово, которое восприняли как reklamu konkurenta или что-то в таком духе. Если пишешь снова скрытое сообщение, например, написанное минуту назад, то я замечал, ютуб его не открывает, даже если из него удалить все "страшные" слова.
@sonicpark80992 жыл бұрын
1
@ostrov112 жыл бұрын
... доктор, когда я делаю вот так мне больно - не делайте так
@niklkelbon36622 жыл бұрын
кек, преподают ненависть к плюсам, неожиданно. Бедные студенты, за час напихнули инфы про всякую дерьмину от создания переменных до паттерн матчинга, не знают шо такое туплы...(явно знают плюсы)
@linkernick53792 жыл бұрын
Плюсы это же просто (устаревший) инструмент, невозможно "преподавать ненависть" к инструменту 😊
@nanoqsh2 жыл бұрын
Самое классное в лекциях по расту, это смотреть как горит у сиплюсплюсеров
@niklkelbon36622 жыл бұрын
@Андрей Костин Эм. Ну во первых никаких уязвимостей в безопасности там нет, так что гнать то не надо. Во вторых ссылка в расте управляет памятью? Где аналогичный код из раста? На годболте так сказать, чтобы взять да и проверить?
@nanoqsh2 жыл бұрын
@Андрей Костин ну это и правильно, ведь unique_ptr это не аналог для ссылок. В расте аналогом был бы Box, который так же как unique_ptr владеет объектом в куче. Если и сравнивать плюсы с растом, то делать это правильно. В показанном примере одна из проблем это дополнительное "ненужное" чтение из памяти. Не просто из других регистров, а именно из памяти, что бывает относительного дорого, особенно если мы пишем на плюсах. Я написал тот же пример на годболте и получил то же самое (на всякий случай скажу, что для компиляции выбрал clang, чтобы более точно сравнить с растом, и само собой добавил -O3). Перед тем, как сделать сравнение, которое в исходном коде выглядит как *ptr > 42, а в ассемблере cmp dword ptr [rdi], 43, с использованием unique_ptr компилятор добавляет перед этим лишнее чтение mov rdi, qword ptr [rdi] Я не знаю почему unique_ptr работает именно так. Нужно полностью посмотреть упомянутый ролик, чтобы в этом разобраться. Но я решил посмотреть будет ли раст вставлять такие же лишние чтения как в плюсах. Аналогичный код из примера будет выглядеть так: extern { // extern блок в качестве альтернативы сишной декларации функций fn bar(ptr: &i32); fn baz(ptr: Box); } pub fn foo(mut ptr: Box) { unsafe { // unsafe для вызова extern функций if *ptr > 42 { bar(&ptr); *ptr = 42; } baz(ptr); } } Можете сами проверить, но результат который получил я - то, что никаких лишних чтений из памяти нет. В общем-то, их и не должно быть, а в плюсах они появляются из за какой-то особо специфичной для языка вещи.
@nanoqsh2 жыл бұрын
@Андрей Костин если не хочешь держать данные в хипе, то не используй unique_ptr, используй указатели или ссылки. Тут всё также работает, как и в расте
@ostrov112 жыл бұрын
Ручное управление памятью это преимущество а не недостаток.
@linkernick53792 жыл бұрын
Почему бы не продолжить, есть ещё диспетчеризация функций, в C++ достаточно написать virtual, а в C нужно заполнять таблицу функций, но как вы уже сказали: "Ручная диспетчеризация функций это преимущество, а не недостаток"🙃
@linkernick53792 жыл бұрын
"Ручная компиляция в бинарный код это преимущество, а не недостаток" 😆
@ostrov112 жыл бұрын
@@linkernick5379 ... вода мокрая.
@ахуец2 жыл бұрын
@@ostrov11 смотря в каком агрегатном состоянии
@OrgStinx11 ай бұрын
А кто мешает?
@ostrov112 жыл бұрын
никогда ничего не будет "лучше" си и с++ просто по фундаментальному закону течения времени !!!
@nanoqsh2 жыл бұрын
Можно конкретнее, что за закон такой?
@ostrov112 жыл бұрын
@@nanoqsh закон времени
@artishoo2 жыл бұрын
@@ostrov11 закон времени устарел
@hey-rg9lk Жыл бұрын
дак никто тебя не заставляет писать на расте, сиди в своём маня мирке и думай что лучше ничего нет и не будет)
@cyanmargh10 ай бұрын
Если и есть, то это что угодно кроме раста
@yuriytheone Жыл бұрын
Все равно, что на Rust намеренно написать забагованный код, и сравнивать его с Сишным кодом без ошибок... А, ведь в С/C++ можно писать код без багов...
@makaedg Жыл бұрын
А больших проектах какое-то количество багов всегда присутствует. У раста за счёт дополнительных гарантий в safe коде нельзя допустить некоторые ошибки, которые можно в плюсах. Тем не менее, написать багованную программу можно хоть на расте, хоть на хаскеле