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Ай бұрын
Годнота, отсылаю к твоему каналу коллег-питонистов, чтобы учили Rust.
@phat80Ай бұрын
На … им Rust? В какой сфере вообще Python и Rust пересекаются?
@Sneg00vikАй бұрын
@@phat80 Везде где нужно навалить перформанса - от бэкенда "перенеси-подай json" до обработки данных и ML. Используя PyO3 легко пишутся расширения для python.
@Sneg00vikАй бұрын
@@phat80 Везде где нужно навалить перформанса, от бэкендов "принеси подай json" до обработки данных и ML. Rust на данный момент возможно является лучшим решением для написания расширений для python.
@phat80Ай бұрын
@@Sneg00vik Я думал лучшим является C. По сути большинство библиотек для Python написано на C. Ну и в принципе, в Python и идут для того, чтобы всего этого не касаться - указателей, ссылок, шаблонов, аллокаторов и т.д. 😅 Но если выбирать между C и Rust, я бы выбрал C для каких-то простых утилит. Сложность Rust просто не оправдана для каких-то проектов в несколько сот строчек кода. А C вообще по сути является самым простым языком из системных, если вообще не самым простым среди высокоуровневых. Не зря Rust с очень большим трудом отвоевывает какую-то долю у C. Вроде ужа давно является зрелым и полноценным языком, но все еще занимает мизерную долю на рынке. Тот же Go попер гораздо лучше. Почему? А потому, что людям не нравятся сложные языки со сложными концепциями. Для управления летательным аппаратом NASA может Rust и лучший вариант, но не в вэб разработке 😁
@Sneg00vikАй бұрын
@@phat80 Тут уже надо выбрать одно, либо С простой и невыразительный, либо выразительный но сложный. Все фишечки высокоуровневого программирования к которым привыкли питонисты(хештаблицы, лямбды/замыкания, патернматчинг, итераторы, асинхронность) в C нет, а в Rust есть. А когда вы всё это натащите/или сами реализуете в С - код будет уже совсем не простым. Писать расширения на Rust намного удобнее: есть PyO3 который возьмёт на себя весь бойлерплейт код, есть maturin который всё соберёт и запушит на pypi. Есть библиотеки с практически идентичным api в Python и Rust - например Polars. Развернуть Rest-API сервис на Axum не сложнее чем на FastApi, да и код будет очень похожий. Распарсить json и провалидировать данные одинаково просто как на Pydantic так и в Serde. Вообщем я не знаю где вы сложности нашли в Rust`е. С существует уже больше 40 лет и этим объесняется, что на неё написано множество ПО в том числе и Python, а не потому, что он такой классный и отвечает современным требованиям к разработке лучше чем какой-нибудь Rust.
@999miklАй бұрын
Насколько же понятно, качественно и наглядно всё здесь показано. Одна из самых сложных тем раскрыта на все 100%, таким понятным и приятным глазу форматом. Лайк и большое уважение автору.
@NikitaFomin-tw1it5 күн бұрын
Отличные видео! Жду каждый новый ролик) А ещё жду какой-нибудь патреон или бусти
@lufliwАй бұрын
Великолепно объяснили! Спасибо!
@KeriokutoriАй бұрын
Очень информативно, спасибо тебе! Было бы круто, если бы видосы выходили где-нибудь еще типа вк видео/рутуб/дзен/телега.
@kiborg6982Ай бұрын
Никогда не писал и вообще не много про него знаю, но ваши видео интересно смотреть и так!
@MaratreasonАй бұрын
Спасибо! Отлично объясняете. Лайк Лайк Лайк!!!
@yang5597Ай бұрын
Лучший канал ❤
@kolebynovАй бұрын
Если хотя бы немного знаете английский, то рекомендую еще посмотреть видео на канале Logan Smith про функции, оно называется "Rust Functions Are Weird (But Be Glad)". Там хорошо показана разница между замыканиями и указателями на ф-ции.
@kla1mzz58Ай бұрын
Как всегда годнота!
@liz2kАй бұрын
в тот момент когда ты дойдешь до Pin / Async видео будут по 2 часа :)
@bitwiseuwuАй бұрын
Даже если видео будет 2 часа, постараюсь, чтобы смотрелось на одном дыхании!
@liz2kАй бұрын
@@bitwiseuwu это у тебя отлично получается!
@Quadrad_sАй бұрын
Очень крутой контент, подскажи плиз сколько ты уже с растом работаешь? И был ли опыт с плюсами?
@EllementulАй бұрын
Спасибо!
@little-orkАй бұрын
на меня тока сейчас сошло озарение - нафига было делать поддержку поинтеров на функции - это же полный ub без возможности проверки на безопастность. и нужен этот ub только в трёх случаях - оська jit и ffi для либы чтобы скрывать исходники и обфскурить все до асма - в иных случаях все указатели на функции зарание известны в компайл тайме описать этот указатель можно одним из этих состояний - в этом случае можно сохранить колво озу на поинтерах на функции - особенно интересно в каких-нибуть с плюсах ( хотя мб там это так и реализованно хз ), а так же уменьшить кол-во ub до минимума
@danilakhtarovАй бұрын
Я кажется в первый раз слышу термин функциональный указатель, обычно говорят указатель на функцию. Даже в английском это function pointer, а не functional pointer
@Sneg00vikАй бұрын
Тоже резануло слух
@za4ems785Ай бұрын
Очень нравится шрифт, что это?
@bitwiseuwuАй бұрын
Этот шрифт называется Consolas, также могу порекомендовать шрифт JetBrains Mono и шрифты Гитхаба
@act0r399Ай бұрын
А слушай, а как ты нарыл такую инфу, что замыкания - это структура и тд, можешь плиз поделиться ресурсами, и было бы прикольно, если в каждом видосе оставлять, а-ля на доп чтение и тд)
@bitwiseuwuАй бұрын
Постараюсь в будущем оставлять источники! Про технические детали реализации написано в Rust Reference - doc.rust-lang.org/stable/reference/types/closure.html
@usercommon1Ай бұрын
Ок
@nanoqshАй бұрын
База
@IvanMyNameАй бұрын
Сложное объяснение.
@yang5597Ай бұрын
Опять Раст 😢
@DiabloSat_offАй бұрын
Ура
@yarb00Ай бұрын
У Bitwise канал по расту, что он ещё должен снимать? C++ что-ли?)