Замыкания и функциональные трейты в Rust

  Рет қаралды 2,358

Bitωise

Bitωise

Күн бұрын

Пікірлер: 41
@bitwiseuwu
@bitwiseuwu Ай бұрын
25:00 - Крейт rayon - crates.io/crates/rayon Лайфтаймы структур в Rust - kzbin.info/www/bejne/Y5vGfmWpjbGKfrMsi=C8_8jvzfdp17nKq7 Устройство замыканий в Rust Reference: doc.rust-lang.org/stable/reference/types/closure.html
@Sneg00vik
@Sneg00vik Ай бұрын
Годнота, отсылаю к твоему каналу коллег-питонистов, чтобы учили Rust.
@phat80
@phat80 Ай бұрын
На … им Rust? В какой сфере вообще Python и Rust пересекаются?
@Sneg00vik
@Sneg00vik Ай бұрын
@@phat80 Везде где нужно навалить перформанса - от бэкенда "перенеси-подай json" до обработки данных и ML. Используя PyO3 легко пишутся расширения для python.
@Sneg00vik
@Sneg00vik Ай бұрын
@@phat80 Везде где нужно навалить перформанса, от бэкендов "принеси подай json" до обработки данных и ML. Rust на данный момент возможно является лучшим решением для написания расширений для python.
@phat80
@phat80 Ай бұрын
@@Sneg00vik Я думал лучшим является C. По сути большинство библиотек для Python написано на C. Ну и в принципе, в Python и идут для того, чтобы всего этого не касаться - указателей, ссылок, шаблонов, аллокаторов и т.д. 😅 Но если выбирать между C и Rust, я бы выбрал C для каких-то простых утилит. Сложность Rust просто не оправдана для каких-то проектов в несколько сот строчек кода. А C вообще по сути является самым простым языком из системных, если вообще не самым простым среди высокоуровневых. Не зря Rust с очень большим трудом отвоевывает какую-то долю у C. Вроде ужа давно является зрелым и полноценным языком, но все еще занимает мизерную долю на рынке. Тот же Go попер гораздо лучше. Почему? А потому, что людям не нравятся сложные языки со сложными концепциями. Для управления летательным аппаратом NASA может Rust и лучший вариант, но не в вэб разработке 😁
@Sneg00vik
@Sneg00vik Ай бұрын
@@phat80 Тут уже надо выбрать одно, либо С простой и невыразительный, либо выразительный но сложный. Все фишечки высокоуровневого программирования к которым привыкли питонисты(хештаблицы, лямбды/замыкания, патернматчинг, итераторы, асинхронность) в C нет, а в Rust есть. А когда вы всё это натащите/или сами реализуете в С - код будет уже совсем не простым. Писать расширения на Rust намного удобнее: есть PyO3 который возьмёт на себя весь бойлерплейт код, есть maturin который всё соберёт и запушит на pypi. Есть библиотеки с практически идентичным api в Python и Rust - например Polars. Развернуть Rest-API сервис на Axum не сложнее чем на FastApi, да и код будет очень похожий. Распарсить json и провалидировать данные одинаково просто как на Pydantic так и в Serde. Вообщем я не знаю где вы сложности нашли в Rust`е. С существует уже больше 40 лет и этим объесняется, что на неё написано множество ПО в том числе и Python, а не потому, что он такой классный и отвечает современным требованиям к разработке лучше чем какой-нибудь Rust.
@999mikl
@999mikl Ай бұрын
Насколько же понятно, качественно и наглядно всё здесь показано. Одна из самых сложных тем раскрыта на все 100%, таким понятным и приятным глазу форматом. Лайк и большое уважение автору.
@NikitaFomin-tw1it
@NikitaFomin-tw1it 5 күн бұрын
Отличные видео! Жду каждый новый ролик) А ещё жду какой-нибудь патреон или бусти
@lufliw
@lufliw Ай бұрын
Великолепно объяснили! Спасибо!
@Keriokutori
@Keriokutori Ай бұрын
Очень информативно, спасибо тебе! Было бы круто, если бы видосы выходили где-нибудь еще типа вк видео/рутуб/дзен/телега.
@kiborg6982
@kiborg6982 Ай бұрын
Никогда не писал и вообще не много про него знаю, но ваши видео интересно смотреть и так!
@Maratreason
@Maratreason Ай бұрын
Спасибо! Отлично объясняете. Лайк Лайк Лайк!!!
@yang5597
@yang5597 Ай бұрын
Лучший канал ❤
@kolebynov
@kolebynov Ай бұрын
Если хотя бы немного знаете английский, то рекомендую еще посмотреть видео на канале Logan Smith про функции, оно называется "Rust Functions Are Weird (But Be Glad)". Там хорошо показана разница между замыканиями и указателями на ф-ции.
@kla1mzz58
@kla1mzz58 Ай бұрын
Как всегда годнота!
@liz2k
@liz2k Ай бұрын
в тот момент когда ты дойдешь до Pin / Async видео будут по 2 часа :)
@bitwiseuwu
@bitwiseuwu Ай бұрын
Даже если видео будет 2 часа, постараюсь, чтобы смотрелось на одном дыхании!
@liz2k
@liz2k Ай бұрын
@@bitwiseuwu это у тебя отлично получается!
@Quadrad_s
@Quadrad_s Ай бұрын
Очень крутой контент, подскажи плиз сколько ты уже с растом работаешь? И был ли опыт с плюсами?
@Ellementul
@Ellementul Ай бұрын
Спасибо!
@little-ork
@little-ork Ай бұрын
на меня тока сейчас сошло озарение - нафига было делать поддержку поинтеров на функции - это же полный ub без возможности проверки на безопастность. и нужен этот ub только в трёх случаях - оська jit и ffi для либы чтобы скрывать исходники и обфскурить все до асма - в иных случаях все указатели на функции зарание известны в компайл тайме описать этот указатель можно одним из этих состояний - в этом случае можно сохранить колво озу на поинтерах на функции - особенно интересно в каких-нибуть с плюсах ( хотя мб там это так и реализованно хз ), а так же уменьшить кол-во ub до минимума
@danilakhtarov
@danilakhtarov Ай бұрын
Я кажется в первый раз слышу термин функциональный указатель, обычно говорят указатель на функцию. Даже в английском это function pointer, а не functional pointer
@Sneg00vik
@Sneg00vik Ай бұрын
Тоже резануло слух
@za4ems785
@za4ems785 Ай бұрын
Очень нравится шрифт, что это?
@bitwiseuwu
@bitwiseuwu Ай бұрын
Этот шрифт называется Consolas, также могу порекомендовать шрифт JetBrains Mono и шрифты Гитхаба
@act0r399
@act0r399 Ай бұрын
А слушай, а как ты нарыл такую инфу, что замыкания - это структура и тд, можешь плиз поделиться ресурсами, и было бы прикольно, если в каждом видосе оставлять, а-ля на доп чтение и тд)
@bitwiseuwu
@bitwiseuwu Ай бұрын
Постараюсь в будущем оставлять источники! Про технические детали реализации написано в Rust Reference - doc.rust-lang.org/stable/reference/types/closure.html
@usercommon1
@usercommon1 Ай бұрын
Ок
@nanoqsh
@nanoqsh Ай бұрын
База
@IvanMyName
@IvanMyName Ай бұрын
Сложное объяснение.
@yang5597
@yang5597 Ай бұрын
Опять Раст 😢
@DiabloSat_off
@DiabloSat_off Ай бұрын
Ура
@yarb00
@yarb00 Ай бұрын
У Bitwise канал по расту, что он ещё должен снимать? C++ что-ли?)
@yang5597
@yang5597 Ай бұрын
@@yarb00 ну я же пошутил 🐱
@yang5597
@yang5597 Ай бұрын
@@yarb00 zig
Крейты и модули в Rust
22:12
Bitωise
Рет қаралды 3,5 М.
Как работает UTF-8 и зачем нужен Unicode
15:42
Which team will win? Team Joy or Team Gumball?! 🤔
00:29
BigSchool
Рет қаралды 15 МЛН
Из какого города смотришь? 😃
00:34
МЯТНАЯ ФАНТА
Рет қаралды 1,6 МЛН
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 158 МЛН
БУ, ИСПУГАЛСЯ?? #shorts
00:22
Паша Осадчий
Рет қаралды 2,1 МЛН
Все Умные указатели в Rust
25:13
Bitωise
Рет қаралды 4,4 М.
Why I Chose Rust Over Zig
33:18
ThePrimeTime
Рет қаралды 205 М.
Как Linux рисует окна?
48:46
Студенческие клубы разработки КНиИТ СГУ
Рет қаралды 57 М.
Which team will win? Team Joy or Team Gumball?! 🤔
00:29
BigSchool
Рет қаралды 15 МЛН