Хочется сделать суммирование двух чисел с насыщением? Увеличивай разрядность переменной, следи за переполнением. Или это тяжело современным программистам?
Надо полагать, это сарказм? Микрофон у докладчика постоянно и непрерывно заплевывался воздухом. Нужно располагать его сбоку рта, чтобы ни один плевок воздуха, ни из носа, ни изо рта, не мог попасть в него. Просто покороче делать его, и он автоматически окажется рядом с уголком губ, в безопасной для плевков зоне.
@@prostoy_sovetskiy_inzhener Возможно, данное видео не отвечает конкретно вашим стандартам качества видео и аудио записи. Я слушал и просматривал большое количество подобных докладов. И могу сказать, что именно это видео сделано очень хорошо. Что касается темы, после этого видео я решил таки освоить Rust)
1) Переполнение unsigned чисел не является UB :) 2) > в Си и плюсах ... массивы выражены в виде указателей Про плюсы точно неправда, как и про Си. Массив -- это отдельный тип языка, который хранит в себе информацию о его размере. Иначе бы тупо не работал сишный хак sizeof(arr) / sizeof(arr[0]). Просто семантика operator[] не подразумевает проверку границ массива. В С++ это решается использованием std::array::at, будет такая же ошибка рантайма 3) > Это варнинг, а не ошибка Да, правда, конечно. Но мне казалось собирать проекты с -Wall -Wextra -pedantic -Werror считается хорошим тоном, нет? Тогда код тоже не скомпилируется :)
Речь о безразмерных массивах (int a[]). Ну и какой смысл знать размер, если проверки не происходит? Про переполнение только автор ошибся. Проверка происходит только в debug-сборке, в release оно отключено, потому что медленно. Впрочем, хорошее покрытие тестами позволяет отлавливать в debug.
Спасибо за доклад, Очень хорошо и кратко об основном, С точки зрения строгости написания программы и общего подхода - это будущее программирования во многих областях, Первый адекватный подход правильно писать программы изначально. Кто то видел проект на Rust для ESP32?
Допустим пришёл к начальнику, мне достался проект от какой-то фирмы, которая запросила 1.5млн за возможность менять там настройки ip/mask/gw и возможность прошивки по сети, естественно их послали, мк stm32f745, в общем legacy, там столько всякой ерунды в коде, спрашиваю дайте пару месяцев вместо Си переведу на Rust, говорят а где мы потом, мля, найдём программиста который в твоём Rust разберётся?) переписывай на Си
Привет. Мне интересен ИТ и не мало времени искал направление, которое будет мне по душе. Смотрел статьи, видосы о том какое направление выбрать. Все они похожие и я не находил в них то что мне нужно. Но в одном ролике автор в нескольких словах что то сказал про программирование устройства, типа умные дома, машины, домашнюю технику, но ничего больше об этом не рассказал, как это направление называется. Хочу чтоб вы мне подсказали в каком направление двигаться. Я гуглить и самые частые слова попалались это IoT, микроконтроллеры, embedded, Arduino, пайка плат. Я бы хотел программировать, но лезть в железо не очень интересно, но как я понял это нужно, нужно знать Си, физику, электросхемы и электронику. Повторюсь, меня это направление заинтересовало, но требования с физикой и железом пугает. В общем, в голове каша. Может чего лишнего начитался. А ещё, я начинал учить Java и он мне понравился, по сравнению с python и js. На одном сайте были курсы по этим языкам, я все начинал, но java зашёл более менее. Но как я понял в этом направлении нужен Си. Не знаю осилю ли я его. слышал что с/с++ сложные. В общем как то так.
Смотря какой именно аспект тебя заинтересовал в этом всем. Именно тот, что дом умный? То есть автоматизация и управление? Так уже есть возможность программировать такие системы без знаний C/C++ на более высокоуровневых языках. Вот например есть такой стандард node red, там системы собираются кликами мыши как в конструкторе. А если тебя еще теоретический аспект управления интересует, тогда посмотри в сторону теории автоматического управления (control theory). Хотя C не такой уж и сложный, есть конечно специфика, но она везде есть. И C не связан напрямую с электроникой и физикой, там просто есть аспект организации памяти на низком уровне.
До мозга костей железячник - разраб электроники с реал-таймом и отказоустойчивостью (хотя лет 15-20 назад сайтики писал на PHP да JS), для железа только asm/С/ПЛИС. Хотя сейчас понадобилось под Линух пописать, по разным причинам решил попробовать на Rust. В принципе неплохо, идеи очень нравятся, некоторая реализация конечно упоротая, и на мой взгляд крайне херово-читаемый синтаксис, может современным (всяким Scala/Java/Go/Пытон итд... ) белкам, которым лень лишний раз пару символов лапкой на клаве набить, он и заходит, но я от него пока просто блюю.... Код совершенно интуитивно не понятен... глаз не может сразу зацепить суть, просто мешанина из спец символов и излишнего "сахара"... смотриться c понтами типа модно-молодежно.... но читать это пи..ц........ Ну и нахрен Rust нужен на голом железе?? (МК, CPU с bare-metal итд.... ), главная фишка Rust это безопасная работа с памятью, при работах на ОС. Если у тебя нет ОС, то и кучу и стек и работу с DDR ты сам делаешь.... Чем Rust поможет то? Например переполнения? Да их часто и используют на железе для обнуляемых счетчиков)))))) Указатели? Да если ты делаешь отказоустойчивых проект - забудь про динамически выделяемую память))) в 90% проекта она будет статическая)))) а если нужна динамическая, то только с жесткими и четкими параметрами и функциями... По этому про все плюшки с UB ссылками и указателями можно сразу выкинуть))) Но вот что мне в Rust реально понравилось эта очень легкая интеграция с C функциями!!!! Пишешь extern "С" и всё!! Спокойно подцепляешь свой Си код который уже ходит куда хочет и делает все, что вздумается))
Вот концепция.., что нужно, чтобы был, кто-то, кто не даст "выстрелить себе в ногу", тут даже вопрос вообще отвлеченный от программирования.. , но современные программисты и языки.., блээть ну это какой -то вообще пинсдец!
@@Dmi3S да наплевать всем на C11 и тем более на С17. Более того, компиляторы Microsoft и gcc даже до сих пор полностью не реализуют стандарт C11 по части многопоточности, т.к. это нахрен никому не надо. Под Windows используется свой API, под *nix как использовали pthread так и продолжили, а на стандарты все положили, т.к. они ничего кроме лишнего идиотизма в язык не вносят.
Безопасность еще безопасность, только слышно вокруг, не углубляясь в историю можно сказать по простому, сначала был ASM, якобы он слишком сложен был хотя на нем также можно писать макроопределениями, его заменил С и другие, затем С++ и другие, дальше С# и другие, теперь без библиотек программист жить не может он все время гадает не понимая чего происходит. К чему я все это все, это идет к тому что в ближайшем времени надобность что то писать отпадет, будет все стандартно и безопасно и самое главное дешево, в смысле что платить не будут, так как придется конкурировать с машиной. Вот и будет так, все в одинаковых трусах и майках с разной расцветкой, но с голодным желудком чем то напоминает ранний СССР.. Можете сказать что на ваш век хватит, решать проблемы будем по мере поступления, но он__________ подкрадется незаметно когда совсем не ждешь...
Думайте об этом как о степени удобства, а не сложности. В Rust есть какое-то своеобразное удовольствие в том чтобы быть уверенным, что ваша переменная обладает природой меняться в принципе, но не сейчас, когда вам это не требуется. А если вам такая опция при отладке кода потребуется, то эту опцию легко задействовать и при этом не придется ничего отслеживать по всему тексту кода, достаточно будет поставить "mut" при объявлении переменной чтобы сделать ее мутабельной (изменяемой), пример: let mut x = 5; И есть обратного рода удовольствие. Допустим по результатам отладки кода у вас появились какие-то причины отказаться от свойства мутабельности вашей переменной (сделать изменяемую переменную неизменяемой). Все что нужно для этого это убрать "mut" при объявлении переменной. Не нужно ни о чем более заботиться - компилятор вас ткнет носом во все места вашего кода где эту переменную пытаются изменить в процессе исполнения кода и вам будет легко обнаружить и переписать эти места. Вот здесь можно узнать подробности про отличия переменной от констант в Rust (раздел "Различия между переменными и константами"): doc.rust-lang.ru/book/ch03-01-variables-and-mutability.html
@@АлександрИванович-з7ы Не, смотри, здесь канал про программирование, а ты все про свои голубые фантазии пишешь, несолидно для программстера, согласись?
Жаль, что нет сред разработки под rust для arm хотя бы приближенно доступных к пониманию, как к примеру адруино иде (без чек листа по установке и настройке в 250 пунктов). Состоявшиеся программеры связаны багажом знаний. А неофиты от такого порога вхождения только руками отмашутся. Останется rust уделом отщепенцев.
@@lmarloe серьезный программист это человек бесполезный. Потому что он не будет решать насущных вопросов, а денег ему за знания в узкой области надо давать много. Между тем вопросов подлежащих решению великое множество. И именно любители создают среду своей массовостью. Если сразу ориентироваться на "серьезных" программистов, то это тупиковый путь. Сколько их уже было "убийц" С++ и яваскрипта. Пока не создаются условия для доступного освоения плебсом, любое даже самое гениальное остается деградирующей нишей высоколобиков.
вот перед тем как критиковать Си, он долго на нём программировал? "Си - сложный язык" В эмбеддед важно, какой машинный код создаёт компилятор, поэтому стараются компилить не гцц всякими, а платят за кейл. "у раст си подобный синтаксис" - штааа?
Я там выше написал одному чуваку, почему он Си «ругает». Вряд ли он с ним плохо дружит; тут дело в том, что ынтырпрайз хочет получать программы для окучивания лохов быстро и желательно сразу в таком виде, чтобы наспех слепленный копрософт поменьше глючил и хотя бы не валился на ровном месте. Помимо этого, в случае с IoT будет важно, насколько предсказуемо работает девайс и насколько его фирмварь будет устойчива к атакам, ибо всякие там умные колонки и гениальные холодильники - это желанная цель любого торговца персональными данными или мошенника. И вот попробуй объясни CEO какой-нибудь корпорации, особенно не связанной с IT, но нуждающейся в IT-продукте, что из-за «надо было уже вчера» продукт сегфолтится в пяти местах и делит на ноль в двух, и внедрять этот ужас даже в выставочный прототип подобно самоубийству. Среди тех, кто инвестирует в ту же область IoT, инженеров не так уж и много, как хотелось бы - гораздо больше предпринимателей, почуявших свежий ветер с ароматом баблишка. Они измеряют затраты на разработку в человеко-часах, зарплатах и всяких дебильных KPI, руководствуясь исключительно мечтами о выходе на рынок раньше конкурентов, данными с потолка и увещеваниями пропагандистов этих ваших Agile-практик. И когда вот этим вот предпринимателям говорят, что на сях никак не получится в срок, они представляют себе, что конкуренты их безнадёжно обогнали, и трахают мозг тимлиду/архитектору, чтобы те нашли решение. И находят что-нибудь типа Rust - не такое эффективное в плане производительности, как пресвятая сишечка, но более чем способное работать на доступном проекту по бюджету железе. Кстати, всё пытаюсь понять дикий хейт в сторону раста - он компилируется в машинный код; бинарники получаются довольно компактные, особенно если почитать доку и разобраться, как не впиливать ничего лишнего в продакшн-сборку; рантайма никакого за собой не тащит, как тот же Go, и поэтому спокойно работает на голом железе; экосистема вокруг него уже вполне пригодна для решения в том числе задачек от нетерпеливого ынтырпрайза; годная документация; компилятор во многих случаях ругает программиста за попытки выстрелить себе в ногу, не давая даже скомпилить суицидный код. А если всё же в ногу выстрелить надо - есть unsafe, стреляй хоть в обе сразу. Я ещё могу хотя бы отчасти понять, когда ругают D за излишнюю академичность, обзывая Александреску долбаным наркоманом и указывая на «мало библиотек» и, как следствие, частую необходимость писать ужасный «extern C», если тебе не приготовили биндингов к твоей желанной libastral.so заранее. Но в чём провинился Раст, я до сих пор не врубаю. И кстати, с какого перепугу у него синтаксис не Си-подобный, если почти все основные символы Си в нём на тех же местах - скобки, точки с запятой, кавычки и т. д.? Служебные слова поменяли, добавили новые конструкции? Ну так и жаба Си-подобная по синтаксису, но что-то я не видел возмущений по поводу этого утверждения.
Дырявый java, который используют в различных банковских системах? Интересно, интересно. Хорошотчтоия не досмотрел задоначенное продвижение, пусть и не плохого яп. Кстати, игра rust создана на яп rust 🤔
увидел линию контроль безопасность поставил дизлайк.. не ожидал что контроль со стороны человека это опасность. а контроль со стороны языка это безопасность.. ООООчень неверное суждение. лектор упал в моих глазах ниже плинтуса... ой извини лектор я понял. пока ты пишешь на си пусть конкуренты делают железки на раст.. вот поржем попозже
смотришь лекцию/статью на хабре по lisp, python, pascal, и чего угодно. комменты: "прикольно! интересная лекция". смотришь тоже самое про rust, сообщество c/c++: "rust - пи...раст", "какая не красивая девушка ведет", "Только идиоты допускают ошибки в программах", и т.д.
Только почему-то про LISP, Python, Pascal никто из сообщества C/C++ всерьёз никогда ничего плохого не скажет, чего нельзя сказать про Rust). И кстати раз уж вспомнили Pascal - то у него тоже нет UB (вообще НЕТ), у него тоже строгий компилятор (ОЧЕНЬ), особенно если брать историческую версию по Вирту, которая вообще не допускала никаких неоднозначностей. В современных актуальных реализациях (Free Pascal) сделано множество адекватных и разумных послаблений. Все те "недостатки", который докладчик вменяет C - это та причина, по которой на C и пишут, только до его промытой маркетингом головушки это не дошло.
@@artishoo вообще-то проблемы как раз создали себе Rust'оманы, причём сломав собственную концепцию, сначала убрав из языка все вилы, ножи и пистолеты и поняв что сделали херню - сделали unsafe. Ещё ДО создания Rust можно было писать в Rust-стиле на C++ используя его move-семантику, некоторые так даже делали, правда всё равно не слишком взлетело. А "безопасный" язык и так существовал - упомянутый Pascal, нужен он кому-то? Да не очень то, хоть и не сдох до сих пор.
@@MariaEsenina так суть в скорости разработки безопасного приложения (не только под микроконтроллеры) и его скорость. Раст позволяет всё это, при том не имея такой раздутой документации как С или С++, что сильно усложняет порог входа и дает окуклившимся разрабам сидеть и деградировать на сишечки, пиля патчи и моргания светодиода. (Я к тому, что от конкуренции выиграют все. Rust не пытается заменить собой C, но позволяет писать не менее производительный код, с полной байт-совместимостью)
Недавно инзобрентатель сраста наковырял код для ядра Linux, со словами - "Вот видите, как можно". Ему ответили - "Ну да, можно, и что?" А ещё можно и на Яве и на D, и на С++ и прочей порнографической шляпе. Докладчик работает "фуллльтайм...", это профессия? Грамотный разраб напишет хорошо на С и на чём угодно. Вопрос - а кой хер нужен энтот сраст - растить безруких фулллльтаймов, которые потом опять же будут топить за его внедрение? Создаётся впечатление, что Грэйдону Хору очень захотелось денег. И он решил таким образом внести свой гавновклад в соёбщество IT. Не мытьём, так катаньем. Ну обыдно же да... вся слава и почёт покойному ныне Мартину Ритчи и компании... а как же он - Грэйдон Хор - он же лучшее собаки? Вечная песня изобретателей велосипедов...
Ох, ну и высрал же важного мнения. Можно и на питоне свою ОС пилить, но оно нахер никому не надо. Rust же даёт возможность абстрагировать кучу вещей, которые нужно будет лишь раз хорошо прописать, а дальше использовать хоть макросы, хоть что. Плюс Раст даёт значительно большей массе людей на себе писать, ведь он современный и документация чистая, как и спека. А это решает. Только у сишников с синдромом утёнка горит))))
@@artishoo Я понимаю молодых людей, который в погоне за "новым, современным и чистым". Но чаще всего такие суждения - лишь иллюзии отдельных людей. Да, совершенно верно, можно и на питоне пилить, только, как Вы совершенно правильно заметили - это на хер никому не нужно. Как и нахер никому не нужен сраст в ядре. А все Ваши влажные фантазии на тему "какой современно-пусиковый сраст" я уже слышал 25 лет назад, когда мир начал открывать для себя C++ и java. Было много воплей и визга - "как он сейчас заменит ВСЁ и все ядры перепишут". Но прошло уже 25 лет. Все вопли о ""новых и фийолетовых языках" стары как мир.
@@aa_artemyev Этот процесс происходит во многих отраслях. Активно всюду проталкивают эрзац продукты, всякие онлайн-образования и курсы. Тот, кто получал образование в ВУзе в прошлом тысячелетии, хорошо понимает - идёт активное вымывание знаний и опыта у населения. Настоящих знаний и полезного опыта. Всё это заменяется "типаопытом" и "типаобразованием". Баранами управлять удобней... везде.
Если расейские программитсеры такие великие, то почему за 30 лет кроме PuntoSwitcher и 1с и Касперских антивирусов (да на пару с иностранными консультантами) ничего даже по меркам ОАО "Российская Федерация" ничего нет, все инновации от языком до архитектур процессоров зарубежом делаеются?
Вместо сишного a+b предлагается писать a.wrapping_add(b) на русте, ну и какой идиот это придумал и какой идиот этим будет пользоваться? Ну и указатель у лектора указывает на начало массива. А я не знал, у меня иногда на середину указывает. Получается, что руст не для меня... В общем, за 3 минуты лекций я получил достаточно объяснений почему я не буду использовать руст (если кто спросит почему).
Хочу своего ребёнка обучить Расту. Много искал информации о Расте для детей, но почему-то натыкаюсь только на гейские сайты и форумы... Вот пример моего запроса Гуглу: "язык педо Раст". Подскажите - как составить корректный запрос... А если серьёзно - у любого языка есть свои минусы. И было бы честно озвучить их в лекции. Не бывает же, чтоб одни плюшки были. Даже под вечер в булошной.
Минусы: низкая скорость прототипирования, в некоторых случаях ограничения навязанные borrow-checker-ом мешаются (для этого есть ансейф), экосистема еще не стабилизированная, в стабильной ветке нет пары интересных фич типа GAT, на которых завязаны прикольные абстракции.
Счастливое детство это когда у тебе есть нормальные родители и нормальная семейная атмосфера, и тогда у тебе есть время на лычное развитие и выбираешь или спорт или учебу
Очень грамотная речь докладчика. Информативное выступление. Браво!
Не знал, что фараон начал вести уроки по Rust'у
Ахахахаххахахвхвх
Талантливый человек талантлив во всём
пояснительную бригаду пожалуйста
@@Иван-о3ъ6ь там было что-то на зумерском
@@protiv_bio А вы милениал?
Чтобы код был безопасным надо модульные тесты писать. Тогда и программировать дальше можно на Си.
"Язык ада пришел в наш мир благодаря военым США" звучит как начало фантастического хоррора))))
Он ещё и с демонами позволяет общаться))
@@Ipat639 точно и не просто общаться но ещё и создавать их.))))
Разве Дум не об этом?
а чем плох c ?
@@Ramzes200986 посмотри ролик, там парень 52 минуты подряд объясняет чем Раст лучше Си.
Пожалуй что это лучий доклад, все разобрано по полочкам, странно, что так мало просмотров.
потому, что этот доклад про rust, а не про то, как rust использовать вместо c для embedded
Немного нудноватый еще. Например, зачем долго рассказывать про прелести с-подобного синтаксиса. Достаточно было заявить: с-подобный синтаксис
"Язык Ада позволяет общаться с демонами". Тонкий программерский юмор
Очень понравился доклад. Супер!!!!
Классный доклад, крутой спикер.
Блинский, MISRA это мисра, а не мирза.
Хочется сделать суммирование двух чисел с насыщением? Увеличивай разрядность переменной, следи за переполнением. Или это тяжело современным программистам?
Си сложнааа!.. 😱😱😱
для таких сейчас мк уже с мегабитом памяти делают, им думать в принципе лень о таких мелочах) Это путь кмк в тупик, ембеддед требует особого подхода.
Отличный доклад
А как найти контакт Евгения? Хотим пригласить его выступить с докладом.
ах ты шалун
для IoT _важна стандартизованная сериализация_, возможно Rust может дать вариант
Она есть, это Serde. В расте это де-факто стандарт для сериализации, очень идиоматичный и производительный, проверенный временем вариант.
Докладчик похоже не очень то знаком с Си
Спасибо организаторам за качественную запись и звук
Надо полагать, это сарказм?
Микрофон у докладчика постоянно и непрерывно заплевывался воздухом. Нужно располагать его сбоку рта, чтобы ни один плевок воздуха, ни из носа, ни изо рта, не мог попасть в него. Просто покороче делать его, и он автоматически окажется рядом с уголком губ, в безопасной для плевков зоне.
@@prostoy_sovetskiy_inzhener Возможно, данное видео не отвечает конкретно вашим стандартам качества видео и аудио записи. Я слушал и просматривал большое количество подобных докладов. И могу сказать, что именно это видео сделано очень хорошо. Что касается темы, после этого видео я решил таки освоить Rust)
ну звука из зала вообще нет
Как называется эта книга в конце и кто ее автор!?
Если пишу на Си, то всегда проверяю текст на АСМе
На 34 минуте ошибка. unsafe блоки НЕ позволяют делать как в Си, они отключают только часть проверок (по-моему, только боров-чекер, могу ошибаться).
1) Переполнение unsigned чисел не является UB :)
2)
> в Си и плюсах ... массивы выражены в виде указателей
Про плюсы точно неправда, как и про Си. Массив -- это отдельный тип языка, который хранит в себе информацию о его размере. Иначе бы тупо не работал сишный хак sizeof(arr) / sizeof(arr[0]). Просто семантика operator[] не подразумевает проверку границ массива.
В С++ это решается использованием std::array::at, будет такая же ошибка рантайма
3)
> Это варнинг, а не ошибка
Да, правда, конечно. Но мне казалось собирать проекты с -Wall -Wextra -pedantic -Werror считается хорошим тоном, нет? Тогда код тоже не скомпилируется :)
Речь о безразмерных массивах (int a[]). Ну и какой смысл знать размер, если проверки не происходит?
Про переполнение только автор ошибся. Проверка происходит только в debug-сборке, в release оно отключено, потому что медленно. Впрочем, хорошее покрытие тестами позволяет отлавливать в debug.
(:
Без си и ассемблера не понять как железяка работает
Ну и без паяльника как бы
@You Tube когда как
Как и без знаний электроники и даже электротехники.
Спасибо за доклад, Очень хорошо и кратко об основном,
С точки зрения строгости написания программы и общего подхода - это будущее программирования во многих областях,
Первый адекватный подход правильно писать программы изначально.
Кто то видел проект на Rust для ESP32?
Допустим пришёл к начальнику, мне достался проект от какой-то фирмы, которая запросила 1.5млн за возможность менять там настройки ip/mask/gw и возможность прошивки по сети, естественно их послали, мк stm32f745, в общем legacy, там столько всякой ерунды в коде, спрашиваю дайте пару месяцев вместо Си переведу на Rust, говорят а где мы потом, мля, найдём программиста который в твоём Rust разберётся?) переписывай на Си
п-Rustы в рашке в дефиците, это точно
Интересная предметная тема!
Надо в начале своего пути изучить Си, что-то реализовать на нём, а только потом переходить на Rust. 😃
Всё как в PASCAL ?
Тссс, троллить Растоманов Паскалем нужно осторожненько).
Привет. Мне интересен ИТ и не мало времени искал направление, которое будет мне по душе. Смотрел статьи, видосы о том какое направление выбрать. Все они похожие и я не находил в них то что мне нужно. Но в одном ролике автор в нескольких словах что то сказал про программирование устройства, типа умные дома, машины, домашнюю технику, но ничего больше об этом не рассказал, как это направление называется.
Хочу чтоб вы мне подсказали в каком направление двигаться.
Я гуглить и самые частые слова попалались это IoT, микроконтроллеры, embedded, Arduino, пайка плат. Я бы хотел программировать, но лезть в железо не очень интересно, но как я понял это нужно, нужно знать Си, физику, электросхемы и электронику. Повторюсь, меня это направление заинтересовало, но требования с физикой и железом пугает.
В общем, в голове каша. Может чего лишнего начитался.
А ещё, я начинал учить Java и он мне понравился, по сравнению с python и js. На одном сайте были курсы по этим языкам, я все начинал, но java зашёл более менее. Но как я понял в этом направлении нужен Си. Не знаю осилю ли я его. слышал что с/с++ сложные. В общем как то так.
Embedded
Си попроще
Смотря какой именно аспект тебя заинтересовал в этом всем. Именно тот, что дом умный? То есть автоматизация и управление? Так уже есть возможность программировать такие системы без знаний C/C++ на более высокоуровневых языках. Вот например есть такой стандард node red, там системы собираются кликами мыши как в конструкторе. А если тебя еще теоретический аспект управления интересует, тогда посмотри в сторону теории автоматического управления (control theory). Хотя C не такой уж и сложный, есть конечно специфика, но она везде есть. И C не связан напрямую с электроникой и физикой, там просто есть аспект организации памяти на низком уровне.
Двигайся в направлении бэкенда или фронтенда. Знания физики тогда - последнее, что тебе потребуется (если не будет такой бизнес-области)
Лучше спектр это контроль - быстродействие
Спасибо
До мозга костей железячник - разраб электроники с реал-таймом и отказоустойчивостью (хотя лет 15-20 назад сайтики писал на PHP да JS), для железа только asm/С/ПЛИС. Хотя сейчас понадобилось под Линух пописать, по разным причинам решил попробовать на Rust. В принципе неплохо, идеи очень нравятся, некоторая реализация конечно упоротая, и на мой взгляд крайне херово-читаемый синтаксис, может современным (всяким Scala/Java/Go/Пытон итд... ) белкам, которым лень лишний раз пару символов лапкой на клаве набить, он и заходит, но я от него пока просто блюю.... Код совершенно интуитивно не понятен... глаз не может сразу зацепить суть, просто мешанина из спец символов и излишнего "сахара"... смотриться c понтами типа модно-молодежно.... но читать это пи..ц........ Ну и нахрен Rust нужен на голом железе?? (МК, CPU с bare-metal итд.... ), главная фишка Rust это безопасная работа с памятью, при работах на ОС. Если у тебя нет ОС, то и кучу и стек и работу с DDR ты сам делаешь.... Чем Rust поможет то? Например переполнения? Да их часто и используют на железе для обнуляемых счетчиков)))))) Указатели? Да если ты делаешь отказоустойчивых проект - забудь про динамически выделяемую память))) в 90% проекта она будет статическая)))) а если нужна динамическая, то только с жесткими и четкими параметрами и функциями... По этому про все плюшки с UB ссылками и указателями можно сразу выкинуть))) Но вот что мне в Rust реально понравилось эта очень легкая интеграция с C функциями!!!! Пишешь extern "С" и всё!! Спокойно подцепляешь свой Си код который уже ходит куда хочет и делает все, что вздумается))
тоже на раст перешел
16:55 да хотябы только ради этого
Вот концепция.., что нужно, чтобы был, кто-то, кто не даст "выстрелить себе в ногу", тут даже вопрос вообще отвлеченный от программирования.. , но современные программисты и языки.., блээть ну это какой -то вообще пинсдец!
Си стандарт регламентирован очень чётко. Он остаётся неизменным с 99 года.
C11 (ISO/IEC 9899:2011) и C17/18 (ISO/IEC 9899:2018) интересуются, как там в анабиозе?
@@Dmi3S да наплевать всем на C11 и тем более на С17. Более того, компиляторы Microsoft и gcc даже до сих пор полностью не реализуют стандарт C11 по части многопоточности, т.к. это нахрен никому не надо. Под Windows используется свой API, под *nix как использовали pthread так и продолжили, а на стандарты все положили, т.к. они ничего кроме лишнего идиотизма в язык не вносят.
Рукожопым ничего не поможет....
История циклична. Вангую, что через n лет "совместимость с C" будет считаться недостатком, а не преимуществом.
wall wextra werror и все варнинги станут ошибками в си
Кто держит контроль над этим поцем и за что?)) Никак за растовый створ прихватили нефритовым стержнем?)))
Тут вообще-то про программирование а у тебя стрежни на уме, несолидно как-то для жителя скрепостана, согласись?
Безопасность еще безопасность, только слышно вокруг, не углубляясь в историю можно сказать по простому, сначала был ASM, якобы он слишком сложен был хотя на нем также можно писать макроопределениями, его заменил С и другие, затем С++ и другие, дальше С# и другие, теперь без библиотек программист жить не может он все время гадает не понимая чего происходит. К чему я все это все, это идет к тому что в ближайшем времени надобность что то писать отпадет, будет все стандартно и безопасно и самое главное дешево, в смысле что платить не будут, так как придется конкурировать с машиной. Вот и будет так, все в одинаковых трусах и майках с разной расцветкой, но с голодным желудком чем то напоминает ранний СССР.. Можете сказать что на ваш век хватит, решать проблемы будем по мере поступления, но он__________ подкрадется незаметно когда совсем не ждешь...
Всё правильно, в аппаратной части электроники удешевление труда за счёт типовых универсальных контроллеров уже произошло
😂 Ранний СССР, такую дичь, я ещё не слышал.
молодой робот Вертер
Почему то накормить его захотелось
Просто запало, вдумайтесь "неизменяемая переменная" :).. осталось добавить ".. Карл") на святое замахнулись)
Думайте об этом как о степени удобства, а не сложности.
В Rust есть какое-то своеобразное удовольствие в том чтобы быть уверенным, что ваша переменная обладает природой меняться в принципе, но не сейчас, когда вам это не требуется. А если вам такая опция при отладке кода потребуется, то эту опцию легко задействовать и при этом не придется ничего отслеживать по всему тексту кода, достаточно будет поставить "mut" при объявлении переменной чтобы сделать ее мутабельной (изменяемой), пример:
let mut x = 5;
И есть обратного рода удовольствие. Допустим по результатам отладки кода у вас появились какие-то причины отказаться от свойства мутабельности вашей переменной (сделать изменяемую переменную неизменяемой). Все что нужно для этого это убрать "mut" при объявлении переменной. Не нужно ни о чем более заботиться - компилятор вас ткнет носом во все места вашего кода где эту переменную пытаются изменить в процессе исполнения кода и вам будет легко обнаружить и переписать эти места.
Вот здесь можно узнать подробности про отличия переменной от констант в Rust (раздел "Различия между переменными и константами"):
doc.rust-lang.ru/book/ch03-01-variables-and-mutability.html
Я ещё не программист, только учусь. Но даже мне понятна эта заковыка.
Не MIRSA, а MISRA.
Какая красивая блондиночка.
На рассии , говорят уровень педерастии резко возрос, кстати судя по твоему комментарию - это правда. Как-то не по скрепному
@@josephlagrange9531 говорят, что твои оба папы тебя не любят, судя по комментарию - это правда.
@@АлександрИванович-з7ы Не, смотри, здесь канал про программирование, а ты все про свои голубые фантазии пишешь, несолидно для программстера, согласись?
@@josephlagrange9531 пишу, что вижу. А фантазии исключительно у тебя ;-)
Я прислушался к Линусу и не позволил раздвинуть мне булки для введения Rusta. Живу отлично)
Жаль, что нет сред разработки под rust для arm хотя бы приближенно доступных к пониманию, как к примеру адруино иде (без чек листа по установке и настройке в 250 пунктов).
Состоявшиеся программеры связаны багажом знаний. А неофиты от такого порога вхождения только руками отмашутся. Останется rust уделом отщепенцев.
Ну какой серьезный программист в ардуино иде будет писать?
@@lmarloe серьезный программист это человек бесполезный. Потому что он не будет решать насущных вопросов, а денег ему за знания в узкой области надо давать много. Между тем вопросов подлежащих решению великое множество. И именно любители создают среду своей массовостью. Если сразу ориентироваться на "серьезных" программистов, то это тупиковый путь. Сколько их уже было "убийц" С++ и яваскрипта. Пока не создаются условия для доступного освоения плебсом, любое даже самое гениальное остается деградирующей нишей высоколобиков.
есть там embeded hal в расте, и он мне напоминает абстракции из MBED'а
80% раст кода использует unsafe 😂
Он позволяет общаться с демонами :)
вот перед тем как критиковать Си, он долго на нём программировал? "Си - сложный язык" В эмбеддед важно, какой машинный код создаёт компилятор, поэтому стараются компилить не гцц всякими, а платят за кейл. "у раст си подобный синтаксис" - штааа?
Я там выше написал одному чуваку, почему он Си «ругает». Вряд ли он с ним плохо дружит; тут дело в том, что ынтырпрайз хочет получать программы для окучивания лохов быстро и желательно сразу в таком виде, чтобы наспех слепленный копрософт поменьше глючил и хотя бы не валился на ровном месте. Помимо этого, в случае с IoT будет важно, насколько предсказуемо работает девайс и насколько его фирмварь будет устойчива к атакам, ибо всякие там умные колонки и гениальные холодильники - это желанная цель любого торговца персональными данными или мошенника. И вот попробуй объясни CEO какой-нибудь корпорации, особенно не связанной с IT, но нуждающейся в IT-продукте, что из-за «надо было уже вчера» продукт сегфолтится в пяти местах и делит на ноль в двух, и внедрять этот ужас даже в выставочный прототип подобно самоубийству. Среди тех, кто инвестирует в ту же область IoT, инженеров не так уж и много, как хотелось бы - гораздо больше предпринимателей, почуявших свежий ветер с ароматом баблишка. Они измеряют затраты на разработку в человеко-часах, зарплатах и всяких дебильных KPI, руководствуясь исключительно мечтами о выходе на рынок раньше конкурентов, данными с потолка и увещеваниями пропагандистов этих ваших Agile-практик. И когда вот этим вот предпринимателям говорят, что на сях никак не получится в срок, они представляют себе, что конкуренты их безнадёжно обогнали, и трахают мозг тимлиду/архитектору, чтобы те нашли решение. И находят что-нибудь типа Rust - не такое эффективное в плане производительности, как пресвятая сишечка, но более чем способное работать на доступном проекту по бюджету железе. Кстати, всё пытаюсь понять дикий хейт в сторону раста - он компилируется в машинный код; бинарники получаются довольно компактные, особенно если почитать доку и разобраться, как не впиливать ничего лишнего в продакшн-сборку; рантайма никакого за собой не тащит, как тот же Go, и поэтому спокойно работает на голом железе; экосистема вокруг него уже вполне пригодна для решения в том числе задачек от нетерпеливого ынтырпрайза; годная документация; компилятор во многих случаях ругает программиста за попытки выстрелить себе в ногу, не давая даже скомпилить суицидный код. А если всё же в ногу выстрелить надо - есть unsafe, стреляй хоть в обе сразу. Я ещё могу хотя бы отчасти понять, когда ругают D за излишнюю академичность, обзывая Александреску долбаным наркоманом и указывая на «мало библиотек» и, как следствие, частую необходимость писать ужасный «extern C», если тебе не приготовили биндингов к твоей желанной libastral.so заранее. Но в чём провинился Раст, я до сих пор не врубаю.
И кстати, с какого перепугу у него синтаксис не Си-подобный, если почти все основные символы Си в нём на тех же местах - скобки, точки с запятой, кавычки и т. д.? Служебные слова поменяли, добавили новые конструкции? Ну так и жаба Си-подобная по синтаксису, но что-то я не видел возмущений по поводу этого утверждения.
@@alexeypolevoybass попробуй покодить на языке fuckingbrain си просто отдыхает
Плюс, что те кто человека на внешний вид осуждают - просто дураки/завистники/слабоумные
=)
Почему-то вы не выступаете на докладах, а пишите про парня
Парень по ходу Си с плюсами путает
Нужны не доклады, а уроки. Причём уроки как для детей, иначе его никто изучать не будет
Надо полагать доклад для программистов, а не для студентов.
Память то динамическую в контроллера не используют, как тут помогут умные указатели из C++.
Разве нельзя сделать свой пул и аллокаторы ?
@@IExSet ну вобще можно, намутить ручной менеджмент памяти. Но вот в плюсах я представляю как это делать. А в Rust нет.
Си язык хорош тем что си простой. Одни функции и переменные.
ппц, глядя на фотку подумал: "какая страшная тёлка!"
Дырявый java, который используют в различных банковских системах? Интересно, интересно.
Хорошотчтоия не досмотрел задоначенное продвижение, пусть и не плохого яп.
Кстати, игра rust создана на яп rust 🤔
Красивая девачка
Орунл с комментов душных дедов. Ваш поезд ушёл, смиритесь.
а я орнул, как ты элегантно их назвал
Про душных дедов прям в точку)
Время сосунков ?
@@IExSet скройся обратно в люлю, твое время еще не пришло)
Жека подстригись
Спасибо!
Во это замечательно
увидел линию контроль безопасность поставил дизлайк.. не ожидал что контроль со стороны человека это опасность. а контроль со стороны языка это безопасность.. ООООчень неверное суждение. лектор упал в моих глазах ниже плинтуса... ой извини лектор я понял. пока ты пишешь на си пусть конкуренты делают железки на раст.. вот поржем попозже
смотришь лекцию/статью на хабре по lisp, python, pascal, и чего угодно. комменты: "прикольно! интересная лекция".
смотришь тоже самое про rust, сообщество c/c++: "rust - пи...раст", "какая не красивая девушка ведет", "Только идиоты допускают ошибки в программах", и т.д.
Только почему-то про LISP, Python, Pascal никто из сообщества C/C++ всерьёз никогда ничего плохого не скажет, чего нельзя сказать про Rust). И кстати раз уж вспомнили Pascal - то у него тоже нет UB (вообще НЕТ), у него тоже строгий компилятор (ОЧЕНЬ), особенно если брать историческую версию по Вирту, которая вообще не допускала никаких неоднозначностей. В современных актуальных реализациях (Free Pascal) сделано множество адекватных и разумных послаблений. Все те "недостатки", который докладчик вменяет C - это та причина, по которой на C и пишут, только до его промытой маркетингом головушки это не дошло.
@@MariaEsenina ансейф ставь и бахай на Раст. Создали себе проблем и воюете с ними
@@artishoo вообще-то проблемы как раз создали себе Rust'оманы, причём сломав собственную концепцию, сначала убрав из языка все вилы, ножи и пистолеты и поняв что сделали херню - сделали unsafe. Ещё ДО создания Rust можно было писать в Rust-стиле на C++ используя его move-семантику, некоторые так даже делали, правда всё равно не слишком взлетело. А "безопасный" язык и так существовал - упомянутый Pascal, нужен он кому-то? Да не очень то, хоть и не сдох до сих пор.
@@MariaEsenina так суть в скорости разработки безопасного приложения (не только под микроконтроллеры) и его скорость. Раст позволяет всё это, при том не имея такой раздутой документации как С или С++, что сильно усложняет порог входа и дает окуклившимся разрабам сидеть и деградировать на сишечки, пиля патчи и моргания светодиода. (Я к тому, что от конкуренции выиграют все. Rust не пытается заменить собой C, но позволяет писать не менее производительный код, с полной байт-совместимостью)
по привюшке, думал баба :)
Люблю С. Але RUST треба спробувати 100%. Дякую.
Недавно инзобрентатель сраста наковырял код для ядра Linux, со словами - "Вот видите, как можно". Ему ответили - "Ну да, можно, и что?" А ещё можно и на Яве и на D, и на С++ и прочей порнографической шляпе. Докладчик работает "фуллльтайм...", это профессия? Грамотный разраб напишет хорошо на С и на чём угодно. Вопрос - а кой хер нужен энтот сраст - растить безруких фулллльтаймов, которые потом опять же будут топить за его внедрение? Создаётся впечатление, что Грэйдону Хору очень захотелось денег. И он решил таким образом внести свой гавновклад в соёбщество IT. Не мытьём, так катаньем. Ну обыдно же да... вся слава и почёт покойному ныне Мартину Ритчи и компании... а как же он - Грэйдон Хор - он же лучшее собаки? Вечная песня изобретателей велосипедов...
Ох, ну и высрал же важного мнения.
Можно и на питоне свою ОС пилить, но оно нахер никому не надо. Rust же даёт возможность абстрагировать кучу вещей, которые нужно будет лишь раз хорошо прописать, а дальше использовать хоть макросы, хоть что. Плюс Раст даёт значительно большей массе людей на себе писать, ведь он современный и документация чистая, как и спека. А это решает.
Только у сишников с синдромом утёнка горит))))
@@artishoo Я понимаю молодых людей, который в погоне за "новым, современным и чистым". Но чаще всего такие суждения - лишь иллюзии отдельных людей. Да, совершенно верно, можно и на питоне пилить, только, как Вы совершенно правильно заметили - это на хер никому не нужно. Как и нахер никому не нужен сраст в ядре. А все Ваши влажные фантазии на тему "какой современно-пусиковый сраст" я уже слышал 25 лет назад, когда мир начал открывать для себя C++ и java. Было много воплей и визга - "как он сейчас заменит ВСЁ и все ядры перепишут". Но прошло уже 25 лет. Все вопли о ""новых и фийолетовых языках" стары как мир.
Кстати да, последние полгода Ютуб что-то слишком активно начал форсить мне про Раст, хотя я его не спрашивал. 🤔
@@aa_artemyev Этот процесс происходит во многих отраслях. Активно всюду проталкивают эрзац продукты, всякие онлайн-образования и курсы. Тот, кто получал образование в ВУзе в прошлом тысячелетии, хорошо понимает - идёт активное вымывание знаний и опыта у населения. Настоящих знаний и полезного опыта. Всё это заменяется "типаопытом" и "типаобразованием". Баранами управлять удобней... везде.
Если расейские программитсеры такие великие, то почему за 30 лет кроме PuntoSwitcher и 1с и Касперских антивирусов (да на пару с иностранными консультантами) ничего даже по меркам ОАО "Российская Федерация" ничего нет, все инновации от языком до архитектур процессоров зарубежом делаеются?
Чел не в курсе, что магнаты пытаются вынуть ядро себе и получить полный контроль над мирянами. Все у них безопасность. И все ее мало =)))) Ну, ну.
Чего ядро? Каво ядро?
Вместо сишного a+b предлагается писать a.wrapping_add(b) на русте, ну и какой идиот это придумал и какой идиот этим будет пользоваться? Ну и указатель у лектора указывает на начало массива. А я не знал, у меня иногда на середину указывает. Получается, что руст не для меня... В общем, за 3 минуты лекций я получил достаточно объяснений почему я не буду использовать руст (если кто спросит почему).
Фігня про безпеку джави. Отже, далі - теж фігня.
Хотел написать по делу. Но дослушал до конца - Боже, ну какую чушь он несет. Слишком долго обьяснять
Хочу своего ребёнка обучить Расту. Много искал информации о Расте для детей, но почему-то натыкаюсь только на гейские сайты и форумы...
Вот пример моего запроса Гуглу: "язык педо Раст". Подскажите - как составить корректный запрос...
А если серьёзно - у любого языка есть свои минусы. И было бы честно озвучить их в лекции. Не бывает же, чтоб одни плюшки были. Даже под вечер в булошной.
Минусы: низкая скорость прототипирования, в некоторых случаях ограничения навязанные borrow-checker-ом мешаются (для этого есть ансейф), экосистема еще не стабилизированная, в стабильной ветке нет пары интересных фич типа GAT, на которых завязаны прикольные абстракции.
Чтобы блимкнуть ледом нужна целая функция?
Наверно я давно не в теме....
@@ЕаАс-ч4з блимкнуть......................................................
Nidvoraich с шутки конечно в голос
@@СергейГулько-й2к о!!! Спасибо, брат!!!)))) Пол года я ждал признания!!))))
Вхвххахахх define true false поржал
PisDaBol Detected!
бред сивой кобылы ! А программировать научиться не пробовал ?!
ловите душного деда
Вот вот, я тоже никогда никаких ошыбок не допускаю
@@semyon9400 ловите сосунка !
Интересно..он сам понимает о чём говорит...такое впечатление что он с другой планеты..какое же счастливое у меня было детство...
Счастливое детство это когда у тебе есть нормальные родители и нормальная семейная атмосфера, и тогда у тебе есть время на лычное развитие и выбираешь или спорт или учебу
@@nazarnazarius185 счастливое детство это когда нет интернета и сотовых телефонов
Евгений! зачем вы затягиваете в embedded всяких гавнокодеров?
Тёлка тащит! Спасибо