The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Rust 1.96. Оценка пригодности Rust для создания прошивок к микроконтроллерам

29.05.2026 20:13 (MSK)

Опубликован релиз языка программирования Rust 1.96, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust нацелены на исключение ошибок при манипулировании указателями и защиту от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные новшества:

  • Добавлен модуль range с реализацией новых типов, развиваемых для замены устаревших типов Range, RangeInclusive, RangeToInclusive и RangeFrom, и позволяющих хранить диапазоны в Copy-структурах. Тип Range определяет диапазоны, ограниченные минимальным и максимальным допустимым значением (но не входящим в него), тип RangeFrom определяет числа начиная с указанного значения, а тип RangeInclusive - значения указанного диапазона с обеими его границами. В будущих выпусках дополнительно появятся типы RangeFull и RangeTo, старая реализация будет перенесена в core::range::legacy::*, а синтаксис "N..M" и "N..=M" переведут на новый вариант типов.

    Новые типы отличаются тем, что вместо типажа Iterator реализуют типаж IntoIterator, т.е. вместо встроенного итератора определяют то, как преобразовать тип в итератор. Подобный подход позволяет использовать с новыми типами операцию копирования (типаж Copy, показывающий, что значения типа можно дублировать через простое копирование), которая ранее была недоступна из-за несовместимости с типами со встроенными итераторами. Например, новые типы дают возможность сохранить границы среза в структуру, которая полностью копируется без раздельного сохранения начального и конечного значений:

    
       use core::range::Range;
    
       #[derive(Clone, Copy)]
       pub struct Span(Range<usize>);
    
       impl Span {
           pub fn of(self, s: &str) -> &str {
               &s[self.0]
           }
       }
    
  • Добавлены макросы "assert_matches!" и "debug_assert_matches!", проверяющие соответствие значения указанному шаблону и аварийно завершающие выполнение при расхождении. От выражений "assert!(matches!(..))" и "debug_assert!(matches!(..))" новые макросы отличаются выводом отладочной информации со значениями, вызвавшими сбой. Для избежания пересечений со сторонними макросами, поставляемыми с аналогичными именами, новые макросы требую явного импорта библиотеки "core::assert_matches".
    
       use core::assert_matches;
    
       fn get_random_number() -> u32 {
           4
       }
    
       fn main() {
           assert_matches!(get_random_number(), 1..=6);
       }
    
  • При сборке для целевой платформы WebAssembly прекращена передача компоновщику опции "--allow-undefined", разрешавшей связывание при наличии неопределённых символов, которые преобразовывались в импорт из модуля "env". При сборке для WebAssembly все связанные с компоновкой символы теперь по умолчанию обязательно должны быть определены. Для возвращения старого поведения можно использовать переменную окружения "RUSTFLAGS=-Clink-arg=--allow-undefined" или выражение '#[link(wasm_import_module = "env")]" в коде.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • В пакетном менеджере Cargo устранена уязвимость CVE-2026-5223, которая может использоваться для перезаписи исходного кода другого crate-пакета в локальном кэше пакетов из того же репозитория через манипуляции с символическими ссылками внутри crate-а пакетов. Уязвимость проявляется только при работе со сторонними репозиториями пакетов и не затрагивает пользователей репозитория crates.io, так как в crates.io запрещена загрузка пакетов с символическими ссылками.

Дополнительно можно отметить публикацию (PDF) результатов анализа пригодности языка Rust для разработки прошивок для микроконтроллеров и встраиваемых систем с ограниченными ресурсами. Исследование проведено компанией STMicroelectronics при участии нескольких европейских университетов. Двум изолированным командам разработчиков была поставлена задача по реализации одной и той же прошивки для микроконтроллеров STM32U585AI с ядром Arm Cortex-M33. Первая команда создавала прошивку на Си, а вторая на Rust.

Тестирование выполненной работы не выявило заметных преимуществ в использовании языка Си вместо Rust при разработке прошивок для микроконтроллеров при сравнении потребления памяти и производительности. Более того, задействование написанного на Rust системного runtime от открытого проекта Ariel OS позволило добиться потребления памяти в проекте на Rust ниже, чем в реализации на языке Си, использующей традиционный стек для разработки прошивок на базе библиотеки newlib.

Размер результирующей прошивки составил 84100 байт в проекте на Rust и 76744 байта в проекте на Си (на 10% меньше), но потребление оперативной памяти в прошивке на Rust оказалось значительно ниже - 24640 байтов против 42608 байтов. Что касается производительности, то при тестировании начальных прототипов, разработанных за 6 недель, реализация на Rust в два раза опережала, реализацию на Си, но обе реализации значительно отставали от расчётной максимальной производительности. После 4 недель, выделенных на оптимизацию, обе реализации достигли примерно одинакового результата, близкого к расчётному максимуму.



  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Выпуск Rust 1.95. Добавление Rust в дисплейный сервер Mir. Анализатор трафика ayaFlow на Rust
  3. OpenNews: Google задействовал Rust-библиотеку Hickory в прошивке радиомодуля смартфонов Pixel 10
  4. OpenNews: Intel развивает открытую прошивку ModernFW и гипервизор на языке Rust
  5. OpenNews: Intel развивает виртуальную прошивку TD-Shim, написанную на Rust
  6. OpenNews: Google переписал на языке Rust прошивку pvmfm, используемую в Android
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65574-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (178) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 20:23, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >для микроконтроллеров STM32U585AI

    https://www.st.com/en/microcontrollers-microprocessors/stm32u585ai.html
    Интересный эксперимент.

     
     
  • 2.9, Аноним (9), 21:06, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, во сколько раз при этом будет больше ошибок, чем в uutils?
     
     
  • 3.95, Фнон (?), 13:02, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Логических? Может и столько же.
    Ошибок памяти? Скорее то столько же - около нуля.
     
     
  • 4.111, An (??), 18:42, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вот вообще без разницы, какой тип ошибки приведет к уязвимости.
     
     
  • 5.183, Аноним (183), 10:33, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть огромная разница Во-первых, это два независимых класса ошибок Устранение ... большой текст свёрнут, показать
     
  • 2.67, Аноним (-), 07:25, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересный эксперимент.

    Теперь плиз то же самое но на STM32F1xx которе в разы дешевле? Для игры в менее комфортных условиях. А не том переростке, по цене чуть не апликушного проца и с 1 поставщиком в виде STMicro - и более никого на этом глобусе.

     

  • 1.2, Аноним (2), 20:33, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Лучше производность, быстрее код писать, меньше оперативной памяти нужно и чуть больше места занимает.

    Выбор очевиден.

     
     
  • 2.4, Аноним (4), 20:49, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Выбираю SPARK.
     
     
  • 3.68, Аноним (-), 07:25, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  Выбираю SPARK.

    И много прошивок для МК написал? Захвастайся чтоли для разнообразия, как сие вообше?

     
  • 3.140, Пыщь (?), 10:20, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Просто на ADA, совсем без контрактов (чтобы даже запаха SPARK не было), на каком-нибудь light профиле, столька букафф будет! Если про perl можно шутить, что это язык для написания, а не для чтения, то про ada - это для чтения, а не написания. Ну а если профиль пожирнее, то готовь ОЗУ и свободные такты для RTL. Правильная оптимизация потребует погружения в особенности ада :) А уж ежели контрактами в SPARK погонять, то ещё больше букаф придётся докидать. Правильные полные спецификациии и жирные контракты - залог удачи в SPARK (так думаю). С неполной спецификацией, допускающией широкие возможности трактовки, конопляторная оптимизация обязательно испоганит твой даже полностью верный код в самом скромном уголке прошивки.
    Совсем без асма и це на голом железе тяжко будет, почти невозможно. Даже полуофициальный startup-gen от adacore выдаёт асмовую заготовку для начальной инициализации. На затравочку ещё нужно помнить, что общедоступных binding микросхем, аналогичных це-шным CMSIS, можно по пальцам перечесть.
    Может это только я так бултыхаюсь доступными (без регистраций и смс) инструментами, а у серьёзных адовых погроммистов всё в ажуре.
     
  • 2.6, Аноним (6), 21:00, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Быстрее код писать, воюя с чекером боровов? Ах да, для микроконтроллеров же - сплошной @unsafe.
     
  • 2.15, Аноним (15), 21:24, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +13 +/
    > Быстрее код писать, воюя с чекером боровов?

    Завязывайте позориться. Если у вас проблемы с БЧ при написании кода, значит вы не понимаете сколько у вас живут объекты и плодите UB, на сях с такой квалификацией вы будете вместо "войны с БЧ" который вас тыкает в проблему ещё до того как вы даже код собрали, сидеть неделями в отладчике.

    > Ах да, для микроконтроллеров же - сплошной @unsafe

    Ни на йоту не больше чем в программировании под большие машины - там у вас в unsafe обёрнуты обращения к системным вызовам, а тут к портам. В остальном разницы нет, поверх этого можете писать только safe логику, можете пользоваться штуками использующими unsafe под капотом для эффективности, но эти штуки опциональны и одинаковы на любых платформах.

     
     
  • 3.31, Аноним (31), 23:18, 29/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.40, Аноним (40), 00:54, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну тогда Паскаль лучше обоих)
     
  • 2.49, Аноним (49), 01:54, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Лучше производность

    Предпочитаю интегральность.

     
  • 2.66, MihaNix (ok), 07:10, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Пишите на том языке, который знаете хорошо. Это поможет добиться лучших результатов!
    Для микроконтроллера я обычно трачу больше времени на изучение документации и проверку своего понимания на практике.
    Выберу язык Си и буду работать с битовыми последовательностями, чтобы управлять низкоуровневыми функциями контроллера (конфигурирование портов ввода вывода и т.п.).
     
     
  • 3.69, Аноним (-), 07:26, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >  Пишите на том языке, который знаете хорошо. Это поможет добиться лучших результатов!

    Что-то не очень работает для приблуд с микропитоном.

     
  • 3.168, Проходил мимо (?), 07:37, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Битовые операции в Си и в Rust очень похожи, если что. Например проверка битового флага на Си у вас будет примерно так:

    #define FLAG 0x01
    //  Определение переменной val размером 1 байт, старшая половина которой
    //  используется для хранения флагов а в младшей хранится какое-то значение от 0 до 15
    unsigned char val = 0;

    //  Тут что-то происходит

    //  Выделяем значение и проверяем флаг
    num = val & 0x0F;
    val = (val & 0xF0) >> 4;
    if( val & FLAG )
    {
        // Делаем что-то полезное
    }

    А на Rust так:
    const FLAG: u8 = 0x01;

    //  Определение переменной val размером 1 байт, старшая половина которой
    //  используется для хранения флагов а в младшей хранится какое-то значение от 0 до 15
    let mut val: u8 = 0;

    //  Тут что-то происходит

    //  Выделяем значение и проверяем флаг
    num = val & 0x0F;
    val = (val & 0xF0) >> 4;
    if (val & FLAG) > 0
    {
        // Делаем что-то полезное
    }

    А еще в Rust есть куча вариантов битовых операций (например сдвига), отличающихся наличием или отсутствием проверки переполнения и самого подхода к сдвигу. Практика показывает, что это очень удобный и правильный подход.

     
     
  • 4.186, Аноним (186), 11:14, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    практика показывает, что это жутко нечитабельный и тормозной оверхед.
    и ты забыл указать тонну бла-бла-бла поверх процитированного кода, чтобы оно вообще начало собираться.
     
     
  • 5.198, Проходил мимо (?), 12:34, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > практика показывает, что это жутко нечитабельный и тормозной оверхед.
    > и ты забыл указать тонну бла-бла-бла поверх процитированного кода, чтобы оно вообще
    > начало собираться.

    Не будет ли любезен многоуважаемый Аноним сообщить, какая именно строка из приведенного кода является "жутко нечитабельной" и "тормозным оверхедом"? Ткните пальцем пожалуйста, что именно в приведенном коде вы ниасилили? Так-то приведенный код лишь иллюстрирует минимальную разницу между синтаксисом битовых операций в Си и Rust, но мне прям стало очень интересно, где же вы тут нашли жутко нечитабельные тормоза.

    А еще я бы очень хотел узнать, о каких таких тоннах бла-бла-бла там идет речь? Вот знаете, прям удивили меня вот этим вот утверждением - сколько лет пишу и на Сях, и на плюсях, и на Rust - а ни разу никаких таких "тонн бла-бла-бла" чтобы скомпилировать программу мне не требовалось.

     

  • 1.3, НяшМяш (ok), 20:33, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Под микроконтроллер в 160 мегагерц можно было хоть на бидоне писать, в чём смысл делать какие-то сравнения под эту лошадь. Сообщество на тот же 16-мегагерцовый nRF51 на embassy фигачит со свистом уже много лет, открыли они Америку.
     
     
  • 2.5, Аноним (5), 20:54, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Во, точняк! Раст -- низкоуровневый питон!
     
     
  • 3.14, Аноним (14), 21:19, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Низкоуровневый питон называется forth. Это низкоуровневый сишарп.
     
  • 2.7, Аноним (1), 21:05, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну они для себя же делали опыт, что и описано в посте, значит им нужнее.
    Да и остальные языки никуда не деваются:
    https://opennet.ru/64135-github
     
  • 2.89, Аноним (89), 12:39, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как "160 мегагерц" уменьшит потребление оперативной памяти?
    Или ты думаешь что на 16 мегагерцах СИшная поделка станет магически образом потреблять меньше?
    24640 против 42608 это почти в два раза.
     
     
  • 3.187, Аноним (186), 11:15, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ну я тоже могу сишный рантайм обрезать в 15 раз, станет 4200. это что-то для тебя изменит, или ты и бальше будешь рекламировать свой недоязык, но уже другими аргументами?
     

  • 1.8, Аноним (6), 21:05, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Что-то мне кажется, что если для микроконтроллеров писать на Algol68 с POSIX-расширениями (ga68), то тоже производительность будет не сильно отличаться.
     
     
  • 2.20, Аноним (15), 21:44, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это скорее правда Под железо без изысков типа всяких SIMD компилировать чисту... большой текст свёрнут, показать
     
     
  • 3.27, Аноним (9), 22:38, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > скомпилится это в 276 или 27600 байт

    Вся суть растерманов.

     
     
  • 4.32, Аноним (31), 23:20, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в чем суть? Или пока сам не понял?
     
     
  • 5.79, Аноним (-), 10:53, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  А в чем суть? Или пока сам не понял?

    В том что чем больше флехи - тем дороже будет чип стоить. Место на кристалле не бесплатное.

     
     
  • 6.94, Фнон (?), 12:54, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В том что чем больше флехи - тем дороже будет чип стоить.

    Сейчас копеечные чипы имеют столько памяти, что иногда даже избыточно.
    Условный STM32C0 за 20 центов имеет 32 KB Flash / 6 KB RAM
    По меркам микроконтроллеров это дофига.

     
     
  • 7.123, Аноним (123), 00:43, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зато вон там есть RISCV за 10-20 центов, 2 кило RAM и 16 кило флеша на все Но э... большой текст свёрнут, показать
     
     
  • 8.138, Аноним (-), 09:39, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пф, система которая работает в миллионах девайсах критикуется горлопаном с форум... текст свёрнут, показать
     
     
  • 9.164, Аноним (-), 06:37, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пф, вон то - за 1 год продается большим тиражом, чем все вы вместе взятые, вероя... большой текст свёрнут, показать
     
  • 3.47, anonymous (??), 01:52, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Особенно будет весело, когда ваш раст захочет сделать прерывание (для await) в контексте с заблокированными перываниями...
     
     
  • 4.59, Аноним (59), 02:26, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, для await не нужны прерывания, это просто сахар для построения конечного автомата из понятного линейного кода. Никакой магии там нет, равно как и никаких "rust захочет", можно всё то же что и в C, только это делается одной строкой, а не kloc'ами лапшеобразного бойлерплейта.
     
  • 3.169, Проходил мимо (?), 07:46, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для поддержки асинхронности используется специальный кусок кода (специальный движок), поэтому, ИМХО, мечты про 276 байт не осуществимы в принципе.

    ЗЫ Слово unwrap в предполагаемом коде для микроконтроллера лично у меня вызывает удивление, только выраженное ненормативной лексикой.

     

  • 1.10, Аноним (15), 21:07, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    В эмбедном байтодрочестве rust равных нет уже за счёт упаковки структур и нишево... большой текст свёрнут, показать
     
     
  • 2.12, Аноним (12), 21:14, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего интересного в этом нет. Вопрос применения раста в плоскости практического применения вообще не лежит.
     
     
  • 3.16, Аноним (15), 21:25, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Какой интересный тейк. Даже интересно в какой плоскости лежит вопрос применения если не в плоскости применения.
     
     
  • 4.19, анонимс (?), 21:36, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Идеологическом. Rust компилируется LLVM написанным на C++ бэкэндом rustc так что машинный код совершенно одинаков
     
     
  • 5.21, Аноним (15), 21:48, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Машинный код одинаков только если писать на общем подмножестве двух языков, на нахрена это кому-то нужно? На rust можно писать на порядок выразительнее, и ответ на вопрос будет ли полученный код компактнее и быстрее не для всех очевиден, а даже без учёта этого, вопросы компайл-тайм проверок и более качественного тулинга - сугубо практические.
     
     
  • 6.41, Аноним (40), 01:00, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > На rust можно писать на порядок выразительнее

    Тогда вы выбрали не тот язык. На порядок выразительнее писать на языке из 2000ых (а автор раста начал разрабатывать его в начале 2000ых) с синтаксисом из языков 80ых (для сравнение python это начало 90ых) вряд ли получится.

     
     
  • 7.53, Аноним (59), 02:07, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А при чём тут синтаксис? Он сейчас вообще во всех языках, и новых, и старых, одинаковый, кроме питона. А выразительность в основном из стандартной библиотеки идёт, например чтобы вместо

    '''c
    bool found = false;
    for (size_t i = 0; i < sizeof(haystack); i++) {
        if (strcmp(haystack[i].field, needle) == 0) {
            found = true;
            break;
        }
    }
    if (found) {}
    '''

    писать

    '''rust
    if haystack.iter().any(|elt| elt.field == needle) {}
    ''

    ну и интересно посмотреть на "современные" языки значимо выразительнее rust.

     
     
  • 8.99, Славик (ok), 14:00, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На С тоже можно упаковать в одну строчку Но, глядя на С код, можно представить ... текст свёрнут, показать
     
     
  • 9.115, ferris (?), 19:13, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Когда последний раз отлаживал в машинных кодах ... текст свёрнут, показать
     
     
  • 10.152, Славик (ok), 15:58, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    регулярно просматриваю s файлы И иногда нахожу много интересного, такого что п... текст свёрнут, показать
     
     
  • 11.165, Аноним (-), 06:53, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я предпочитаю отображение дисасма пополам с сорцом Так несколько нагляднее во ч... текст свёрнут, показать
     
  • 8.128, разраб (?), 02:45, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    F конечно из тяжелых, но с удобной разработкой Oberon легкий быстрый но разраб... текст свёрнут, показать
     
  • 3.29, Аноним (1), 23:10, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >практического применения

    https://github.com/discord

     
     
  • 4.116, ferris (?), 19:15, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    proxmox
     
  • 2.18, Сладкая булочка (?), 21:32, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > (и юнит тесты рядом с кодом очень удобная штука)

    В си никто не мешает положить тесты рядом с кодом.

     
     
  • 3.22, Аноним (15), 21:53, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Тесты рядом с кодом это, если что так и ни строчкой больше, даже если это первый тест в проекте:

    '''
    fn inc(a: u32) -> u32 {
         a + 1
    }

    +#[test]
    +fn test_inc() {
    +    assert_eq!(inc(1), 2);
    +}
    '''

     
     
  • 4.26, Аноним (9), 22:34, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И что тут такого особенного, чего не было нигде в других языках?
     
     
  • 5.54, Аноним (59), 02:07, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Здесь вообще ничего особенного, но сделай это на C/C++.
     
     
  • 6.72, Аноним (72), 08:13, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В чем проблема?:

    int inc(int x) {
        return x + 1;
    }

    #ifdef TEST
    #include <assert.h>
    int main() {
        assert(inc(1) == 2);
    }
    #endif

     
     
  • 7.76, Прохожий (??), 10:34, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Громоздко и чревато ошибками (если вместо TEST написать что-то другое, уже тест не  запустится потом).
     
  • 7.82, Аноним (-), 11:04, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Тебе про UB не рассказали чтоли Прямо иллюстрацию подогнал, почему таких как ты... большой текст свёрнут, показать
     
     
  • 8.97, Аноним83 (?), 13:58, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А ты никогда не задумывался что большинство пихает int туда где пофик на результ... текст свёрнут, показать
     
     
  • 9.107, Аноним (107), 15:17, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе да, на сишочке так и пишут Пофиг на результат , и так сойдет , п... текст свёрнут, показать
     
     
  • 10.120, Аноним83 (?), 00:02, 31/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 9.124, Аноним (-), 01:36, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, блин, и я потом такой - затыкаю в дидовом копролите - integer underflow, ко... большой текст свёрнут, показать
     
  • 8.103, Славик (ok), 14:18, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну что за демагогия, во первых есть uint32_t тип, а во вторых С это системный яз... текст свёрнут, показать
     
     
  • 9.106, Аноним (107), 15:04, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Системный Для PDP-11 Вставляет, это фича И что, в сишочке знаковое переполнен... текст свёрнут, показать
     
     
  • 10.110, Славик (ok), 16:55, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ещё раз, м е д л е н н о, С это системный язык Рассматривай его как высокоур... текст свёрнут, показать
     
     
  • 11.119, Аноним (107), 23:48, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты из своего системного языка не можешь стандартным способом, без ассемблерных... текст свёрнут, показать
     
  • 11.147, Аноним (107), 14:09, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ваш ассемблер даже указатели без фокусов сравнить не может, лол code cat ... текст свёрнут, показать
     
     
  • 12.150, Славик (ok), 15:31, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    кто вам сказал что адрес b будет равен адресу a 1 Стандарт языка вы делаете -... текст свёрнут, показать
     
     
  • 13.153, Аноним (107), 16:33, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты вывод-то посмотри Они побитово равны Да, мой код всегда компилируется с -O3... текст свёрнут, показать
     
     
  • 14.157, Славик (ok), 19:28, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ладно малыш, закончим на этом Ну да, дальше hello world ты не потянул Ха-Ха, т... текст свёрнут, показать
     
     
  • 15.158, Аноним (107), 20:28, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я объяснил, дедуль Не, можешь настаивать что тут ошибка в конпеляторе, авторам ... текст свёрнут, показать
     
  • 9.125, Аноним (-), 01:54, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тот то хмырь с примером его не поюзал, вместо этого влепив классический UB Для ... большой текст свёрнут, показать
     
     
  • 10.141, Славик (ok), 10:31, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    у вас наверное компайлер от майкрософт вот, пожалуйста code int main ... текст свёрнут, показать
     
     
  • 11.146, Аноним (107), 14:02, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кек, у меня такая же нога и она работает 294ый прав, gcc вставляет вызовы m... текст свёрнут, показать
     
     
  • 12.151, Славик (ok), 15:38, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, gcc это такой компайлер что ключь -S и анализ s файла ОБЯЗАТЕЛЕН ... текст свёрнут, показать
     
     
  • 13.154, Аноним (107), 16:45, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    NYET Rifle W Compiler is FINE Не надо требовать от языка того, чем он не являе... текст свёрнут, показать
     
  • 11.166, Аноним (-), 07:05, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, у меня - freestanding фирмвара МК без builtids, stdlib - freestanding режим... большой текст свёрнут, показать
     
  • 10.162, Аноним (-), 02:09, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В Rust флаг переполнения процессора можно узнать с помощью функции overflowing_a... текст свёрнут, показать
     
     
  • 11.167, Аноним (-), 07:07, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и сколько кода это реально делает ... текст свёрнут, показать
     
  • 8.117, Аноним (72), 20:45, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    if you want simple Rust style abort panic in debug mode include asser... текст свёрнут, показать
     
  • 3.155, Аноним (155), 17:08, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В си никто не мешает положить тесты рядом с кодом.

    Да? А чего ж не кладут тогда? Вредители что ли?

     
     
  • 4.159, Сладкая булочка (?), 21:12, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> В си никто не мешает положить тесты рядом с кодом.
    > Да? А чего ж не кладут тогда? Вредители что ли?

    Можно, а зачем? (с)

     
  • 2.28, Аноним83 (?), 22:44, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Столько буков и ни слова о конечном результате, только какие то бесполезные язык... большой текст свёрнут, показать
     
     
  • 3.58, Аноним (59), 02:21, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Столько буков и ни слова о конечном результате

    О конечном результате сказано - в 3 раза меньше кода, он гораздо более понятен и застрахован от нескольких классов распространённых ошибок.

    > только какие то бесполезные языковые абстракции.

    Выше есть пример кода с сишным циклом против 'Iterator::any'. Не, я прекрасно понимаю что вы не программируете и для вас все эти слова это просто буквы, только зачем вы в обсуждение ЯП влезаете?

    > Потому что видимо на С не пробовали даже делать плагины и абстракции, как оно сделано в том же линухе/бсд в дровах для всего того же самого.

    О да, vtable руками, миксины на макросах и обработку ошибок на goto, а также плагины для дров FreeBSD мы действительно не писали.

     
     
  • 4.98, Аноним83 (?), 14:00, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > О конечном результате сказано - в 3 раза меньше кода

    В вашем посте обсуждение только язковых конструкций, а не результата.

    > только зачем вы в обсуждение ЯП влезаете?

    Я скорее про применение и девиации адептов :)

    > vtable руками, миксины на макросах и обработку ошибок на goto, а также плагины для дров FreeBSD мы действительно не писали.

    Оно и видно.

     
     
  • 5.101, Аноним (101), 14:07, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Я скорее про применение и девиации адептов :)

    "Исследование проведено компанией STMicroelectronics при участии нескольких европейских университетов"

    Вы про девиации адептов СИшки?
    Еще раз для непонтливых.
    Фирма, которая разработала и производит микроконтроллеры, провела исследование и пришла к выводу что СИшка не имеет преимуществ.

     
     
  • 6.121, Аноним83 (?), 00:04, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И что?
    Пресвятые европецы на гранты написали нужные отчёты, и теперь это святая истина?
    Эти же люди писали что полов больше двух и прочую ерунду про глобальное потепление и что надо жрать не мясо а жуков.
    Завтра им проплатят и они напишут о пользе питания гумусом, мол замкнутый безотходный цикл, так и надо.
     
     
  • 7.131, Прохожий (??), 07:01, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё раз, может со второго раза дойдёт (хотя, маловероятно, глядя на твои попытки в аналогии). Отчёт писался сотрудниками фирмы-производителя микросхем для своих нужд. Причём здесь гранты, Европа и количество полов?
     
  • 6.185, Совершенно другой аноним (?), 11:11, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Там текст "немного по дебильному написан" (с)

    Идёт подмена понятий, попробовали новый язык Rust, но фразу сформулировали, почему-то не новый язык Rust не имеет преимуществ, а старый C. Странная формулировка, не находите.

     

     ....большая нить свёрнута, показать (51)

  • 1.23, Аноним (15), 21:57, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Жаль про размер исходников ничего не сказано.
     
     
  • 2.25, Аноним (25), 22:07, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А может и сказано...
     
     
  • 3.55, Аноним (59), 02:08, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я читал пейпер, нет - не сказано.
     
  • 2.64, Nameh (?), 03:22, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сахар и выразительность будет в приоритете обьема байт.
     
  • 2.90, Аноним (89), 12:42, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А кого волнует размер исходников?
    Или даже сколько оно компилируется?
    Для разработчика (а не какого-то б0мжа) собирается нормальная билд-машина.

    Зато в результате:
    - разница в размере бинарника 10%
    - разница в потреблении оперативки почти 50% в пользу раста
    - при одинаковой производительности

     
     
  • 3.100, Аноним83 (?), 14:01, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А у вас с первого раза релиз выходит?
    Если нет - тогда разница ощутима.
     
     
  • 4.102, Аноним (101), 14:08, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Если нет - тогда разница ощутима.

    Вы что компилируете после добавления каждой новой строки?

    Я скорее в дебае залипну на большее время, чем выиграю от разницы в сборке.

     
     
  • 5.122, Аноним83 (?), 00:06, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так смотря какой размер у вашего проекта, для хэлло ворлда скорость раста ещё можно потерпеть, а когда у вас там хотя бы 100+ файлов - как то не комфортно будет.
     
     
  • 6.132, Прохожий (??), 07:03, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Раст компилирует библиотеками. Если там ничего не менялось, то и компилироваться повторно не будет.
     
  • 3.188, Аноним (186), 11:34, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Как же растовики врать любят. Что ни слово, то вранье.
     

  • 1.33, Аноним (33), 23:22, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Нашел! Я нашел! https://github.com/FluxSysLang/Flux
     
  • 1.35, localhostadmin (ok), 00:06, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сейчас далеко не под все контроллеры можно сишный код собрать. Поэтому я слабо представляю, как в такую нишу ещё и раст запихнуть можно
     
     
  • 2.37, Аноним (37), 00:09, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Если в микроконтроллер залазит Rust, то это уже не микроконтроллер.
     
     
  • 3.46, Аноним (59), 01:50, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Машкод на Rust весит примерно столько же сколько аналогичный код на C. Можно было бы и под AVR'ки писать, но вроде поддержки в llvm нет. Но в любом случае AVR'ки уже отмерли, микроконтроллеры сейчас поголовно такие что туда и микропитон влезет, но rust и приятнее, и эффективнее.
     
  • 3.109, Аноним (107), 15:42, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Еще недавно по историческим меркам тру микроконтроллер-деды то же самое про сишочку и ассемблер говорили.
     

  • 1.36, Аноним (37), 00:07, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    "Тестирование выполненной работы не выявило заметных преимуществ в использовании языка Rust вместо C"

    Поправил

     
     
  • 2.73, Vivaswan (ok), 08:15, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот именно то же хотел написать...    Как всё хитрО перемешано в тексте!
     
  • 2.91, Аноним (89), 12:44, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >  "Тестирование выполненной работы не выявило заметных преимуществ в использовании языка Rust вместо C"

    А... "черное это белое" от фанатов СИшки?
    Логично.

    > Поправил

    Скорее "Переврал".

     
     
  • 3.189, Аноним (186), 11:36, 01/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.38, Аноним (37), 00:16, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    >В пакетном менеджере Cargo устранена уязвимость

    С каждой новой версией Rust всё усложняется, расширяется, а значит программирование на нём становится менее надёжным.
    А Cи остаётся таким же простым.

     
     
  • 2.52, Аноним (1), 01:58, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >С каждой новой версией Rust всё усложняется, расширяется

    https://www.youtube.com/@RustVideos/videos
    https://rust-lang.org/ru/learn/

     
     
  • 3.142, proglyk (ok), 13:04, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Хочется молча оставить ссылку на c89 стандарт, на котором до сих пор пишут и не лазают в Ютубе и ещё куда-то.
     
  • 2.96, Аноним (96), 13:06, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > С каждой новой версией Rust всё усложняется, расширяется, а значит программирование на нём становится менее надёжным.

    Интересное мнение.
    А можно какое-то подтверждение "программирование на нём становится менее надёжным" ?

    > А Cи остаётся таким же простым.

    Но ошибки в нем такие-же, как 50 лет назад))
    Сколько там Copy Fuсkов уже нашли в ядре?

     
     
  • 3.143, proglyk (ok), 13:07, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В ядре чего? Прошивки для МК? Ты забыл о чем тема новости человек? Сейчас не спор что лучше в принципе, а что лучше для МК, а там задачи порой очень простые и никакие ядра не надо в спор тянуть
     
  • 2.161, Аноним (161), 02:05, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да скорее не усложняется а становиться сильнее и сложнее с каждым разом запомнить сколько и где там и API стал новый. Если в сишке это база не менялась голой, то тут каждый день новая м версия библиотек и самого языка
     

  • 1.39, Аноним (39), 00:27, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Авторы исследования забыли указать, что сишники в эмбедовке разбираются в шинах данных, iommu, dma и тд. А эти на расте ни в чем не разбираются. Так что все-таки сишка под МК лучше уже хотя бы поэтому.
     
     
  • 2.43, Я (??), 01:06, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Плюс на Си куча отлаженного и переносимого кода под любую платформу.
     
     
  • 3.78, Прохожий (??), 10:52, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Куча? Да, согласен. Отлаженного? А вот здесь - большие сомнения.
     
  • 2.56, Аноним (59), 02:10, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Авторы исследования забыли указать

    Как раз не забыли, там сказано что была команда C имела большой опыт в C, а команда Rust опыта в Rust имела сильно меньше, и, тем не менее, справилась на отлично.

    > сишники в эмбедовке разбираются в шинах данных, iommu, dma

    Нет, не сишники, а эмбеддовщики. Знания о том как работает железо от языка не зависят и применяются одинаково в любом языке.

     
     
  • 3.126, Аноним (-), 02:00, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нет, не сишники, а эмбеддовщики. Знания о том как работает железо от
    > языка не зависят и применяются одинаково в любом языке.

    Ну вот не скажи. Если в си можно влобовую записать в регистр - то в Rust работа с такими вещами любо лютый unsafe (а чем это тогда лучше си?) либо совершенно жесточайший брейнфак, увы и ах. Можно спятить даже просто делая работу с GPIO. Да, круто конечно - делегировать это богам и расслабить булки, но в итоге то вы будете - вторым сортом.

     
     
  • 4.149, Аноним (149), 14:48, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот не скажи. Если в си можно влобовую записать в регистр - то в Rust работа с такими вещами любо лютый unsafe (а чем это тогда лучше си?)

    Тем что всё остальное safe, сложно для понимания да?

    > либо совершенно жесточайший брейнфак

    С чего брейнфак-то? Простейшее API, а-ля 'PORTB.pin(3).set_direction(PinDirection::Out).enable_pin(true)'. Это из плюсов код, если что, который компилится в те самые 2 инструкции, и то как оно должно быть независимо от языка. На rust будет так же с точностью до байта и safe. Вы видимо остановились в развитии на 'PORTB &= 1 << 3', так вам на пенсию пора.

     
     
  • 5.190, Аноним (186), 11:37, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что именно safe, растик, 2+2? Тебе не хватает квалификации, чтобы "безопасно" сложить два числа?
     
  • 5.197, _kp (ok), 12:29, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>всё остальное safe

    Вообще то, вся работа с реальными структурами, протоколами, регистрами - это в Rust всё unsafe, и подобный код в embedded преобладает.
    А в остальном облажаться как раз минимальные шансы.

     
  • 3.156, Аноним (155), 17:13, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Знания о том как работает железо от языка не зависят и применяются одинаково в любом языке.

    Так то знания. А этот пациент заучил заклинания на сях: боромочи дождь-дождь-дождь, он и пойдёт рано или поздно. Делай вот так, и будешь шиной командовать. Знание правильных слов на сях заменяет знание железа. Но снаружи особо не видно, пока язык имплементации сменить не потребуют.

     
  • 2.57, Аноним (107), 02:11, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    С сишниками в эмбеддовке и везде проблема в том, что они в Си не разбираются. Не могут написать код без UB, а чаще и не хотят.
     
  • 2.104, Аноним (104), 14:44, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >  сишники в эмбедовке разбираются в шинах данных, iommu, dma и тд.

    Хахахаха!
    Тойопта убившая кучу народу передает привет.
    Как тебе функция на 1300 строк кода с цикломатической сложностью в 146?

    > А эти на расте ни в чем не разбираются.

    Возможно ваше бездоказательное утверждение верно.
    Но тем не менее эти "не разбирающиеся" смогли написать код, которые на уровене СИшого по производительности.

    > Так что все-таки сишка под МК лучше уже хотя бы поэтому.

    Чтобы потом долго и уныло дебажить память попорченную "разбирающимися"?

     
     
  • 3.114, Аноним (114), 19:04, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Си - язык практиков. Если практики из Тойоты отказались от Раста и продолжают писать на чистом. Значит чистый Си - торт.
     
  • 3.127, Аноним (-), 02:06, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А представляешь, Rust без MMU тоже переполнение стека - не поймает Об этом чест... большой текст свёрнут, показать
     
     
  • 4.137, Аноним (-), 09:36, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А при чем тут раст Речь про СИшников которые пишут эмбедовку Ты сейчас про той... большой текст свёрнут, показать
     
  • 3.144, proglyk (ok), 13:12, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нервный смех. Мне не нравится что ты лезешь в споры и что-то доказывает, при этом являясь Толи студентом с взлетевший ЧСВ из-за того, что rust book прочёл, Толи не учащимся на своих ошибках мужиком.
     
     
  • 4.145, Аноним (145), 13:21, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Нервный смех.

    Признак ̶д̶у̶р̶а̶ч̶и̶н̶ы̶  недалекого ума?

    > Мне не нравится что ты лезешь в споры

    В общем-то пофигу, что тебе не нравится.

    > и что-то доказывает, при этом являясь Толи студентом с взлетевший ЧСВ из-за того, что rust book прочёл, Толи не учащимся на своих ошибках мужиком.

    Твой хрустальный шар явно подделка.

    В статье написано что STM не видит преимуществ СИшки перед растом.
    Но СИшная охранота начинает куракекать и рассказывает что "СИ для МК лучше".


     

  • 1.44, Аноним (44), 01:08, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    У меня совершенно другой вопрос соберется ли этот же код на расте спустя года 3... У раста до сих пор нет стейбл версии и на обратную совместимость они тоже положили, так что такое.
     
     
  • 2.50, Аноним (59), 01:56, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пару месяцев назад я столкнулся с кодом написанным во времена rust 1.0x, он вполне себе собирается. Собственно со стабильностью там всё в порядке.
     
     
  • 3.65, Сиус (?), 05:51, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Этим кодом был Аль^W Hello world.
     
  • 2.77, Прохожий (??), 10:50, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >У раста до сих пор нет стейбл версии

    В каком смысле? Есть, конечно. И эта новость как раз о stable версии. А есть ещё ночные сборки.

    > и на обратную совместимость они тоже положили

    Почитайте на досуге про editions.

     
  • 2.92, Аноним (89), 12:47, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > У меня совершенно другой вопрос соберется ли этот же код на расте спустя года 3.

    Конечно.

    > У раста до сих пор нет стейбл версии

    Что значит "стейбл версия" в понимание такого профана как ты?
    Когда вышел С23, то поломалось куча проектов, так как true/false добавили.

    > и на обратную совместимость они тоже положили, так что такое.

    Феерическая чушъня.
    Почитай что такое edition
    (doc.rust-lang.org/edition-guide/editions/)

    В андроиде до сих пор можно писать на edition 2015.

     
     
  • 3.139, Аноним (139), 10:16, 31/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.191, Аноним (186), 11:40, 01/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.170, Проходил мимо (?), 08:04, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ваши представления об обратной совместимости у Rust весьма далеки от реальности.
     
  • 2.184, Аноним (183), 11:04, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да где вы все это читаете Rust ломает обратную совместимость только в одном слу... большой текст свёрнут, показать
     

  • 1.45, Аноним (44), 01:10, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Одного не пойму, зачем изобретать новый яп, привинтите к си все те же безопасные указатели да проверки....
     
     
  • 2.48, Аноним (59), 01:53, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чтобы это понять, надо программировать, а если вы не программируете, вам зачем это понимание?

    > привинтите к си все те же безопасные указатели да проверки

    Да, ещё лайфтаймы, БЧ, нормальную систему типов, экосистему, тулинг. Собственно Rust и получится. Ну или zig, если вам он ближе, правда в нём ничего этого нет и он экспериментальная поделка. В любом случае, без нового языка программирования не обойтись.

     
     
  • 3.85, Аноним (85), 12:07, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если ты не способен контролировать лайфтаймв сам, то ты и программировать не умеешь, потому что не понимаешь как у тебя программа работает.
     
     
  • 4.105, Аноним (104), 14:47, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Т.е все сишники от ядра до утилит типа curl "программировать не умееют"?
    Ибо уже десятки лет одни и те же ошибки: выходы за пределы буферов, use after free и double free.

    Возможно просто инструмент поганый?


     
     
  • 5.136, Аноним (136), 09:28, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Твоя логическая ошибка или попытка манипуляции, называется "соломенное чучело", ты пытаешься заменить мой тезис на более слабый. А учитывая как страстно ты защищаешь инструмент...ты этим только подтверждаешь мой тезис, что ты не умеешь программировать, а веришь в магию. Ты наверное и ИИ любишь?
     
     
  • 6.180, Прохожий (??), 09:42, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ваш тезис не выдерживает на практике никакой критики.
     
     
  • 7.192, Аноним (186), 11:41, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Его тезхис выдержал практику хотя бы тем, что ты сейчас свой коммент набрал с помощью сишного кода, а не растового.
     
  • 4.179, Прохожий (??), 09:41, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У вас очевидные проблемы с логикой. Любой человек (абсолютно, без исключений) подвержен ошибкам. Особенно это актуально на сколь-либо большом коде. Другими словами, даже если вы способны контролировать лайфтаймы на небольшом участке кода, никто не может дать гарантию (и вы в том числе), что вы справитесь также успешно на большом участке. Что, собственно, и показывает многолетняя практика программирования на Си.
     
  • 2.75, warlock (??), 10:17, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ровно так и сделали. Получился Rust.
     
     
  • 3.80, Аноним (-), 10:54, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >  Ровно так и сделали. Получился Rust.

    Они сделали - брейнфак какой-то. Где, простите, типажи выражовываются, так что вот тут итератор не итерирует оказывается и надо - сильно отдельный сеанс брейнфака, с чуть ли не патчем тулчейна чтобы это заработало.

    Жалкая пародия на то что может C++ как расширяемый синтаксис. Убого и гиморно.

     
     
  • 4.181, Прохожий (??), 09:49, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Они сделали - брейнфак какой-то.

    Сказал любитель C++ со спецификацией на полторы тысячи страниц, которую, уверен, никогда не читал полностью.

    >Жалкая пародия на то что может C++ как расширяемый синтаксис.

    Например, что такого можно сделать в C++, чего нельзя сделать в Rust?

     
  • 3.83, Аноним (83), 11:14, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У раста синтаксис функциональных языков, при чем тут си?
     
     
  • 4.88, warlock (??), 12:32, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > У раста синтаксис функциональных языков, при чем тут си?

    Нет, у Раста синтаксис именно Си, только слегка изменённый в соответствии с нашим сегодняшним пониманием, как должен был выглядеть Си, чтобы не иметь ряда болезненных проблем. Естественно, что он в чём-то похож на функциональные языки, так как такой правильно спроектированный (перепроектированный) Си и должен был быть похож на функциональные языки.

     
     
  • 5.193, Аноним (186), 11:44, 01/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.113, Аноним (113), 18:51, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > У раста синтаксис функциональных языков, при чем тут си?

    Где ты там увидел синтаксис функциональных языков?

    То есть, первый вопрос: что такое синтаксис функциональных языков? У кого синтаксис более функциональный, у haskell или у lisp? Или Rust для тебя является определением понятия "синтаксис функциональных языков"?

    Но раст ведь до кучи ещё и не функциональный язык вовсе. Его комбинаторы итераторов выглядят функциональной фишкой, но функциональный язык может любые функции комбинировать так, а не только значения типа Iterator.

     
     
  • 5.133, Прохожий (??), 07:10, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Где ты там увидел синтаксис функциональных языков?

    Да вот же (из примера выше):

    if haystack.iter().any(|elt| elt.field == needle) {}

    >Но раст ведь до кучи ещё и не функциональный язык вовсе

    Он мультипарадигменный, да.

     
  • 4.148, Аноним (149), 14:41, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У раста 1 в 1 плюсовый синтаксис
     
     
  • 5.171, Проходил мимо (?), 08:08, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не один в один. Далеко не 1 в 1. Но похожих моментов действительно очень много.
     
  • 5.194, Аноним (186), 11:44, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    OCaml
     

  • 1.74, Аноним (74), 10:14, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Странно что не упомянули embassy - фреймворк для ембедовки на расте, вот он реально крут. Почти полностью на него перешел для чего-то более сложного чем ардуино.
     
  • 1.84, Аноним (85), 12:05, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Снова не включили интерфейс для работы с указателям каждый второй четверг, кроме случаев, когда четверг выходной или 3е число. Жду.
     
  • 1.93, Фнон (?), 12:50, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тут на форуме был человек, который учавствовал в разработке HAL (вроде бы) библиотек на расте.

    Было бы интересно услышать его мнение, как наверное самого разбирающегося.

    Друг, если тебя не затруднит, оставь свой комментарий.

     
     
  • 2.112, Аноним (9), 18:44, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > был человек, который учавствовал в разработке HAL (вроде бы) библиотек на расте.

    Помянул его сегодня блинами.

     

  • 1.108, Markx (?), 15:31, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Синтаксис просто нечитаем, даже мутант C++ смотрится в разы понятней
     
     
  • 2.134, Прохожий (??), 07:15, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ох уж эти эксперты...

    Из примеров выше.

    Rust

    #[test]
    fn test_inc() {
        assert_eq!(inc(1), 2);
    }

    C

    #include <assert.h>
    #include <stdint.h>
    int32_t inc(int32_t x) {
        assert(x != INT32_MAX);
        return x + 1;
    }

    #ifdef TEST
    int main() {
        assert(inc(INT32_MIN) == INT32_MIN + 1);
        assert(inc(0) == 1);
        assert(inc(INT32_MAX - 1) == INT32_MAX);
    }
    #endif

     
     
  • 3.174, Аноним (174), 08:50, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, плюсы и си читаются легче
     
     
  • 4.182, Прохожий (??), 09:52, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    :) Фанатизм во всей своей "красе". Как может читаться легче вот эта простыня, по сравнению с одной строкой кода?
     
  • 2.135, Прохожий (??), 07:17, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Или вот ещё, тоже из примеров выше

    '''c
    bool found = false;
    for (size_t i = 0; i < sizeof(haystack); i++) {
        if (strcmp(haystack[i].field, needle) == 0) {
            found = true;
            break;
        }
    }
    if (found) {}
    '''

    '''rust
    if haystack.iter().any(|elt| elt.field == needle) {}
    '''

     
  • 2.172, Проходил мимо (?), 08:14, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Подавляющее большинства кода на Rust выглядит понятным и достаточно легко читаемым. Чего нельзя сказать о последних генерациях Си++.
    Ваш же случай давным давно описал Крылов в басне "Лиса и Виноград".
     
     
  • 3.195, Аноним (186), 11:46, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если исключить откровенную манипуляцию автора, то его комментарий читается вот так:

    Подавляющее большинство кода на Rust выглядит плохо читаемым и менее понятным чем любой С++, кроме "последних генераций" (имелись ввиду самые свежие правки стандарта).

     
     
  • 4.196, Проходил мимо (?), 12:15, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Если исключить откровенную манипуляцию автора, то его комментарий читается вот так:
    > Подавляющее большинство кода на Rust выглядит плохо читаемым и менее понятным чем
    > любой С++, кроме "последних генераций" (имелись ввиду самые свежие правки стандарта).

    Голодная кума Лиса залезла в сад;
    В нём винограду кисти рделись.
    У кумушки глаза и зубы разгорелись;
    А кисти сочные, как яхонты, горят;
    Лишь то беда, висят они высоко:
    Отколь и как она к ним ни зайдёт,
    Хоть видит око,
    Да зуб неймёт.
    Пробившись попусту час целой,
    Пошла и говорит с досадою:
    «Ну, что́ ж! На взгляд-то он хорош,
    Да зелен — ягодки нет зрелой:
    Тотчас оскомину набьешь»

    Иван Андреевич Крылов, 1808 год.

     

  • 1.129, разраб (?), 03:05, 31/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    speakez tech разрабатывает фрэймворк на Fsharp под двойной лицензией который позволяет генерировать машинный код. Полностью в рамках функциональной парадигмы и разграниченных продолжений. посредством llvm mlir. По моему это имеет гораздо больший потенциал. Жаль что лицуха двойная.
     
     
  • 2.178, Прохожий (??), 09:15, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если вам нужна формальная верификация, для Rust, например, вот это сделали:

    https://github.com/creusot-rs/creusot


    Всё "в рамках функциональной парадигмы", потому что там трансляция в функциональный язык программирования идёт, насколько я понял.

     

  • 1.130, разраб (?), 03:39, 31/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/

    Fidelity Framework если кому интересно на гитхаб
     
  • 1.163, Феникс123 (?), 05:14, 01/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сколько unsafe было в реализации на Rust? Не нашел в статье.
     
     
  • 2.175, Прохожий (??), 08:59, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какая разница?
     
  • 2.176, Прохожий (??), 09:06, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для типичного "эксперта".

    Unsafe features:
    1. Dereference a raw pointer.
    2. Call an unsafe function or method.
    3. Access or modify a mutable static variable.
    4. Implement an unsafe trait.
    5. Access fields of unions.

    It’s important to understand that unsafe doesn’t turn off the borrow checker or disable any of Rust’s other safety checks: If you use a reference in unsafe code, it will still be checked. The unsafe keyword only gives you access to these five features that are then not checked by the compiler for memory safety. You’ll still get some degree of safety inside an unsafe block.

     

  • 1.173, Аноним (174), 08:49, 01/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Готовность? 0 :)
     
     
  • 2.177, Прохожий (??), 09:09, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то Volvo уже использует Rust в некоторых своих прошивках.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру