The OpenNET Project / Index page

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

Выпуск языка программирования Rust 1.38

27.09.2019 10:00

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

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

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

  • Добавлен режим конвейерной компиляции (pipelined), при которой сборка зависимого crate-пакета начинается сразу как только становятся доступны метаданные зависимости, не дожидаясь завершения её компиляции. При компиляции пакета не нужно, чтобы зависимости были собраны полностью, достаточно лишь определения метаданных, включающих списки типов, зависимостей и экспортируемых элементов. Метаданные становятся доступны на начальном этапе компиляции, поэтому связанные пакеты теперь можно начать компилировать гораздо раньше. При сборке одиночных пакетов предложенный режим не сказывается на производительности, но если сборка охватывает пакеты с разветвлёнными зависимостями, общее время сборки может сократиться на 10-20%;
  • Обеспечено выявление некорректного применения функций std::mem::uninitialized и std::mem::zeroed. Например, std::mem::uninitialized удобен для быстрого создания массивов, но вводит компилятор в заблуждение, так как создают видимость выполнения инициализации, а в действительности значение остаётся неинициализированным. Функция mem::uninitialized уже помечена как устаревшая и вместо неё рекомендуется использовать промежуточный тип MaybeUninit. Что касается mem::zeroed, то данная функция может приводить к проблемам с типам, которые не могут принимать нулевые значения.

    Для выявления вызываемого неопределённого поведения в новом выпуске в компилятор добавлена lint-проверка, выявляющая некоторые проблемы c mem::uninitialized или mem::zeroed. Например, теперь выводится ошибка при попытке использования mem::uninitialized или mem::zeroed с типами &T и Box<T>, представляющими объекты-указатели, которые не могут принимать нулевые значения;

  • Расширены возможности применения атрибута "#[deprecated]", позволяющего пометить crate-пакеты устаревшими и намеченными для удаления в будущем. Начиная с версии Rust 1.38 данный атрибут также можно применять для макросов;
  • Добавлена возможность применения атрибута "#[global_allocator]" в субмодулях;
  • Добавлена функция std::any::type_name, позволяющая узнать имя типа, что может быть полезно в отладочных целях. Например, в процессе выполнения программы можно узнать для какого типа была вызвана функция:
    
    
       fn gen_value<T: Default>() -> T {
           println!("Initializing an instance of {}", std::any::type_name::<T>());
           Default::default()
       }
    
       fn main() {
           let _: i32 = gen_value(); # будет выведено "i32"
           let _: String = gen_value(); # будет выведено "alloc::string::String"
       }
    
  • Расширены функции стандартной библиотеки:
    • slice::{concat, connect, join} теперь может принимать значение &[T] помимо &T;
    • "*const T" и "*mut T" теперь реализуют marker::Unpin;
    • "Arc<[T]>" и "Rc<[T]>" теперь реализуют FromIterator<T>;
    • iter::{StepBy, Peekable, Take} теперь реализуют DoubleEndedIterator.
    • ascii::EscapeDefault реализует Clone и Display.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы
    • <*const T>::cast, <*mut T>::cast,
    • Duration::as_secs_f{32|64},
    • Duration::div_duration_f{32|64},
    • Duration::div_f{32|64},
    • Duration::from_secs_f{32|64},
    • Duration::mul_f{32|64},
    • операции деления с остатком div_euclid и rem_euclid для всех целочисленных примитивов;
  • В пакетный менеджер cargo добавлена поддержка указания опции "--features" несколько раз для включения разных возможностей;
  • В компиляторе обеспечен третий уровень поддержки для целевых платформ aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc targets, armv7-unknown-linux-gnueabi, armv7-unknown-linux-musleabi, hexagon-unknown-linux-musl и riscv32i-unknown-none-elf. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования и публикации официальных сборок.


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Фреймворк для написания защищённых драйверов для ядра Linux на языке Rust
  3. OpenNews: Выпуск языка программирования Rust 1.37
  4. OpenNews: Компилятор Rust добавлен в состав дерева исходных текстов Android
  5. OpenNews: Intel развивает открытую прошивку ModernFW и гипервизор на языке Rust
  6. OpenNews: Выпуск операционной системы Redox OS 0.5, написанной на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51572-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (186) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:46, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Имеет ли смысл учить плюсы или сразу с паста начать?
     
     
  • 2.2, анонимус (??), 10:47, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +17 +/
    имеет, как раз выучишь плюсы к тому времени как раст станет мейнстримом
     
     
  • 3.4, Аноним (4), 10:48, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    +1
     
     
  • 4.153, Аноним (153), 00:17, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты второй плюс потерял. Правильно будет 1++
     
     
  • 5.199, Java (?), 16:12, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Плюсовики любят именно ++1.
     
  • 3.5, анонимчик (?), 10:59, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    он не станет мэйнстримом
     
     
  • 4.10, кек (?), 11:10, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Если плюсы не спохватятся и не добавят себе фишки Rust в плане безопасности, то у Rust есть все шансы, чтобы стать мейнстримом.
     
     
  • 5.12, proninyaroslav (ok), 11:18, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Умные указатели в плюсах уже давно есть. По сути раст отличается наличием мощного анализатора, встроенного в систему сборки. А вот с последним в плюсах сложнее, так как тянет груз обратной совместимости с Си.
     
     
  • 6.23, Аноним (23), 12:13, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Одно из ключевые отличия от крестов -- наличие пакетного менеджера и быстрый цикл разработки Rust и его обвязок
     
     
  • 7.27, Аноним (27), 12:21, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    На С++ ты можешь выбрать себе любой пакетный менеджер. И любую обвязку. Да даже если у тебя приложение упадет с сегфолтом ты всегда можешь нанять кучу тестировщиков. Вместо того чтобы юзать раст, на котором ты даже не найдешь программистов.
     
     
  • 8.33, kiwinix (?), 13:00, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лоол Да ты гонишь Это программисты не могут найти работу на раст А вот как р... текст свёрнут, показать
     
     
  • 9.45, Аноним (45), 13:43, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Бедные-бедные хайпожоры Они-то выучили очередного убийцу cpp , но тут внеза... текст свёрнут, показать
     
     
  • 10.50, red75prim (?), 13:47, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А кто там предыдущим убийцей С был Java ... текст свёрнут, показать
     
     
  • 11.103, Вася Теркин (?), 18:27, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А что не так с Java Жирнющий кусок ынтерпрайз-проектов у плюсов отгрызла Убива... текст свёрнут, показать
     
     
  • 12.106, red75prim (?), 18:54, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не, мне интересно узнать какие убийцы убийцы плюсов уже были, если раст - очеред... текст свёрнут, показать
     
     
  • 13.167, Аноним (45), 05:25, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Лол, это очень хорошо иллюстрирует что будет с рустом через лет пять - большинст... текст свёрнут, показать
     
     
  • 14.179, Аноним84701 (ok), 12:26, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https en wikipedia org wiki Siemens_SL45 Хорошо быть опеннетч W макклаудом, 18... текст свёрнут, показать
     
  • 10.72, JustCurious (?), 15:58, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Изучение Rust сделало меня лучше в С , так что о потраченом времени не жалею аб... текст свёрнут, показать
     
     
  • 11.200, Java (?), 17:17, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    С не умрёт ещё долго И это нормально Просто некоторые плюсовики считают, что... текст свёрнут, показать
     
  • 10.108, Илья (??), 19:24, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вы что, на солнечном языке разговариваете ... текст свёрнут, показать
     
  • 9.46, Аноним (46), 13:43, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чувак ты походу фанатик и не умеешь в причинно-следственную связь Хорошо что в ... текст свёрнут, показать
     
  • 6.48, red75prim (?), 13:46, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  По сути раст отличается наличием мощного анализатора, встроенного в систему сборки.

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

     
     
  • 7.109, Илья (??), 19:27, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Щас понабегут и расскажут вам, что всё это от лукавого, просто нужно без ошибок писать
     
     
  • 8.149, Аноним (149), 23:10, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Все знают, что канализационные люки не нужны, просто под ноги смотреть нужно ... текст свёрнут, показать
     
     
  • 9.163, red75prim (?), 01:47, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Меня это тоже удивляет Против канализационных люков никто не возражает, а возгл... текст свёрнут, показать
     
  • 6.142, Led (ok), 22:31, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > Умные указатели в плюсах уже давно есть.

    Когда умных програмистов подвезут - тогда и приходи.

     
     
  • 7.189, Аноним (189), 12:03, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    +1000 into karma!
     
  • 4.53, th3m3 (ok), 14:01, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ещё как станет. Уже через 5 лет. Скринь.
     
     
  • 5.56, анонимчик (?), 14:09, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ещё как станет. Уже через 5 лет. Скринь.

    а где он станет мэйнстримом? вместо чего?

     
     
  • 6.58, th3m3 (ok), 14:20, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Ещё как станет. Уже через 5 лет. Скринь.
    > а где он станет мэйнстримом? вместо чего?

    Много где. От ОС до веб-сервисов.

     
  • 6.69, Аноним (69), 15:51, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > а где он станет мэйнстримом? вместо чего?

    Где — не знаю, может быть и нигде. Но очевидно, что если станет, то именно вместо плюсов.

     
     
  • 7.116, анонимчик (?), 20:11, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> а где он станет мэйнстримом? вместо чего?
    > Где — не знаю, может быть и нигде. Но очевидно, что если
    > станет, то именно вместо плюсов.

    а плюсы в мейнстриме?

     
     
  • 8.139, Аноним (139), 22:25, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А на чём написан браузер из которого ты это пишешь ... текст свёрнут, показать
     
     
  • 9.194, анонимчик (?), 21:58, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    сишка firefox ... текст свёрнут, показать
     
  • 4.87, Аноним (87), 17:28, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Он не может СТАТЬ мэйнстримом, потому что он уже им СТАЛ
     
     
  • 5.117, анонимчик (?), 20:12, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Он не может СТАТЬ мэйнстримом, потому что он уже им СТАЛ

    где?

     
     
  • 6.168, Аноним (45), 05:26, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В манямирке растофанов, очевидно же.
     
  • 3.68, Аноним (69), 15:50, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > выучишь плюсы к тому времени как раст станет мейнстримом

    Не выучит. Выучить плюсы невозможно.

     
     
  • 4.86, Аноним (86), 17:22, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Значит раст и не станет мейнстримом. Все будут продолжать учить плюсы и никогда не доучат.
     
  • 3.92, Буревестник (?), 17:50, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    мозилльное мейнстримом не становится
    рождённый ползать - летать не может
     
     
  • 4.130, Аноним (139), 21:37, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    эт ты толстанул… жырненько так
     
  • 2.6, proninyaroslav (ok), 10:59, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Смотря для какой цели учить. Если для продакшена - то плюсы, так как раст в этом плане пока что редкий гость. Если на будущее и just for fun - раст.
     
  • 2.7, заминированный тапок (?), 11:00, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    для чего?
     
  • 2.9, Аноним (9), 11:07, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >или сразу с паста начать?

    Начни с копипаста.

     
  • 2.11, someman (?), 11:10, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Лучше начать с C. Он проще и ближе к тому как все устроено. А потом уже можно постепенно открывать для себя абстракции, которыми так переполнены плюсы. А раст наверное нужно учить, когда  тебя реально достанут сегфолты, утечки памяти, неопределенное поведение, неадекватные сообщения об ошибках. Вот тогда можно и на раст посмотреть, чобы было с чем сравнивать)
     
     
  • 3.19, eganru (?), 11:39, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А раст наверное нужно учить, когда  тебя реально достанут сегфолты, утечки памяти, неопределенное поведение, неадекватные сообщения об ошибках. - по моему опыту чаще происходит профессиональная деформация: первое время пугает, а потом начинаешь жить с этим.

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

     
     
  • 4.39, Ordu (ok), 13:13, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ты везучий Мне приходилось и по два дня сидеть, отлавливая причину сегфолта Ну... большой текст свёрнут, показать
     
     
  • 5.52, eganru (?), 13:58, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    но если в коде при этом разадресуется указатель, который _никак_не_может_быть_NULL_ - то можно поставить бряк на модификацию этого указателя.

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

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

     
     
  • 6.63, Аноним (63), 14:47, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вах, зачем так много пишешь?! Достаточно - УВР!!!!
     
  • 6.74, Ordu (ok), 16:07, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты знаешь где он находится Что далеко не всегда так, он может находится в ... большой текст свёрнут, показать
     
     
  • 7.84, eganru (?), 17:07, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    i Если ты знаешь где он находится i - после того как Вы попали в исключение,... большой текст свёрнут, показать
     
     
  • 8.128, Ordu (ok), 20:54, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чаще всего да Но бывает ситуация, что проблема вылезла из-за повреждённой струк... большой текст свёрнут, показать
     
     
  • 9.131, Аноним (139), 21:43, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    то есть, тестов нет Ни юнит, ни функциональных Я прав ... текст свёрнут, показать
     
     
  • 10.152, Ordu (ok), 23:25, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тесты снижают вероятность такого, но не изничтожают её И да, это если они есть ... текст свёрнут, показать
     
  • 4.70, Аноним (69), 15:53, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > хуже всего если ошибка в алгоритме

    Вроде бы язык, который от этого помогает, ещё не изобрели. Или я что-то пропустил?

     
  • 4.190, Аноним (189), 12:08, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё хуже, если ошибка - на генном уровне, а чел в программинг попёрси, да ещё и течёт постоянно, как сучка, как только речь про плюсы заходит.
    Будто бы пролистывание пары книжек по Си++ и участие (по чьей-то глупости или недосмотру) в паре Си++ проектов исправит эту ошибку генах...
    Скорблю.
     
  • 3.37, Аноним (37), 13:11, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Не начинай с сей, иначе будешь потерян для общества: начнёшь переизобретать строки, списки, классы…
     
  • 2.13, JustCurious (?), 11:27, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Плюсы. Раст после плюсов одно удовольствие учить, а плюсы после раста будет сложно.
     
  • 2.26, Аноним (27), 12:18, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Только плюсы и надо учить. Раст тебе никогда нигде не пригодится.
     
  • 2.107, burjui (ok), 19:20, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зависит от того, насколько вы уверены в успехе Rust, собираетесь ли вы на нём пи... большой текст свёрнут, показать
     
     
  • 3.132, Аноним (139), 21:45, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Два чаю этому просветлённому.
     
  • 2.205, j3t (?), 22:12, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ООП тебя погубит в крестах как и в других недоООП языках, те же кресты функциональщину вводят, так как объекты провалились, но еще долго будут жить как COBOL
     

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

  • 1.3, Аноним (4), 10:48, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    я бы начинал с раста
     
  • 1.8, Anonymoustus (ok), 11:04, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    До появления хруста я был уверен, что более негодный синтаксис, чем у Брейнфака и прочей «эзотерики», изобрести невозможно.
     
     
  • 2.15, JustCurious (?), 11:28, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Но после появления раста, так случилось, что вы нашли что-то более эзотерическое, чем Brainfuck?
     
  • 2.47, Аноним (45), 13:45, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    LISTEN TO ME VERY CAREFULLY methodName
    I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE arg1
    I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE arg2
    GIVE THESE PEOPLE AIR
    [Statements]
    HASTA LA VISTA, BABY
     
     
  • 3.82, EnemyOfDemocracy (?), 16:55, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Диалект COBOL-а?
     
     
  • 4.169, Аноним (45), 05:28, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это всего лишь креатив на сишном макропроцессоре - ArnoldC.
     
  • 2.182, Wilem (?), 15:12, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можешь привести пример негодного синтаксиса, объяснить в чём негодность?
     

  • 1.14, anonos (?), 11:27, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    умею в питон говнокодить средние проекты, насколько долго переучиваться?
     
     
  • 2.25, Аноним (27), 12:17, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Мы все проекты потихоньку переводим с пистона на го. Раст тебе решительно ни к чему да и базы тебе наверняка не хватит.
     
  • 2.51, Аноним (51), 13:56, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    наавсегда.
     
  • 2.54, th3m3 (ok), 14:03, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В течении года, можно норм освоить.
     
  • 2.104, Вася Теркин (?), 18:34, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Начни с того, зачем тебе это. Язык - всего лишь средство решения определенного круга задач. "Стрелять из пушки по воробъям" и "выпиливать лобзиком по чугунию" - первый признак непрофессионализма.
     
  • 2.143, Led (ok), 22:37, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > умею в питон говнокодить средние проекты, насколько долго переучиваться?

    На метлу/швабру/вантуз - год-два...

     

  • 1.16, Аноним (16), 11:30, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Изучения и практика на rust оч. полезна сишникам (с плюсами тоже), как минимум потому, что здорово вправляет мозги на правильную (корректную и быструю) работу с памятью.
     
     
  • 2.29, Совершенно другой аноним (?), 12:28, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если не сложно, то можно немного подробнее? Правда очень интересно.
     
     
  • 3.34, kiwinix (?), 13:03, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Открой растбук и читни. Он на русском уже есть
     
  • 3.49, Аноним (45), 13:47, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Максимум что ты от этих безумных фанатов дождёшься - это магическое заклинание "читай растобук".
     
     
  • 4.83, EnemyOfDemocracy (?), 16:56, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А по си книжки читать не надо? херак-херак и оно само сегфолт?
     
     
  • 5.95, Аноним (45), 18:00, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    За описанием *достоинств* си - не надо, его распространение, и многочисленные *неудачные* попытки закопать няшную сишечку говорят сами за себя. А причину большинства сегфолтов ищите в зеркале и кривизне культяпок.
     
     
  • 6.133, Аноним (139), 21:48, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ещё один "пищите без ошибок"
     
     
  • 7.185, Аноним (45), 05:07, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда научитесь писать на русте без unsafe - возвращайтесь.
     
     
  • 8.188, Илья (??), 08:53, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще на расте небезопасные блоки стараются всеми способами обходить То есть,... текст свёрнут, показать
     
  • 3.55, Аноним (16), 14:03, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    https://blog.regehr.org/archives/1520

    также, "повоевав" с borrow checker в rust и сделав всё корректно, можно понять что такое "владение", зачем нужно перемещение, ссылки и когда лучше использовать копирование (при этом в rust обязательно явно указать что надо копировать - через вызов .clone() плюс #derive(Copy) - только не надо этим злоупотреблять, скорость сильно просаживает).

    с плюсами всё грустно, там ОЧЕНЬ сложно понять работает ли копирование объекта или перемещение, даже если прописаны конструктор перемещения и move оператор=. а ещё там RVO есть)

     
     
  • 4.64, Совершенно другой аноним (?), 14:57, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > https://blog.regehr.org/archives/1520

    Просто приходится много писать именно на C (не ++), вот и заинтересовало чем мне это сможет помочь. Спасибо, почитаю.

     
  • 3.129, Ordu (ok), 21:31, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Сложно Впрочем, если тебе приходилось испытывать баттхёрт от того, что твой, жо... большой текст свёрнут, показать
     
  • 2.105, Вася Теркин (?), 18:43, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Изучение и практика работ Donald Ervin Knuth здорово вправляет мозги и производит профилактику говнокодинга. Начинать нужно с этого, а уж потом выбирать инструмент под конкретные задачи.
     
     
  • 3.111, Аноним (111), 19:52, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это сейчас как-то не модно. Все серебряную пулю ищут.
     
     
  • 4.161, burjui (ok), 01:40, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Rust не позиционируется как серебряная пуля и не обещает исправить кривые руки. Он обещает безопасную работу с памятью, если не используешь unsafe. Но даже если используешь, то при первой же проблеме будешь знать, где искать. Как часто нужен unsafe? Зависит от задачи. Если писать под голое железо типа Cortex-M3, то относительно часто, пока не напишешь безопасные обёртки над периферией (что уже сделано в svd2rust). Для прикладных задач - почти никогда.

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

     
     
  • 5.171, Аноним (45), 05:33, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    БЕЗОПАСНУЮ РАБОТУ С ПАМЯТЬЮ*

    <span style="font-size: 1pt">* если не используешь unsafe</span>

    // Вот так правильно

     
     
  • 6.201, Java (?), 17:21, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да пойми ты, что бизнес-задачам (например, телекому) как раз таки не нужен unsafe в 100% кода. Тем, кто пишет под конкретное железо обёртку для первых - нужен.

    В Rust "переключить режим" можно. В C - ты всегда во втором режиме. Что вызывает кучу жопоболи у пользователей, потому что всё "ломается".

     

  • 1.17, Аноним (17), 11:32, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    тоже сейчас пока загружаю в себя плюсы, и не уходит сомнение что позже понадобится раст
     
  • 1.18, Аноним (17), 11:36, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    есть годные материалы по Rust, для нубов?
     
     
  • 2.20, Аноним (20), 11:39, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.rust-lang.org/learn
     
     
  • 3.21, aa (?), 11:47, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а не для нубов нормальное описание языка будет? типа стандарта c99
     
     
  • 4.32, Аноним (20), 12:55, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На той же странице есть ссылка: https://doc.rust-lang.org/reference/index.html

    Для стандартизации язык ещё слишком молодой. Многие проекты до сих пор компилятся только с nightly.

     
     
  • 5.35, kiwinix (?), 13:05, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что? Найтли очень даже стабилен. И Найтли в основном нужен для пары тройки фишек только
     
     
  • 6.38, Аноним (20), 13:11, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Меня просто бесит, когда компилятор ставится в обход системного пакетного менеджера. Найтли мало в каких дистрах есть, если вообще есть, поэтому ставить его приходится через rustup. Ставить себе бинарь через curl, вместо того, чтобы поставить бинарь, который вполне себе reproducible (в debian так) - мне не нравится. Особо упоротые могут даже bootstrappable build себе устроить, как это делается в guix. Но это всё не касается nightly, который нигде толком не опакечен. Желаю rust добра, самому нравится этот язык, но пока что есть вот такая неприятность. В идеальном мире все проекты должны были собираться с любой версией, поддерживающей Rust 2018.
     
     
  • 7.98, kaleru (?), 18:08, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Наброшу чуть-чуть)
    https://aur.archlinux.org/packages/rust-nightly
     
     
  • 8.120, Аноним (20), 20:37, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ты серьёзно Хоть заголовок новости прочитай... текст свёрнут, показать
     
     
  • 9.174, kaleru (?), 06:42, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ты мозг напряги Там ставится последний билд, с коррекцией номера версии пакета... текст свёрнут, показать
     
     
  • 10.176, Аноним (20), 07:55, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Мой косяк, глянул в PKGBUILD и действительно, скачивается последняя доступная ве... текст свёрнут, показать
     
  • 7.113, Илья (??), 20:00, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, вариант не идеальный, но, заметьте, что он устанавливается в вашу домашнюю папку и не требует прав рута при установке.
     
     
  • 8.119, Аноним (20), 20:36, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А толку, если всё самое важное как раз в папке юзера ... текст свёрнут, показать
     
     
  • 9.122, Аноним (20), 20:41, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Можно запускать хруст из под другого юзера, но зачем весь этот цирк с конями, ко... текст свёрнут, показать
     
  • 9.162, burjui (ok), 01:44, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ты что, боишься, что rustup убьёт твои данные А ты не боишься, что пакет, устан... текст свёрнут, показать
     
     
  • 10.177, Аноним (20), 08:05, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я пытаюсь сказать, что если раст хочет быть безопасным в плане памяти и ещё неск... текст свёрнут, показать
     
  • 4.60, Аноним (16), 14:33, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    rustonomicon
     
  • 4.96, Аноним (45), 18:03, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не будет, эта хрень overengineered с самого рождения и в дальнейшем будет становиться только хуже, т.к. останавливаться авторы не собираются.

    С прицелом на нубов проектировался golang.

     
  • 2.91, Аноним (91), 17:42, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/ruRust/rust_book_ru
    https://github.com/ruRust/rust_book_2ed
    1 и 2 издания, оба на русском
     
  • 2.197, Проходил мимо (?), 08:39, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, есть годная книга на русском языке от издательства ДМК-Пресс: https://dmkpress.com/catalog/computer/programming/978-5-97060-236-2/
     

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

  • 1.22, Андрей (??), 12:08, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > предоставляет средства для достижения высокого параллелизма выполнения заданий

    Really? По-настоящему эффективных "зелёных" потоков нет!
    > ... The green-threading M:N model requires a larger language runtime to manage threads. As such, the Rust standard library only provides an implementation of 1:1 threading. ...

    https://doc.rust-lang.org/book/ch16-01-threads.html

     
     
  • 2.42, kiwinix (?), 13:26, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    tokio
     
     
  • 3.43, Андрей (??), 13:33, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    это сторонняя библиотека
     
     
  • 4.57, Аноним (57), 14:12, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это сторонняя библиотека типа плюсового буста. В ней находятся те вещи, которых нет в стандартной библиотеке, т.к. не совсем понятно, как их реализовать. Если их внесут в стандартную либу, придется потом долгое время тянуть груз обратной совместимости и поддержки, из-за этого замедлится и скорость разработки и удобство использования.

    Токио популярна и когда говорят о расте в плане сети или ассинхронщины, всегда на уме держат токио.

     
     
  • 5.61, Аноним (61), 14:33, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну не скажите, tokio уже стандарт де факто когда речь идет о распаралеливании в расте..
    И когда говорят Future - то подразумевается именно токио

    есть еще на уровне очень сырого тестирования правда async/await. не уверен - это то же токио или у них там свои обработчики нитей

     
     
  • 6.148, burjui (ok), 22:59, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то, семантика async/await уже обкатана, просто были некоторые сомнения насчёт синтаксиса, но он недавно устаканился. Планировали стабилизировать в 1.39, вроде.
     
  • 6.165, анон (?), 04:18, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    То что сейчас находится в стандарте (еще не релизнуто, но уже известен номер версии и дата, когда точно релизнется) – это некоторые соглашения о стандартных интерфейсах и реализация ключевых слов async/await. А в токио как раз находится одна из реализаций этих асинхронных механизмов.

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

     
  • 4.110, burjui (ok), 19:33, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В Rust несколько другая идеология стандартной библиотеки: туда стараются добавлять только то, что необходимо, или то, что с очень большой вероятностью все будут пытаться реализовать сами практически в каждом проекте, и 99% сделают это хуже. Такие вещи, как green threads и coroutines, выносятся в крейты, т.к. их можно сделать множеством способов, и совершенно не очевидно, какой оптимальный. А, может, оптимального способа и вовсе не существует. Это не C++, здесь использование сторонних библиотек не только поощряется, а ещё и сильно проще благодаря Cargo, поэтому в этом нет никакой проблемы.
     
     
  • 5.154, Аноним (153), 00:27, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > а ещё и сильно проще благодаря Cargo

    Ага, а потом будет очередной "Вспомнити leftpad."

     
     
  • 6.159, burjui (ok), 01:26, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не будет. Нельзя просто так взять и удалить свой крейт с crates.io. Можно его "изъять из оборота" (yank), чтобы нельзя было на него ссылаться в публикуемых крейтах, но код будет по-прежнему доступен для тех, кто уже ссылается.
    https://doc.rust-lang.org/cargo/commands/cargo-yank.html
     
     
  • 7.186, Аноним (45), 05:09, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Периодически лежащий целиком официальный докерхаб гомерически смеется над адептами облачка.
     
     
  • 8.192, burjui (ok), 14:01, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну не пользуйтесь crates io, если у вас паранойя Подключайте крейты напрямую с ... текст свёрнут, показать
     
  • 8.202, Java (?), 17:27, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Cargo умеет в proxy registry Т е дополнительно поднимаешь кеш у себя в компани... текст свёрнут, показать
     
  • 2.65, Аноним84701 (ok), 14:57, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Глупые люди потому что - не знают, что есть такая серебрянная пуля А не, вдвойн... большой текст свёрнут, показать
     
     
  • 3.135, Аноним (139), 21:55, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Очень "глупые": взяли и вынески тяжёлый кусок рантайма в отдельную библятеку.
    То ли дело го! В стандартной библятеке есть вообще всё. Удач с отладкой "странных" лагов.
     
     
  • 4.151, Аноним84701 (ok), 23:22, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > тяжёлый кусок рантайма

    Да лан -- нам же говорят, что кастомная надстройка в виде юзерспейс-тредов будет "эффективнее" (видимо, за счет оверхеда) ;)

    > Очень "глупые": взяли и вынески тяжёлый кусок рантайма в отдельную библятеку.
    >> > RFC: Remove runtime system, and move libgreen into an external library

    Чини детектор сарказма ;)


     

  • 1.24, Аноним (27), 12:16, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Раст нигде не используется потому что, сюрприз, сюрприз, раст увеличивает срок разработки. Так как на нем нет ни одного вменяемого программиста, а те школьники что есть кроме хеллоу ворлд ничего написать не смогли. А на Си разрабов с опытом в 20 лет хоть ложкой ешь.
     
     
  • 2.40, kiwinix (?), 13:17, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Какой б***ь сюрприз??
    Если программа компилится - то 99% что она работает. Никаких сюрпризов

    Нигде не используется? Используется, и в серьезных конторах тоже. RocksDB(Facebook) но там ещё си, Fuchsia (google) там он как один из языков. Источник Википедия

    Я не все проекты знаю.. но и разрабов много и проектов тоже. А в крипте - так ваще раст первый в списке язык

     
     
  • 3.44, Аноним (46), 13:37, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Начинается в вашей мифологии Дропбокс тоже работает на Расте. Хотя там весь бекенд на Go. https://habr.com/ru/post/335056/

    RocksDB написан на С++ https://en.wikipedia.org/wiki/RocksDB

    Фуксия поддерживает приложения написанные для неё на расте. В ядре кода на расте нет. Есть несколько приложений и несколько игр и то данные как примеры  https://fuchsia.googlesource.com/fuchsia/

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

     
     
  • 4.62, kiwinix (?), 14:39, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ох, да ладно..на счёт RocksDB - извиняюсь.. Я вот правда думал что на Расте. А оказывается просто растовая обвязка есть(
     
  • 4.136, Аноним (139), 22:02, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ох, лол. Ещё один "просветлённый" от мира го. Ваш го сколько пушился гуглом? Почти пять лет, напомню. Догадаешься зачем? Гуглу нужны сотни дешёвых макак, которые умеют в их инструмент. У мозилки_и_ко таких ресурсов нет. Да, раст ни разу не идеален, и проектов на нём не то, чтобы много. Но они есть. Из открытых — библиотеки Gecko и Firefox. Как ты думаешь, почему мозиловцам пришло в голову изобрести НОВЫЙ ЯЗЫК? Лень, выучить ЦэПэПэ или го? Или, всё-таки, они пытаются сделать инструмент удобный для себя и сообщества (приходится, ага. Ресурсов как у гугла нету же)?
     
     
  • 5.172, Аноним (45), 05:40, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ваш раст сколько пушился мозилкой? Почти восемь лет, напомню. Догадаешься зачем? Мозилке нужны сотни дешёвых макак, которые умеют в их инструмент. У александреску таких ресурсов нет. Да, D ни разу не идеален, и проектов на нём не то, чтобы много. Но они есть. Как ты думаешь, почему александреску пришло в голову изобрести НОВЫЙ ЯЗЫК? Лень, выучить ЦэПэПэ? Или, всё-таки, они пытаются сделать инструмент удобный для себя и сообщества (приходится, ага. Ресурсов как у гугла нету же)?

    // Fixed

    P.S. Попытка неудачная, на выходе всё равно получилось говно, несмотря на все ресурсы.

     
     
  • 6.203, Java (?), 17:29, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    8 лет? Таки к 2023-му году изобрели машину времени уже? Приятно. А как с флаерами? Как там Алиса?
     
  • 3.73, Аноним (69), 16:01, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > А в крипте - так ваще раст первый в списке язык

    Сам-то понял, что написал?
    Кри́пта (от др.-греч. κρυπτή «крытый подземный ход; тайник») — в средневековой западноевропейской архитектуре одно или несколько подземных сводчатых помещений, расположенных под алтарной и хоральной частями храма и служащее для погребения и выставления для почитания мощей святых и мучеников.

     
     
  • 4.97, Аноним (45), 18:08, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну всё правильно, заранее столбят место на кладбище. Мозилла заранее строит себе пирамиду, аки древнеегипетский фараон.
     
  • 4.178, . (?), 11:22, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> А в крипте - так ваще раст первый в списке язык
    >Сам-то понял, что написал?
    >Кри́пта (кусь...)

    В сленге промышленного быдлокодинга -- криптография. Так понятнее?

     
  • 2.66, Аноним (16), 15:27, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чувак, ты ошибаешься. Rust использует Mozilla, причём эффективно. На расте там пишет небольшая команда, остальные сишники или js и проч.

    Так вот, ребятам удалось написать (с "нуля") многопоточный парсер CSS на rust. До этого было 3 (!!) попытки сделать то же самое на C++, причем в команде мозиллы очень квалифицированные разработчики (другие просто не смогут писать такую сложную вещь как браузер), но все разы был облом, новый код глючил и не работал, отладка затягивалась на месяцы и в конечном итоге попытка "закапывалась".

    Где ещё раст используется:
    https://www.reddit.com/r/rust/comments/d9fww1/which_companies_are_using_rust_f

     
     
  • 3.76, Аноним (86), 16:13, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Правильнее было писать только Mozilla. Написали либу для css. Либу, Карл! За 9 лет!
     
     
  • 4.137, Аноним (139), 22:06, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    не гони. У меня есть знакомая студия игоределов, которые ушли из других игродельных контор. Пишут на расте всякую мелкую фигню. Пока не публично. Из прикольного — присылают бинари под 4 платформы одновременно (винда, мак, линуксы и фряха). Все бинари статичны.
     
     
  • 5.180, Аноним (180), 13:13, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот ты и ответил на вопрос что на расте нельзя сделать ничего, кроме мелкой фигни. Еще и не публично. Бинари статичные под 4 платформы и го может. Только го может гораздо больше.
     
  • 2.71, Аноним84701 (ok), 15:57, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https github com BurntSushi ripgrep code ripgrep rg -L -u -tc -n -w A-Z _... большой текст свёрнут, показать
     
     
  • 3.75, Аноним (86), 16:12, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Опять кроме синтетики ничего сказать не могут. Классика. Почему растобои всегда ведут дискуссию в одном ключе? У вас методичка есть как защищать раст на опеннете?

    Синтетику можно подогнать к чему угодно когда угодно.

     
     
  • 4.78, Аноним (78), 16:25, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    4 ядра обогнали 1.
     
     
  • 5.80, Аноним84701 (ok), 16:33, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > 4 ядра обогнали 1.

    Реальных ядер только 2, если что.
    Ну и я весь внимание и жду с нетерпением патч/опции запуска grep на нескольких ядрах.

     
  • 4.79, Аноним84701 (ok), 16:27, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Опять кроме синтетики ничего сказать не могут. Классика.

    Специально для танкистов добавил уточнение про "локально".  "Локально" - это значит на реальной репе в 2.5 GB кода на собственном локалхосте.
    Теперь жду объяснений про "синтетику" и примеров "несинтетики" :)

    > Почему растобои всегда ведут дискуссию в одном ключе? У вас методичка есть как защищать раст  на опеннете?

    Т.е. по теме ничего не будет, будет батхерт? :)

    > Синтетику можно подогнать к чему угодно когда угодно.

    Ну давайте подгон под grep, я только за!

     
     
  • 5.85, Аноним (86), 17:17, 27/09/2019 Скрыто ботом-модератором     [к модератору]
  • –5 +/
     
     
  • 6.93, Аноним84701 (ok), 17:50, 27/09/2019 Скрыто ботом-модератором     [к модератору]
  • +6 +/
     
  • 3.77, Аноним (78), 16:24, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > system 372% cpu 1,400 total
    > system 99% cpu 4,315 total

    То есть выигрыш алгоритмический.

    Два вопроса:
    1. почему в 1м варианте (rust) ядра частично проставивают?
    2. почему второй вариант (С) "не смогли" распараллелить?

     
     
  • 4.99, Аноним (45), 18:12, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вспоминается статья со сравнением производительности aws-кластера hadoop'а и grep'а. Угадайте кто выиграл.
     
     
  • 5.115, Аноним (115), 20:10, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раст.
     
  • 4.158, Ordu (ok), 01:25, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если там написано 375 , то есть 25 одного ядра не было занято ripgrep ом, я под... большой текст свёрнут, показать
     
  • 3.140, Ололо (?), 22:26, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Как там насчёт сравнения с The Silver Searcher (ag), написанном на C?
     
     
  • 4.155, Аноним84701 (ok), 00:31, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Угу, угу code ag --version ... большой текст свёрнут, показать
     
  • 2.118, аноним3 (?), 20:34, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    а еще синтаксис раст такое уг, что прочесть его через пару лет сможет не каждый. а там и язык сменится)) короче он далек от реальной сферы применения.
     

  • 1.28, Аноним (28), 12:24, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Язык снабжён огромным количеством runtime сахара, но всё это тонет в куче синтаксического мусора. По моему скромному мнению Swift, Nim и python вполне адекватные и современные языки с простым и выразительным синтаксисом. Скобочный синтаксис это прошлый век, но ручное управление памятью - для низкоуровневых задач вполне приелемо, поэтому скобочный Си всегда будет нужен. Даже Си++ имеет более низкий порог вхождения чем Rust, при этом Си++ был разработан давно, а это значит что создатели Rust не получилось учесть опыт разработчиков Си++, т.к. по совокупности свойств Си и Си++ опережают Rust, к сожалению.
     
     
  • 2.30, Fatum (??), 12:51, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Какие его годы - вырастет еще мальчонка. Swift | Nim | Python решают совершенно иной круг задач нежели C | C++ | Rust - сравнение тут неуместно.
     
     
  • 3.41, kiwinix (?), 13:21, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно производительность Пайтона может как-то вообще стоять рядом с растом.. Питона даже PHP уделывает... А вы тут с Растом сравнили
     
     
  • 4.81, Аноним (28), 16:38, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю в какой ситуации пэхапэ уделывает питона, но я за семь лет использования питона, ни разу не сталкивался с проблемой нехватки времени ЦПУ в задачах решаемых на питоне, при этом графически нагруженные приложения работают у меня на целеронах и атомах.
     
     
  • 5.138, Аноним (139), 22:22, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну смотри: я такое недавно реализовывал для "анализа" пролетающего в наш же сервис трафика. Задача:  необходимо посчитать неопределённое количество сообщений из UDP-"сокета" и каждую секунду впихивать в KV-хоронилище результат в виде суммы по ключам сообщений со сбросом счётчика. Сообщение — UDP-пакет вида '''key{:,=,/}value'''. Однопоточное нечто на похапэ 7.2 (вроде) порвало мой многопоточный нетривиальный код на питоне со счётом 0:400 (в количестве потерянных пакетов в секунду) при общем потоке чот около 15000-20000 сообщений в секунду. Это была основная характеристика. По памяти я тоже (вроде) проиграл раза в 2. После такого унижения смеяться совсем не захотелось. Хотел отомстить, но крыть было нечем.
     
  • 4.121, аноним3 (?), 20:39, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    ты где это видел такого питона чтоб так тихо полз?))) скрипты на питоне прекрасно летают. чес слово не замечал большой разницы с тем же башем, или другими приложениями в консоли. если ты только его не тормозишь через input().
     
  • 2.145, Аноним (139), 22:39, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Соглашусь про мусор. Только мусор этот не синтаксический, а визуальный. Привычки искать парные символы, вот это вот всё…
    Все эти свифты, нимы и пыхтоны обладают одной интересной особенностью — ЖИРНЮЧИМ рантаймом. И это имеет свою цену. В первую очередь — размер финального "бинаря". Скомплить сколь-нибудь сложное питононячье приложение как статический бинарник под большинство платформ ты, скорее всего не сможешь. Двое других тянут с собой приличный запас "батареек". И если хэллоуворд на NIM занимает куда меньше чем тот же хэллоуворд на свифте (спасибо умному линковщику), то вот более-менее работающее веб-приложение с приличным деревом зависимостей не оставит тебя равнодушным.
     
     
  • 3.193, Anonim (??), 18:41, 29/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не трясите ерундой.
    https://hackaday.com/wp-content/uploads/2018/09/graph.png
     

  • 1.31, kiwinix (?), 12:52, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик

    Да не в один клик, а в один пись...

     
  • 1.88, user90 (?), 17:29, 27/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > :type_name::‹T›());

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

     
     
  • 2.112, Аноним (111), 19:55, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты не одинок.
     
  • 2.114, burjui (ok), 20:07, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Если вы плохо знаете язык, то это ваша проблема, а не языка. Любой, кто знает Rust, читает это без напряга и сразу понимает, что это значит. А у вас подход, как у каждого второго комментатора в новостях про Rust: "Буээ, ужасный синтаксис, да ещё и не такой же, как у C++! Я языку не уделил даже десятой части времени, потраченной на освоение C++, но читать не могу не потому, что я предвзят и ленив, а потому что язык - дерьмо! А раз язык - дерьмо, то его изучение - пустая трата времени. Шах и мат, растоманы!"

    Вот вы почитайте код STL и скажите после этого, какой у C++ изящный и интуитивно понятный синтаксис. Однако под новостями о C++ даже близко нет такого количества нытья. По-моему, это говорит лишь о двойных стандартах. Вы по-русски хорошо читаете? А вот подавляющая часть иностранцев - нет. Как вы думаете, почему? Наверное, потому, что вы в нём варитесь уже больше десятка лет, а они его видят впервые. Почему-то, это всем очевидно, но как только разговор заходит о синтаксисе не естественного языка, а языка программирования, вы резко забываете об этом и считаете, что ваша бурная висцеральная реакция - вина разработчика, и никого другого.

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

     
     
  • 3.123, аноним3 (?), 20:43, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    плюсую за то что смог выучить весь синтаксис плюсов и их изменения. я вот только думаю где такого гения нашли? даже мастера плюсов говорят , что они не знают всего языка, а тыт тут говоришь , что знаешь. извини это хвастовство.
     
     
  • 4.125, burjui (ok), 20:49, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Где я так говорю? Приведите цитату, будьте любезны.
     
  • 3.124, user90 (?), 20:48, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вообще, поражаюсь таким, как вы. Как вы умудряетесь развиваться как программисты ...

    Деградирую.. К тому же я юууузер а не кодер, на ник посмотрите в конце концов!

     
     
  • 4.126, burjui (ok), 20:54, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > на ник посмотрите

    Выше есть комментарий от пользователя с ником "заминированный тапок". Это так, к слову.

     
  • 3.134, user90 (?), 21:54, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Если вы плохо знаете язык, то это ваша проблема, а не языка.

    Поясню свой базар)) Мне честно говоря плевать на сам раст с 9го этажа, речь только про то, что мозилла не сумела впихнуть свои гениальные идеи в адекватное текстовое представление. Ну не вышло! Толи букавок не хватило, то ли сами идеи не совсем того..

     
     
  • 4.146, burjui (ok), 22:54, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > мозилла не сумела

    Сильное заявление. Проверять я его, конечно, не буду. Доверюсь вам. Спасибо, что решили выступить арбитром адекватности в этом деле. Но проявите милосердие, ведь Мозилла не сумела вас удовлетворить просто потому, что не пыталась, так как не знала о вашем существовании. Так что в следующий раз вы не молчите, вправьте им там мозги, чтобы не позорились, и впредь ориентировались на ваше экспертное мнение, а не на миллионы обычных людей, у которых нет вашего утончённого вкуса.

     
     
  • 5.150, user90 (?), 23:15, 27/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Сильное заявление.

    Как раз самое банальнейшее. Достаточно просто сравнить с чем-то другим.

     
  • 3.175, Илья (??), 07:17, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Желаю вам удачи.

    Синтаксис нормальный у python или c#, или котлина там. И наверное сравнивают его по синтаксису именно с "красивыми" языками, а не с c++

     
  • 2.166, анон (?), 04:35, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Т.е. плюсовый

    auto x = std::vector<int>();

    ты понимаешь, а растовский

    let x = std::any::type_name::‹i32›();

    уже рандомный набор знаков? Ну да, там лишняя пара двоеточий стоит.

     

  • 1.156, Petr (??), 00:35, 28/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сначала "rustup update" а потом уже читаю комментарии уважаемых экспертов.
    Пишем на нём инструменты для своих инженеров - пока нравится. Может и до основных сервисов дойдёт если так и продолжится. В отличие от других языков Rust у нас и Java и C++ разработчики хотят попробовать. Есть наконец-то общая тема.
     
  • 1.157, pripolz (?), 00:38, 28/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Создание и использование Раста совершенно логично. Невозможно создать современную систему без современных инструментов.

    Одно только не понятно: зачем они написали "призван заменить Си"? На нем же давно уже никто не пишет. Самая лучшая среда программирования - Visual Studio его даже не поддерживает толком. Может еще Паскаль давайте заменим?

     
     
  • 2.160, аноним3 (?), 01:29, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на си пишут и много. сколько низкоуровневых программ и драйверов ты знаешь на чем то другом. есть конечно, но это не в какие ворота не лезет рядом с сишным кодом.
     
  • 2.181, Аноним (180), 13:17, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что до уровня С++ это месиво не дотягивает. Поэтому решили заменить то что может заменить что угодно.
     
  • 2.183, Wilem (?), 15:22, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это студия-то лучшая? Мда, тяжело некоторые люди живут.
     
     
  • 3.184, аноним3 (?), 19:27, 28/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    у си всегда была одна лучшая студия и это текстовый редактор да gcc.
     
  • 3.196, pripolz (?), 03:20, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо про простоту, 'жизни', это самое главное. Решается очень просто. Скачал, установил, запустил. Новый проект, кнопочка "билд"
     

  • 1.191, Аноним (189), 12:13, 29/09/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Из того, что я уже в Расте увидел, сделал вывод, что, наверное впервые за всю историю развития императивных ЯП (ну, кроме Виртовско-Дейкстровско-Хоаровуских, наверное), развитие языка начали правильно и с привлечения грамотных математиков.
    Имеет шанс.
    А что будет с Си и Си++?
    Они начнут движение в сторону Раст-мира.
    Другое дело, что Си будет легче стать "как Раст", а вот На счёт Си++ - не уверен. Там уже столько тонн прилепок и "обеспечений совместимости" в стандартах наговнили, что "добавление ещё одной универсальности", может его окончательно превратить в кучу неподъёмного и внутренне несовместимого говнища.
     
     
  • 2.204, Java (?), 17:39, 30/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати да, добавление в C lifetime'ов было бы весьма кстати.
     

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



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

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