The OpenNET Project / Index page

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

Релиз языка программирования Rust 1.27

22.06.2018 13:08

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

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

В подготовке нового выпуска принял участие 131 разработчик. Основные новшества:

  • Добавлена поддержка параллельной обработки данных c использованием инструкций SIMD. В разряд стабильных переведены модули std::arch::x86 и std::arch::x86_64 (std::arch::arm пока остаётся экспериментальным), предоставляющие доступ к процессорным инструкциям SIMD, для определения поддержки которых предложены макрос "is_x86_feature_detected", атрибут '#[target_feature(enable="")]' и проверочная конструкция '#[cfg(target_feature = "...")]'. К инструкциям можно обращаться напрямую без выноса логики их задействования на плечи компилятора. Например, можно подготовить несколько вариантов обработчиков функции, один из которых использует AVX2, а другой применяется на системах без поддержки SIMD:
    
       fn foo() {
           #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
           {
               if is_x86_feature_detected!("avx2") {
                    return unsafe { foo_avx2() };
               }
           }
           foo_fallback();
       }
    

    В настоящее время для вызова SIMD в std::arch предлагаются только низкоуровневые примитивы, но в будущих выпусках ожидается появление высокоуровневого интерфейса std::simd, который пока не прошёл стадию стабилизации. Кроме того, уже развиваются библиотеки для упрощения применения SIMD, например доступен модуль faster, а в модуль regex добавлен код для использования SIMD для ускорения обработки данных;

  • Предложен новый синтаксис для создания объектов trait - "dyn Trait", который синтаксически эквивалентен старому Trait, но унифицирован с учётом нового выражения "impl Trait" (т.е. чтобы не создавать путаницу c impl предлагается явно писать "dyn"). Например, вместо "&Trait" теперь рекомендовано писать "&dyn Trait", вместо "&mut Trait" - "&mut dyn Trait", а вместо "Box<Trait>" - "Box<dyn Trait>". Поддержка старого синтаксиса оставлена для обеспечения совместимости но не рекомендована к использованию;
  • Обеспечена возможность применения атрибута "#[must_use]" к функциям, а не только к типам. Указание данного атрибута приведёт к выводу предупреждения, если выданное функцией значение в дальнейшем не используется в программе. В стандартной библиотеке данный атрибут уже выставлен для функций std::str::replace, Clone::clone, Iterator::collect и ToOwned::to_owned. Например, использование "#[must_use]" помогает выявить такие ошибки, как выполнение функции без присвоения результата;
  • Стабилизированы атрибуты над базовыми параметрами, такими как типы. Например: "fn foo<#[lifetime_attr] 'a" и "#[type_attr] T: 'a>() {}";
  • В разряд стабильных переведена новая порция API, в том числе DoubleEndedIterator::rfind/rfold/try_rfold, Duration::from_micros/from_nanos/subsec_micros/subsec_millis, HashMap::remove_entry, Iterator::try_fold/try_for_each, NonNull::cast, Option::filter, String::replace_range, Take::set_limit, process::id и slice::rsplit_mut/rsplit/swap_with_slice;
  • В базовый состав (core) из std перенесены многие методы для работы с типами [u8], f32 и f64;
  • В пакетный менеджер cargo добавлен флаг "--target-dir" для изменения целевого каталога. Также добавлен код для автоматического определения тестов, примеров и исполняемых файлов в проекте без их явного упоминания в настройках. В cargo-metadata включены поля authors, categories, keywords, readme и repository. Обеспечено кэширование информации от компилятора (для отключения можно указать CARGO_CACHE_RUSTC_INFO=0);
  • Добавлена возможность поиска в разделе документации на сайте doc.rust-lang.org;
  • Добавлена поддержка новой целевой платформы "armv5te-unknown-linux-musl".


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Выпуск libOS, unikernel на языке Rust для запуска приложений поверх гипервизора
  3. OpenNews: Mozilla развивает прослойку для обеспечения переносимости между JavaScript и Rust
  4. OpenNews: Для Linux и Redox представлена реализация Libc на языке Rust
  5. OpenNews: Третий выпуск операционной системы Redox OS, написанной на языке Rust
  6. OpenNews: В Firefox добавлен CSS-движок Stylo, написанный на языке Rust
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/48821-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (106) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:15, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Rust не панацея. Помню писали, вот перепишем движок Firefox на Rust и не будет уязвимостей. И что, новые  Firefox перевели на Stylo, но как исправляли по 10 критических уязвимостей в каждом релизе, так и исправляют. Видимо кроме безопасного языка ещё нужен ещё и безопасный подход.
     
     
  • 2.3, DEF (?), 14:23, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Stylo - движок CSS. Всего лишь малая часть от самого движка Servo, который еще в разработке.
     
  • 2.33, Аноним (33), 16:40, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > избавляет от проблем с текущей памятью
    > ухх безопасный язык не спасает от уязвимостей; ухх какая неожиданность
     
  • 2.41, Анонми (?), 18:01, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Видимо ВМЕСТО безопасного языка нужен безопасный подход.

    fixed

     
     
  • 3.97, Jh (?), 06:28, 24/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    какая разница, если уязвимости прямо в процесоорах
     
  • 2.101, Kuromi (ok), 21:57, 24/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    "как исправляли по 10 критических уязвимостей в каждом релизе, так и исправляют"

    Так хотя бы исправляют.

     

  • 1.2, Постоянный читатель (?), 14:22, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +16 +/
    На LOR'е предсказывали, что Rust победит в скором времени все сзяки программирвоания и останется только один Rust, а остальные ЯП будут не нужны.
     
     
  • 2.4, Постоянный читатель (?), 14:23, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > сзяки программирвоания

    Вот что бывает, когда не высыпаешься. Не повторяйте моих ошибок!

     
     
  • 3.6, A.Stahl (ok), 14:31, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всё ты правильно написал. Сзяки победят и потом сами сдохнут. А другие языки как развивались (ну кроме Лиспа, Хаскеля и Эрланга), так и продолжат развиваться.
     
     
  • 4.9, Focus (??), 14:46, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    оставаясь вечно недоразвитыми
     
     
  • 5.10, A.Stahl (ok), 14:49, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Лисп же уже достиг совершенства, а программисты на Лиспе -- блаженства. Поэтому-то они и не пишут код. На кой чёрт блаженным программировать?
     
  • 3.65, псевдонимус (?), 22:56, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Предлагаю всё форкнуть и переписать на "сзяки".Человеческие языки тоже).
     
  • 2.5, Andrey Mitrofanov (?), 14:28, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > На LOR'е предсказывали, что Rust победит в скором времени все сзяки программирвоания
    > и останется только один Rust, а остальные ЯП будут не нужны.

    ЛОРу-то и поделом.  Не жалко.

     
  • 2.7, Аноним (7), 14:39, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Go растёт как на дрожжах. Везде Go-Go-Go, большие проекты, малые проекты.
    А выбора то и нет для тех, кто не хочет си, си++, джава, скриптовые, функциональные и некрофильные типа паскаля.
    А раст как был в полутора проектах, так и остаётся пока.
     
     
  • 3.40, istepan (ok), 18:01, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Rust хорошая альтернатива C\C++.
    Golang же отличная замена для всяких nodejs.
     
     
  • 4.46, Анонимм (??), 19:22, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не вижу особой связи нодежс и голанга.
    На голанге можно взять и навалять практически любое приложение в виде самодостаточного бинарника, который взлетит на линуксе, винде, макос. А на нодежс ? Наворотить гору всякого треша чтобы запустить ?
     
     
  • 5.48, inferrna (ok), 19:36, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Не вижу особой связи нодежс и голанга.
    > На голанге можно взять и навалять практически любое приложение в виде самодостаточного
    > бинарника, который взлетит на линуксе, винде, макос. А на нодежс ?

    Как туго нынче с головой у анонимма, а. Бинарники у него кроссплатформенные, а нода не кроссплатформенная.

     
     
  • 6.50, Анонимм (??), 19:41, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Go кросплатформенный. Бинарник под платформу самодостаточен. И если тот же питон под тот же линукс имеется штатно, то нода не очень.
     
     
  • 7.70, Anon999 (ok), 05:59, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Склепать самодостаточное Python-приложение, особенно с numpy, Matplotlib и прочим - тот ещё геморрой с 0,75-1,1 Гб размером дистра и 5-10 минутами сборки костылями, а потом ещё вручную сжимать самые жирные либы, потому что в PyInstaller это автоматом не работает, а в cx_freeze поламали.
     
     
  • 8.72, Анонимм (??), 08:16, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так о том и речь Что интерпретаторы и всякие комбайны типа ноды имеют откровенн... текст свёрнут, показать
     
     
  • 9.76, Ydro (?), 09:11, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Поделись сакральными откровениями, что не может нода в Linux и может в винде и н... текст свёрнут, показать
     
     
  • 10.79, Анонимм (??), 10:11, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А это из каких закоулков сумрачного сознания извлечено было ... текст свёрнут, показать
     
  • 9.104, Аноним (104), 10:35, 25/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Как хорошо было с паскалем delphi, жаль не потянули вовремя linux Несмотря на м... текст свёрнут, показать
     
  • 6.96, angra (ok), 23:06, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А может туго с головой у того, кто заменяет "самодостаточное" на "кроссплатформенное", а потом героически опровергает полученную чушь?

     
  • 5.111, нах (?), 10:38, 26/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ну че как маленький?! "самодостаточная" обертка для ноды называется electron.
    И даже "кроссплатформенная" - линукс и виндовс. Целых две платформы, это ж много.

     
  • 4.55, Аноним (55), 20:51, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    C/C++ будут всегда. Почему? Никто не будет миллионы строк Linux переписывать на Rust.
     
     
  • 5.63, Аноним (63), 22:52, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А солдат не может два мешка брюквы съесть.
     
  • 4.98, alexz (??), 08:16, 24/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Go - примитивен.  На нем, конечно, можно создавать прогдукты приличной сложности, но сам по себе язык примитивнее, чем, например, C++, из-за чего приходится писать много кода, там, где можно было бы обойтись одним шаблоном.

    А Rust оказался таким сложным, в что в него без PhD не въедешь.  Создатели раста боятся признать, что барьер въезда в язык очень высок.  Народ его щупает, но очень осторожно.  Раст уже на самом деле лет пять уже существует, но распостранённость у него можно сказать никакая.

     
     
  • 5.105, Аноним (104), 10:37, 25/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ...Создатели раста боятся признать, что барьер въезда в язык очень высок...

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

     
  • 5.110, Ан (??), 10:27, 26/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нету там рокетсайнса если читать официальные доки и книгу раста.
     
  • 2.31, A (?), 16:27, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > На LOR'е предсказывали, что Rust победит в скором времени все сзяки программирвоания
    > и останется только один Rust, а остальные ЯП будут не нужны.

    И не будет больше ни книг, ни кино, ни театра, ни радио. Одно сплошное телевидение. (С) "Москва слезам не верит". :)))


     
     
  • 3.92, freecoder (?), 21:57, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так и есть. Один сплошной Ю-туб.
     
  • 3.106, Аноним (104), 10:39, 25/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> На LOR'е предсказывали, что Rust победит в скором времени все сзяки программирвоания
    >> и останется только один Rust, а остальные ЯП будут не нужны.
    > И не будет больше ни книг, ни кино, ни театра, ни радио.
    > Одно сплошное телевидение. (С) "Москва слезам не верит". :)))

    Книг почти нет, театр по сути умирает, если сходить на "недорогие спектакли", складывается впечатление что лучше бы и не было...

     
  • 2.44, YetAnotherOnanym (ok), 18:41, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Когда-то в Пентагоне то же самое предсказывали для Ады. Где теперь та Ада?
     
     
  • 3.71, Минона (ok), 07:42, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ада в Пентагоне.
     
  • 3.103, ffirefox (?), 00:46, 25/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы у ады была более либеральная лицензия, то Rust был бы не нужен.
     
  • 2.69, Выфер (?), 05:37, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > предсказывали, что Rust победит в скором времени все сзяки программирвоания

    Когда ядро перепишут, тогда и приходите

     
     
  • 3.102, Надпочечник (?), 00:31, 25/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем переписывать. Запилят транслятор.
     

  • 1.8, Аноним (8), 14:42, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Автоматическое управление памятью в Rust избавляет разработчика ...

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

     
     
  • 2.12, Аноним (12), 14:51, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Покажите в перечисленных языках этот "детский велосипед" "без использования сборщика мусора и runtime." А то я подозреваю, что после первой же встречи с borrow checker вы кроме как на костылях ходить не сможете.
     
     
  • 3.15, Совершенно другой аноним (?), 15:13, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так и запишем - Borrow checker ломает программистам ноги.
     
  • 3.38, Вареник (?), 17:40, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Полно soft real time приложений на Java. Высоконагруженные биллинги, трейдинги, диспетчеризации и т.д.
     
     
  • 4.54, HyC (?), 20:22, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ой да ладна. Оно "софт реалтаймовое" только потому-что не оффлайновое. Сидишь и по 40 секунд ждешь пока выстрелит.
     
     
  • 5.58, Ку (?), 21:55, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не стоит фантазировать на тот счет, что задержка именно из-за скорости языка, тем более компилируемого в машинные инструкции.
    Как правило тормозят ввод-вывод и база.
     
  • 2.18, Vkni (ok), 15:25, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сколько можно, новинка что-ли? Было в джаве, питон, D, шарпе, много где.

    Ну, когда управление памятью базируется на auto/unique_ptr, то это вроде действительно новинка. Ну, и автоуправление памятью часто очень сильно помогает со сложной алгоритмикой. Подозреваю, что не только с читаемостью, но даже и со скоростью становится лучше, т.к. компилятор может делать высокоуровневые оптимизации, недоступные в ручном управлении в стиле С++.

     
     
  • 3.67, Vkni (ok), 03:45, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну, когда управление памятью базируется на auto/unique_ptr, то это вроде действительно
    > новинка.

    Блин, товарищи подсказывают, что нет - это т.н. "линейные типы", реализованные в языке Clean (аналог Хаскеля, только значительно быстрее).

     
  • 2.42, Аноним84701 (ok), 18:04, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Автоматическое управление памятью в Rust избавляет разработчика ...
    > Сколько можно, новинка что-ли? Было в джаве, питон, D, шарпе, много где.  

    Только там в рантайме, а тут - во время компилирования.
    Благо, мощность железа (как и сложность ПО) со времен изобретения плюсов (тем более - си) увеличилась много-много-многократно и можно таки попытаться использовать эти мощности не только для отъедания во время выполнения программы (т.е. проверок в рантайме) но и для более вдумчивого анализа при компиляции.

     
  • 2.49, inferrna (ok), 19:38, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Автоматическое управление памятью в Rust избавляет разработчика ...
    > Сколько можно, новинка что-ли? Было в джаве, питон, D, шарпе, много где.

    на таком уровне не было. Разве что в хаскеле, но там свои заморочки.

     

  • 1.11, Аноним (11), 14:49, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот лет через 5 добавят async-функции -- тогда заживем
     
     
  • 2.21, r3nya (?), 15:54, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Уже подвозят потихоньку – https://github.com/rust-lang/rust/pull/51580
     

  • 1.13, Аноним (13), 14:54, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    "x86", "avx2" - это всё должны быть константы, а не строки.
     
  • 1.14, Аноним (7), 14:55, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    В разрабах раста, видимо, много любителей криптографии.
    Какое-то такое ощущение синтаксис оставляет.
     
     
  • 2.16, Vkni (ok), 15:20, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Стандартный алголо-подобный синтаксис.
     
     
  • 3.36, Анонимм (??), 17:23, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Имеется в виду совершенно неочевидное нагромождение разнородных скобок и неочевидное нагромождение спецсимволов и т.п. Когда имеешь опыт программирования на нескольких языках, смотришь в код раст и не понимаешь, что именно он делает. Это, как мне кажется, не очень хорошо.
    Примерно как те самые годные скрипты на перле :)
    Когда автор через месяц не может их прочитать.
    Если глянуть на розеттакоде, то примеры на расте выглядят ужасненько.
    Пробовал некоторое время назад поставить раст, но дальше хелло ворлда дело не зашло.
    Если на перле есть всё на CPAN. На питоне ответ на вопрос нагугливается за 1-5 минут. На гоу - чуть дольше и потом возможно придётся полдня поковыряться, поразбираться, изучить код чужой либы.
    То на расте просто нет ничего.
     
     
  • 4.59, Аноним (59), 21:59, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидная же смесь OCaml и C++. Какие же вы языки программирования знаете, если вас удивляет синтаксис Rust? Дальше сиподобных ничего не видели?
     
     
  • 5.73, Анонимм (??), 08:20, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Из того, на чём существенные объёмы писались - бейсик, паскаль, перл, питон, го.
     
     
  • 6.89, Vkni (ok), 16:43, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Из того, на чём существенные объёмы писались - бейсик, паскаль, перл, питон,
    > го.

    А где LISP, FORTRAN, COBOL, Цэ и т.д.?

     
  • 4.61, Ку (?), 22:06, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен насчет синтаксиса. Зачем было создавать такой барьер для освоения?
    Вероятно, когда у основных разрабов пропадет интерес, то приутихнут и все остальные.
    Такое ощущение, что раст создавался скорее для прочесывания своего ЧСВ, чем для реального применения.
     
     
  • 5.94, freecoder (?), 22:13, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальный синтаксис, непривычный для новичков только. У опытных уже особых претензий к нему не возникает. Единственный серьезный недостаток - плохая читаемость сигнатур функций с обобщенными типами. Но это, во-первых, поправимо, а во-вторых - в сигнатуре компактно содержится большое количество информации о типах функции, так что тут +/-. Если читать функции в IDE с подстветкой имен, то вообще проблемы нет.

     
  • 4.93, freecoder (?), 22:07, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Имеется в виду совершенно неочевидное нагромождение разнородных скобок и неочевидное нагромождение
    > спецсимволов и т.п. Когда имеешь опыт программирования на нескольких языках, смотришь
    > в код раст и не понимаешь, что именно он делает. Это,
    > как мне кажется, не очень хорошо.
    > Примерно как те самые годные скрипты на перле :)
    > Когда автор через месяц не может их прочитать.

    Дело в том, что синтаксис Rust'а непривычен, но он вполне очевиден. То есть, когда вы привыкните к обобщенным типам и к указанию переменных типа в угловых скобках, к заимствованиям и лайфтаймам, к использованию типажей, то у вас никаких серьезных сомнений не возникнет, глядя на свой или чужой код. Уже имеющим опыт разработки на Rust такой синтаксис никак не затрудняет понимание происходящего в коде.

     
  • 2.100, burjui (ok), 17:05, 24/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Мне жаль людей, искалеченных ордами языков с C-подобным синтаксисом. У Rust синтаксис непривычен потому, что он вдохновлён языками семейства ML, которые, вообще-то, существуют уже десятки лет. Нужно расширять кругозор, а то вы прямо как дед, который не любит сенсорные телефоны только потому, что всю жизнь нажимал кнопки и дёргал рычаги.
     
     
  • 3.108, Анонимм (??), 19:29, 25/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не надо оверинженеринг сравнивать с маразматическим дедом.
    Никто не будет оплачивать любителей криптографических языков, оплачивают решение задач.
     
     
  • 4.117, burjui (ok), 17:20, 01/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Никто не будет оплачивать любителей криптографических языков, оплачивают решение задач.

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

     

  • 1.17, Аноним (17), 15:20, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > использование "#[must_use]" помогает выявить такие ошибки, как выполнение функции без присвоения результата;

    Поясните, кто знает. Раньше НЕ использование результата не void ф-и не считалось ошибкой в расте?

    Странно как-то. Было ощущение, что такие вещи там изначально должны были обрабатываться с предупреждением, если вообще допускаться.

     
     
  • 2.19, Vkni (ok), 15:28, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Странно как-то. Было ощущение, что такие вещи там изначально должны были обрабатываться
    > с предупреждением, если вообще допускаться.

    Зависит от ситуации.

     
  • 2.35, Ordu (ok), 17:14, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не считалось Были специальные типы например, Result неиспользование которого ... большой текст свёрнут, показать
     
  • 2.60, Аноним (59), 22:02, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Точка с запятой в расте является аналогом "|> ignore" в ML языках.
     
     
  • 3.66, Vkni (ok), 03:44, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Точка с запятой в расте является аналогом "|> ignore" в ML языках.

    Кстати, в ML языках тоже есть точка с запятой. Даже в Х-ле (в линейном синтаксисе):

    do { putStr "Hello "; putStrLn "World!" }

     

  • 1.20, Аноним (20), 15:41, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > foo_fallback

    когда я вижу такой синтаксис, внутри меня рождается гнев

     
     
  • 2.34, Аноним (34), 17:04, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    название функции - это не синтаксис. А логика работы такая: на архитектурах, отличных от x86, просто возвращаем foo_fallback. На архитектурах x86 проверяем в рантайме, есть ли поддержка avx2, и если есть, то вызывается быстрая реализация.

    Если есть идеи, как лучше реализовать такую логику - шли RFC и пулл реквесты.

     
     
  • 3.68, Аноним (68), 04:43, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/

    > Если есть идеи, как лучше реализовать такую логику - шли RFC и
    > пулл реквесты.

    При инсталяции в ос ложить нужный вариант, а не прверять в рантайме.

     
     
  • 4.82, Анонимус2 (?), 15:42, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так тоже можно, но безопасней все-таки проверять в рантайме и иметь в наличии базовый вариант всегда
     

  • 1.22, Аноняшка (?), 15:56, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какие принципиальные преимущества Rust, перед, няпример, Go или Python? Есть смысл переходить? Есть смысл нячинять с няго?
     
     
  • 2.24, анонимус328492834 (?), 16:01, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ADT, безопасность, отсутствие garbage collector'а (а по сравнению с питоном и GIL).  http://yager.io/programming/go.html
     
  • 2.43, istepan (ok), 18:10, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Go и Rust не конкуренты, они лучшие каждый в своей сфере.
     
  • 2.51, inferrna (ok), 19:41, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Какие принципиальные преимущества Rust, перед, няпример, Go или Python? Есть смысл переходить?
    > Есть смысл нячинять с няго?

    если ты ня-гентушница, которая хочет разумением своим сразить коллег/однокашников, то раст обязателен. Если это для себя, то начать лучше с питона.

     
  • 2.62, Аноним (59), 22:22, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Rust имеет низкоуровневый контроль над памятью, как в C и C++, не стоит его сравнивать с Python и Go.
    С него не стоит начинать, я бы порекомендовал перед Rust ознакомиться с любым типизованным функциональным языком (OCaml, F#, Haskell, Scala).

    Если же все-таки сравнивать, то:

    1) По сравнению с Go он имеет строгую и выразительную типизацию. В целом более выразительный, продуманный а так же более быстрый язык. Он более заточен под конкурентность, потому как система типов Rust исключает многие ошибки конкурентного программирования.

    2) По сравнению с Питоном он имеет опять же типизацию, производительность.

     
     
  • 3.74, Анонимм (??), 08:26, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    (OCaml, F#, Haskell, Scala)

    И куда с ними, и rust до кучи, идти, если работу искать ?

     
     
  • 4.75, Минона (ok), 09:03, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > (OCaml, F#, Haskell, Scala)
    > И куда с ними, и rust до кучи, идти, если работу искать
    > ?

    Зачем идти? Открывай своё дело.

     
  • 4.80, Ordu (ok), 12:32, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если тебе работу не найти, то лучше заняться изучением азов, и лучше не с дивана, а через какие-нибудь курсы, которые дают бумажки об успешном завершении этих курсов.
     
     
  • 5.109, Анонимм (??), 19:31, 25/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Взяли и снесли ветку, а изначальный д-бильный камент не в тему, оставили.
     
  • 4.83, Анонимус2 (?), 15:45, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > (OCaml, F#, Haskell, Scala)
    > И куда с ними, и rust до кучи, идти, если работу искать
    > ?

    На Scala вакансий в последние лет 5 как грязи

     
     
  • 5.86, Анонимм (??), 16:14, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрел вакансии в своём городе. Вообще нет.
    В Москве не особо много. Ну, в сравнении с реально популярными языками.
    Впрочем, окамла, раста и хаскеля нет и в Мск :)
     
  • 3.77, Ydro (?), 09:21, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > 1) По сравнению с Go он имеет строгую и выразительную типизацию. В
    > целом более выразительный, продуманный а так же более быстрый язык.

    Не быстрый этот язык! Не быстрый !!! А быстрый скомпилированный код. Сам же язык - ужасен!

     
     
  • 4.78, Анонимм (??), 09:51, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И, тем не менее, по опросам на всяких программистских ресурсах, раст людям нравится.
    Возможно тем, кто пишет на си/си++, мозги морщить примерно в той же степени, при том раст даёт некие профиты.
    И не представляю, как может нравиться раст тем, кто си не осилили и пошёл по пути более простых языков.
     
  • 3.91, Vkni (ok), 18:20, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > С него не стоит начинать, я бы порекомендовал перед Rust ознакомиться с
    > любым типизованным функциональным языком (OCaml, F#, Haskell, Scala).

    В данном случае проще всего SML - 40 страниц текста "Введение в Стандартный ML".

     

  • 1.25, IRASoldier (?), 16:03, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Это еще хорошо, что в тред не набежали адепты Оберона с проповедями "нет языка, кроме семейства паскалеподобных и Вирт - пророк наш!"...
     
     
  • 2.27, Аноним (27), 16:09, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В Pascal кстати вроде тоже все нормально было с безопасностью памяти.. Странно что не стали его развивать...
     
     
  • 3.30, Аноним (30), 16:19, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    FreePascal, PascalABC.NET, Delphi XE


    из стареньких GNU Pascal HP Pascal

    а так конечно да - не развивают.

     
  • 3.52, soarin (ok), 20:06, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В Pascal кстати вроде тоже все нормально было с безопасностью памяти

    Настало время интересных историй

     
  • 2.29, NuclearWar (?), 16:18, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то Go это Оберон с сишным синтаксисом.
     

  • 1.28, user90 (?), 16:16, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лично у меня от одного только вида синтаксиса сабжа уже глаза вытекают)) Понятно конечно, почему оно так, только это не может быть уважительной причиной.
     
     
  • 2.32, rust_ug (?), 16:34, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    есть мнение что все программисты раста слепы от рождения
     

  • 1.37, Вареник (?), 17:33, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Rust уже сейчас замороченней С++, даже если код с нагромождением шаблонов и макросов.

    О какой "безопасности" может идти речь, если код просто не читаем?

    Та же песня что со Скалой со свободным DSL - сначала охреневаешь от возможностей, потом сталкиваешься с тем, что код write only - каждый "свободно" пишет собственными заклинаниями, чтение кода без "навигации по символам" невозможно.

     
     
  • 2.39, Анонимм (??), 17:46, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Видимо, поэтому и проектов на расте полторы штуки.
     
  • 2.95, freecoder (?), 22:27, 23/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Rust уже сейчас замороченней С++, даже если код с нагромождением шаблонов и
    > макросов.

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

    Rust выглядит сложным для тех, кто его не знает, из-за непривычного синтаксиса. Но внутри он сильно проще, чем C++.


     
  • 2.99, Аноним (99), 13:04, 24/06/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Rust уже сейчас замороченней С++, даже если код с нагромождением шаблонов и макросов.

    Да ты я смотрю на плюсах только хелоуворды мастер писать?

     
  • 2.112, Ан (??), 10:53, 26/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вы плюсов мало видели что бы так заявлять.
     

  • 1.45, Стоп (?), 18:55, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пора делать форк - "Rust с синтаксисом GO"...
     
     
  • 2.47, Анонимм (??), 19:26, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше тогда раст с синтаксисом питона, но вместо отступов скобки {}.
     
     
  • 3.57, Аноним (57), 21:37, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    c++ c сокращенными именами для указателей и предупреждениями на использование raw poiters....
     

  • 1.64, псевдонимус (?), 22:53, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Кто там хотел всё "форкнуть и переписать на раст"? Вот,есть повод!
     
  • 1.113, Аноним (-), 07:04, 27/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Скачал "Книгу" 2-я версия. rust-1.26.2 не смог собрать -- требует новый mdbook, который в свою очередь имеется в версии 1.27.0. Новую версию раста пока качать нехочу.

    Как, каким образом они вообще хотят вытеснять C++ с рынка? О конкуренте Go я вообще молчу.

     
     
  • 2.114, Andrey Mitrofanov (?), 09:47, 27/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Как, каким образом они вообще хотят вытеснять C++ с рынка?

    Вы о каком рынке?  Манагеры МоФоКо скомандовали своим подневольным програмерам, те под козырёк и пиоят-переходят.

    Дух опенсорса же, откуда тут рынку-то какому-то быть??

     
     
  • 3.115, Аноним (-), 05:23, 28/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Андрей вы рассуждаете как конченный совок. Создатели Раста работают над компилятором как энтузиасты. Им это нравится. Тут вопрос не в деньгах как таковых, я не говорю что их не донатят. Я о другом. Мозилла Фаундейшн не может командовать программистами. Насилия и запугиваний программистов там нет. На Западе у людей менталитет другой. не надо по себе мерять других людей.
     
     
  • 4.116, Andrey Mitrofanov (?), 10:08, 28/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Андрей вы рассуждаете как конченный совок. Создатели Раста работают над компилятором как

    Я задел ваши "тонкие струны"?  Отлично.

    > энтузиасты. Им это нравится. Тут вопрос не в деньгах как таковых,
    > я не говорю что их не донатят. Я о другом. Мозилла
    > Фаундейшн не может командовать программистами. Насилия и запугиваний программистов там
    > нет.

    И штата программистов на зарплатах там нет?  И руководящего ими манагемента??

    И пукают оне розами, и летают с цветка на цветок?777

    >На Западе у людей менталитет другой. не надо по себе
    > мерять других людей.

    Расскажи мне больше!11

     

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



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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