1. Введение (Программирование на Rust)
ฝัง
- เผยแพร่เมื่อ 15 ก.พ. 2019
- Первая лекция курса «Программирование на Rust» (весна 2019).
Преподаватель - Алексей Александрович Кладов.
Страница лекции на сайте CSC: bit.do/csc-rust-1
Ссылка на материалы: github.com/matklad/rust-course
Все лекции курса: bit.ly/2QfWama
Как круто, когда находишь такой божественный контент в океане хеллоуворлдов и zero to hero за два часа. Моё почтение автору
22:11
Поддерживаю, достал океан хеллоуворлда. Хорошо что попал на этот курс
Реально заебало уже.
То упускают важную инфу, то льют воду.
22:02 - Hello, World
24:50 - Hello, Cargo
25:35 - Основные Типы
25:58 --- Целые числа
29:13 --- Арифметика
36:05 --- Переполнение в С++
40:10 --- Польза UB (Undefined Behavior)
43:01 --- UB в Rust
44:17 --- Арифметика в стиле С++
46:40 --- Числа с плавающей точкой (IEEE-754)
48:17 --- Логический тип
48:57 --- Кортежи
53:00 --- Массивы
54:28 --- Ссылки
55:36 --- Указатели
56:27 --- Box
57:34 --- Стек
58:56 --- Куча
1:06:07 --- Как узнать, когда можно делать free?
1:11:17 --- Присваивание (move)
1:14:11 --- drop
1:15:30 --- Аффинные типы
1:17:46 --- Обычные типы
1:18:43 --- Аффинные типы
1:21:17 --- Drop flags
1:21:34 --- Vec
1:29:09 --- Виды присваивания
1:33:22 --- Представление обьектов в памяти
1:36:17 --- Rust/C++
Красава
Уважуха тупо молодец
Thanks a lot
Спасибо
🙏👍
Обратился к этому видео в самом начале пути изучения Rust и начал засыпать уже на 15-той минуте.
По прошествии нескольких месяцев, попрактиковавшись и продолжая углубляться в изучение языка, считаю это видео очень насыщенным интересными фактами и отвечающим на огромное количество вопросов.
Огромное спасибо каналу и Алексею!
Если начинаешь засыпать - это значит, ещё 3 минуты и пора притормозить, переключиться, переварить информацию несколько часов/день.
Если начинаешь засыпать, нужно пойти спать
Очень интересная лекция! А скачок на 10 октав вверх в конце слов придаёт уникальности и не даёт заскучать, мне категорически понравилось!
Круто, давно ждал что-нибудь по Rust.
Кладов, спасибо тебе! Такие лекции никто не переплюнет)
а ты видимо очень любишь плеваться )))) а против этого даже твоейнаглости не хватает, или ты его бот )))
Пьхуууу
Как круто вы сделали отображение лазерной указки на слайдах, очень удобно)
Парень просто крут!! Все понятно и в деталях!! Спасибо. Жду следующих лекций.
С огромным упоением досмотрел лекцию в х1 скорости, когда первый раз наткнулся на это видео не выдержал и 20 минут. Видимо наконец дорос интеллектом до данного контента. Лектор очень крутой!
Программирую исключительно для себя, в качестве хобби, 8-ми и 16-ти разрядные микроконтроллёры, но делал это на Ассемблере.
Решил перейти на новый уровень - 32-разрядные МК Cortex, и начал изучать Rust.
Решил, что если и изучать, то новое и продвинутое, поэтому и выбрал Rust
Отличная лекция и подробно рассказывает.
Спасибо, Алексей Александрович.
Думал очередной пересказ растбука, а нет, вот сюда как раз лучше после растбука приходить
Отличная лекция! Очень информативно и понятно.
Воу, огромное спасибо. Хоть что-то поверхностно узнал про работу языка с памятью, до этого нигде не натыкался на это (везде кое-как упоминают, но нигде не объясняют)
Супер! Спасибо огромное!
Лектору. Очень важно учиться петь или говорить не на связках. Очень часто переходите на связки и это не только режет ухо, но и это очень тяжело для вас самих. Поэтому приходится пить чай или воду.
В остальном, спасибо. Очень хорошая лекция.
Спасибо, мне как начинающему растеру очень помогло
Давно ждал этого! Спасибо!😃
*Интересная прямоугольная лекция*
Внезапно прекрасная лекция. Достаточно глубоко и подробно объясняется, но в то же время увлекательно.
Кайф, спасибо Алексею и CSC за крутейшие лекции!
Неожиданный, но приятный курс
Шикарный контент
Офигенная лекция, отличная подача и материал. Большое спасибо!
отличный курс. первый урок прошли
Rust в массы!
В канализационые массы
@@Darkness-hz2vi А что не так? Чем не нравится язык?
@@nanoqsh я отношусь к языку нормально, но чел же не сказал в какие массы а я уточнил
@@Darkness-hz2vi а)
Да кому он нужен, лучше учите С++. Он лучший
Отличная лекция
Вопрос уважаемым экспертам, можно ли пользоваться Rust в системе СУБД Интерсистемс?
58:53
Понятно что на слайде всё подробно расписано для примера, но на будущее тем кто учит Rust хочу сразу посоветовать писать более лаконично. Этот пример можно переписать так:
```
fn foo() {
let a = Box::new(1);
bar(&a)
}
fn bar(b: &i32) {}
```
Самое главное это передача ссылки в функцию, её можно получить не через разыменование + взятие ссылки `&*a`, а просто взяв ссылку `&a`. Дальше в курсе будет пояснено подробно, как это работает, но коротко - `&Box` автоматически приводится к `&T`. Аналогично работает со многими структурами. Конечно, Rust не про красивый синтаксис, но для кого-то это может быть важно
умничка какая
На 1:17:50 был упомянут курс “теории типов и (или?) функционального программирования от Дениса Николаевича”.
Не подскажите где/как получить больше информации об этих курсах?
Нашёл курс «Функциональное программирование» от Дениса Николаевича Москвина, упоминающийся по таймкоду
th-cam.com/play/PLlb7e2G7aSpRDR44HMNqDHYgrAOPp7QLr.html
Супер, спасибо. Хорошо изложил многие вещи
А где эти лекции по теории типов? На канале не нашел
Спасибо
на час зашёл - на месяц исчез....
Хлопцы так держать!
Замечательный цикл лекций! Единственно, я возможно пропустил, или про async/await не было? Посоветуйте плз какую-нибудь вводную лекцию по tokio, асинхронным drop и паникам и всему такому. :)
Да, когда лекции записывались, async/await ещё не было :-)
Сам такое хочу. Пока довольствуюсь исключительно документацией
Вопрос новичка: на промежутке видео между 1:04 и 1:05 упоминается про guard page. Это реализуется Rust-ом или это можно самому сделать?
можете пояснить, что такое runtime
А есть где-то еще обьяснение про пользу UB. Из лекции не понял почему в данном случае UB обязателен
Спасибо!
Очень интересно слушается. Лектор прокачан в плане качества подачи информации. Респектую.
А где посмотреть разбор остальных 30 слайдов? Лекция 2, выложенная позже уже о другом говорит.
на их сайте наверное можно, в левом верхнем углу watermark, найдёте наверное)
Во второй лекции начали со слайдов, которые не успели рассмотреть в этой лекции. То есть, то что не успели рассмотреть в этой лекции - перенесли в слайды второй лекции.
Не вижу ничего плохого в том, чтобы взять оффициальную книжку по расту, и сделать из неё вот такого формата контент :) Я как раз загуглил это видео, в надежде такой формат этой книжки найти, потому что сел покушать, готов только смотреть и слушать, - не под книжный формат настроение. А вот информацию хотелось как-то уложить, и такая видео-лекция бы идеально подошла. К сожалению, видео действительно оказалось не "тупо официальной книжкой в видео-формате", а чем-то более хитрым, с прицелом на тех, кто пишет на C++ :(
Код ASCII для буквы 'a' - 97, а не 65. 65 - это 'A'.
Спасибо! Относительно мало воды, но лекции всё равно длинноваты (не критично)). Хороший контент. Как пример - достаточно посмотреть отличное объяснение zero cost abstraction! К этому моменту, у меня уже и лайк созрел), и стало понятно что можно продолжать смотреть, и эту и другие лекции. Профессионально!
СПАСИБО!!!!!!!!
53:45 Может то же самое что и (i8, i8, i8) ??
It would be so nice to have this in English. Thanks a lot anyways.
Только не уводи голос на десять октав в верх на гласных в конце слов. А так, материал збс)
Я попробовал запустить видео на скорости в 0.5, но вместо ожидаемого результата я услышал пьяного Ельцина
@@Lachesis3D аахахаххахах, ты сделал этот день
@@Lachesis3D бля, ебать это крик))
Парню надо начать пить и курить, тогда голос придет в норму.
Накинулись на парня, он не специально ведь, старайтесь абстрагироваться и вникать в суть того, что он говорит)
Голос у парня "волшебный"
Понравилось, хочу ищучить rust. Опыта в языках программирования нет. Где взять необходимую документацию для новичка, с нуля?
Лучше для начала более простой язык выучить. Смысл раста улавливаешь только имея горький опыт реального программирования
@@nanoqshа на расте не реальное программирование?
@@shootmaster3269 да. Реальное это часами ковыряться в дебагере и вылавливать UB. А раст это так, когда нужно просто побыстрее решить прикладную задачу
Спасибо !!!!!!!!!!!!!!!!!!!!!!!!!!
Про C# неправда, можно указатель взять и запинить память, еще и кучу POH завезли
Да и указатели передавать изи, и указатели на функции и т.д. в шарпе есть) и совершенно такой же memory layout можно сделать как на слайде с rust-ом
Интересно, подробно, полезно.
Очень радует сравнение механики работы разных языков "под капотом".
Можно попросить автора приводить больше примеров сравнения с реализациями используемыми в Python.
Кстати, насколько я слышал, есть какой-то проект по написанию интерпретатора Python3 на Rust.
Есть RustPython и Статически-типизированная версия Python - MyPy (и компилятор к ней - mypyc) - разрабатывается самим Гвидо и другими чуваками из Dropbox. Кроме того MyPy интегрирован в последние версии Python
Что у тебя с голосом? Почему ты подскуливаешь?
Супер
1:12:55 "знаем что именно t должно вызвать освобождение памяти а не x и y", должно быть "именно y, а не x и t"
волновался, оговорился
Классный курс. Пару раз просмотрел уже. Теперь как референс использую. Большое спасибо, Алексей! Жалко не на английском, а то часто хочется таймкод на видео с объяснением скинуть, а многие русского не знают.
Вам нужен еще один парк делать, про русский мир )
Только Долорес не говорите об этом
Когда переключил на scala и назад заорал в голос)
Сколько с мс с sum?
Хорошая лекция. Вопрос такой: вы говорите, что в RUST нет UB. Но ведь Rust не трэкает переполнение целых чисел в Release mode. Разве это не UB?
Переполнение определено: в debug это паника, в release -- wrap around
45:50 - чем отличается unchecked_add от wrapping_add?
unchecked_add нету. Про отличия вроде до этого говорили. Компилятор может считать, что переполнения не было и исходя из этого проводить определённые оптимизации.
wrapping_add - переполнение может произойти, и компилятор это учитывает
unchecked_add - переполнение может произойти, но компилятор считает, что нет
15:12 В Scala есть возможность специализировать generic'и т.е. генерировать классы/методы где generic заменён примитивом.
16:05 Да и на скале не надо, там тоже есть sum
какой умничка! может автор еще в чем-то учавствует, касающимся Rust?
У него свой канал есть, но на английском.
1:17:52 Можно ссылку на курс или преподавателя?
th-cam.com/play/PLlb7e2G7aSpRDR44HMNqDHYgrAOPp7QLr.html
Буду смотреть.
Прошло два года, вакансии из стека на расте на 5-7к зелёных в ленте. И тут я понял, что надо было этот курс проходить как только я его отыскал. Спасибо огромное за контент!
ну как, что там с вакансиями?
@@PaulGanarara если шаришь за HFT, то 10к уже)
8:09 "Языки без райнтаймов, например язык C". Дросте приехали. Рантам у Си огромен все эти fprintf, cout и прочее, а как же libc и glibc ну приехали. Может быть он меньше чем в той же Java или Python (особенно если брать типы данных), но он есть. Возможно речь идет о специальных сервисах (потоках) рантайма вроде сборщика мусора?
нет, можно использовать си без стандартных библиотек, и как следствие, получить полный zero runtime
в книге столярова об этом написано
Fuchsia 21:28
Что у лектора в кармане?
Аллилуйа!!, кто-то наконец додумался монтировать видеолекции со слайдами
Все хотел спросить, а что за чай пьешь? Dilmah или Greenfield? Я тоже люблю покрепче заваривать.
Ссылку на "все лекции курса" заблочил роскомзаппрет
th-cam.com/play/PLlb7e2G7aSpTfhiECYNI2EZ1uAluUqE_e.html
Подача материала структурированная, сжатая - это хорошо. Но дикция лектора не самая хорошо воспринимаемая.
Создатель Node.js решил переписать её с учётом прошлых ошибок. Начинал на Go, но потом переписал на Rust. Почот.
потом еще на чем-нибудь перепишет, что там гуголь продвинет
rustаман
Понятен ли будет курс, после изучения языка Си? или обязательно надо знать Си++?
В rust многое заимствовано из темплейтов C++, а в C# уже давно есть многие фишки rust. Вообще после изучения C лучше написать что-нибудь на C, а не тратить время на всякую ерунду, иначе в конце жизни будете "знать" все языки не написав ни строчки кода.
Зачем в среде Windows (10) писать лишние точку сj слэшем? Когда все работает просто: main и нажимаем Enter?
Что дает команда запуска ./main ? В учебнике на оф.сайте такая же строка прописывается. ЗАЧЕМ? Обычный запуск exe-файла на выполнение в консоли Windows.
. - текущая папка в unix, на винде хз, но скорее всего тоже самое
Не все используют Windows. А авторы растбука правильно делают, что такое использование не поощряют
Redox OS написана на Расте
Прощай моя блондинка. Плачет невидииимка. Ты придешь, сразу же все поймешь.
Да ладно! Вроде не похож на Маликова? :)
Лекция огонь.
~1:12 т.е. по сути указатели перемещаемы, а не копируемы
Хороший язык. Уже, говорят, есть планы переписывать на Rust части ядра Linux.
Не дай бог! Только C и C++
@@736939 синдром утёнка?
@@736939 Уже некоторые вещи в Linux переписали на Rust. И почему только C/C++, это уже устаревшие языки, пора переходить на что-то более современное.
Ну вот, Алексей говорил, что нет ядер операционных систем на Rust, а спустя год его внедряют в Windows, Linux и Android =)
не выдавайте свои мечты за реальность)
что-то хваленые оптимизации не работают -- build --release для helloworld-подобной программы дает 1.7мб на 64 битах
Это известная проблема на Linux: в отличие от Win и Mac, на Linux debuginfo зашивается в сам бинарь, а прекомпилированный stdlib собран в режиме release + debuginfo. Утилита strip помогает с этим справится
[profile.release]
strip = "debuginfo"
давай продвинутый курс по расту, работа с БД, как работать с структурированными файлами, работа с хеш и.т.д
это не продвинутые темы, а базовые
Отображение указки это почти как изобретение колеса.
Общие впечатления:
1. Дикция откровенно слабая. В общем то в комментах написано. Спустя 4 года можно было бы материал и подачу обновить. Слушать непросто (наверное забили на Rust)
2. Материал подается довольно таки сжато и можно было бы объяснять проще, больше раскрывать сущности. Но тут видимо рассчитано на тех кто уже знаком с с++ или чем то подобным. Первая лекция - первые впечатления. Вряд ли человек , для которого это первый язык по этим лекциям сможет обучится.
3. Надеялось, что лекции будут проще (и подготовительным этапом к книге) чем раст-бук Клабника, но нет. По ощущениям раст-бук дает понимание некоторым моментам лекции, но не наборот. Клабник он конечно вообще максимально сжат, но он как скальпель - в одном предложении способен выразить суть главы и в этом его сложность.
4. Хорошо то в лекции, что много дополнительного материала, на что упор в растбуке не делается ввиду его сжатости. Однако раскрытия хотелось бы побольше и словами попроще
5. Продолжу смотреть, ибо в ru формате на сегодняшний день всё так же мало лекционного качественного материала - выбрать особо и не из чего
Момент про ASCII - th-cam.com/video/Oy_VYovfWyo/w-d-xo.html
В примере прописная "a" - это 97 по кодировке ASCII, если хотим получить 65 - нужно использовать заглавную "A".
"прописная" и "заглавная" - это синонимы :)
R2D2 ты ли это?))) Лекция более понятнее документации, если не знать английский. Так-то написать свой сервер или БД весьма легко по документации. Один из FullStack ЯП. Он мне был известен давно, но я скептически относился к нему долгое время, пока не стал делать более масштабное, чем калькулятор или 1С на C++20. А фича Rust lang self-компиляции ЯП частично удивила, когда писал на PHP и Python.
ПроРаст
😃
А вот для многопоточного конкурентного программирования rust лучше подходит чем java.
Качественным маркетингом.
@@MariaEsenina ну почему же. мьютекс объективно удобнее спроектирован(как обертка). борроу-чекер тоже проверяет всякие бяки
А что, Дробышевский уже и по программированию лекции читает?)) Очень уж у оратора манера похожая говорить, и тембр голоса близок))
А за лекцию спасибо - очень познавательно.
ничего общего эта мямлящая пискля не имеет общего с Дробышевским
@@herman_guilliman, вот что вы за люди такие? Он сам себе голос чтоли выбрал? Я за информацией на такие каналы хожу, а не хейтить людей за внешность или голос.
чет про сосисочку вспомнилось
Проголодался?
Начинать нужно с знакомства синтаксиса а не с трудных и перемешаных терминов
В расте синтаксис далеко не самое важное
52:07
к сожалению мало что понял(
Пересмотри ещё раз и задай вопросы о том, что именно не понял. Найди сообщество в телеграме или дискорде и туда пиши вопросы. А вообще, понимание раста сильно коррелирует с имеющимся опытом программирования, особенно на низком уровне вроде си или крестов. Так что как вариант для начала выучить си и попробовать кресты
@@nanoqsh актуально как никогда
Это челлендж изучить раст
прошли сутки, как успехи? Уже Google пытается тебя урвать в свои ряды? :D
Радзинский!