1. Введение (Программирование на Rust)
Первая лекция курса «Программирование на Rust» (весна 2019).
Преподаватель - Алексей Александрович Кладов.
Страница лекции на сайте CSC: bit.do/csc-rust-1
Ссылка на материалы: github.com/matklad/rust-course
Все лекции курса: bit.ly/2QfWama
Пікірлер: 239
Как круто, когда находишь такой божественный контент в океане хеллоуворлдов и zero to hero за два часа. Моё почтение автору
@SmileyJack.
2 жыл бұрын
22:11
@alexk3929
2 жыл бұрын
Поддерживаю, достал океан хеллоуворлда. Хорошо что попал на этот курс
@sanctuary_of_soul
Жыл бұрын
Реально заебало уже. То упускают важную инфу, то льют воду.
Очень интересная лекция! А скачок на 10 октав вверх в конце слов придаёт уникальности и не даёт заскучать, мне категорически понравилось!
Обратился к этому видео в самом начале пути изучения Rust и начал засыпать уже на 15-той минуте. По прошествии нескольких месяцев, попрактиковавшись и продолжая углубляться в изучение языка, считаю это видео очень насыщенным интересными фактами и отвечающим на огромное количество вопросов. Огромное спасибо каналу и Алексею!
@aploskov
2 жыл бұрын
Если начинаешь засыпать - это значит, ещё 3 минуты и пора притормозить, переключиться, переварить информацию несколько часов/день.
@nanoqsh
Жыл бұрын
Если начинаешь засыпать, нужно пойти спать
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++
@loler2058
4 жыл бұрын
Красава
@anonym7346
4 жыл бұрын
Уважуха тупо молодец
@curious8210
3 жыл бұрын
Thanks a lot
@danielmorales8199
2 жыл бұрын
Спасибо
@RAAAAAULb
2 жыл бұрын
🙏👍
Круто, давно ждал что-нибудь по Rust.
Парень просто крут!! Все понятно и в деталях!! Спасибо. Жду следующих лекций.
Как круто вы сделали отображение лазерной указки на слайдах, очень удобно)
Отличная лекция и подробно рассказывает.
С огромным упоением досмотрел лекцию в х1 скорости, когда первый раз наткнулся на это видео не выдержал и 20 минут. Видимо наконец дорос интеллектом до данного контента. Лектор очень крутой!
Кладов, спасибо тебе! Такие лекции никто не переплюнет)
@raal8438
2 жыл бұрын
а ты видимо очень любишь плеваться )))) а против этого даже твоейнаглости не хватает, или ты его бот )))
@user-tt1lw8pm1v
2 жыл бұрын
Пьхуууу
Кайф, спасибо Алексею и CSC за крутейшие лекции!
Офигенная лекция, отличная подача и материал. Большое спасибо!
Отличная лекция! Очень информативно и понятно.
Спасибо, Алексей Александрович.
Воу, огромное спасибо. Хоть что-то поверхностно узнал про работу языка с памятью, до этого нигде не натыкался на это (везде кое-как упоминают, но нигде не объясняют)
Давно ждал этого! Спасибо!😃
Программирую исключительно для себя, в качестве хобби, 8-ми и 16-ти разрядные микроконтроллёры, но делал это на Ассемблере. Решил перейти на новый уровень - 32-разрядные МК Cortex, и начал изучать Rust. Решил, что если и изучать, то новое и продвинутое, поэтому и выбрал Rust
Супер! Спасибо огромное!
Внезапно прекрасная лекция. Достаточно глубоко и подробно объясняется, но в то же время увлекательно.
Спасибо, мне как начинающему растеру очень помогло
Шикарный контент
Лектору. Очень важно учиться петь или говорить не на связках. Очень часто переходите на связки и это не только режет ухо, но и это очень тяжело для вас самих. Поэтому приходится пить чай или воду. В остальном, спасибо. Очень хорошая лекция.
отличный курс. первый урок прошли
*Интересная прямоугольная лекция*
Супер, спасибо. Хорошо изложил многие вещи
Неожиданный, но приятный курс
Отличная лекция
Думал очередной пересказ растбука, а нет, вот сюда как раз лучше после растбука приходить
Очень интересно слушается. Лектор прокачан в плане качества подачи информации. Респектую.
58:53 Понятно что на слайде всё подробно расписано для примера, но на будущее тем кто учит Rust хочу сразу посоветовать писать более лаконично. Этот пример можно переписать так: ``` fn foo() { let a = Box::new(1); bar(&a) } fn bar(b: &i32) {} ``` Самое главное это передача ссылки в функцию, её можно получить не через разыменование + взятие ссылки `&*a`, а просто взяв ссылку `&a`. Дальше в курсе будет пояснено подробно, как это работает, но коротко - `&Box` автоматически приводится к `&T`. Аналогично работает со многими структурами. Конечно, Rust не про красивый синтаксис, но для кого-то это может быть важно
@user-wb1ow1pk9v
2 жыл бұрын
умничка какая
Спасибо! Относительно мало воды, но лекции всё равно длинноваты (не критично)). Хороший контент. Как пример - достаточно посмотреть отличное объяснение zero cost abstraction! К этому моменту, у меня уже и лайк созрел), и стало понятно что можно продолжать смотреть, и эту и другие лекции. Профессионально!
Хлопцы так держать!
Rust в массы!
@Darkness-hz2vi
4 жыл бұрын
В канализационые массы
@nanoqsh
4 жыл бұрын
@@Darkness-hz2vi А что не так? Чем не нравится язык?
@Darkness-hz2vi
4 жыл бұрын
@@nanoqsh я отношусь к языку нормально, но чел же не сказал в какие массы а я уточнил
@nanoqsh
4 жыл бұрын
@@Darkness-hz2vi а)
@cppprograms5868
4 жыл бұрын
Да кому он нужен, лучше учите С++. Он лучший
Классный курс. Пару раз просмотрел уже. Теперь как референс использую. Большое спасибо, Алексей! Жалко не на английском, а то часто хочется таймкод на видео с объяснением скинуть, а многие русского не знают.
@kprohorow
2 жыл бұрын
Вам нужен еще один парк делать, про русский мир ) Только Долорес не говорите об этом
Спасибо
Спасибо!
СПАСИБО!!!!!!!!
Буду смотреть.
Спасибо !!!!!!!!!!!!!!!!!!!!!!!!!!
Вопрос уважаемым экспертам, можно ли пользоваться Rust в системе СУБД Интерсистемс?
На 1:17:50 был упомянут курс “теории типов и (или?) функционального программирования от Дениса Николаевича”. Не подскажите где/как получить больше информации об этих курсах?
@L0Wkarma
3 жыл бұрын
Нашёл курс «Функциональное программирование» от Дениса Николаевича Москвина, упоминающийся по таймкоду kzread.info/head/PLlb7e2G7aSpRDR44HMNqDHYgrAOPp7QLr
Интересно, подробно, полезно. Очень радует сравнение механики работы разных языков "под капотом". Можно попросить автора приводить больше примеров сравнения с реализациями используемыми в Python. Кстати, насколько я слышал, есть какой-то проект по написанию интерпретатора Python3 на Rust.
@atommixz
5 жыл бұрын
Есть RustPython и Статически-типизированная версия Python - MyPy (и компилятор к ней - mypyc) - разрабатывается самим Гвидо и другими чуваками из Dropbox. Кроме того MyPy интегрирован в последние версии Python
А где эти лекции по теории типов? На канале не нашел
Супер
Про C# неправда, можно указатель взять и запинить память, еще и кучу POH завезли Да и указатели передавать изи, и указатели на функции и т.д. в шарпе есть) и совершенно такой же memory layout можно сделать как на слайде с rust-ом
Вопрос новичка: на промежутке видео между 1:04 и 1:05 упоминается про guard page. Это реализуется Rust-ом или это можно самому сделать?
It would be so nice to have this in English. Thanks a lot anyways.
Только не уводи голос на десять октав в верх на гласных в конце слов. А так, материал збс)
@Lachesis3D
3 жыл бұрын
Я попробовал запустить видео на скорости в 0.5, но вместо ожидаемого результата я услышал пьяного Ельцина
@user-qi5kb5th7y
3 жыл бұрын
@@Lachesis3D аахахаххахах, ты сделал этот день
@ghostname1066
2 жыл бұрын
@@Lachesis3D бля, ебать это крик))
@user-vc5sn3ob6c
2 жыл бұрын
Парню надо начать пить и курить, тогда голос придет в норму.
@lgotindev6712
Жыл бұрын
Накинулись на парня, он не специально ведь, старайтесь абстрагироваться и вникать в суть того, что он говорит)
Не вижу ничего плохого в том, чтобы взять оффициальную книжку по расту, и сделать из неё вот такого формата контент :) Я как раз загуглил это видео, в надежде такой формат этой книжки найти, потому что сел покушать, готов только смотреть и слушать, - не под книжный формат настроение. А вот информацию хотелось как-то уложить, и такая видео-лекция бы идеально подошла. К сожалению, видео действительно оказалось не "тупо официальной книжкой в видео-формате", а чем-то более хитрым, с прицелом на тех, кто пишет на C++ :(
Когда переключил на scala и назад заорал в голос)
Замечательный цикл лекций! Единственно, я возможно пропустил, или про async/await не было? Посоветуйте плз какую-нибудь вводную лекцию по tokio, асинхронным drop и паникам и всему такому. :)
@alekseykladov1144
2 жыл бұрын
Да, когда лекции записывались, async/await ещё не было :-)
@nanoqsh
2 жыл бұрын
Сам такое хочу. Пока довольствуюсь исключительно документацией
1:12:55 "знаем что именно t должно вызвать освобождение памяти а не x и y", должно быть "именно y, а не x и t"
@kardashevr
3 жыл бұрын
волновался, оговорился
Прошло два года, вакансии из стека на расте на 5-7к зелёных в ленте. И тут я понял, что надо было этот курс проходить как только я его отыскал. Спасибо огромное за контент!
@PaulGanarara
Жыл бұрын
ну как, что там с вакансиями?
@cppdeveloper
7 ай бұрын
@@PaulGanarara если шаришь за HFT, то 10к уже)
А есть где-то еще обьяснение про пользу UB. Из лекции не понял почему в данном случае UB обязателен
А где посмотреть разбор остальных 30 слайдов? Лекция 2, выложенная позже уже о другом говорит.
@kosbarable
5 жыл бұрын
на их сайте наверное можно, в левом верхнем углу watermark, найдёте наверное)
@germanmalinovsky1719
3 жыл бұрын
Во второй лекции начали со слайдов, которые не успели рассмотреть в этой лекции. То есть, то что не успели рассмотреть в этой лекции - перенесли в слайды второй лекции.
можете пояснить, что такое runtime
Код ASCII для буквы 'a' - 97, а не 65. 65 - это 'A'.
Понравилось, хочу ищучить rust. Опыта в языках программирования нет. Где взять необходимую документацию для новичка, с нуля?
@nanoqsh
2 жыл бұрын
Лучше для начала более простой язык выучить. Смысл раста улавливаешь только имея горький опыт реального программирования
@shootmaster3269
5 ай бұрын
@@nanoqshа на расте не реальное программирование?
@nanoqsh
5 ай бұрын
@@shootmaster3269 да. Реальное это часами ковыряться в дебагере и вылавливать UB. А раст это так, когда нужно просто побыстрее решить прикладную задачу
15:12 В Scala есть возможность специализировать generic'и т.е. генерировать классы/методы где generic заменён примитивом.
@avpmk
5 ай бұрын
16:05 Да и на скале не надо, там тоже есть sum
Аллилуйа!!, кто-то наконец додумался монтировать видеолекции со слайдами
на час зашёл - на месяц исчез....
53:45 Может то же самое что и (i8, i8, i8) ??
Голос у парня "волшебный"
Хорошая лекция. Вопрос такой: вы говорите, что в RUST нет UB. Но ведь Rust не трэкает переполнение целых чисел в Release mode. Разве это не UB?
@alekseykladov1144
5 жыл бұрын
Переполнение определено: в debug это паника, в release -- wrap around
какой умничка! может автор еще в чем-то учавствует, касающимся Rust?
@gr4tisfaction
Ай бұрын
У него свой канал есть, но на английском.
Сколько с мс с sum?
45:50 - чем отличается unchecked_add от wrapping_add?
@flashmozzg
5 жыл бұрын
unchecked_add нету. Про отличия вроде до этого говорили. Компилятор может считать, что переполнения не было и исходя из этого проводить определённые оптимизации.
@vabka-7708
5 жыл бұрын
wrapping_add - переполнение может произойти, и компилятор это учитывает unchecked_add - переполнение может произойти, но компилятор считает, что нет
1:17:52 Можно ссылку на курс или преподавателя?
@nanoqsh
2 жыл бұрын
kzread.info/head/PLlb7e2G7aSpRDR44HMNqDHYgrAOPp7QLr
~1:12 т.е. по сути указатели перемещаемы, а не копируемы
8:09 "Языки без райнтаймов, например язык C". Дросте приехали. Рантам у Си огромен все эти fprintf, cout и прочее, а как же libc и glibc ну приехали. Может быть он меньше чем в той же Java или Python (особенно если брать типы данных), но он есть. Возможно речь идет о специальных сервисах (потоках) рантайма вроде сборщика мусора?
@easylaneof
2 жыл бұрын
нет, можно использовать си без стандартных библиотек, и как следствие, получить полный zero runtime
@easylaneof
2 жыл бұрын
в книге столярова об этом написано
rustаман
Что у тебя с голосом? Почему ты подскуливаешь?
Fuchsia 21:28
Создатель Node.js решил переписать её с учётом прошлых ошибок. Начинал на Go, но потом переписал на Rust. Почот.
@mad_t
2 жыл бұрын
потом еще на чем-нибудь перепишет, что там гуголь продвинет
Подача материала структурированная, сжатая - это хорошо. Но дикция лектора не самая хорошо воспринимаемая.
Все хотел спросить, а что за чай пьешь? Dilmah или Greenfield? Я тоже люблю покрепче заваривать.
Прощай моя блондинка. Плачет невидииимка. Ты придешь, сразу же все поймешь.
@ll-pd8fn
2 жыл бұрын
Да ладно! Вроде не похож на Маликова? :) Лекция огонь.
Понятен ли будет курс, после изучения языка Си? или обязательно надо знать Си++?
@MariaEsenina
4 жыл бұрын
В rust многое заимствовано из темплейтов C++, а в C# уже давно есть многие фишки rust. Вообще после изучения C лучше написать что-нибудь на C, а не тратить время на всякую ерунду, иначе в конце жизни будете "знать" все языки не написав ни строчки кода.
Redox OS написана на Расте
Хороший язык. Уже, говорят, есть планы переписывать на Rust части ядра Linux.
@736939
2 жыл бұрын
Не дай бог! Только C и C++
@kprohorow
2 жыл бұрын
@@736939 синдром утёнка?
@O5_12
2 жыл бұрын
@@736939 Уже некоторые вещи в Linux переписали на Rust. И почему только C/C++, это уже устаревшие языки, пора переходить на что-то более современное.
Зачем в среде Windows (10) писать лишние точку сj слэшем? Когда все работает просто: main и нажимаем Enter? Что дает команда запуска ./main ? В учебнике на оф.сайте такая же строка прописывается. ЗАЧЕМ? Обычный запуск exe-файла на выполнение в консоли Windows.
@BobrKurvva
10 ай бұрын
. - текущая папка в unix, на винде хз, но скорее всего тоже самое
@gr4tisfaction
Ай бұрын
Не все используют Windows. А авторы растбука правильно делают, что такое использование не поощряют
давай продвинутый курс по расту, работа с БД, как работать с структурированными файлами, работа с хеш и.т.д
@CuriousSpy
4 жыл бұрын
это не продвинутые темы, а базовые
R2D2 ты ли это?))) Лекция более понятнее документации, если не знать английский. Так-то написать свой сервер или БД весьма легко по документации. Один из FullStack ЯП. Он мне был известен давно, но я скептически относился к нему долгое время, пока не стал делать более масштабное, чем калькулятор или 1С на C++20. А фича Rust lang self-компиляции ЯП частично удивила, когда писал на PHP и Python.
ПроРаст
😃
Что у лектора в кармане?
Отображение указки это почти как изобретение колеса.
А вот для многопоточного конкурентного программирования rust лучше подходит чем java.
@MariaEsenina
4 жыл бұрын
Качественным маркетингом.
@oriontvv
2 жыл бұрын
@@MariaEsenina ну почему же. мьютекс объективно удобнее спроектирован(как обертка). борроу-чекер тоже проверяет всякие бяки
Ссылку на "все лекции курса" заблочил роскомзаппрет
@niter43
4 жыл бұрын
kzread.info/head/PLlb7e2G7aSpTfhiECYNI2EZ1uAluUqE_e
Момент про ASCII - kzread.info/dash/bejne/ga2TuLuopsm9qdI.html В примере прописная "a" - это 97 по кодировке ASCII, если хотим получить 65 - нужно использовать заглавную "A".
@gr4tisfaction
Ай бұрын
"прописная" и "заглавная" - это синонимы :)
А что, Дробышевский уже и по программированию лекции читает?)) Очень уж у оратора манера похожая говорить, и тембр голоса близок)) А за лекцию спасибо - очень познавательно.
@herman_guilliman
Жыл бұрын
ничего общего эта мямлящая пискля не имеет общего с Дробышевским
@kkantur
Жыл бұрын
@@herman_guilliman, вот что вы за люди такие? Он сам себе голос чтоли выбрал? Я за информацией на такие каналы хожу, а не хейтить людей за внешность или голос.
Ну вот, Алексей говорил, что нет ядер операционных систем на Rust, а спустя год его внедряют в Windows, Linux и Android =)
@mad_t
2 жыл бұрын
не выдавайте свои мечты за реальность)
что-то хваленые оптимизации не работают -- build --release для helloworld-подобной программы дает 1.7мб на 64 битах
@alekseykladov1144
5 жыл бұрын
Это известная проблема на Linux: в отличие от Win и Mac, на Linux debuginfo зашивается в сам бинарь, а прекомпилированный stdlib собран в режиме release + debuginfo. Утилита strip помогает с этим справится
@nanoqsh
2 жыл бұрын
[profile.release] strip = "debuginfo"
Общие впечатления: 1. Дикция откровенно слабая. В общем то в комментах написано. Спустя 4 года можно было бы материал и подачу обновить. Слушать непросто (наверное забили на Rust) 2. Материал подается довольно таки сжато и можно было бы объяснять проще, больше раскрывать сущности. Но тут видимо рассчитано на тех кто уже знаком с с++ или чем то подобным. Первая лекция - первые впечатления. Вряд ли человек , для которого это первый язык по этим лекциям сможет обучится. 3. Надеялось, что лекции будут проще (и подготовительным этапом к книге) чем раст-бук Клабника, но нет. По ощущениям раст-бук дает понимание некоторым моментам лекции, но не наборот. Клабник он конечно вообще максимально сжат, но он как скальпель - в одном предложении способен выразить суть главы и в этом его сложность. 4. Хорошо то в лекции, что много дополнительного материала, на что упор в растбуке не делается ввиду его сжатости. Однако раскрытия хотелось бы побольше и словами попроще 5. Продолжу смотреть, ибо в ru формате на сегодняшний день всё так же мало лекционного качественного материала - выбрать особо и не из чего
Начинать нужно с знакомства синтаксиса а не с трудных и перемешаных терминов
@nanoqsh
2 жыл бұрын
В расте синтаксис далеко не самое важное
Радзинский!
чет про сосисочку вспомнилось
@nanoqsh
2 жыл бұрын
Проголодался?
52:07
Это челлендж изучить раст
@oz9608
3 жыл бұрын
прошли сутки, как успехи? Уже Google пытается тебя урвать в свои ряды? :D
зашел на хедхантер, всего в 100 с копейками вакансиях упомянается rust , по всей России.)
@daiske2867
4 ай бұрын
только это показатель чего? Js с питоном вроде все так же не садятся по популярности