25:00 - Крейт rayon - crates.io/crates/rayon Лайфтаймы структур в Rust - th-cam.com/video/-jcM2sXLWHQ/w-d-xo.htmlsi=C8_8jvzfdp17nKq7 Устройство замыканий в Rust Reference: doc.rust-lang.org/stable/reference/types/closure.html
@@phat80 Везде где нужно навалить перформанса - от бэкенда "перенеси-подай json" до обработки данных и ML. Используя PyO3 легко пишутся расширения для python.
@@phat80 Везде где нужно навалить перформанса, от бэкендов "принеси подай json" до обработки данных и ML. Rust на данный момент возможно является лучшим решением для написания расширений для python.
@@Sneg00vik Я думал лучшим является C. По сути большинство библиотек для Python написано на C. Ну и в принципе, в Python и идут для того, чтобы всего этого не касаться - указателей, ссылок, шаблонов, аллокаторов и т.д. 😅 Но если выбирать между C и Rust, я бы выбрал C для каких-то простых утилит. Сложность Rust просто не оправдана для каких-то проектов в несколько сот строчек кода. А C вообще по сути является самым простым языком из системных, если вообще не самым простым среди высокоуровневых. Не зря Rust с очень большим трудом отвоевывает какую-то долю у C. Вроде ужа давно является зрелым и полноценным языком, но все еще занимает мизерную долю на рынке. Тот же Go попер гораздо лучше. Почему? А потому, что людям не нравятся сложные языки со сложными концепциями. Для управления летательным аппаратом NASA может Rust и лучший вариант, но не в вэб разработке 😁
@@phat80 Тут уже надо выбрать одно, либо С простой и невыразительный, либо выразительный но сложный. Все фишечки высокоуровневого программирования к которым привыкли питонисты(хештаблицы, лямбды/замыкания, патернматчинг, итераторы, асинхронность) в C нет, а в Rust есть. А когда вы всё это натащите/или сами реализуете в С - код будет уже совсем не простым. Писать расширения на Rust намного удобнее: есть PyO3 который возьмёт на себя весь бойлерплейт код, есть maturin который всё соберёт и запушит на pypi. Есть библиотеки с практически идентичным api в Python и Rust - например Polars. Развернуть Rest-API сервис на Axum не сложнее чем на FastApi, да и код будет очень похожий. Распарсить json и провалидировать данные одинаково просто как на Pydantic так и в Serde. Вообщем я не знаю где вы сложности нашли в Rust`е. С существует уже больше 40 лет и этим объесняется, что на неё написано множество ПО в том числе и Python, а не потому, что он такой классный и отвечает современным требованиям к разработке лучше чем какой-нибудь Rust.
Насколько же понятно, качественно и наглядно всё здесь показано. Одна из самых сложных тем раскрыта на все 100%, таким понятным и приятным глазу форматом. Лайк и большое уважение автору.
Если хотя бы немного знаете английский, то рекомендую еще посмотреть видео на канале Logan Smith про функции, оно называется "Rust Functions Are Weird (But Be Glad)". Там хорошо показана разница между замыканиями и указателями на ф-ции.
Я кажется в первый раз слышу термин функциональный указатель, обычно говорят указатель на функцию. Даже в английском это function pointer, а не functional pointer
на меня тока сейчас сошло озарение - нафига было делать поддержку поинтеров на функции - это же полный ub без возможности проверки на безопастность. и нужен этот ub только в трёх случаях - оська jit и ffi для либы чтобы скрывать исходники и обфскурить все до асма - в иных случаях все указатели на функции зарание известны в компайл тайме описать этот указатель можно одним из этих состояний - в этом случае можно сохранить колво озу на поинтерах на функции - особенно интересно в каких-нибуть с плюсах ( хотя мб там это так и реализованно хз ), а так же уменьшить кол-во ub до минимума
А слушай, а как ты нарыл такую инфу, что замыкания - это структура и тд, можешь плиз поделиться ресурсами, и было бы прикольно, если в каждом видосе оставлять, а-ля на доп чтение и тд)
Постараюсь в будущем оставлять источники! Про технические детали реализации написано в Rust Reference - doc.rust-lang.org/stable/reference/types/closure.html
25:00 - Крейт rayon - crates.io/crates/rayon
Лайфтаймы структур в Rust - th-cam.com/video/-jcM2sXLWHQ/w-d-xo.htmlsi=C8_8jvzfdp17nKq7
Устройство замыканий в Rust Reference: doc.rust-lang.org/stable/reference/types/closure.html
Годнота, отсылаю к твоему каналу коллег-питонистов, чтобы учили Rust.
На … им Rust? В какой сфере вообще Python и Rust пересекаются?
@@phat80 Везде где нужно навалить перформанса - от бэкенда "перенеси-подай json" до обработки данных и ML. Используя PyO3 легко пишутся расширения для python.
@@phat80 Везде где нужно навалить перформанса, от бэкендов "принеси подай json" до обработки данных и ML. Rust на данный момент возможно является лучшим решением для написания расширений для python.
@@Sneg00vik Я думал лучшим является C. По сути большинство библиотек для Python написано на C. Ну и в принципе, в Python и идут для того, чтобы всего этого не касаться - указателей, ссылок, шаблонов, аллокаторов и т.д. 😅 Но если выбирать между C и Rust, я бы выбрал C для каких-то простых утилит. Сложность Rust просто не оправдана для каких-то проектов в несколько сот строчек кода. А C вообще по сути является самым простым языком из системных, если вообще не самым простым среди высокоуровневых. Не зря Rust с очень большим трудом отвоевывает какую-то долю у C. Вроде ужа давно является зрелым и полноценным языком, но все еще занимает мизерную долю на рынке. Тот же Go попер гораздо лучше. Почему? А потому, что людям не нравятся сложные языки со сложными концепциями. Для управления летательным аппаратом NASA может Rust и лучший вариант, но не в вэб разработке 😁
@@phat80 Тут уже надо выбрать одно, либо С простой и невыразительный, либо выразительный но сложный. Все фишечки высокоуровневого программирования к которым привыкли питонисты(хештаблицы, лямбды/замыкания, патернматчинг, итераторы, асинхронность) в C нет, а в Rust есть. А когда вы всё это натащите/или сами реализуете в С - код будет уже совсем не простым.
Писать расширения на Rust намного удобнее: есть PyO3 который возьмёт на себя весь бойлерплейт код, есть maturin который всё соберёт и запушит на pypi. Есть библиотеки с практически идентичным api в Python и Rust - например Polars. Развернуть Rest-API сервис на Axum не сложнее чем на FastApi, да и код будет очень похожий. Распарсить json и провалидировать данные одинаково просто как на Pydantic так и в Serde. Вообщем я не знаю где вы сложности нашли в Rust`е.
С существует уже больше 40 лет и этим объесняется, что на неё написано множество ПО в том числе и Python, а не потому, что он такой классный и отвечает современным требованиям к разработке лучше чем какой-нибудь Rust.
Великолепно объяснили! Спасибо!
Насколько же понятно, качественно и наглядно всё здесь показано. Одна из самых сложных тем раскрыта на все 100%, таким понятным и приятным глазу форматом. Лайк и большое уважение автору.
Никогда не писал и вообще не много про него знаю, но ваши видео интересно смотреть и так!
Спасибо! Отлично объясняете. Лайк Лайк Лайк!!!
Отличные видео! Жду каждый новый ролик) А ещё жду какой-нибудь патреон или бусти
Лучший канал ❤
Как всегда годнота!
Если хотя бы немного знаете английский, то рекомендую еще посмотреть видео на канале Logan Smith про функции, оно называется "Rust Functions Are Weird (But Be Glad)". Там хорошо показана разница между замыканиями и указателями на ф-ции.
в тот момент когда ты дойдешь до Pin / Async видео будут по 2 часа :)
Даже если видео будет 2 часа, постараюсь, чтобы смотрелось на одном дыхании!
@@bitwiseuwu это у тебя отлично получается!
Очень информативно, спасибо тебе! Было бы круто, если бы видосы выходили где-нибудь еще типа вк видео/рутуб/дзен/телега.
Очень крутой контент, подскажи плиз сколько ты уже с растом работаешь? И был ли опыт с плюсами?
Спасибо!
Я кажется в первый раз слышу термин функциональный указатель, обычно говорят указатель на функцию. Даже в английском это function pointer, а не functional pointer
Тоже резануло слух
на меня тока сейчас сошло озарение - нафига было делать поддержку поинтеров на функции - это же полный ub без возможности проверки на безопастность. и нужен этот ub только в трёх случаях - оська jit и ffi для либы чтобы скрывать исходники и обфскурить все до асма - в иных случаях все указатели на функции зарание известны в компайл тайме описать этот указатель можно одним из этих состояний - в этом случае можно сохранить колво озу на поинтерах на функции - особенно интересно в каких-нибуть с плюсах ( хотя мб там это так и реализованно хз ), а так же уменьшить кол-во ub до минимума
Очень нравится шрифт, что это?
Этот шрифт называется Consolas, также могу порекомендовать шрифт JetBrains Mono и шрифты Гитхаба
А слушай, а как ты нарыл такую инфу, что замыкания - это структура и тд, можешь плиз поделиться ресурсами, и было бы прикольно, если в каждом видосе оставлять, а-ля на доп чтение и тд)
Постараюсь в будущем оставлять источники! Про технические детали реализации написано в Rust Reference - doc.rust-lang.org/stable/reference/types/closure.html
База
Ок
Сложное объяснение.
Опять Раст 😢
Ура
У Bitwise канал по расту, что он ещё должен снимать? C++ что-ли?)
@@yarb00 ну я же пошутил 🐱
@@yarb00 zig