Borrow-checker - это просто формализация того, что раньше лежало на плечах программиста. В случае rust-а это реализовано в виде семантики языка. Отличное определение)
Пишу на С/С++ более уже 6 лет, пишу и под dectop и под микроконтроллеры и т.д. немного изучаю сейчас Rust. Так вот на протяжении всего видео не покидало ощущение что гость либо застрял с точки зрения С++ где то в начале нулевых, либо просто не изучал новые стандарты языка, особенно порадовали слова "не понятно время жизни ссылок" это про ui кода, вы блин серьезно, ссылка НЕ МОЖЕТ быть пустой, без объекта. По поводу чистого Си и встроенных систем, тут гость явно их не писал видимо. Во первых если у тебя кончилась память или выход за пределы массива, это даже не уровень джуна программиста, это уровень студента первого курса. Во вторых, память у тебя на микроконтроллере может кончится НА ЛЮБОМ языке, в принципе распределения памяти там почитали бы сначала!
Отлично видео! У меня тоже начинает появляться ощущение, что чем больше я погружаюсь в C++, тем меньше я знаю о нём и понимаю его.🙂🙂🙂 Хотя я ещё в самом начале на пути к коммерческой разработке.
Любопытная постановка вопроса. Всё зависит от того что понимается под хардкорностью и зачем она нужна. Если мы говорим о близости языка к машинному коду и о возможностях низкоуровневых оптимизаций то Assemler и C. Но тут надо понимать что возможность написать что-то очень быстрое это не тоже самое что написать что-то быстро. Чем выше абстракции, тем больше накладные расходы. Но что лучше, программа которая работает неоптимально но сегодня или супер оптимизированная и очень быстрая но очень сильно не сегодня. Про абстракции рекомендую: ua-cam.com/video/Fu67U2px2Jo/v-deo.html Если же мы говорим о возможностях кратко выражать сложные мысли то тут надо смотреть в сторону dsl и далее. Про DSL сильно рекомендую сайт tomassetti.me/ и пару видео на нашем канале ua-cam.com/video/YSh6q5XWGy0/v-deo.html и ua-cam.com/video/YSh6q5XWGy0/v-deo.html
Разверни мысль, пожалуйста. Про C++ да. Для того времени, когда все только прекратили массово пользоваться ассемблерами и когда вообще было не совсем понятно что такое программирование С++ был лучиком света. Сейчас его значение сильно уменьшилось., появились стройные и более структурированные альтернативы.
Учу язык Rust в течении полу месяца, но столкнулся с проблемой что вакансий в моей стране мало и нету компаний которые взяли бы Джуна, требуются в основном опытные Senior программисты, и не знаю что буду делать позже когда обучусь базовыми знаниями и как искать первую работу с маленьким опытом на данном языке.Бывали моменты когда была мысль учить другой язык, но мне понравился именно Rust.В будущих перспективах собирался пойти работать где-то за границей но уже с хорошим опытом. Дайте пожалуйста пару советов.
Джунам сейчас вообще большая проблема найти работу. Раст в России почти не используют, и не будут. Идет уплощение структуры рынка, и продвинутые технологии там не нужны. Учите более популярный язык, шанс будет выше
Я бы не сказал что unsafe раста это примерно как IO в хаскеле. IO оборачивает программу снаружи, а unsafe прячется внутри модулей, выдавая наружу безопасный API. То есть unsafe можно отбросить и забыть про него, в отличие от IO
Что мне нравится в IT, так это возможность почувствовать себя джуном в новой технологии даже будучи сеньором в любой другой. Очень классно наблюдать как круто могут общаться люди студенты и "глубокие старики" и как они реально могут многому друг у друга научится.
Мне лично Rust не понравился, мне удобнее и комфортно программировать на С++, не знаю почему он бежит от С++, надо просто вести учёт выделения памяти и освобождения, например считать, количество new должно равняться количеству delete, а перед любым массивом делать проверку на выход за границы массива. Я лично обожаю С++ и люблю на нем программировать, для меня С++ это кайф
@@itchatter Вы просто бежите от сложностей. Скажите просто, что сложно, надо думать головой, создавать изначально правильную архитектуру, принципы SOLID, и так далее. Иначе все посыпется как карточный домик. С++ это в основном про хорошую архитектуру. С++ это не трудно, просто это естественное состояние языка, также как и теоретическая физика. Вы что теперь будете игнорировать теоретическую физику сложный математический аппарат, в пользу того чтобы просто не знать вышмат, а обходиться компьютерными программами, которые все подсчитают и вычислят. Или там не знать термех, но на аутокаде разрабатывать машины и оборудования, в принципе можно так делать, виртуально изгибать и видеть напряжение.
@@ixaran "в пользу того чтобы просто не знать вышмат, а обходиться компьютерными программами, которые все подсчитают и вычислят" - давай тепер ты будешь в голове вычислять результат выражений и функций, нaxеp языки програмирования. "правильную архитектуру, принципы SOLID, и так далее" - знание принципов и архитектур на лицо. Для начала порекомедовал бы тебе не "обожать" С++, а набраться опыта хотя бы в год)))
"Анотации типов, обязательные анотации типов, которые есть в C/C+..." - представление 10 летней давности. Теперь там море вариантов не указывать типы, от auto до всяких decltype, не говоря про шаблоны, которые были с пелёнок.
Шаблоны работают по принципу SFINAE и соответствуют простому нетипированному лямбда исчислению на уровне типов. Возможность не указывать тип (вывод, скажем, по Хиндли-Милнеру) и наивные шаблоны в плюсах это совсем не то же самое. Auto, если я правильно помню, означает буквально вывести тип на основании rvalue, а не контекста использования. В расте вывод работает и "вперёд" и "назад". То есть то, как используется переменная дальше по коду, может ретроактивно определить ее тип. И не только тип переменной, но и всех частей выражения, включая вызовы функций
По настоящему проблемно слушать таких людей. Проблема не в том, что они плохо рассказывают что-то правильно или не неправильно. НЕТ! Они слишком умны и прогоняют всё через то, что они знают, как они думают. Исконно верно с их точки зрения. Но проблема не в языке как языке. Язык это инструмент и тот с которым ты лучше управляешься с всеми шероховатостями и есть Профессионализм(ОПЫТ :). Я прекрасно понимаю опыт этих дедов программирования, кто обязан был копаться в системах зараждающимися и допиливаемых ими же. Где сегодня мы просто используем то, что есть. Нельзя отрицать тот факт, что мы не готовы отказаться от того в чем заинтересованны были раньше наши деды. И чем заинтересованны мы. Поэтому, когда интерес будет сконцентрирован на стороне большинства. Будь то правые или левые. Значит Тем путём мы и пойдём. Поэтому я не согласен с тем, что бери обязательно вот этот язык или другой. Не! делай чё по кайфу - остальное призма. Всем piece ) Да и вообще вибирать инстумент не зная для чего он это глупо. Нужно понять чё ты хочешь делать, а потом уже брать набор инструментов. Все равно ты будешь брать готовый каркас приложения то есть(фреймворк). Чтобы собрать в итоге приложение. Чтобы это не было будь-то: игра сайт приложение или OC хз, что тебе интересно. А может ты чувак увлекающийся VR/Ar и (n)G сетями.
Это практически философская дилемма - использовать что-то сложное но круто подходящее или же что-то более просто, что сможет понять большее количество людей. Например, кто-то, не очень разбирающийся в хитросплетениях языка программирования может хорошо чувствовать связь приложения и бизнеса. И в этом случае сможет предложить не прогибать программу под требования и поменять требования так чтобы и бизнесу хорошо и можно было легко реализовать. Я придерживаюсь такого подхода в котором важны коммуникации. А для улучшения коммуникаций надо использовать в команде язык понятный в команде. И находить баланс между языком команды и языком "принятым" для конкретной задачи.
На самом деле системное программирование точно не для всех. Если не понимаешь модель памяти, не понимаешь многопоточность и асинхронность, или уже прости Высший Разум, руки кривые - то Rust даст только еще одного потенциального вредителя.
Согласен. А с другой стороны то, что нужно знать для системного программирования конечно. Модели памяти уже устоялись и описаны многократно и т.п. Тут уж кому как нравится. Кто-то любит оптимизировать одну функцию по году выжимая доли процентов ускорения и байты памяти экономии а кто-то требует новых задач, как только старые заработали хотя бы в виде прототипа.
ты посмотри как что этот айтишник говорит. оказывается люди не идеальны и склонны совершать ошибки, так он договорится до первородного греха и ада для грешников
Короче в Rust ты будешь вместо решения задачи сражаться за чистоту его лямбды :-) Практически 99.99999% embedded это не Rust, и есть Model Checking с доказательством корректности и для Си.
До чего интересно слушать по-настоящему знающих людей! Спасибо!
Классный собеседник! Спасибо! Приятно слушать
Какая плавная, выразительная, точная литературная речь у собеседника!
Да, Дмитрий молодец!
Прикольны выпуск и интересный герой. Спасибо за видео!
Приятно видеть вас на нашем канале!
SHIFU почему бросил канал ответ пожалуйста....
Очень хорошо! Ждем продолжений
Простым языком о сложном. Было интересно.
Спасибо!
Крутой гость!
Пишу на С++, решил посмотреть инфу о Rust. Спасибо за видео
Спасибо за спасибо!
Хорошо объясняет, побольше бы таких преподавателей
Borrow-checker - это просто формализация того, что раньше лежало на плечах программиста. В случае rust-а это реализовано в виде семантики языка.
Отличное определение)
Пишу на С/С++ более уже 6 лет, пишу и под dectop и под микроконтроллеры и т.д. немного изучаю сейчас Rust. Так вот на протяжении всего видео не покидало ощущение что гость либо застрял с точки зрения С++ где то в начале нулевых, либо просто не изучал новые стандарты языка, особенно порадовали слова "не понятно время жизни ссылок" это про ui кода, вы блин серьезно, ссылка НЕ МОЖЕТ быть пустой, без объекта. По поводу чистого Си и встроенных систем, тут гость явно их не писал видимо. Во первых если у тебя кончилась память или выход за пределы массива, это даже не уровень джуна программиста, это уровень студента первого курса. Во вторых, память у тебя на микроконтроллере может кончится НА ЛЮБОМ языке, в принципе распределения памяти там почитали бы сначала!
Классный выпуск, спасибо
Всегда плюсую Гранина.
0:22 не вопрос долгий, а ответ на вопрос долгий. вопрос он за 2 секунды задал и это было не долго
Отлично видео! У меня тоже начинает появляться ощущение, что чем больше я погружаюсь в C++, тем меньше я знаю о нём и понимаю его.🙂🙂🙂 Хотя я ещё в самом начале на пути к коммерческой разработке.
C++ - был отличный язык ... для своего времени. Не останавливайся на нём.
@@itchatter, а что посоветуете такое же хардкорное и интересное, в то же время актуальное?🙃😉
Любопытная постановка вопроса. Всё зависит от того что понимается под хардкорностью и зачем она нужна. Если мы говорим о близости языка к машинному коду и о возможностях низкоуровневых оптимизаций то Assemler и C. Но тут надо понимать что возможность написать что-то очень быстрое это не тоже самое что написать что-то быстро. Чем выше абстракции, тем больше накладные расходы. Но что лучше, программа которая работает неоптимально но сегодня или супер оптимизированная и очень быстрая но очень сильно не сегодня. Про абстракции рекомендую: ua-cam.com/video/Fu67U2px2Jo/v-deo.html Если же мы говорим о возможностях кратко выражать сложные мысли то тут надо смотреть в сторону dsl и далее. Про DSL сильно рекомендую сайт tomassetti.me/ и пару видео на нашем канале ua-cam.com/video/YSh6q5XWGy0/v-deo.html и ua-cam.com/video/YSh6q5XWGy0/v-deo.html
@@itchatterC++ был отличный язык? Серьезно? Айфон был хорошим телефоном, а бананы вкусным фруктом... 😅
Разверни мысль, пожалуйста. Про C++ да. Для того времени, когда все только прекратили массово пользоваться ассемблерами и когда вообще было не совсем понятно что такое программирование С++ был лучиком света. Сейчас его значение сильно уменьшилось., появились стройные и более структурированные альтернативы.
Крутой чувак
Учу язык Rust в течении полу месяца, но столкнулся с проблемой что вакансий в моей стране мало и нету компаний которые взяли бы Джуна, требуются в основном опытные Senior программисты, и не знаю что буду делать позже когда обучусь базовыми знаниями и как искать первую работу с маленьким опытом на данном языке.Бывали моменты когда была мысль учить другой язык, но мне понравился именно Rust.В будущих перспективах собирался пойти работать где-то за границей но уже с хорошим опытом. Дайте пожалуйста пару советов.
Джунам сейчас вообще большая проблема найти работу. Раст в России почти не используют, и не будут. Идет уплощение структуры рынка, и продвинутые технологии там не нужны. Учите более популярный язык, шанс будет выше
Крути опыт
Ищи работу на си, си++, go, занимайся паралельно растом, через 2 года поддавайся на мидл раст
Сделайте выпуск про Haskell
Нууу... Может, и сделаем!
More rust😁
как раз про 3д интернет сказали и появилась Мета
Any chance of getting English subtitles?
Hi, thank you for your interest! No, we're hobbysts, and we don't have such plans at the moment.
Я не кодер, но теперь будут только ноды, трансляторы и ии дебагеры
Я бы не сказал что unsafe раста это примерно как IO в хаскеле.
IO оборачивает программу снаружи, а unsafe прячется внутри модулей, выдавая наружу безопасный API. То есть unsafe можно отбросить и забыть про него, в отличие от IO
Да, здесь я с вами соглашусь.
А я вот поздно начал( пришлось JS) боюсь что до Раста физически не доберусь да и Российский HR своеобразен и предвзят(глубокий старик 44)
Что мне нравится в IT, так это возможность почувствовать себя джуном в новой технологии даже будучи сеньором в любой другой. Очень классно наблюдать как круто могут общаться люди студенты и "глубокие старики" и как они реально могут многому друг у друга научится.
Зачем rust? Язык D чем не устроил?
Мне лично Rust не понравился, мне удобнее и комфортно программировать на С++, не знаю почему он бежит от С++, надо просто вести учёт выделения памяти и освобождения, например считать, количество new должно равняться количеству delete, а перед любым массивом делать проверку на выход за границы массива. Я лично обожаю С++ и люблю на нем программировать, для меня С++ это кайф
Ну вот чем больше вы будете про С++ узнавать, и чем больше вы будете на нем писать, тем меньше этого будет хотеться
@@itchatter Вы просто бежите от сложностей. Скажите просто, что сложно, надо думать головой, создавать изначально правильную архитектуру, принципы SOLID, и так далее. Иначе все посыпется как карточный домик. С++ это в основном про хорошую архитектуру. С++ это не трудно, просто это естественное состояние языка, также как и теоретическая физика. Вы что теперь будете игнорировать теоретическую физику сложный математический аппарат, в пользу того чтобы просто не знать вышмат, а обходиться компьютерными программами, которые все подсчитают и вычислят. Или там не знать термех, но на аутокаде разрабатывать машины и оборудования, в принципе можно так делать, виртуально изгибать и видеть напряжение.
@@ixaran прикольно наверное писать на языке, где ub на каждом шагу и называть это любовью к сложностям)))
@@ixaran "в пользу того чтобы просто не знать вышмат, а обходиться компьютерными программами, которые все подсчитают и вычислят" - давай тепер ты будешь в голове вычислять результат выражений и функций, нaxеp языки програмирования.
"правильную архитектуру, принципы SOLID, и так далее" - знание принципов и архитектур на лицо.
Для начала порекомедовал бы тебе не "обожать" С++, а набраться опыта хотя бы в год)))
@@charlsken6684 Да, какое отношение SOLID имеет к тому как ты работаешь с памятью в плюсах? Я вообще не понял
"Анотации типов, обязательные анотации типов, которые есть в C/C+..." - представление 10 летней давности. Теперь там море вариантов не указывать типы, от auto до всяких decltype, не говоря про шаблоны, которые были с пелёнок.
Шаблоны работают по принципу SFINAE и соответствуют простому нетипированному лямбда исчислению на уровне типов. Возможность не указывать тип (вывод, скажем, по Хиндли-Милнеру) и наивные шаблоны в плюсах это совсем не то же самое.
Auto, если я правильно помню, означает буквально вывести тип на основании rvalue, а не контекста использования. В расте вывод работает и "вперёд" и "назад". То есть то, как используется переменная дальше по коду, может ретроактивно определить ее тип. И не только тип переменной, но и всех частей выражения, включая вызовы функций
Систему, которую невозможно использовать неправильно как правило невозможно использовать в реальности.
Практика говорит об обратном
По настоящему проблемно слушать таких людей. Проблема не в том, что они плохо рассказывают что-то правильно или не неправильно. НЕТ! Они слишком умны и прогоняют всё через то, что они знают, как они думают. Исконно верно с их точки зрения. Но проблема не в языке как языке. Язык это инструмент и тот с которым ты лучше управляешься с всеми шероховатостями и есть Профессионализм(ОПЫТ :). Я прекрасно понимаю опыт этих дедов программирования, кто обязан был копаться в системах зараждающимися и допиливаемых ими же. Где сегодня мы просто используем то, что есть. Нельзя отрицать тот факт, что мы не готовы отказаться от того в чем заинтересованны были раньше наши деды. И чем заинтересованны мы. Поэтому, когда интерес будет сконцентрирован на стороне большинства. Будь то правые или левые. Значит Тем путём мы и пойдём. Поэтому я не согласен с тем, что бери обязательно вот этот язык или другой. Не! делай чё по кайфу - остальное призма. Всем piece )
Да и вообще вибирать инстумент не зная для чего он это глупо. Нужно понять чё ты хочешь делать, а потом уже брать набор инструментов. Все равно ты будешь брать готовый каркас приложения то есть(фреймворк). Чтобы собрать в итоге приложение. Чтобы это не было будь-то: игра сайт приложение или OC хз, что тебе интересно. А может ты чувак увлекающийся VR/Ar и (n)G сетями.
Это практически философская дилемма - использовать что-то сложное но круто подходящее или же что-то более просто, что сможет понять большее количество людей. Например, кто-то, не очень разбирающийся в хитросплетениях языка программирования может хорошо чувствовать связь приложения и бизнеса. И в этом случае сможет предложить не прогибать программу под требования и поменять требования так чтобы и бизнесу хорошо и можно было легко реализовать. Я придерживаюсь такого подхода в котором важны коммуникации. А для улучшения коммуникаций надо использовать в команде язык понятный в команде. И находить баланс между языком команды и языком "принятым" для конкретной задачи.
На самом деле системное программирование точно не для всех.
Если не понимаешь модель памяти, не понимаешь многопоточность и асинхронность, или уже прости Высший Разум, руки кривые - то Rust даст только еще одного потенциального вредителя.
Согласен. А с другой стороны то, что нужно знать для системного программирования конечно. Модели памяти уже устоялись и описаны многократно и т.п. Тут уж кому как нравится. Кто-то любит оптимизировать одну функцию по году выжимая доли процентов ускорения и байты памяти экономии а кто-то требует новых задач, как только старые заработали хотя бы в виде прототипа.
Прикольно, когда человек с нарушенной логикой мышления, рассуждает о проблемах с программированием несуществующего ИИ 🙈🙊🙉
ты посмотри как что этот айтишник говорит. оказывается люди не идеальны и склонны совершать ошибки, так он договорится до первородного греха и ада для грешников
Короче в Rust ты будешь вместо решения задачи сражаться за чистоту его лямбды :-) Практически 99.99999% embedded это не Rust, и есть Model Checking с доказательством корректности и для Си.
Трудно спорить о вкусе устриц с тем, кто их не ел.
скучно
Один из самых зашедших людям выпуск...
@@itchatter Павлу скучно, так что придётся удалить видос
В цирк сходи.