The OpenNET Project / Index page

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

Релиз языка программирования Rust 2024 (1.85)

21.02.2025 16:37

Опубликован релиз языка программирования общего назначения Rust 1.85, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Кроме штатного номера версии 1.85 выпуск обозначен как Rust 2024, что знаменует стабилизацию изменений, предложенных за последние три года. Редакция языка "Rust 2024" станет основой для наращивания функциональности в последующие три года, по аналогии с тем, как выпуск Rust 2021 стал базисом для развития языка в прошедшие три года.

Для сохранения совместимости разработчики могут использовать в своих программах метки "2015", "2018", "2021" и "2024", позволяющие привязать программы к срезам состояния языка, соответствующим выбранным редакциям Rust. Редакции были введены для разделения несовместимых изменений и настраиваются в метаданных cargo-пакетов через поле "edition" в секции "[package]".

Например, редакция "2021" включает стабилизированную на конец 2021 года функциональность и охватывает все дальнейшие изменения, не нарушающие совместимость. Редакция "2024" дополнительно включает нарушающие совместимость новшества, предложенные в текущем выпуске 1.85 и утверждённые для реализации в будущем. Кроме самого языка редакции также учитывают состояние инструментария и документации. Для автоматической адаптации кода к новой редакции языка может использоваться команда "cargo fix".

Основные несовместимости, зафиксированные в Rust 2024:

  • Изменено поведение при захвате параметров в "impl Trait", если не используется новый синтаксис "use<..>", определяющий информацию о скрытых типах. В Rust 2024, если не используется "use<..>", все параметры в области видимости неявно захватываются. Если необходимо ограничить захват параметров, следует использовать "use<..>", например, "impl Trait + use<'x, T>" указывает, что в скрытом типе разрешено использовать только параметры "x" и "T".
  • В выражениях "if let" изменена область видимости временных значений, полученных в результате выполнения выражения. При выполнении "if let $pat = $expr { .. } else { .. }" временные значения, полученные в блоке $expr, теперь будут удалены до переключения на блок "else", а не после обработки "else { .. }".
  • Изменена область видимости временных значениях в хвостовых выражениях, завершающих выполнение функции, блока или замыкания. Подобные значения теперь сбрасываются до локальных переменных (раньше они могли сохраняться дольше, чем сам блок и определённые в нём локальные переменные).
  • Запрещены некоторые неоднозначно трактуемые разработчиками варианты применения mut, ref, ref mut, & и &mut в шаблонах, например, вместо "let [x, mut y] = &[(), ()];" следует писать "let &[ref x, mut y] = &[(), ()];".
  • Блоки "extern" обязательно должны помечаться ключевым словом "unsafe".
  • Атрибуты export_name, link_section и no_mangle должны помечаться ключевым словом "unsafe".
  • Включено по умолчанию предупреждение "unsafe_op_in_unsafe_fn" для проверки обрамления блоками "unsafe {}" кода, используемого в unsafe-функциях.
  • Запрещено выставлять ссылки на элементы, определённые как "static mut".
  • Lint-проверка "never_type_fallback_flowing_into_unsafe" по умолчанию переключена в режим "deny".
  • В спецификатор "expr" добавлена поддержка выражений "const" и "_".
  • Lint-проверка "missing_fragment_specifier" переведена в режим вывода ошибки.
  • Зарезервировано ключевое слово "gen", которое в будущем планируют использовать для генераторов.
  • Зарезервирован стиль определения строк '#"foo"#' и токены '##'.
  • В стандартной библиотеке в число автоматически импортируемых типажей добавлены Future и IntoFuture. В структуру "Box<[T]>"добавлен типаж IntoIterator. Помечены ключевым словом unsafe функции std::env::set_var, std::env::remove_var и std::os::unix::process::CommandExt::before_exec.
  • В пакетном менеджере Cargo включён по умолчанию новый механизм обработки зависимостей, выбирающий версии зависимых компонентов с учётом совместимости с версиями компилятора Rust, заявленными как минимально поддерживаемые проектом (MSRV, Minimum Supported Rust Version). Удалены некоторые устаревшие ключи в Cargo.toml. В зависимости запрещено использование режима "default-features = false", если он унаследован от пакета со значением "default-features = true" или без параметра "default-features".
  • В Rustdoc тесты doctest объединены в один исполняемый файл. При включении doctest через "include_str!" файловый путь теперь вычисляется относительно Markdown-файла, а не файла с кодом.
  • В Rustfmt предложена концепция редакций стиля форматирования. Изменена логика сортировки идентификаторов.

Новшества Rust 1.85:

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

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



  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Выпуск Rust 1.84. Ядра Tock и Vekos, написанные на Rust. Диалект Mini-C
  3. OpenNews: Проект Bottles будет переписан на языке Rust с использованием libcosmic
  4. OpenNews: Опубликован эмулятор QEMU 9.2.0 с поддержкой Rust и Vulkan
  5. OpenNews: Инициатива по верификации стандартной библиотеки Rust
  6. OpenNews: C++ Alliance продвигает в C++ механизмы безопасной работы с памятью, опробованные в Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62769-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (141) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 16:56, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    К сожалению, try блоки так и не добавили. Сколько лет уже с такой мелочью тянут.
     
     
  • 2.9, Карлос Сношайтилис (ok), 17:01, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Сможешь описать, кратко, какая функциональность будет привнесена try блоками?
     
     
  • 3.11, Жироватт (ok), 17:04, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы если у падает растовый код, то падал осмысленно, а не в панике.
    Хотя...
    Может боятся, что будет try{ unsafe{ try{ ... } } } ?
     
     
  • 4.23, Соль земли (?), 17:23, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Rust итак обязывает обрабатывать все возможные ситуации поведения кода. Добавить смысла можно через match возможных значений.
     
     
  • 5.92, Аноним (-), 21:14, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Rust итак обязывает обрабатывать все возможные ситуации поведения кода.
    > Добавить смысла можно через match возможных значений.

    И как ты корректно panic() в хрусте обрабатывать собрался? В ядре по этому поводу некую хтонь try* сделали. Когда оно таки может быть - null - и надо - проверять. Чем это от сишки отличалось - я так и не понял, семантика та же самая, чуда не произошло.

    А try видимо - чтобы попробовать вот что-то такое менее #$%нуто делать. Но читать дохлых страусов ДО того как кодить - видимо не модно.

     
  • 4.30, Аноним (-), 17:35, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Чтобы если у падает растовый код, то падал осмысленно, а не в панике.

    Так он осмысленно падает. Даже в лог может записать где и что.
    А вот продолжать выполнение программы после паники нельзя - никто не знает что произошло, где память в ансейфе попортили, т.е. в общем стейт неконсистентный.

    А если стейт все еще консистентный, то это не паника и вы что-то не так сделали в обработке ошибки.

     
     
  • 5.60, Аноним (60), 19:11, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Даже в лог может записать где и что.

    Это прям в ядре самого языка такое? А если у меня нет открытого TTY?

     
     
  • 6.63, Аноним (63), 19:18, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Пиши в файл, раз tty нет. Что, и файлов нет? Тогда мигай диодом: три коротких, три длинных, и снова три коротких. И сопроводительной документации напиши, мол, когда так мигает — запомните что вы делали и звоните по номеру 1-800-VSYO-UPALO-MAMA-POMOGITE.

     
  • 5.104, Аноним (104), 21:33, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > продолжать выполнение программы после паники нельзя

    Почему нельзя ограничить панику только той частью кода, которая выполняет одну конкретную задачу? Прибили тред (или фибер, или что там у раста), выдали варнинг, почистили память, позакрывали или вернули в пул всё, что было открыто - а всё остальное продолжает работать.

     
     
  • 6.132, Аноним (-), 01:24, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Почему нельзя ограничить панику только той частью кода,
    > которая выполняет одну конкретную задачу?

    А вы умеете изолировать память одной конкретной задачи от всех остальных?
    Как вы будете гарантировать что вы не испортили что-то еще?
    Это как раз та самая Unrecoverable Errors.

    doc.rust-lang.org/book/ch09-01-unrecoverable-errors-with-panic.html
    doc.rust-lang.org/book/ch09-03-to-panic-or-not-to-panic.html

    Если же вы можете обработать ошибку и напр. перезапустить операцию, то просто не кидайте panic, а верните Result и обработайте ошибку.

    Ну и в теории вы можете переписать panic handler.

     
     
  • 7.142, YetAnotherOnanym (ok), 05:31, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А вы умеете изолировать память одной конкретной задачи от всех остальных?

    А с самого начала проектировать язык так, чтобы одна задача не портила данные остальных? Раз уж Раст претендует на безопасную работу с памятью. Эрланг же как-то умеет. А то получается, что программе на Расте нельзя доверять больше одной задачи.

     
     
  • 8.170, Аноним (170), 17:31, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты имеешь глобальную кучу и все задачи имеют к ней доступ, то любая из них ... текст свёрнут, показать
     
     
  • 9.173, Аноним (104), 18:10, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-то у Армстронга и компании ещё в 80-е годы прошлого века получилось спрое... текст свёрнут, показать
     
  • 6.168, Аноним (-), 15:31, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему нельзя ограничить панику только той частью кода, которая выполняет одну конкретную задачу?

    Почему нельзя? Есть catch_unwind. Со своими особенностями правда, он не гарантирует, что разматывая стек, он может снимать со стека не-растовые фреймы, и RAII он тоже не гарантирует. Я в детали не вдавался, мне как-то нужды нет, но всякие там рантаймы типа tokio вполне устойчивы к тому, что какой-нибудь гринтред паниканёт.

     
  • 3.14, Аноним (2), 17:09, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смешивание в одной функции работу с разными библиотеками, возвращающими разные ошибки.

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

     
     
  • 4.46, pashev.ru (?), 18:00, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    cargo add thiserror
     
     
  • 5.78, Аноним (2), 20:02, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это тут причем? thiserror структурированные ошибки превращает в строковые, уничтожая возможность их последующего анализа. Весьма узкоспециализрованная штука.
     
     
  • 6.116, freecoder (ok), 23:32, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Совершенно неверно.
     
  • 6.146, morphe (?), 07:39, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ты перепутал его с anyhow, thiserror лишь упрощает создание идиоматических ошибок
     
  • 4.135, Zeke Fast (?), 03:05, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    anyhow?
     
  • 2.12, Жироватт (ok), 17:06, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По хорошему, надо бы еще в хруст добавить монады.
    Язык без монад - слишком примитивный и непригодный для использования язык.
    Только монады спасут вашу память от проверяльщика боровов, который спасает её от указателей.
     
     
  • 3.24, Аноним (24), 17:23, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Хорошая идея. Завалить раст мусором фич!
     
  • 3.27, Аноним (-), 17:30, 21/02/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 3.130, warlock66613 (ok), 00:39, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А с монадами язык получается очень сложный. Я люблю Haskell, но я не вижу большой потенциальной пользы от монад в Rust.
     
  • 3.136, Zeke Fast (?), 03:08, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    GAT-ы вам в помощь! Когда с лайфтаймами монадить научитесь, может и типы вам дадут :)
     
  • 3.167, Аноним (167), 14:54, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А давайте ещё и турку к нему прикрутим.
     
  • 2.22, Аноним (22), 17:17, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Много чести. Проще игнорировать.
     
  • 2.69, Аноним (69), 19:37, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    1. unwrap() или expect("message") не обрабатывает ошибку и приводит к панике, если она возникает;
    2. "?" бросает ошибку выше по стеку;
    3. match my_result {...} позволяет её обработать прямо здесь.

    try-catch - это другая модель обработки ошибок, её сделают в другом языке. В этом языке такая модель, которую я описал выше.

     
     
  • 3.99, Аноним (-), 21:21, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > try-catch - это другая модель обработки ошибок, её сделают в другом языке.
    > В этом языке такая модель, которую я описал выше.

    А почему try в experimental фичах тогда УЖЕ висит? Не далее как вчера кто-то тут ссыль пульнул - и там разрисованы кейворды и проч были. И указание что - вот - try - experimental. Т.е. оно у них уже по идее есть?!

     
     
  • 4.147, morphe (?), 07:42, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там смысл другой
    try не про ловлю паник (для ловли паник есть catch_unwind)

    try про создание ограниченного скоупа в котором оператор ? работает.

    let result = try {
      fallible_op()?;
    };
    result получит ошибку от fallible_op, в то время как без блока try её только из функции вернуть выйдет

     
  • 2.70, Аноним (70), 19:44, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а они там не нужны, вместо них Result, просто надо писать в несколько другом стиле, постоянно работая "цепочками" из map/and_then/... над Result-ами, а unwrap только в самом конце. Результат тот же (unwrap там, где нужен catch), даже гибче (обработка не ограничена путем по стеку, Result можно передать куда-то и там unwrap-нуть).
     
  • 2.84, Илья (??), 20:41, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > К сожалению, try блоки так и не добавили. Сколько лет уже с такой мелочью тянут.

    А должны? Это же ООП в чистом виде, если ты их хочешь, тебе скорее в c# или kotin. На мой взгяд траями можно всю концепцию раста разломать

     
     
  • 3.97, Аноним (-), 21:19, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А должны? Это же ООП в чистом виде, если ты их хочешь,

    Чего такого объектного в try/catch? Это просто попытка выполнить некий блок, с каким-то действом если "ну значит не прокатило". Само по себе это никак не обязано быть завязано на объекты.

     
     
  • 4.144, Аноним (144), 07:01, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В тот же Forth ещё в стандарт 95 года добавлено было, а он сроду не объектно-ориентированный.
     
  • 3.153, Аноним (-), 11:29, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Такие заявления, которые причисляют к ООП фишки, которые ни разу ни ООП, я подоз... большой текст свёрнут, показать
     
  • 2.109, laindono (ok), 22:09, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Эти блоки не нужны. Паники не являются исключениями не смотря на сходство.

    Если схожий механизм необходим, то есть https://doc.rust-lang.org/stable/std/panic/fn.catch_unwind.html Впрочем, очевидно, он работает только если паники реализованы с раскруткой стека. Если паника реализована через аварийное завершение программы, то её невозможно поймать. В этом и заключается разница между исключениями и паниками кстати.

     
  • 2.137, Аноним (137), 03:24, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не очень понятно, что такое "try блоки". Панику ловить и так есть функция. Обычные же ошибки обрабатываются через Result<T,E>.
     

  • 1.5, Bottle (?), 16:59, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спецификации как не было, так и нет до сих пор, вместо этого "ну типа, держитесь на старой версии, что баг, что нет - неважно, мы/они не определились".
     
     
  • 2.17, Карлос Сношайтилис (ok), 17:13, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    О! Раст-бинго работает!
    Как раз в этом тренде перечислял список гениальных вопросов по новой версии: https://www.opennet.ru/openforum/vsluhforumID3/136086.html#161

    Но нам, конечно очень интересно, в очередной раз, послушать про стандарты С и С++, с извечной оговоркой: "ну да, их никто полностью не поддерживает, но зато есть бумага!"

     
     
  • 3.55, Маняним (?), 18:56, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >"ну да, их никто полностью не поддерживает,

    gcc/clang, неа? Они ещё поддерживают переключение между стандартами. А также компиляторы имеют вменямые мейджер версии, которые можно свободно включать в реквайерментс, как и версию стандарта.
    > но зато есть бумага!"

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

     
     
  • 4.126, Карлос Сношайтилис (ok), 00:23, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > gcc/clang, неа?

    Неа. Ни тот ни другой не поддерживает все стандарты полностью. То есть стандарты существуют только на бумаге.

    > В промышленной разработке софта бумага важнее всех растоманов вместе взятых.

    Согласен целиком и полностью: бумаги важны. Но какое отношение это имеет к стандартам С/++?

    У раста нет стандарта, но сертификацию на использование в критических системах он успешно проходит, уже можно использовать для разработки в отраслях: автомобили, промышленность, медицина. Остальное: в процессе. И никакие мисры для него придумывать не пришлось.

     
     
  • 5.152, Аноним (152), 10:27, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > И никакие мисры для него придумывать не пришлось.

    держи пустомеля

    https://www.sae.org/standards/content/ja1020/

     
  • 2.18, Карлос Сношайтилис (ok), 17:13, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Кстати, а как ты умудрился написать комментарий на этом сайте? Ведь нет же стандарта на интернет! Он как-то работает, а стандартов - нетути. Загадка!
     
     
  • 3.36, Аноним (36), 17:44, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну так тут одна версия сайта. А раст это микс.
     
     
  • 4.87, Карлос Сношайтилис (ok), 21:00, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Браузеров много, сайтов много, всё работает, стандартов нет. Как так?
     
     
  • 5.94, Аноним (36), 21:17, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как нет? HTML 5 как пример.
     
  • 4.100, Аноним (-), 21:22, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну так тут одна версия сайта. А раст это микс.

    Не, это соль. Вон тут гражданин - с подходящим ником как раз.

     
  • 3.58, Аноним (58), 19:00, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Как это нет стандарта на интернет? Больше тысячи рфсишек, иетф тот-же.
     
     
  • 4.75, Аноним (70), 19:51, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вот именно, больше тысячи. И ни одна не соблюдается на 100%.

    Впрочем, у RFC статус рекомендаций

     
     
  • 5.79, Аноним (-), 20:03, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вот именно, больше тысячи. И ни одна не соблюдается на 100%.

    Всю тысячу посчитал?

    > Впрочем, у RFC статус рекомендаций

    Прям так и написано? "Вот РФЦ раста, но можете их не выполнять" ?
    Или ты просто сочиняешь сказки?

    ps и не надо пугать RFC, я начитался всяких начиная от
    rfc822 - который, кстати
    STANDARD FOR THE FORMAT OF
    ARPA INTERNET TEXT MESSAGES
    [1]

    до RFC 1122, который тоже Status: INTERNET STANDARD [2]

    [1] datatracker.ietf.org/doc/html/rfc822
    [2] rfc-editor.org/info/rfc1122

     
     
  • 6.102, Аноним (-), 21:24, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > до RFC 1122, который тоже Status: INTERNET STANDARD [2]

    Мне больше RFC 1149 нравится. Ну а что, стандарт интернета. Регламентирует IPoAC.

     
  • 3.114, Аноним Анонимович Анонимов (?), 22:59, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ведь нет же стандарта на интернет!

    IEEE, ICANN, IANA, IETF, w3…

     
  • 2.64, Аноним (63), 19:21, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Отсутствие спецификации как-то не помешало на сишке операционные системы писать в прод, параллельно с развитием этой самой сишки. Авось и Расту не помешает.
     
  • 2.74, Аноним (70), 19:50, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Пока компилятор только один, в спецификации нет никакого смысла.

    Ну напишет кто-то спецификацию, которой единственный существующий компилятор в чем-то не соответствует. И что? Кому станет легче от того, что спецификация есть, и можно смело говорить, что это баг, а не фича? Код от этого компилироваться правильно начнет?

     
  • 2.76, Аноним (-), 19:57, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Спецификации как не было, так и нет до сих пор,

    Хорошего кексперта издалека видно.

    Спецификация есть в виде RFC.
    Это распространенный метод, например куча интернет стандартив именно ста стандартизированы.

    Стандарта ИСО (на который так фаломорфируют сишники) - нету.
    Но он пока и не нужен.

    Напомню что С появился в 78, а стандарт сделали в 89.
    И спокойно переписали юникс без каких либо стандартов.

    > вместо этого  "ну типа, держитесь на старой версии, что баг, что нет - неважно, мы/они не определились".

    Хватит пороть чушь. Ты же только позоришься.


     
     
  • 3.101, Аноним (60), 21:24, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Напомню что С появился в 78, а стандарт сделали в 89.
    > И спокойно переписали юникс без каких либо стандартов.

    Это были лохматые годы более четверти века назад. С тех пор стандарты для ЯП стали обыденностью и выходили регулярно. Поэтому такая отмазка в отношении раста не катит - он не появился на заре компьютерной эпохи, не был первым или второым высокоуровневым ЯП и т.д.

     
     
  • 4.131, warlock66613 (ok), 00:48, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > С тех пор стандарты для ЯП стали обыденностью

    Ну вот можете считать, что уже перестали. Новые языки делаются иначе. Окончательно ненужность и даже вредность стандарта для современного языка стала очевидна по итогу ситуации с Haskell, где в рамках карго-культа стандарт таки сделали, но в результате все пишут не на "стандартном Haskell", а на нормальном Haskell для которого есть компилятор.

     
  • 3.166, Аноним (167), 14:51, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Напомню что С появился в 78

    Чаво, -ть?

     
  • 2.143, Аноним (143), 06:18, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мне кажется их из Мазилы выгнали в том числе. что спецификации не могли сформулировать.
    Так и остался "Кружок реализаций того, что знают и видят"  
     

  • 1.6, Аноним (60), 16:59, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Реализован второй уровень поддержки платформы powerpc64le-unknown-linux-musl. Второй уровень поддержки подразумевает гарантию сборки.

    А причем тут раст, если это делается исключительно средствами LLVM?

     
     
  • 2.32, Аноним (-), 17:38, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При чем тут llvm, если llvm только перегоняет llvm-ir в машинные коды?
    А сам llvm-ir генерирует rustc через цепочку преобразований.

    Ну и уровень поддержки - это в первую очередь тестирование.
    А оно делается на стороне раста, а не llvm.

     
     
  • 3.110, Аноним (60), 22:16, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А вот прям в новости написано буквально следующее: "Второй уровень поддержки подразумевает гарантию сборки. ". А сборкой под целевую платформу в расте кто занимается? Бинго! Это C++ный LLVM.
     

  • 1.7, Аноним (7), 17:00, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем отличается от c++ с трёх летним циклом стандартов?
     
     
  • 2.19, Карлос Сношайтилис (ok), 17:14, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как собрать приложение на C++ из исходников, если приложение состоит из компонентов, которые поддерживают разные версии стандарта?
     
     
  • 3.35, Аноним (35), 17:43, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В большинстве случаев - просто собрать эти компоненты в своей версии стандарта. Как вариант - можно собрать в последней версии. Изменения C++, ломающие обратную совместимость, довольно редки, и на практике пости не роляют.
     
     
  • 4.38, MT (ok), 17:46, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > пости не роляют

    ?

     
     
  • 5.42, Аноним (42), 17:52, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    у человека фаерфокс, а там код на расте так вмешивается в свою критику
     
  • 3.61, Александр (??), 19:13, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Легко. Собираешь а разные библиотеки, потом линкуешь вместе
     
     
  • 4.89, Карлос Сношайтилис (ok), 21:02, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тремя компиляторами? Легко?
     

  • 1.13, Аноним (13), 17:06, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Почему на российском рынке больше востребован Го чем Раст?
     
     
  • 2.28, r2d0 (?), 17:30, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Действительно, ведь го должен быть востребованнее больше всего в Голланди, а rust в Russia.
     
     
  • 3.53, Аноним (13), 18:54, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно Голандию и назвали в честь Го, кто знает.
     
  • 3.117, freecoder (ok), 23:36, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Или в Сербии (rs)
     
  • 2.66, Аноним (66), 19:30, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На го написано много проектов, а на расте ни одного большого проекта нет.
     
     
  • 3.118, freecoder (ok), 23:40, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что в Rust принято поощрять использование свободных библиотек (крейтов) в зависимостях. Поэтому существует очень много небольших крейтов, которые Cargo умеет автоматически подтягивать к проекту и разруливать версии. Целевой проект при этом также получается маленьким, потому что он большую часть функционала берёт из многочисленных библиотек.
     
     
  • 4.145, Cucumber (?), 07:12, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Разруливать версии

    Только если первая значащая цифра версии не 0. Из-за этой херни в одном проекте может быть десяток дублей таких жирнючих крейтов как rand, openssl, rusttls, libc.

     
  • 2.68, Аноним (68), 19:35, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Потому что большая часть разработки это плюс-минус перекладывание JSON по HTTP для чего Golang идеальный инструмент
     
  • 2.138, Аноним (137), 03:28, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В раст выше порог вхождения, а программисты на Го - это те же самые программисты на Жабе, хоп хоп и в продакшен. При этом и Го и Жаба платят за это потерей эффективности по ресурсам, но это обычно мало кого заботит.

    Блин, ты конечно задал вопрос. Вон, люди до сих пор на прости господи Питоне коммерческие сервисы делают. Уж казалось бы, самое дно. А делают же. Потому что пофиг, деньги на железо есть, пользователей не так много, и так сойдёт.

     

  • 1.21, Уууууъъъ (?), 17:16, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Мне не нравится, что релизы Rust выходят так часто. C C++ все ясно — он обновляется раз в несколько лет.

     
     
  • 2.25, Карлос Сношайтилис (ok), 17:25, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Релизы раста: выходят раз в несколько лет
    Релизы C++: выходят раз в несколько лет

    Аноним с опенета: релизы раста выходят слишком часто, то ли дело С++!

     
     
  • 3.40, Аноним (-), 17:48, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Релизы C++: выходят раз в несколько лет

    Ну так это сейчас. А аноним возможно знает только про переход с C++03 на C++11.
    Пссс... там еще есть 14, 17, 20, 23 и будущий 26. И не сложно заметить некую закономерность в этих числах - новый стандарт каждые 3 года.

    А теперь попробуй посмотреть на rust editions - 2015, 2018, 2021, 2024.
    Что мы тут видим? Ну, постарайся подумать!

     
  • 2.29, Аноним (-), 17:32, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ой, знал бы ты как часто веб-технологии часто обновляются. Их хоть каждый день можно учить и всё-равно знания будут устаревшими.
     
  • 2.119, freecoder (ok), 23:44, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Редакции Rust выходят раз в три года. Если для вас это слишком часто, то возможно вы просто стареете. А вот минорные улучшения языка выходят стабильно раз в шесть недель. И это сделано специально так, по графику, который позволяет держать в тонусе аудиторию опеннета.
     
     
  • 3.125, Аноним (125), 00:01, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > по графику, который позволяет держать в тонусе аудиторию опеннета.

    Не вводите людей в заблуждение - график проплачивается спонсорами (Gazprom, Gasunie, BASF) в рамках исследования новых технологий получения биогаза. Ничего личного, just business.

     
     
  • 4.129, Аноним (-), 00:29, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не вводите людей в заблуждение - график проплачивается спонсорами
    > (Gazprom, Gasunie, BASF) в рамках исследования новых технологий
    > получения биогаза. Ничего личного, just business.

    Так вот кто виноват в глобальном потеплении!
    Я так и знал!

     
  • 3.128, Карлос Сношайтилис (ok), 00:29, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > выходят стабильно раз в шесть недель [что] позволяет держать в тонусе аудиторию опеннета.

    Надо чаще – раз в неделю, по пятницам. Как на этой неделе. Было бы прекрасно!

     

  • 1.26, Соль земли (?), 17:28, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Теперь можно писать

    [package]
    edition = '2024'

     
  • 1.31, Уууууъъъ (?), 17:38, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Мне не нравится, что надо его ставить через rustup, с Golang всё проще!

    rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.0.linux-amd64.tar.gz

    export PATH=$PATH:/usr/local/go/bin

    Мне не нравится, что Rust и его экосистема на моём лэптопе занимает большое пространство, Golang меньше и шустрее!

     
     
  • 2.33, Аноним (-), 17:41, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > с Golang всё проще!

    А как в Golang решается вопрос с несколькими разными версиями го?
    Напр. тебе нужен go 1.24 для текущего проекта, но еще нужен go 1.15 для старого.
    Есть утилита для выбора и удобного переключения?

     
     
  • 3.161, OpenEcho (?), 12:29, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть утилита для выбора и удобного переключения?

    https://go.dev/doc/manage-install

     
  • 2.37, Уууууъъъ (?), 17:44, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для того, чтоб управлять несколькими версиями Go есть https://asdf-vm.com/
     
  • 2.121, freecoder (ok), 23:45, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы правы, приведённую вами курдыберду запомнить проще, чем rustup update.
     
     
  • 3.141, Уууууъъъ (?), 04:43, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если с памятью все в порядке, то, конечно, проще.

     

  • 1.39, Аноним (39), 17:47, 21/02/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     
  • 1.43, Аноним (43), 17:58, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не надо нам эти ваши ни Rust 1.85, ни Rust 2024.
    Rust 2502 - чётко и понятно.
     
     
  • 2.52, Аноним (52), 18:44, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В 2502 всё ещё помнят про Rust?
     
     
  • 3.107, Аноним (43), 21:55, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это ещё ладно.
    А вот если бы руст релизился каждый день, то был бы Rust 250220.
    И главное сортировать нормально.
    Не эти ваши:
    Rust 1.1
    Rust 1.10
    Rust 1.11
    Rust 1.2

    А то бывает сложно математикам вкурить, что кернель 6.8 древнее, чем 6.12.

     

  • 1.49, Аноним (49), 18:13, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Дабы тема не разросталась как предыдущая не ну реально я уже устал ржать с убо... большой текст свёрнут, показать
     
     
  • 2.57, Аноним (57), 18:57, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Я так и не вкурил, как мне обработать массив, созданный в другом объекте. Бесконца морочиться со сменой владения? Но тогда производительность будет ниже плинтуса.

     
     
  • 3.59, Ан Оним (?), 19:06, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Безопасность... безопасность ...
     
  • 3.77, чатжпт (?), 19:59, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Производительность будет ниже при копировании данных, смена владения ничего не стоит
     
     
  • 4.88, Аноним (57), 21:01, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Как так ничего? Инструкция есть, но тактов процессора не потребляет? Магия поди.
     
     
  • 5.111, Аноним (111), 22:18, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Оно при компиляции проверяется.
     
  • 5.115, Аноним (125), 23:06, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Как так ничего? Инструкция есть, но тактов процессора не потребляет? Магия поди.
    >> смена владения
    > Инструкция есть, но тактов процессора

    Местные Ж(опо)Скритошники совсем не палятся, млин.


     
  • 3.91, Карлос Сношайтилис (ok), 21:11, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    "владение" – это понятие уровня разбора AST, даёт возможность компилятору применить специфические оптимизации. В худшем случае код будет аналогичен коду на С, но если компилятор найдет определенные паттерны – схлопнет в более оптимальный.
     
  • 3.122, freecoder (ok), 23:48, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Передавайте массив по мутабельной ссылке.
     
     
  • 4.127, Аноним (-), 00:27, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Передавайте массив по мутабельной ссылке.

    Так его же позволят передать только в одно место!
    А хочется в него писать сразу из разных функций.
    И желательно из разных потоков. Всегда в так делаю и компилятор не ругается!

     
  • 3.158, Аноним (-), 11:38, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > как мне обработать массив, созданный в другом объекте
    > Я так и не вкурил

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

    > Бесконца морочиться со сменой владения?

    Во-первых, не очень ясно, что есть "смена владения", во-вторых, овнершипы -- это понятия из компайл-тайма, на производительность они не влияют.

     
  • 3.162, Аноним (137), 12:30, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Всё это объясняется во первых строках официальных и неофициальных учебниках по... большой текст свёрнут, показать
     
  • 2.72, Аноним (72), 19:46, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > каждая версия компилятора несовместима с предыдущей

    Ну и зачем так делать?

     
     
  • 3.93, Карлос Сношайтилис (ok), 21:16, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну и зачем так делать?

    Вот именно: зачем так делать? Но в большинстве ЯП нельзя использовать в одной кодовой базе конструкции из разных редакций стандарта языка. Например, стало слово "await" ключевым – всё, весь код, где были переменные с этим именем, перестает компилироваться.

    Хорошо что в расте не так.

     
  • 2.90, Карлос Сношайтилис (ok), 21:04, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо! Совсем забыл про этот пост ))
     

  • 1.71, pavel_simple. (?), 19:45, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > let &[ref x, mut y] = &[(), ()];

    лучший синтаксис который я видел. Даже перловка обложенная экспешинами не доставляла столько

     
     
  • 2.80, Аноним (60), 20:14, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    согласен, но тут не хваает  апострофов
     
  • 2.95, Карлос Сношайтилис (ok), 21:17, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это ты ещё на С/С++ не писал, похоже...
     
     
  • 3.134, Нуину (?), 01:44, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > С/С++

    Это что за язык такой?

     
     
  • 4.172, Аноним (-), 18:05, 22/02/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 3.164, Аноним (167), 14:45, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В C++, разве что, угловые скобочки могут кого-то, незнающего про шаблоны, смутить.
     
     
  • 4.174, Аноним (174), 18:16, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В C++, разве что, угловые скобочки могут кого-то, незнающего про шаблоны, смутить.

    https://blog.reverberate.org/2013/08/parsing-c-is-literally-undecidable.html

    Синтаксис шаблонов в C++ ущербен by design.

     
  • 2.106, Аноним (106), 21:47, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы, видимо, перла никогда не видели, а ваш "опыт" базируется на том, что краем уха слышали об однострочниках и регулярках. Сам по себе перл имеет очень читабельный синтаксис.
     
     
  • 3.159, Аноним (-), 11:55, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мой опыт включает ковыряния в скриптах на перле, и допиливание их под мои нужды ... большой текст свёрнут, показать
     
  • 2.112, Аноним (57), 22:44, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вот так нада писать:

    return [[([...[new TextDecoder().decode(new Uint8Array(this.#data.match(/.{3}/g)))][0]].reverse().join(''))][0]][0];

     
  • 2.123, freecoder (ok), 23:51, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это искусственный пример для демонстрации новой фичи паттерн-матчинга. В реальности вы такой код не увидите (ссылка на массив, два элемента которого являются пустыми кортежами).
     
     
  • 3.140, rrgbv (ok), 04:05, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это всё равно не отменяет того, что код на Rust действительно тяжело воспринимать на глаз и читать, по крайней мере мне. По ощущениям, язык задействует каждую клавишу клавиатуры, а комбинации различных символов иногда вызывают желание закрыть и больше никогда в эту сторону не смотреть
     
     
  • 4.150, Аноним (150), 10:02, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не сложнее чем плюсы читать, но оба сложнее читать чем какой-нибудь go. С python двояко, м одной стороны выглядит просто, но с другой может за простотой быть скрыта большая магия, в которой тяжело разобраться с разбега если что-то пошло не так.

    А вы с каким языком сравниваете?

     
  • 3.160, Аноним (-), 12:05, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, таплы теперь кортежи Не прекращаю поражаться надмозгам, которые превосходя... большой текст свёрнут, показать
     
  • 2.139, Аноним (137), 03:37, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты написал какой-то бред, и усмехаешься на тем, что это - бред. Молодец, показал этим растоманам, знай наших!

    На самом деле по-нормальному это выглядит так:

        let [a, b] = [1, 2];
        println!("{}, {}", a, b);

    Выведет:

        1, 2

    То есть это деконструкция массива. Тоже самое можно делать с туплами. Очень удобно.

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

     
     
  • 3.149, Cucumber (?), 09:50, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Автор не остроумный, автор просто привёл минимальный пример переусложненного паттернматчинга, который действительно не получается понять и который был запрещён в новой редакции языка. А следом уже вот этот аналог, который так же делает паттерн-матчинг этого &массива совмещённый оборачиванием в ссылки неизменяемую и изменяемую.
     

  • 1.82, Аноним (39), 20:35, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    При использовании Rust можно будет оставить в прошлом такие проблемы, как обращение к памяти после её освобождения, выход на границу буфера (частично), некорректное освобождение ресурсов при обработке ошибок и забытые проверки возвращаемых кодов ошибок, что позволит мэйнтейнерам сосредоточиться на реальных ошибках, таких как состояния гонки и проблемы с логикой, а не рассеивать при рецензировании внимание по мелочам.
     
     
  • 2.113, Аноним (57), 22:47, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а на очередную закорючку раста внимание не рассеивается?
     

  • 1.83, Нуину (?), 20:40, 21/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Опять до тучи изменений, притом даже в базовом синтаксисе. Зачем такой язык в ядре?
     
     
  • 2.85, Аноним (39), 20:55, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Крепись, ядро УЖЕ переписываются с небе9опасного С на безопасный раст.
     
     
  • 3.86, Нуину (?), 20:59, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Крепись, ядро УЖЕ переписываются с небе9опасного С на безопасный раст.

    Точно безопасный? https://github.com/Speykious/cve-rs

    Точно-точно? https://github.com/rust-lang/miri/?tab=readme-ov-file#bugs-found-by-miri

    Ну не может такого быть же. Все говорят же безопасный, а тут такое https://github.com/rust-lang/rust/issues/25860

     
     
  • 4.96, Аноним (39), 21:18, 21/02/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 4.98, Карлос Сношайтилис (ok), 21:20, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Точно безопасный?

    Точно.
    А ссылки твои даже здесь, на опенете, уже разобрали по полочкам и ответили почему, несмотря на их наличие, Раст всё ещё точно-точно безопасный.

     
     
  • 5.120, Нуину (?), 23:45, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Точно безопасный?
    > Точно.
    > А ссылки твои даже здесь, на опенете, уже разобрали по полочкам и
    > ответили почему, несмотря на их наличие, Раст всё ещё точно-точно безопасный.

    На вере далеко не уедешь.

     
  • 3.148, Аноним (148), 09:07, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну чтож, дополним лозунг "Stable API is nonsece!" лозунгом "Stable syntax is nonsence!"
     
  • 2.124, freecoder (ok), 23:54, 21/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А какие изменения в базовом синтаксисе вы имеете ввиду? ref и mut в паттернах? Так они с самого начала там, просто раньше было больше исключений, теперь всё выглядит более консистентно.
     
     
  • 3.133, Нуину (?), 01:43, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В выражениях "if let" изменена область видимости временных значений
     
  • 2.155, mos87 (ok), 11:32, 22/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Запомни %USERNAME%! Это - не рак, это развитие!
     

  • 1.175, Ан Оним (?), 20:06, 22/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Rust - язык повышенной надёжности, в своей области он, может быть и хорош, но для задач обычной надёжности программировать на нём слишком накладно будет. И уж, конечно, в любительских проектах общественной разработки ему не место.
     

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



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

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