URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 126023
[ Назад ]

Исходное сообщение
"Выпуск языка программирования Rust 1.57"

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

Подробнее: https://www.opennet.me/opennews/art.shtml?num=56270


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 21:53 
Генераторы когда?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 22:10 
Безопастного кода, это же раст. От одной только новости про раст выведеной на монитор  +40% безопастности на всем компуктере и по 10% на близ лежащие устройства до которых достает свечение.

"Выпуск языка программирования Rust 1.57"
Отправлено morphe , 02-Дек-21 22:15 
С настоящими генераторами ещё много неразрешенных вопросов, а пока можно использовать https://github.com/whatisaphone/genawaiter , что не сильно хуже

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:21 
какие там генераторы, если для многих платформ

> без ... тестирования и проверки возможности сборки кода.

Сколько ещё десятилетий ждать?


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 08:04 
А ты вместо того, чтобы ждать, взял бы да помог людям. Ась? Не приходила никогда в голову такая простая мысль?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 10:37 
Ты часто помогаешь?

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 10:52 
Всегда, когда заинтересован в чём-то.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:35 
Вот только ты ни в чём не заинтересован.

"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 03-Дек-21 13:54 
Ну воля помогают (ну, и, конечно же, числюсь контрибьютором используемого мной компилятора). Дальше что? В чём ваш аргумент?

"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 03-Дек-21 13:55 
воля => вот я

Сорри, набираю с планшета с автозаменами.


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:13 
Тебе-то откуда знать? Или просто надо было что-то сказать в ответ?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 22:04 
А что там с Core Team?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 22:46 
Правит неограниченной властью и никому не подотчетна, что же с ней ещё будет?

"Выпуск языка программирования Rust 1.57"
Отправлено SerjAnt , 03-Дек-21 00:18 
Великолепная пятёрка в Rust Foundation нашептала что народ слушать не надо, а надо быть нэзалэжными от их мнения и влияния и это трэнд. И собрала номера карт для зачисления бонусов лояльности следования планам их развития.

"Выпуск языка программирования Rust 1.57"
Отправлено Мавродий , 03-Дек-21 13:54 
тебя, как истинного росиянина, должен радовать сей факт. а ты расстроен, почему?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 11:43 
> нэзалэжными
> истинного росиянина

Россиянин получился какой-то не очень настоящий.


"Выпуск языка программирования Rust 1.57"
Отправлено lufog , 10-Дек-21 04:50 
Вполне себе настоящий, сомневаюсь что украинец написал бы слово "незалежний" русскими буквами. Ибо выглядит каким-то кривлянием.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 22:20 
> const _: () = assert!(std::mem::size_of::<u8>() == 1);

Уж на что синтаксис perl своеобразный, но это, гм, практически брейнфак какой-то...


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 22:46 
Что ж тут такого? На C++ с шаблонами примерно такие же перлы

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 23:46 
Там еще большую магию творить можно, на самом деле

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:14 
Можно. Но для банальнейших ассертов и не нужно.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:17 
В Rust тоже можно можно обернуть эту магию в макрос и назавть его static_assert!(). Мб в std рано или поздно так и сделают, но здесь не уверен.

А вообще, ничего сильно страшного в коде не происходит: всего лишь объявили неиспользуемую константу _ пустого типа ().


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 07:15 
"const _: ()" - лично меня "убивает" не только эта конструкция, но и формулировка "неиспользуемая константа пустого типа".

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 08:11 
Иной раз константы следует объявлять неиспользуемыми, чтобы компилятор не ругался. Для тебя такое в новинку?

А пустой тип сродни null. Или тоже первый раз о таком слышишь?


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 08:19 
А пустой тип сродни null или void.

"Выпуск языка программирования Rust 1.57"
Отправлено Анонимъ , 03-Дек-21 10:32 
Строго говоря тип не пустой. У этого типа есть одно единственное значение. Это тип, размер которого равен нулю.

Альтернатива подобному - специальный синтаксис для краевых случаев. Но это усложняет язык и со временем порождает монстров вроде C++.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 20:30 
() это хорошо известный из функциональных языков программирования тип Unit. В Хаскеле, каком-нибудь, нету того же void, там будет IO () скорее всего для процедур с побочными эффектами.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 06-Дек-21 12:12 
Две неиспользуемые константы с одним и тем же именем?
Там же в строчках подряд
   const _: () = ...;
   const _: () = ...;

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 06-Дек-21 13:04 
> Две неиспользуемые константы с одним и тем же именем?
> Там же в строчках подряд

Это вообще-то "классика", мимо которой довольно сложно пройти:
https://en.wikipedia.org/wiki/Underscore#Programming_convent...
> In some languages with pattern matching, such as Prolog, Standard ML, Scala, OCaml, Haskell, Erlang, and the Wolfram Language, the pattern _ matches any value, but does not perform binding.

...


"Выпуск языка программирования Rust 1.57"
Отправлено freecoder , 08-Дек-21 10:10 
В Rust подчеркивание "_" - это не имя, а служебное слово языка.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:43 
Да в самом деле, не человечий язык. Всё надо до одной буковки сократить и выражения кодировать в виде символов.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:08 
> Да в самом деле, не человечий язык. Всё надо до одной буковки
> сократить и выражения кодировать в виде символов.

Предложи свой, более правильный вариант - ты же знаешь, как сделать лучше?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 02:53 
C++ лучше

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 08:13 
Чем? Количество страниц в спецификации больше? 🤣

"Выпуск языка программирования Rust 1.57"
Отправлено Совершенно другой аноним , 03-Дек-21 10:14 
По этому параметру Rust действительно, похоже, побеждает. У него вообще нет спецификации (https://stackoverflow.com/questions/21177436/is-there-a-publ...). Насколько я понял из ответа - авторы ждут, когда им её кто-то напишет.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 10:19 
C++ победить нельзя - у него полный текст стандарта закопирайчен и продается за деньги.
Опенсорсные растососы опять в пролете.

"Выпуск языка программирования Rust 1.57"
Отправлено Совершенно другой аноним , 03-Дек-21 10:35 
> C++ победить нельзя - у него полный текст стандарта закопирайчен и продается
> за деньги.
> Опенсорсные растососы опять в пролете.

В этих ваших интернетах всегда есть публичный последний черновик, который от релиза отличается только датой. Иначе как по Вашему в командах gcc и llvm пилят все нововведения? не иначе как через libastral.so


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 10:37 
>Иначе как по Вашему в командах gcc и llvm пилят все нововведения?

Вполне возможно, что покупают.


"Выпуск языка программирования Rust 1.57"
Отправлено fsb4000 , 03-Дек-21 11:06 
Не. Последнего черновика достаточно. В Microsoft берут оттуда т.з. для реализации новых фич.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 10:40 
>Насколько я понял из ответа - авторы ждут, когда им её кто-то напишет.

Вполне, возможно, что так и есть. Сообщество пока сравнительно небольшое. Однако же, уверен, когда её напишут, вряд ли её объём сравнится с плюсами. Плюсы объективно гораздо более сложный язык.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 14:35 
Зачем предлагать? У меня уже есть велосипеды: C, Go, Java.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:08 
Где-то тихо хихикали another perl hacker-ы...

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 08:25 
Какой из языков программирования человеческий?
Сколько лично ты знаешь человеческих языков? Раст осваивается примерно за месяц-другой в первом приближении. С немецким, английским, китайским, французским или ещё каким человеческим языком так сможешь управиться? Сильно сомневаюсь. А если так нет, зачем здесь твоё нытьё?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 10:41 
Ложь. А хотя, если для тебя хелло ворлд - это освоить язык, то да.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:45 
> Ложь. А хотя, если для тебя хелло ворлд - это освоить язык, то да.

Интересно, что именно там "ложь" и почему так ловко проигнорированны наводящие вопросы?

Понимаешь, далеко не все ограничиваются в своем проф. развитии одним лишь JS/PHP/C^H/Python (после турбо-паскаля в родном ПТУ), попутно полностью забивая на теоретерическую часть.
И вот им - многие концепты в расте совсем не кажутся непонятно-извращенной тарабарщиной (а синтаксис - овно^W "чудным").



"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:20 
Я же специально сказал "в первом приближении". Это значит базовые вещи вполне можно ухватить за этот период. Да и сложного там ничего по большому счёту нет, если вдумчиво читать книгу для начинающих программировать на Rust (есть в свободном доступе и в оригинале, и на русском).

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 14:36 
Я выучил Си за 3 дня.
А кресты и сам не люблю. Но в том то и прикол, что нафига предлагать те же грабли.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 10:26 
Как перл и руби с питоном - язык писателей. Для чтения непригоден.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 20:36 
Зачем же так толсто? Perl ещё куда ни шло - там бывают "разночтения". Но Руби с Питоном чем не угодили? Уж куда читабельней-то?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноньимъ , 04-Дек-21 17:52 
Ха.

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

Когда ненужно всматриваться в пробелы нужно всматриваться в километровые портянки из замыканий.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 18:11 
> Ха.
> Питон читабельнее?
> Человеческое восприятия с большими проблемами, внезапно, измеряет длину пустого места.
> А блоки кода определяются проблемами, испанский стыд.

А пацаны-то и не знали ...


static int cap_validate_magic(cap_user_header_t header, unsigned *tocopy)
{
    __u32 version;

    if (get_user(version, &header->version))
        return -EFAULT;

    switch (version) {
    case _LINUX_CAPABILITY_VERSION_1:
        warn_legacy_capability_use();
        *tocopy = _LINUX_CAPABILITY_U32S_1;
        break;
    case _LINUX_CAPABILITY_VERSION_2:


Какой же ты все-таки балабол, испанский стыд.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 15-Дек-21 18:42 
> switch (version) {
>    case

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 15-Дек-21 22:48 
>> Человеческое восприятия с большими проблемами, внезапно, измеряет длину пустого места.

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

Прикинь - можно читать не только жопой, но и глазами.

> оно скомпилится и с пробелами и без пробелов и с переносами и без

Но в ядре (а код оттуда) почему-то предпочитают именно такой код, с "пробелами".

https://www.kernel.org/doc/html/v4.10/process/coding-style.h...
> The whole idea behind indentation is to clearly define where a block of control starts and ends.

Вообще да, у теоретиков на опеннете все может быть, но в реальности, любой проект чуть сложнее хелловрота, на не сильно эзотерическом ЯП, будет (внезапно) отформатирован "блоками", "пробелами" и "переносами".

https://www.freebsd.org/cgi/man.cgi?query=style&sektion=9

switch (ch) {         /*    Indent the switch. */
             case 'a':             /*    Do not indent the case.    */
                 aflag = 1;         /*    Indent case body one tab. */


> /usr/src/tools/tools/editing/freebsd.vim
>          A Vim plugin to follow the    FreeBSD    style indentation rules.

https://chromium.googlesource.com/chromium/src/+/refs/heads/...
> Chromium follows the Google C++ Style Guide unless an exception is listed below.


switch (var) {
  case 0: {  // 2 space indent
    ...      // 4 space indent



"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 21:14 
Большинство погроммистов как раз таки писатели :)
Ruby лучший синтаксис как по мне, но тоже начали гадить: =>

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:44 
Язык эгоистов. Сам написал, сам понял, но другие не смогут прочесть, и сам через месяц тоже.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:09 
Почему нет? C++ подобный подход даже украшает.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 02:58 
C++ попроще

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 08:15 
То-то люди по пять лет C++ изучают только для того, чтобы через эти пять лет начать писать что-то сколь-либо осмысленное.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 10:20 
Ну, какую-нибудь ржавчину можно за пару месяцев выучить от и до, а чтобы научиться более-менее нормально писать на плюсах, и десяти лет мало.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 10:43 
Мало того, даже через десять лет люди сомневаются в качестве своего кода ввиду особенностей полюсов и сложности спецификации.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 10:54 
полюсов -> плюсов

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 10:28 
Причины разные.
Некоторые считают, что "изучили хруст/питон/жс", подтянув 100500 чужих лефтпадов из ближайшей мусорки, и кое-как слепив их конструкциями языка.
Вот только к изучению языка и программированию лепка петухов из фекалий отношения не имеет.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 10:44 
Если на этих языках так можно, а на полюсах - нельзя, значит последние объективно сложнее. Ч. Т. Д.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 11:21 
Нет, это значит в последних выбрана парадигма crowd shitcoding.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 19:26 
Расскажи о shitcoding людям, которые уже разочаровались в C++ и больше на него смотреть не хотят, переключаясь кто куда, но только подальше от этого кошмара.

Также будет нелишним вспомнить об объёме спецификации Плюсов. Есть в мире хоть один человек, который знаком с ней хотя бы процентов на 80? Я вот сильно сомневаюсь в этом. Очень сильно.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:07 
> разочаровались в C++ и больше на него смотреть не хотят

Их проблемы. Машины - это не об эмоциях.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноньимъ , 04-Дек-21 23:51 
Люди не машины.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:08 
> будет нелишним вспомнить об объёме спецификации Плюсов

Ну извини, да, в этом мире сложно.
Rocket science ещё сложнее.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:15 
> Вот только к изучению языка и программированию лепка петухов из фекалий отношения не имеет.

Ну, есть такая прога - ld. Позволяет автоматизировать этот процесс.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 11:20 
Наверняка прекрасно понимаете отличия, но привычно лицемерите.
Подсказка: отличие фекалий от библиотек заключается в объёме полезной работы.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 11:25 
Кроме того, ld занимается чисто техническим связыванием, оставляя подтягивание лефтпадов из выгребных репозитариев на совести ассеникодера.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:35 
и обеспечивая невозможность запуска программы без выгребания из реп (что, в свою очередь, привело к появлению пакетных менеджеров и бандлов).

"Выпуск языка программирования Rust 1.57"
Отправлено Аноньимъ , 04-Дек-21 17:45 
>Уж на что синтаксис perl своеобразный, но это, гм, практически брейнфак какой-то...

На вид обычная Сипипишка. Ничего страшного.


"Выпуск языка программирования Rust 1.57"
Отправлено lufog , 10-Дек-21 05:32 
>> const _: () = assert!(std::mem::size_of::<u8>() == 1);
> Уж на что синтаксис perl своеобразный, но это, гм, практически брейнфак какой-то...

С синтаксисом смирится можно, всяко легче освоить чем тот же F# после плюсов.

Больше напрягает подход Rust Core Team к сообществу. Например, программист открывает issue, проект у него под Linux собирается, а под Windows нет. Ибо cargo не умеет в длинные имена под Windows, хоть сама Windows c 2016 года умеет. Программист просит, добавите в бинарь виндовой сборки cargo манифест с longPathAware true. Ибо это идиотизм когда кроссплатформенность твоего проекта зависит не от обращения с ОС специфичным API, а от длинны имен пакетов зависимостей. В итоге Core Team пишет что это невозможно, ибо Rust в манифесты не умеет (а задача это настолько невозможная что в crates уже сто лет в обед пакет валяется, который это умеет), да и rustс в длинные имена не может (те добавить манифест и туда видимо не вариант), а еще есть вероятность что в msvc тулчейне этой поддержки нет (сильное заявление, проверять я его конечно не буду), а затем вообще в тумане теряется.

Предвижу с десяток ответов вроде "Вендузоеды должны страдать!". Должны, не должны, я думаю что если проект назвали кроссплатформенным, то он должен таковым являться, а не делать видимость. И это я привел только один пример, а таких я уже с пару-тройку десятков повидал, за то не долгое время пока осваивал данный язык.


"Выпуск языка программирования Rust 1.57"
Отправлено AirToad , 02-Дек-21 22:25 
А что системного написано на этом "языке системного программирования"?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 22:44 
> А что системного написано на этом "языке системного программирования"?

https://firecracker-microvm.github.io/
>Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services.

https://github.com/0x59616e/SteinsOS
> SteinsOS is an operating system featuring non-preemptive kernel targeting on single-core armv8 architecture.

https://github.com/smoltcp-rs/smoltcp
> smoltcp is a standalone, event-driven TCP/IP stack that is designed for bare-metal, real-time systems.

https://www.opennet.me/opennews/art.shtml?num=56056
> Релиз RustZX 0.15.0, кросплатформенного эмулятора ZX Spectrum

https://www.opennet.me/opennews/art.shtml?num=56193
> Выпуск Stratis 3.0, инструментария для управления локальными хранилищами

Ждем-с привычного "Это и вот это не считается, потому что не считается! И это тоже не считается! Вот!"


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 22:49 
Посоветуйте антивирус на Расте

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:07 
В касперском его вроде использовали, но по-моему в их безопасной ОСОБО, а не в самом антивирусе

"Выпуск языка программирования Rust 1.57"
Отправлено Led , 03-Дек-21 00:29 
новичо^Wспутник5

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:11 
Раст признан технологией двойного назначения и запрещён к экспорту в недемократические страны?

"Драйвер на Rust "
Отправлено n00by , 03-Дек-21 09:23 
Для современного антивируса обязателен драйвер. В Венде для использования произвольного языка не надо преодолевать формальности в виде пальца Линуса.

Нашёл достаточно простой пример драйвера. devrandom driver sample which has been ported to Rust.
https://github.com/pravic/winapi-kmd-rs/blob/master/examples...

Оригинал на Си++ https://github.com/pravic/ontl/blob/master/samples/devrandom...
несколько больше по размеру, за счёт дополнительного функционала. Но интересно не это, а безопасная работа с памятью.

Вариант на небезопасном Си++ использует механизм структурной обработки исключений, если указатель Buffer адресует навалидный адрес, функция завершится корректно со статусом status::data_error.


ntstatus RandomData(void* Buffer, uint32_t Length)
{
  int64_t seed;
  KeQueryTickCount(seed);
  __try{
    uint32_t* data = reinterpret_cast<uint32_t*>(Buffer);
    for(uint32_t i = 0; i < Length / 4; i++)
      data[i] = RtlRandom((uint32_t*)&seed);
    if(Length % 4){
      uint32_t r = RtlRandom((uint32_t*)&seed);
      std::memcpy(&data[Length/4], &r, Length % 4);
    }
  }__except(efilter(exception_info(), __FUNCTION__)){
    return status::data_error;
  }
  return status::success;
}

Вопрос к знатокам: упадёт ли аналог в синьку, или Rust неявно использует SEH, или как-то иначе гарантируется валидность адреса?

// RtlRandom: Random number generator based on MacLaren and Marsaglia.
// RtlRandomEx is twice as fast and produces better random numbers
// since the period of the random numbers generated is comparatively higher.
fn GenerateRandom(buffer: PVOID, size: usize) -> Result<usize> {
    let mut seed = km::time::QueryTickCount() as u32;
    let data = buffer as *mut u32;
    let dwords = size / 4;
    let tail = size % 4;
    KdPrint!("[rs] generate random for %d bytes as %d words and %d padding\n", size as u32, dwords as u32, tail as u32);
    unsafe {
        let mut i = 0;
        while i < dwords {
            let word = km::rtl::RtlRandomEx(&mut seed);
            *data.offset(i as isize) = word;
            i += 1;
        }
        if tail != 0 {
            let word = km::rtl::RtlRandomEx(&mut seed);
            km::crt::memcpy(data.offset(dwords as isize) as *mut u8, &word as *const u32 as *const u8, tail);
        }
    }
    KdPrint!("[rs] generate complete\n");
    return Ok(size);
}


"Драйвер на Rust "
Отправлено _hide_ , 03-Дек-21 12:34 
И в чем же его безопасность в этом примере? Просто до сих пор не понял, зачем себе яйца тисками зажимать?

"Драйвер на Rust "
Отправлено Аноним , 03-Дек-21 15:47 
Редокс безопасно течёт, FF безопасно падает, драйвер на расте безопасно выводит "хеловорд!".

"Драйвер на Rust "
Отправлено n00by , 04-Дек-21 08:26 
Сам по себе этот драйвер примечателен уже тем, что он есть. То есть без особого шума (как при попытке протащить Rust в Linux) автор создал библиотечку и написал к ней пример (угу, по традиции портировал пример аналогичной Си++ библиотеки). Но как раз по безопасности есть вопросы, на которые пока нет ответов.

"Драйвер на Rust "
Отправлено n00by , 04-Дек-21 08:19 
Если вопрос про безопасность Rust, то как раз это и интересно.

Обе функции получают в качестве параметра указатель, адресующий пространство пользователя. Если данному адресу не сопоставлена физическая страница ОЗУ, при обращения (запись результата) из ядра генерируется исключение. Если его не обработать должным образом, система покажет BSOD (синий экран смерти). Что делает возможным атаку вида "отказ в обслуживании". Вариант на Си++ использует SEH (конструкция __try __except) и обрабатывает такой случай, юзерленд получит код ошибки. Что в аналогичном сценарии произойдёт с драйвером на Rust, хотелось бы узнать.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 23:28 
>> Ждем-с привычного "Это и вот это не считается, потому что не считается! И это тоже не считается! Вот!"

Считается, зачёт, молодцы!
А зачем?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 23:58 
по любой поделке раста огромный список недоделок, ещё один язык для писателей?

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 20:41 
Список недоделок в студию, балабол!

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:02 
до чего все безопасное на раст, каждый вызов небезопасной функции libc помечен как небезопасный, что автоматом повышает безопасность на тысячи процентов. весь файл состоит из таких вызовов.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:14 
> до чего все безопасное на раст, каждый вызов небезопасной функции libc помечен как небезопасный, что автоматом повышает безопасность на тысячи процентов. весь файл состоит из таких вызовов.

Это пример того, как на Rust писать неправильно. А правильно использовать unsafe по минимуму и какм можно раньше оборачивать небезопасный код в безопасные абстракции.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:26 
> Это пример того, как на Rust писать неправильно.
> ... писать неправильно ...

А разве на расте есть другая возможность?


"Выпуск языка программирования Rust 1.57"
Отправлено Токсичный адепт Rust , 03-Дек-21 01:50 
> А разве на расте есть другая возможность?

Написано же в комментарии выше, нет :)

> А правильно использовать unsafe по минимуму и какм можно раньше оборачивать небезопасный код в безопасные абстракции.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Токсичный адепт Rust , 03-Дек-21 01:59 
> Написано же в комментарии выше, нет :)

Здесь пропущен ? в конце предложения. Конечно же, на Rust можно писать правильно :)


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:13 
>  до чего все безопасное на раст, каждый вызов небезопасной функции libc помечен как небезопасный, что автоматом повышает безопасность на тысячи процентов. весь файл состоит из таких вызовов.

В итоге получится обычная сишная программа. Такая же "безопасная", как и любая другая сишная программа.
Смысл так делать?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:28 
Если 100500 раз написать unsafe для самоуспокоения, что компилятор за тебя всё сделает, то прога получает +9000 к безопасности.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:36 
> Если 100500 раз написать unsafe для самоуспокоения, что компилятор за тебя всё
> сделает, то прога получает +9000 к безопасности.

А вот и Опеннетные Знатоки Компиляторов и статического программного анализа подоспели ... уж они-то точно знают, как их любимый компилятор турбо-паскаля работает!



"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 02:15 
Ну как там редокс - уже не течёт безопасно?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 02:32 
> Ну как там редокс - уже не течёт безопасно?

Какой неуклюжий спрыг с темы, да еще и прямо в лужу:
https://gitlab.redox-os.org/redox-os/redox/-/issues/855
> The Redox kernel does not have the structures in place to allow freeing memory.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 10:30 
То есть это ещё и не баг, это вообще фича такая. Язычкасто.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:54 
> То есть - это не лужа, это вообще грязевая ванна такая! Вот!

Яснопонятно.



"Выпуск языка программирования Rust 1.57"
Отправлено burjui , 03-Дек-21 18:56 
Нет, не такая же. В Rust небезопасный код локализован в unsafe блоках и функциях, а весь остальной код получает все преимущества статического анализа компилятора. В C этого нет, в нём весь код - unsafe. К тому же, даже unsafe код на Rust безопаснее кода на C, потому что большая часть статического анализа применима и к нему: unsafe в Rust не означает полное отсутствие проверок и сишную семантику.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:24 
Толсто. А теперь перечисли, что из этого нормально работает и не является хеловордом.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:32 
>> Firecracker was developed at Amazon Web Services to improve the customer experience of services like AWS Lambda and AWS Fargate .
>> Firecracker is used by/integrated with (in alphabetical order): appfleet , containerd via firecracker-containerd , Fly.io , Kata Containers , Koyeb , Northflank , OpenNebula , Qovery , UniK , and Weave FireKube (via Weave Ignite ). Firecracker can run Linux and OSv guests. Our latest roadmap can be found here .

...
>> Поддержка Stratis интегрирована в дистрибутивы Fedora и RHEL начиная с выпусков Fedora 28 и RHEL 8.2.

...
> Толсто. А теперь перечисли, что из этого нормально работает и не является хеловордом.

А вот и "Это и вот это не считается, потому что не считается! И это тоже не считается! Вот!", дождались!


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 07:59 
Луддитам и правда не нужно.

Поправил, не благодари.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 10:31 
Куча названий, которые скорее всего не пригодятся никогда, от слова "совсем".

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 14-Дек-21 21:53 
Firecracker не взлетел ни хрена. Примерно год назад его собирались закрывать, а растаманов - увольнять.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 15:53 
Что характерно, растаманы придумывают названия своим хеловордам с помощью генератора случайных букв. Наверное, чтобы показать "важность" продуктов.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 16:13 
>> firecracker - английский
>> Stein - немецкий (камень, распространенная фамилия)
>> smol - английский
>> stratis - латынь
> Что характерно, растаманы придумывают названия своим хеловордам с помощью генератора случайных
> букв. Наверное, чтобы показать "важность" продуктов.

Что характерно, Воены Антирастового Военства и в обычных языках ни бум-бум и проекты на 50к строк у них - "хелловорды".



"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 02-Дек-21 22:47 
Из моих интересов первыми приходят на ум:
Oreboot
Alacritty

"Выпуск языка программирования Rust 1.57"
Отправлено нах.. , 03-Дек-21 19:22 
И как всегда как и все на хрясте это тоже бесполезное бесполезно. Проект ради проекта.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 23:48 
Например,

https://github.com/BurntSushi/ripgrep

Работает быстрее обычного grep'а и используется в VSCode по дефолту.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 03:04 
> Работает быстрее

А в чём магия? Игнорируют часть стандарта unicode?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 05:14 
Он лжёт, это плохая программа. Быстрее там только за счёт многопоточной работы с диском. Заплатить за это придётся тормозами и рандомными сегфолтами на простых привычных регулярках (которые всегда работали в грепе).

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 07:02 
Сегфолт на расте?! Да вы видно бредите! Это невозможно.

"Выпуск языка программирования Rust 1.57"
Отправлено Анонимъ , 03-Дек-21 10:48 
Это возможно, как и в любом другом языке. Было бы желание. Лично я систему наглухо вешал из под раста (синергия багов ядра, дров, либ и одного стандарта).

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


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 07:11 
У тебя взаимные противоречия в одном предложении, но ты это не замечаешь. И почему я не удивлён?

Так "быстрее" или "придётся расплачиваться тормозами" всё-таки?

Откуда там сегфолтам взяться, если язык для работы с памятью безопасный?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 09:52 
потому что растососы используют unsafe вызовы libc, который для скорости работы все проверки делает через сегфолты

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 10:16 
> для скорости работы все проверки делает через сегфолты

Typical C programming.


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 10:56 
Но если проблемы в libc, причём тут Rust?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:27 
Притом, что токсичные растовики на машине времени слетали на 20 лет назад и переписали libc так, чтобы она сегфолтилась.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:07 
Это "быстрее" на практике окажется "медленнее", а вот в 1 поток выгода уже не столь очевидна, особенно учитывая меньшие возможности и постоянные проблемы. Что не понятного?

Что до "безопасности", то паники по кд это очень "безопасно" и радует пользователя, ну и сегфолты никто не отменял.


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:25 
Автор же приводит ссылку на тесты. Можешь повторить и проверить. Эта утилита быстрее и в одном потоке, чем стандартная.

> Что до "безопасности", то паники по кд это очень "безопасно" и радует пользователя, ну и сегфолты никто не отменял.

Не мог бы ты привести конкретный пример, где словил панику там, где обычная grep просто молчит?
Про сегфолты твои фантазии интересны, конечно. Но с ними лучше к доктору обратись. Или примеры в студию.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 15:58 
Автор манька, я грепал сорцы хрома и рг оперативно всосал. У меня нет примера и больше эту дрянь я ставить не буду, я уже выяснил, что регулярки она не поддерживает и рандомно падает даже на простейших.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 19:34 
Автор - довольно уважаемый разработчик, вообще-то. Один из контрибьюторов в Раст.

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

Ну а так, не нравится, не пользуйся, кто заставить тебя может. Только другим не надо выдавать свою импотенцию (неспособность использовать программу по назначению) за истину.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 20:31 
>по-умолчанию очень тупо запускается в много потоков на жёстком диске, регулярки несовместимы с любыми прочими реализациями, баги
>во всём виноват пользователь

ясно-ясно


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 11:46 
> много потоков на жёстком диске
> во всём виноват пользователь

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 11:51 
Непонятно, к чему ты тут это приплёл, видимо, иллюстрация одного известного эффекта. Когнитивные искажения, они такие.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 03:07 
ripgrep has optional support for switching its regex engine to use PCRE2. Among other things, this makes it possible to use look-around and backreferences in your patterns, which are not supported in ripgrep's default regex engine

А, даже ещё проще, они regexp частично поддерживают :-) понятно.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 10:17 
Не хочу вас огорчать, но вы видели BRE и ERE, которые доступны в старом grep без включения perl-режима?

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 10:33 
Так мы же за производительность.
Соответственно все недоделки на хрусте упрутся именно в том, что их использовать не будут, а будут использовать PCRE2. А если в недоделке включить PCRE2, она внезапно окажется не быстрее PCRE2 :D

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:32 
90% бытовых задач админа решается средствами BRE/ERE.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 14:20 
80/20

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 23:07 
Убедили. Читаем.


>fn main() {
>    println!("Hello, world!");
>}
> If Hello, world! did print, congratulations! You’ve officially written a Rust program. That makes you a Rust programmer—welcome!

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

>Second, println! calls a Rust macro. If it called a function instead, it would be entered as println (without the !). We’ll discuss Rust macros in more detail in  Chapter 19. For now, you just need to know that using a ! means that you’re calling a macro instead of a normal function, and that macros don't always follow the same rules as functions.

Ну ладно, поехали

> 19. Advanced Features
>19.5 Declarative Macros with macro_rules! for General Metaprogramming
> The most widely used form of macros in Rust is declarative macros. These are also sometimes referred to as “macros by example,” “macro_rules! macros,” or just plain “macros.” At their core, declarative macros allow you to write something similar to a Rust match expression.

Ага, замечательно

> Macros also compare a value to patterns that are associated with particular code: in this situation, the value is the literal Rust source code passed to the macro; the patterns are compared with the structure of that source code;

И тд . Я вот что хочу этим сказать, точнее задать простой вопрос, вот честно ответьте мне или себе:

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 23:42 
> По моему скромному мнению - кто не осили сишечку - раст не осилит уж точно

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

Хотя AFAIK я слышал, что в Rust люди идут и после скриптовых языков вроде Python и JS, но здесь пруфов не будет.


"Выпуск языка программирования Rust 1.57"
Отправлено anonimous , 03-Дек-21 01:45 
>Наоборот, при знании C++ гораздо проще понять,  почему придумали Rust и какие проблемы он решает.

При знании stl и умных указателей как раз как-то не очень понятно зачем раст придумали. Т.е. зачем придумали то понятно, а вот зачем он нужен не очень.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 07:07 
Имхо у C++ проблема - отсутствие бинарной совместимости. Это мешает его использовать для системных либ. Поменяли порядок виртуальных методов в классе, или добавили новый - всех клиентов надо пересобирать. Поэтому в Symbian, в свое время, даже заводили пустые методы, чтобы зарезервировать имя на будущее.

"Выпуск языка программирования Rust 1.57"
Отправлено fsb4000 , 03-Дек-21 07:17 
Лол, в С++ отличная бинарная совместимость. с 1993 года, даже до первого стандарта С++ вышел COM, и до сих пор бинарно совместим. 28 лет бинарной совместимости. А так и в сишке в левых либах ломают бинарную совместимость каждый год...

"Выпуск языка программирования Rust 1.57"
Отправлено ОйраОйра , 03-Дек-21 08:08 
В приведенном сценарии у C++ будут проблемы, а вот бинарная совместимость от перемены порядка функций в C не зависит. И при чем здесь COM? Вы на VB писать собираетесь? С получением метода через IDispatch? В остальном - те же проблемы.

"Выпуск языка программирования Rust 1.57"
Отправлено fsb4000 , 03-Дек-21 08:30 
Ты в курсе что такое COM?

Это просто класс С++ только с виртуальными методами  особой конвецией вызова, который наследуется от IUnknown.

Ты в курсе что такое бинарная совместимость?

Это когда ты компильнул свой класс и можешь использовать с разными компиляторами. Вот собрав свой COM класс в 1993 году на каком-нибудь убогом Borland C++, ты можешь использовать его с Visual C++2022 и Mingw gcc 11 в 2021.

Та чушь которую ты выдумал не относится к бинарной совместимости никак.


"Выпуск языка программирования Rust 1.57"
Отправлено ОйраОйра , 03-Дек-21 08:39 
Тебе больше нравится термин ABI? Пусть.

"Выпуск языка программирования Rust 1.57"
Отправлено n00by , 03-Дек-21 09:38 
COM это Си-интерфейс. Стандарт Си++ не требует реализации таблицы виртуальных функций совместимым способом, просто MSVC это транслятор от производителя ОС, остальные под него подстроились.

"Выпуск языка программирования Rust 1.57"
Отправлено fsb4000 , 03-Дек-21 10:05 
>COM это Си-интерфейс.

```c++
struct IUnknown
{
public:
   virtual HRESULT QueryInterface(REFID riid, void** ppv)=0;
   virtual ULONG AddRef () = 0;
   virtual ULONG Release() = 0;

   template<class Q>
   HRESULT QueryInterface(_COM_Outptr_ Q** pp)
   {
       return QueryInterface(__uuidof(Q), (void **)pp);
   }
};
```

Ясно, понятно. "С интерфейс". Ага. "Причём тут С++?" Да-да. Всё ясно с вами...


"Выпуск языка программирования Rust 1.57"
Отправлено n00by , 03-Дек-21 11:05 

;  Microsoft Macro Assembler (MASM)

      IInterface_Function1Proto     typedef proto :DWORD
      IInterface_Function2Proto     typedef proto :DWORD, :DWORD

      IInterface_Function1          typedef ptr IInterface_Function1Proto
      IInterface_Function2          typedef ptr IInterface_Function2Proto

      IInterface struct DWORD
            QueryInterface          IUnknown_QueryInterface         ?
            AddRef                  IUnknown_AddRef                 ?
            Release                 IUnknown_Release                ?
            Function1               IInterface_Function1            ?
            Function2               Interface_Function2             ?
      IInterface ends


Ясно, понятно. "С интерфейс". Ага. "Причём тут С++?" Да-да. Всё ясно свами...

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 09:39 
>Ты в курсе что такое COM? Это просто класс С++ только с виртуальными методами  особой конвецией вызов... Вот собрав свой COM класс в 1993 году на каком-нибудь убогом Borland C++, ты можешь использовать его с Visual C++2022...

Повторю вопрос анонима выше - причем здесь COM?
И в чем здесь заслуга C++, если это больше межязыковой проприетарный стандарт для написания компонент к оффтопику? Понятно, саму прослойку/поддержку технологии ты можешь написать и на плюсах, вот только это не часть плюсов. Мне пять лет пришлось COM/DCOM на дельфях ковырять, в си++ влазить не пришлось, "классов С++ только с виртуальными методами" в самопальных компонентах там не было. Ты ведь сейчас не начнешь утверждать что в 1990-х годах твой COM, как неотъемлемая часть стандарта C++ ( :D ), широко и повсеместно использовался в юниксах?


"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 03-Дек-21 13:49 
Вы перепутали. Бинарная совместимость как раз у С++ постоянно ломается. Например, из-за этого виндузоиды имеют много копий стандартной библиотеки (просто разные версии). В свободных дистрибутивах попроще, ибо всё можно пересобрать, ибо совместимость программного уровня в С++ сохраняется.

"Выпуск языка программирования Rust 1.57"
Отправлено fsb4000 , 03-Дек-21 16:51 
>Вы перепутали. Бинарная совместимость как раз у С++ постоянно ломается.

Я не перепутал. COM бинарная совместимость не ломалась никогда. Вы можете COM класс собранный Visual C++ 2.0 слинковать с новейшим gcc или Visual C++ или с чем угодно, хоть с паскалем или Rust.

COM - это подмножество С++ если важна бинарная совместимость между компиляторами и даже между разными языками программирования.


"Выпуск языка программирования Rust 1.57"
Отправлено fsb4000 , 03-Дек-21 16:59 
Как пример, DirectX написан на С++. И вы можете использовать DirectX из любого языка, с любыми версиями компиляторов.

Надеюсь пример понятен.


"Выпуск языка программирования Rust 1.57"
Отправлено Зз , 03-Дек-21 23:52 
COM - хорошая штука. Уважаю безгранично, мне кажется его даже недооценили в своё время.

Однако обрати внимание, уважаемый любитель плюсов. Где там в IUnknown хвалёные умные указатели, std::стринги, RAII и прочие гаранты безопасности?
Сплошные ненавистные бездарные сишные указатели и даже указатели на указатели.
Да, слово public добавили в структуру, это к счастью пока что не ломает ABI.

Все бы на таком подмножестве С++ свои либы писали.


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 07:36 
Затем, что освоить спецификацию C++, которая составляет примерно полторы тысячи страниц, как показывает практика, никому не под силу. Это в свою очередь чревато большим количеством ошибок в коде.

Кроме того, в C++ частая проблема - UB.

Кроме того, в C++ нет такой удобной стандартной инфраструктуры, как в Rust.


"Выпуск языка программирования Rust 1.57"
Отправлено ОйраОйра , 03-Дек-21 07:59 
Спецификация C++ - это для разработчиков компиляторов. Для обычного прикладного программиста на C++  cppreference.com дает отличную выжимку из него. И его вполне возможно осилить.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 14:16 
Да, конечно, можно. Вот только люди, очень даже грамотные и толковые, надо заметить, которые оптимизацией софта занимались в одной из крупных софтовых контор, типа Google, Netflix, Facebook выгорают от подобных "выжимок". Есть на Хабре статья одного такого. И при желании другие можно поискать.

И сегодня одна "выжимка". Завтра - другая. Послезавтра - третья. Каждый ходит в итоге со своим багажом знаний и своей стилистикой в голове, что в итоге вылазит боком на крупных проектах, когда один использует круглые скобочки для инициализации, второй - фигурные. И так далее в том же духе.

Я ещё не сказал о том, что не все компиляторы на разных платформах полностью поддерживают стандарты C++. И это ещё одна головная боль, на самом деле.

Вот зачем так раньше было заморачиваться было понятно, альтернатива - абсолютно небезопасный, хоть и очень простой в освоении C. Но сейчас, с появлением нового языка, не отягощенного кучей стандартов и не уступающего в производительности конечного кода, зачем?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 08:39 
>Кроме того, в C++ нет такой удобной стандартной инфраструктуры, как в Rust.

С JS дяденька вылез и думает, что leftpad.io - это круто. И даже новости на опеннете об очередных майнерах в удобной стандартной инфраструктуре ноды или питона не смогли поколебать его разум, потому что раст априори безопасен, что значит, майнеров в карго конечно же не будет.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 10:34 
Всё ещё хуже. Они учатся тянуть чужие высеры, и считают, что научились погромировать.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:39 
Такая вот культура программирования, что поделать.

"Зачем мне с нуля писать криптографию или сжатие, лучше возьму готовую библиотеку"


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 14:13 
s/библиотеку/обёртку к openssl или xz/

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:33 
> Про то, что программы дожны каждая делать своё дело и то, что системе сборки не требуется лезть в интернеты, я уже молчу.

Тебе действительно лучше молчать, если про Rust ничего не знаешь. Его система сборки настраиваема и вполне может обходиться без интернетов.

> С JS дяденька вылез и думает, что leftpad.io - это круто.

Какой у тебя занимательный бред. Только мне он не особо интересен. Обратись к специалисту лучше. Вдруг поможет.

> раст априори безопасен

Сам придумал глупость, и сам же её опровергаешь. Раст более безопасный, чем тот же C - вот это действительно априори.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:10 
С каких пор Rust для тех кто не освоил указатели? Там вообще-то есть указатели наряду со ссылками.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 00:44 
> С каких пор Rust для тех кто не освоил указатели?

Так на опеннете под каждой новостью о расте авторитетные аноны пишут - "Мы все так говорим, а значит это правда!"



"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 07:42 
Тебе бы вместо чтения "авторитетных анонимов" лучше бы взять да почитать книгу для начинающих программировать на Rust. Есть бесплатно на русском, если что, правда, перевод такой себе. Есть и в профессиональном переводе, но за деньги.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 14:26 
> Тебе бы вместо чтения "авторитетных анонимов" лучше бы взять да почитать книгу

Тебе бы, помимо "погромистких книг", еще бы посмотреть в словаре "сарказм" и почитать классику:
https://sheba.spb.ru/libra/kipling_maugli.htm
> Обиженный, сонный и голодный Маугли всё же не мог не смеяться, когда обезьяны начинали в двадцать голосов твердить ему, как они мудры, сильны и добры и как он неразумен, что хочет с ними расстаться.
>
> — Мы велики! Мы свободны! Мы достойны восхищения! Достойны восхищения, как ни один народ в джунглях! Мы все так говорим — значит, это правда! — кричали они.
>


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:40 
Не силён в определении сарказма по постам на форуме. Сорри.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:37 
> С каких пор Rust для тех кто не освоил указатели?

На официальном сайте так написано. Или читать не научили ?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:42 
Такое определение подходит к любому программисту на C/C++.
Во всем мире на найдется ни одного такого, написавшего что-то сложнее приветмира и не налажавшего с указателями.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:44 
Про это там тоже что-то было написано. Во всем раста мире наверное таки и не найдется..

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 13:04 
>> С каких пор Rust для тех кто не освоил указатели?
> На официальном сайте так написано. Или читать не научили ?

Заглядывать на официальный сайт раста в голове анонима - вряд ли научили.
Цитату и ссылку в студию, если не балабол.



"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:04 
> Ну для этого надо блобятину скачивать на компутер,

Источник "Правдивейшие фантазии очередного опеннетчика о Расте, том 119"?

> И тд . Я вот что хочу этим сказать, точнее задать простой
> вопрос, вот честно ответьте мне или себе:
> Если раст это язык для тех кто не осилил указатели то неужели
> вы думаете что осилите это все ? Да вас по вашей же книжке погонять - рассыпитесь с первых двух вопросов. По моему скромному мнению - кто не осили сишечку - раст не осилит уж точно

Сначала честно ответьте:
если комментарии "фантазии о расте и вопросы по мотивам анонимных фантазий о расте" пишут исключительно анонимы нетрадиционной ориентации, то неужели они думают, что осилят прочитать ответ?



"Выпуск языка программирования Rust 1.57"
Отправлено Токсичный адепт Rust , 03-Дек-21 01:09 
> Ну для этого надо блобятину скачивать на компутер, нет уж спасибо

Все крупные дистрибутивы уже завезли Rust в качестве пакета. Можно просто взять и поставить.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 01:17 
А вот на винде, где сидят отважные борцы со ржавчиной - надо скачивать!

"Выпуск языка программирования Rust 1.57"
Отправлено Токсичный адепт Rust , 03-Дек-21 01:47 
А разве на винде блобы кого-то волнуют?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:37 
Если они ржавые - то да!
Пользователи винды - за чистоту системы от оксидов!

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 18:01 
Под ZorinOS не хочет ставиться...

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 07:22 
>кто не осили сишечку - раст не осилит уж точно

Проблема сишечки не в её сложности, неужели до сих пор непонятно? Проблема сишечки в том, что там очень часто даже профессионалы высокого класса делают серьёзные ошибки при работе с памятью и приведением типов. От этих вещей и призван страховать Rust. Да и сложного для начинающих в Расте, судя по некоторым опросам, только концепция времени жизни. В остальном довольно простой язык с кучей преимуществ по сравнению с морально устаревшими уже конкурентами С, С++.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 08:32 
Чистая сишка - это не просто язык программирования. Си - это квитэссенция процедурной парадигмы. А парадигмы как законы физики, не могут устареть.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 09:24 
чистая сишечка  - это как коммунизм. утопия.

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

Короче, говно, эта ваша сишка, та которая получилась в реальности.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:42 
> в реальности людям приходиться иметь дело с разными реализациями, на разных архитектурах. И всезде свои особенности,

Прикинь.
А ты сишку только сегодня начал учить ? Могу похвалить, уровень примерно как и у местных растописателей - мифический :D


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:21 
Он ещё не успел узреть божественную суть GCC.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 20:26 
что мне ее узревать.

поверю професссионалам: "The gcc people are more interested in trying to find out what can be
allowed by the c99 specs than about making things actually _work_."

попросту - кучка буквоедов, в плохом смысле слова.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 23:16 
быть пожирателем синтаксиса - это выбор. прогрмминг про другое вообще

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:39 
Если Си - это квинтэссенция парадигмы, то не нужна нам такая парадигма. Нам, видишь ли, не шашечки нужны, нам ехать надо. ;)

"Выпуск языка программирования Rust 1.57"
Отправлено Ordu , 03-Дек-21 20:07 
> Си - это квитэссенция процедурной парадигмы.

Если чего Си и квинтэссенция, так это ассемблеров из 70-х годов. Всё остальное в C в сильно разбавленном виде.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 23:14 
А что-то вообще изменилось с 70х годов ?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 00:17 
> А что-то вообще изменилось с 70х годов ?

Например, вычислительные мощности выросли на пару порядков, продвинулись в компиляторосторении и анализе кода, сильно подтянули теорию типов ...


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 16:48 
Ясно, ничего не поменялось.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 02-Дек-21 23:54 
безопасный аналог питона и node.js, но адептв в разы токсичнее

"Выпуск языка программирования Rust 1.57"
Отправлено Токсичный адепт Rust , 03-Дек-21 00:22 
На opennet и токсичных хейтеров Rust немало :) А вообще, странный критерий для выбора языка. Язык надо выбирать по удобству, производительности, возможности случайно допустить баг и наличию нужных либ, а не по токсичности его фанатов.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 03:13 
> а не по токсичности его фанатов.

Никто не пишет на голом языке, с авторами библиотек вам общаться придётся.


"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 03-Дек-21 03:59 
А в чём проявляется токсичность авторов библиотек? Интересно, а Торвальдс токсичен? (и на Сях больше писать нельзя?)

"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 03-Дек-21 03:57 
Про аналог -- это скорее про Go. А Rust скорее на C++-овую нишу смотрит.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 07:29 
Как можно сравнивать интерпретируемые языки с динамической типизацией с компилируемым со статической типизацией? У них совершенно разные сферы применения. Питон хорош для маленьких и средних проектов, где важна скорость разработки, а не скорость исполнения кода. Для прототипирование тоже подходит. Как клей для быстрых библиотек (data science).
Rust больше замена C, C++.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 02:32 
Язык умер так и не родившись... сейчас любой стартап пишется на Go с последующим переездом на C++... для кого эти новости? Письма мертвеца ей богу

"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 03-Дек-21 03:55 
У Go и C++ разные ниши. Go -- скорее замена Python-у, например.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 04:32 
Go хорош для прототипирования, что конечно же не мешает создавать на его базе полноценный высокопроизводительный софт, в отличии от того же пистона, который в плане производительности никогда не выйдет за рамки ЯП для прототипирования

А на C++ с Go переписывают чтобы выжать еще производительности


"Выпуск языка программирования Rust 1.57"
Отправлено anonymous , 03-Дек-21 05:55 
Можно пример тех, кого переписали?

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 07:52 
И родился, и развивается язык. Гугл, Амазон, Вавей, Майкрософт не дадут соврать. А ты можешь и дальше, как страус, пытаться спрятать голову в песок. Только это тебя не спасёт от безработицы в итоге.

"Выпуск языка программирования Rust 1.57"
Отправлено Иваня , 03-Дек-21 08:11 
> ... std::mem::size_of::<u64>() ...

Страшно, очень страшно, мы не знаем что это такое, если бы мы знали, что это такое, но мы не знаем, что это такое)


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:33 
Необходимость! в расте таких конструкций говорит о небезопасности! раста!, ведь растаманы! ошибутся! именно тут, написав вместо u64 - u16, точно так же, как перепутали больше-меньше при ручной! проверке! индекса! массива! и уронили FF.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 16:25 
>> std::mem::size_of::<u64>() == 8
> Необходимость! в расте таких конструкций говорит о небезопасности! раста!, ведь растаманы!
> ошибутся! именно тут, написав вместо u64 - u16, точно так же,

Необходимость клоунады очередного подгорающего (условного) питонисто, который даже не в курсе разницы в размерах u64 и u16?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 16:28 
>> ... std::mem::size_of::<u64>() ...
> Страшно, очень страшно, мы не знаем что это такое, если бы мы
> знали, что это такое, но мы не знаем, что это такое)

И то ли дело boost::mpl::sizeof_<DATA_TYPE>



"Выпуск языка программирования Rust 1.57"
Отправлено Аноньимъ , 04-Дек-21 23:55 
Я вот растбук дальше хеллоу верда не читал, но опыт подсказывает, что это функция возвращающая размер типа uint64.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 08:28 
Язык одной реализации, убийца сишарпа.

"Выпуск языка программирования Rust 1.57"
Отправлено Анонимъ , 03-Дек-21 10:57 
Ващет есть реализация под gcc.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 08:30 
Какие плюсы по сравнению с хачкелем?

"Выпуск языка программирования Rust 1.57"
Отправлено fsb4000 , 03-Дек-21 09:32 
Более безопасный :)

При реализации одного и того же алгоритма Haskel всё скомпилирует и будет работать, Rust продолжит съедать мозг с временем жизни и говорить что все в опасности :)

Rust это язык для любителей страдать. Тем кто хочет боли и унижений.


"Выпуск языка программирования Rust 1.57"
Отправлено MAX , 03-Дек-21 11:19 
Слава богу что хоть с юмором у нас все хорошо )
И по моему лучший комментарий из всех что я читал про Rust )

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:33 
безопасТный

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 13:01 
> Rust это язык для любителей страдать. Тем кто хочет боли и унижений.

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

Учите раст товарищи опенчановцы и да прольется гнев и заполохают табуретки растокодеров !


"Выпуск языка программирования Rust 1.57"
Отправлено Аноньимъ , 05-Дек-21 10:26 
>При реализации

При декларации.

>Haskel всё скомпилирует

Со временем.

>и будет работать

В конечном счёте.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 14:17 
Предположу что это производительность при относительной безопасности языка.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 08:31 
Если так подумать, то гораздо проще рачта было бы завезти сишечку в SML и получившийся гибрид был бы гораздо проще. А с текущими оптимизирующими компиляторами вся эта орава растоманов могла бы уже давно на нём (или окамле) что-то годное писать.

"Выпуск языка программирования Rust 1.57"
Отправлено n00by , 03-Дек-21 09:52 
Ну как бы немножко завезли. Пока компилируется HelloWorld, можно выпить кофе.

"Имеет тонкий и быстрый FFI[en], обеспечивающий полное двустороннее взаимодействие с языком Си (вплоть до взаимной рекурсии); а также генератор привязок[en] NLFFI (No-Longer-Foreign Function Interface — рус. интерфейс к отныне-более-не-чужеродным функциям), позволяющий встраивать заголовочные файлы Си прямо в проект на SML и использовать прямые вызовы функций Си в программах на SML[5]."

https://ru.wikipedia.org/wiki/MLton


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 08:55 
Раст - это то, что случается, когда веб-макак допускают до системного программирования. Каждый первый из них котирует JS и сам с него выполз. Отсюда, как раз, и лезут толпы SJW, второй по вместимости SJW экосистемой после рубей был как раз JS. Компилятор единственной благословлённой реализации (запахло типичными инструментами вебмакакинга навроде PHP, CPython, MRI, Perl; в случае движков JS все макаки всё равно выберут V8 и пишут под известный браузер, неоосёл) построен на фреймворке (макаки любят фреймворки и не любят вдаваться в подробности) и никогда с него не слезет.
Разумеется, система сборки (почему это серьёзный язык прибит гвоздями к системе сборки?), как у любого типичного язычка для макакинга, привязана с эталонному архиву кода - только так макак может понять системное программирование.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним12345 , 03-Дек-21 09:31 
Язык для хипстеров
Порог вхождения довольно высок
Синтаксис невменяемый
Область применения ограниченная

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 10:41 
Я (бывший многолетний C++-ник) тоже раньше любил поглумиться над синтаксисом Раста. Но в процессе освоения его и работы (а уже третий год пошёл) понял, что каждая деталь синтаксиса тщательно продумана и добавлена не просто так. Rust — изящный красивый язык.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 12:36 
Ну а с наследованием-то как в нём, всё также?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 17:56 
Rust не является джаваподобным объектно-ориентированным языком. В нём есть инкапсуляция и полиморфизм, но нет наследования реализации. Можно закодировать отношение "IsA" между трейтами, впрочем, и назвать это наследованием интерфейса. А от наследования реализации на практике часто больше проблем, чем пользы.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 21:53 
ООП в том виде в котором оно есть, еще с Simula пошло

"Выпуск языка программирования Rust 1.57"
Отправлено морошка ягодка такая , 04-Дек-21 00:00 
> изящный красивый язык.

Как только разработчик произносит слова изящный и красивый, я сразу обращаю на это внимание. Скорее всего он приболел. Так же я обращаю внимание на некоторые слова в его речи, которые он произносит с свойственным придыханием:
"функторы",
"идиомы",
"всё есть (вставьте сюда любое слово)",
"ФП",
"ООП",
"Запахи кода",
"Интерфейс сегрегейшен",
"Предварительная пессимизация".
"Согласен" (переводится как "ты не прав, но я готов сделать исключения для тебя, отсталый дeбил")

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

У этой болезни есть так же менее заметные на первый взгляд симптомы:
- разработчик программирует на кухне, не прикасаясь к компьютеру
- разработчик очень редко поворачивается к своему столу и основное время проводит за разговорами
- откидывается на стуле и закрывает глаза при разговоре
- очень умный взгляд, смотрит как бы сквозь собеседника, решает в голове одновременно 2-3 задачи
- может тебя похвалить с высоты собственного величия
- стол усеян игрушками, кубиками рубика и статуэтками героев марвел
- три монитора, притом, один из них повёрнут "на попа"
- механическая клавиатура, разделённая на пополам, с переключателями "чери блю", набирает текст очень быстро, аггрессивно (переписывается с женой в телеграме)
- вертикальная мышь марки "члeн"
- очень специфично настроенное окружение, всё заточено под себя, имеет шорткаты ко всему.
- делает техдолг, рефакторит, пишет фреймворки для простых вещей в то время, которое не занято обсуждением программирования и баб
- говорит загадками
- сражается с мельницами
- решает задачи на два года вперёд, предлагает сложные и очень интересные способы решения задачи "загрузи JSON и покажи" и "прими JSON и запиши в БД"
- имеет на каждый библиотечный метод обёртку, которая лучше, потому что в в Microsoft работают индусы и программировать не умеют
- его код как правило через 3 месяца выкидывавают и меняют на "IF ELSE"
- тот код, который не смогли выкинуть, доставляет всем проблемы, потому что он "очередь функций самоитерирующихся стратегий в тред-пуле (самописном, конечно же)"
- пишет не код, а кодогенераторы, которые всё за него делают


Если не принять срочные меры - то скорее всего ваш проект накроется. Будьте на чеку


"Выпуск языка программирования Rust 1.57"
Отправлено Зз , 04-Дек-21 01:32 
Хаха, жизненно

"Выпуск языка программирования Rust 1.57"
Отправлено n00by , 04-Дек-21 08:52 
> Так же я обращаю внимание
> на некоторые слова в его речи, которые он произносит с свойственным
> придыханием:
> "функторы"

Вот сейчас не понял, это про Rust или про operator(). Но на всякий случай плюсанул и убрал со стола ключ-шестигранник.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноньимъ , 05-Дек-21 00:00 
>- пишет не код, а кодогенераторы, которые всё за него делают

Иногда это необходимость.

И если может, и ему так удобно, то замечательно.
Тем более что, на сишечке например без кодогенераторов педалить есть слабоумие и отвага.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 00:15 
Плять, не в бровь, а в глаз.

"Выпуск языка программирования Rust 1.57"
Отправлено wyry , 15-Дек-21 18:27 
Подписываюсь под каждым словом), я одно время тоже долго и тяжело болела LISP'ом и F#, когда на них была мода, смотрела на С++ разработчиков как на отсталых обезьян. Иллюзии все же разбиваются о реальность когда начинается реальная работа. Я бы сказала, что я C++ до сих пор недолюбливаю за его монструозность и бешенный принтер стандартизации, но вот когда кто-то несёт чушь, что грядёт замена C - это абсолютный бред. C - это действительно монумент.
Я думаю, что все в один момент переживают нечто подобное, меняются лишь декорации. А правда такая, что если язык не вносит вообще ничего нового в индустрию (а Rust в отличие от ML и LISP ну вообще по минимуму меняет мировоззрение, более того, он ещё и во вред может сработать, что человек уже никогда не научится вменяемо работать с памятью), умрёт сам по себе. На C++ ещё до Rust можно было писать в стиле Rust используя его move-семантику, растоманы конечно скажут что ЭТО ДРУГОЕ (и частично это так), но чёрт возьми, когда в существующем инструменте, который совместим со всем чем только можно пилить новый язык где всё нужно допиливать напильником - это же идиотизм.

"Выпуск языка программирования Rust 1.57"
Отправлено морошка ягодка такая , 15-Дек-21 23:26 
> растоманы конечно скажут что ЭТО ДРУГОЕ

Это факт, это другое. Даже дотнет решает 90% вероятного УБ.


"Выпуск языка программирования Rust 1.57"
Отправлено wyry , 27-Дек-21 16:57 
У Pascal (всех или почти всех диалектов) вообще нет UB. При этом он гораздо проще в освоении, программировании и чтении кода, однако Pascal устарел и не нужен даже для обучения (при этом обучают на Python (маразм), который вообще не объясняет как всё работает "за кадром"), и Rust в котором всё стильно, модно, молодёжно, но спустя время не было написано ничего вменяемого и масштабного. Кстати даже на Pascal написано дохрена, несмотря на то что это даже близко не менстрим и "коллеги засмеют".

"Выпуск языка программирования Rust 1.57"
Отправлено морошка ягодка такая , 27-Дек-21 20:02 
> он гораздо проще в освоении, программировании и чтении кода

Я думаю, в таких случаях уместно писать "на мой взгляд".



"Выпуск языка программирования Rust 1.57"
Отправлено wyry , 28-Дек-21 03:42 
>> он гораздо проще в освоении, программировании и чтении кода
> Я думаю, в таких случаях уместно писать "на мой взгляд".

нет, это именно объективный взгляд. Я на Pascal не писала уже со времён универа, но даже сегодня разберусь в любой программе на Pascal. Его синтаксис мне кстати не нравится (пишу на C и это уже на МОЙ ВЗГЛЯД - идеальный язык), но могу опять же отметить, что в Pascal синтаксис более понятный чем в C. Единственное что в нём бесит (это уже субъективно) - это цепочки из begin end и свойственная "многословность", взамен он на уровне дизайна создан так чтобы быть понятным, в нем нет неочевидных конструкций, более того, я всерьёз считаю, что если бы Pascal не существовало и он вышел бы в наше время как нечто новое - он мог бы сильно поконкурировать даже с C и был бы гораздо успешнее чем его положение сейчас. И уж точно он был бы гораздо успешнее Rust, т.к. он одновременно безопасный, простой и без UB. Исторически мне даже жаль, что Pascal незаслуженно забыт, несмотря на то что лично мне он нафиг не нужен.


"Выпуск языка программирования Rust 1.57"
Отправлено морошка ягодка такая , 28-Дек-21 08:55 
> нет, это именно объективный взгляд.

извини, я дальше не стал читать


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:54 
> Язык для хипстеров

В Амазоне, Гугле, Вавее, Майкрософте одни хипстеры работают. Да? Может хватит уже лужи газифицировать?

> Порог вхождения довольно высок

Вовсе нет. Очень простой язык по сравнению с C++.

> Синтаксис невменяемый

Вменяемый и красивый, можно даже сказать. Но это - вкусовщина, конечно же.

> Область применения ограниченная

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


"Выпуск языка программирования Rust 1.57"
Отправлено Sem , 05-Дек-21 20:27 
> Вовсе нет. Очень простой язык по сравнению с C++.

Ну да, а вот это очень очевидная конструкция что делает?

let f: || -> () = || {...};


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 06-Дек-21 10:23 
А чего непонятного? Создан биндинг к значению типа замыкания (безымянной функции с захватом контекста) без параметров, возвращающего unit (то есть ничего не возвращающего). В дальнейшем предполагается вызов вида f(). Очевидно, чтобы делать что-то полезное, это замыкание должно использовать окружающий контекст для создания побочных эффектов.

"Выпуск языка программирования Rust 1.57"
Отправлено Sem , 07-Дек-21 19:20 
Вообще, это на перл похоже.

"Выпуск языка программирования Rust 1.57"
Отправлено Gedweb , 07-Дек-21 19:35 
тоже что и стрелочная функция в TS и выглядит так же

"Выпуск языка программирования Rust 1.57"
Отправлено freecoder , 08-Дек-21 13:38 
Вы привели невалидный код. Запись типа
|| -> ()
не применима в Rust. Потому что это синтаксис определения замыкания, а не указания его типа. Просто так указать тип замыкания в Rust нельзя, потому что он формируется компилятором самостоятельно под каждое конкретное замыкание. Вы могли бы записать вместо замыкания функцию, тип которой указывать можно:

let foo: fn() = || {};


"Выпуск языка программирования Rust 1.57"
Отправлено cat666 , 03-Дек-21 09:40 
Я здесь ради срача.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:09 
Запасайся попкорном.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 15:42 
Да ты знаток пердежа от попкорна! Специалист со стажем, да?

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 10:24 
_: () - это водолаз?

"Выпуск языка программирования Rust 1.57"
Отправлено n00by , 03-Дек-21 11:14 
Это чекурва (человек, курящий вайп).

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:25 
Нет, это ты, которые просматривает логи форума.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 13:57 
А ты хотел сразу эмодзями программировать?

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 19:15 
Это непроверяемая компилятором переменная (константа) на предмет её задействования где-то в коде. Символ подчёркивания в начале имени (в данном случае он единственный в имени) говорит компилятору, что если даже эта переменная (константа) не используется, не обращай на это внимание. Можно было бы и директиву включить соответствующую, но иной раз так проще.

() - означает пустой тип (вроде NULL, void).


"Выпуск языка программирования Rust 1.57"
Отправлено Филимон Любопытный , 03-Дек-21 19:40 
Спасибо за разъяснения. В знак благодарности обещаю не угорать над Рустом две следующие новости. Есть ещё маленький вопрос: я правильно понимаю, что

const _: () = assert!(std::mem::size_of::<u64>() == 8);

это эквивалент

static_assert(sizeof(uint64_t) == 8);


???


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 19:48 
std::mem легко можно убрать из этого выражения, если вы на громоздкость намекаете, задействуя use. Например:

use std::mem::size_of;

"const _:() =" тоже по сути не сильно нужен. Можно без него обойтись.

в итоге останется:

assert!(size_of::<u64>() == 8);

Сойдёт?


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 20:03 
Восклицательный знак в assert!() означает, что мы используем макрос. Так проще отличать от других функций.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:09 
Восклицательный знак - это что-то от эмо-культуры. Упасть на пол и стенать рыданиями. Или рыдать стенаниями.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 22:37 
>> !(a != 0)
> Восклицательный знак - это что-то от эмо-культуры. Упасть на пол и стенать
> рыданиями. Или рыдать стенаниями.

Паскалист, не пались ...


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:41 
Ты просто не чувствуешь разницы.
В твоём выражении это просто логика.
А вот assert!() - это именно оно, бить ногами, ассертя хочуху.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 23:13 
Ну и кстати да, ты даже не ошибся, я вполне себе и в паскаль с дельфи умею.
Хотя это старое умение, почти забытое уже.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 19:52 
> обещаю не угорать над Рустом две следующие новости

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


"Выпуск языка программирования Rust 1.57"
Отправлено Филимон Тактичный , 03-Дек-21 20:08 
Ну, в данном случае, значение слова "угорать" было ближе к "издеваться", но я не хотел вас задеть (ибо Куверти не выдержал и куда-то пропал) и в последний момент заменил.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 20:16 
Да, пожалуйста, задевайте на здоровье.  Чем бы дитя не тешилось, как говорится. ;)

Я - не фанат Раст. У меня вообще другая профессиональная область интересов. Просто не нравится атмосфера, в которой идёт обсуждение очередной новости об этом языке. Вот и вся причина, почему я некоторым могу со стороны показаться токсичным.

У любого языка есть недостатки. Это я готов признавать и признаю. Но давайте же обсуждать что-либо КОНСТРУКТИВНО. Вот как вы, например. Вам что-то непонятно, вы задали вопрос. Я, как смог, ответил. Но когда приходят люди, и начинают сходу писать "язык для идиотов", "не нужно" и так далее, то разговаривать с такими вежливо не получается.

Заранее благодарен за понимание.


"Выпуск языка программирования Rust 1.57"
Отправлено От.Со.Сишник , 03-Дек-21 20:03 
> Есть ещё маленький вопрос: я правильно понимаю, что
> const _: () = assert!(std::mem::size_of::<u64>() == 8);
> это эквивалент
> static_assert(sizeof(uint64_t) == 8);
> ???

"Эквивалент" - это вот тут https://docs.rs/static_assertions/0.1.1/static_assertions/in...
Нюанс в том, что растовый assert/static_assert - реализуется макросами, а не в недрах компилятора.


use std::mem::*;
#[macro_export]
macro_rules! static_assert {
    ($condition:expr) => {
        const _: &() = &[()][1 - ($condition) as usize];
    }
}

static_assert!(size_of::<usize>() == 8);
static_assert!(size_of::<*const u8>() == 8);
static_assert!(align_of::<*const u8>() >= align_of::<u128>());
static_assert!(5>3);


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:10 
> const _: &() = &[()]

И вот тут я поломался, несите следующего.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:10 
_: &() - это водолазу шланг перевязали

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:12 
А &[()] - это водолаз, когда перевязанный шланг сохранялся слишком долго

"Выпуск языка программирования Rust 1.57"
Отправлено Sem , 05-Дек-21 20:33 
Поздравляю, вы начали понимать раст )

"Выпуск языка программирования Rust 1.57"
Отправлено Cucumber , 04-Дек-21 11:20 
const _: &() — объявляем константу без имени, тип которой ссылка на ничего.

[()] — создаем массив из одного ничего.

[1 - expr as usize] — берем оттуда элемент номер 1 - (подставляемое в макрос выражение, которое преобразуется в число).

&… — берем ссылку на этот элемент.


"Выпуск языка программирования Rust 1.57"
Отправлено Cucumber , 04-Дек-21 11:23 
соответственно, когда результат вычисления поставляемого выражения не true или 1, то мы пытемся взять элемент за границами массива из одного элемента и программа падает.

"Выпуск языка программирования Rust 1.57"
Отправлено n00by , 04-Дек-21 11:48 
> создаем массив из одного ничего.

В Средние века вот за такое и сжигали.


"Выпуск языка программирования Rust 1.57"
Отправлено freecoder , 08-Дек-21 13:49 
В этом есть смысл, так как "ничто" ничего не занимает в памяти, соответственно и массив из "ничего" ничто не займет.


"Выпуск языка программирования Rust 1.57"
Отправлено n00by , 08-Дек-21 17:01 
Да я про костёр не шутил. Сатана - это тот, кого "нет".

"Выпуск языка программирования Rust 1.57"
Отправлено Ordu , 03-Дек-21 20:09 
> В знак благодарности обещаю не угорать над Рустом две следующие новости.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Ordu , 03-Дек-21 20:14 
> Есть ещё маленький вопрос: я правильно понимаю, что
> const _: () = assert!(std::mem::size_of::<u64>() == 8);
> это эквивалент
> static_assert(sizeof(uint64_t) == 8);

Нет. Результат assert'а в первом случае сохраняется в переменную. В _const_ переменную. То есть assert! должен отработать во время компиляции, а не в рантайме. И обломаться если что должна компиляция, а не рантайм.


"Выпуск языка программирования Rust 1.57"
Отправлено Филимон Тактичный , 03-Дек-21 20:22 
Т.е. это извращение (простите хак) только для того чтобы assert сработал на стадии компиляции ?!?!? Ох как необдуманно я пообещал Прохожему!



"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 20:28 
Вам всё-таки нужно что? Протестировать программу или сохранить результат теста в константе?

И что здесь необдуманного, не могли бы вы прояснить?


"Выпуск языка программирования Rust 1.57"
Отправлено Филимон Непонятливый , 03-Дек-21 20:42 
Я не понял зачем сохранять в константе. Зачем пишется сохранение того, что не будет использовано и не может быть использовано. Ведь смысл вызвать прекращение компиляции, если не соблюдаются необходимые условия.



"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 20:57 
Вам, если действительно интересно, лучше ознакомиться с главой 11 популярной (в узких кругах) книженции The Rust Programming Language. А потом по доке пошерстить немного.

В данной новости просто абстрактный пример был приведен. Зачем он - я не знаю, с такими случаями не сталкивался (однако, следует признать, мой опыт ограничен). Может для цепочки тестов. Как можно было проще -  ответил ранее.

Если вы запускаете "cargo test" на юнит-тестах - получите или ok, если тест пройден, или fail - в противном случае. То, что вы хотели?

Компилятор же за логикой приложения следить не может (и вряд ли должен). Это область ответственности программиста.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:11 
Честно говоря, круги слишком узкие, чтобы влезать.
И слишком громкие, чтобы просто пройти мимо.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноньимъ , 05-Дек-21 00:04 
Используйте лубрикант на силиконовой основе.

"Выпуск языка программирования Rust 1.57"
Отправлено Ordu , 03-Дек-21 20:50 
> Вам всё-таки нужно что? Протестировать программу или сохранить результат теста в константе?

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

Это можно тестами проверять, но... эмм... А если у меня функция:

fn read_24_bytes_into_struc<T>(dst: &mut T) {
    // как ты здесь в компайл-тайме убедишься, что size_of::<T>() равен 24 байтам?
    // а тут надо проверить, потому что дальше пойдёт unsafe код, который сможет, если что, записать за границу выделенного буфера
    // понятно, что можно проверить в рантайме, но _зачем_ выносить в рантайм проверку, которую можно сделать в компайл тайме?
}

В C это делается как-то так:

#if sizeof(typeof(*dst)) != 24
#error "Go check sizes of your structs, moron"
#endif

Точнее делалось бы, если бы C умел бы в параметризацию по типу. Как это делается в C++, мы не знаем, не интересовались ни разу. Возможно, так же как в C.

> И что здесь необдуманного, не могли бы вы прояснить?

Нет, не могли бы. Мы не понимаем, что здесь необдуманного. Всё продумано отлично.


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 20:58 
Я не вам задавал вопросы. :) Филимону.

"Выпуск языка программирования Rust 1.57"
Отправлено Ordu , 03-Дек-21 21:01 
> Я не вам задавал вопросы. :) Филимону.

А, сори. Я запутался в ответах.


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 21:02 
Но спасибо, что ответили.

"Выпуск языка программирования Rust 1.57"
Отправлено Филимон Непонятливый , 03-Дек-21 21:21 
Пятница. Вечер.. Наверное поэтому мы не понимаем друг друга.

Что в С, что в C++ облом на стадии компиляции организовывается через static_assert()

Я знаю зачем это нужно на практике.

Размер типа по указателю это банальный sizeof(*ptr), если ptr не на void

я НЕ понимаю зачем в Русте сохранение при ассерте в переменную. Вернее, понимаю это как хак над assert, который работает в рантайме. А, если сохранять в const, то сработает во время компиляции.

И если я это правильно понял, то это ппц. Я бы мог написать пост с объяснением почему, но он слишком длинный для пятницы. Но если кратко и непонятно: то так убивается дофаминовая система и человек идёт работать охранником.


Необдуманно я пообещал Прохожему не угорать на Рустом. Забейте. Это мой искромётный юмор


"Выпуск языка программирования Rust 1.57"
Отправлено Ordu , 03-Дек-21 21:52 
> Пятница. Вечер.. Наверное поэтому мы не понимаем друг друга.
> Что в С, что в C++ облом на стадии компиляции организовывается через
> static_assert()

А, да, я проглядел. Но это не растовый подход. Заводить второй assert, когда можно не заводить? Зачем?

> Размер типа по указателю это банальный sizeof(*ptr), если ptr не на void

А, ну да, можно проще.

> я НЕ понимаю зачем в Русте сохранение при ассерте в переменную. Вернее,
> понимаю это как хак над assert, который работает в рантайме. А,
> если сохранять в const, то сработает во время компиляции.

Это не хак. Если я пишу:

const KEYWORDS = {
    let mut keywords = HashMap::new();
    // populate keywords
    keywords
};

То блок кода будет выполнен в компайл-тайме, и хеш-табличка будет лежать на старте программы в _созданном_ виде в KEYWORDS. (Впрочем, конкретно этот пример, я подозреваю не сработает, потому что HashMap требует аллокаций памяти, и их статически выполнять не удастся, но есть phf, он может.).

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

> Необдуманно я пообещал Прохожему не угорать на Рустом. Забейте. Это мой искромётный
> юмор

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


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 00:13 
> Зачем заводить специальный assert, если язык и так позволяет вызывать существующий assert в компайл-тайме

Вот в этом весь хруст.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 11:52 
Язык этот не для человека. Это убьёт все достоинства. Даже если быстрый, работает с памятью, параллельностями и проч. Увы, обречен.

"Выпуск языка программирования Rust 1.57"
Отправлено Сишник , 03-Дек-21 12:00 
Отлично сказано! Снимаю перед вами шляпу из фольги.

"Выпуск языка программирования Rust 1.57"
Отправлено _hide_ , 03-Дек-21 12:46 
Да лучше не снимать.
Любой современный язык, в который встроены абстракции блоков кодов и добавлена жёсткая привязка и проверка владения на выделенные объекты памяти компилятором, будет иметь те же достоинства.
Да в С и Ко это сделать сложно (+20% ко времени компиляции очень сильно нивелируют достоинства), но нет ничего невозможного. Про однопроходные синтаксисы я вообще молчу.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 14:20 
Привыкнуть можно даже к перлу.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 15:40 
Перл хотя бы работает и активно используется.

Перл - 19-е место в рейтинге.
Раст - 26-е...


"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:45 
> Перл хотя бы работает и активно используется.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 11:48 
От 15-летнего раста тоже пора уже избавляться, уже устарел, пока создавали.

"Выпуск языка программирования Rust 1.57"
Отправлено freecoder , 08-Дек-21 15:30 
> От 15-летнего раста тоже пора уже избавляться, уже устарел, пока создавали.

Какая есть более новая замена Rust'у?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним12345 , 03-Дек-21 15:44 
Можно
Но не нужно

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 15:48 
> Язык этот не для человека.

А какой для человека, по-твоему?


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 16:56 
Человеки выбрали питон. Мы его не любим, а человеки выбрали.

"Выпуск языка программирования Rust 1.57"
Отправлено Прохожий , 03-Дек-21 19:16 
Ок. Это начало конструктивного обсуждения. А в какой области они его выбрали и почему его, а не, скажем, C++?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 06-Дек-21 11:04 
обучать личинкочеловеков "программированию" , кресты даже матерые сишники боятся, что говорить о неокрепших умах

"Выпуск языка программирования Rust 1.57"
Отправлено wyry , 27-Дек-21 17:06 
Матёрые сишники не боятся кресты, скорее считают многую его функциональность идиотской и бесполезной. И кстати часто критике подвергаются "безопасные" средства управления памятью (что так любят в том же Rust!), т.к. Сишники как раз таки с памятью работать учатся В ПЕРВУЮ ОЧЕРЕДЬ. В C управление памятью уже давно перестало быть существенной проблемой даже в очень крупных проектах. И кстати раньше на C было программировать сложнее, а на других языках ВООБЩЕ НЕВОЗМОЖНО, почему? А потому что когда у вас скажем 4 мб ОЗУ, все "новомодные" инструменты управления памятью автоматически идут нахрен. Сегодня в многих даже встраиваемых системах есть гигабайты ОЗУ, Сишник сегодня может на коленке написать с нуля свой безопасный аллокатор скажем на 256 мб и его ПО будет в нём вариться с нулевой вероятностью внешней утечки и всё это вместо секса с шизоидным компилятором Rust.

"Выпуск языка программирования Rust 1.57"
Отправлено wyry , 27-Дек-21 17:19 
кстати по причинам, указанным выше Rust облажался в том числе на микроконтроллерах, где "как бы" можно было бы развернуться, на деле оказалось что как писали на C и даже иногда на C++, так и пишут, а охренительно "безопасный" Rust не взлетел, хотя пиарился системным программированием. Пусть бы на Rust просто RTOS написали ПОЛЕЗНЫЙ, а не для proof of concept-системы. В теории можно и н Brainfuck написать, вопрос лишь в пользе. На сишке сейчас любой инженер за неделю..месяц рабочего времени напишет кастомную RTOS, которая будет идеально работать, это вообще не проблема сегодняшнего времени изобилия ресурсов.

"Выпуск языка программирования Rust 1.57"
Отправлено freecoder , 08-Дек-21 15:31 
> Человеки выбрали питон. Мы его не любим, а человеки выбрали.

И JavaScript. "Миллионы людей не могут ошибаться!"


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 13:51 
Как там конференция RustCon  в Москве идет? По приборам она идёт прямо сейчас.  QwertyReg даже ливнул с опеннета так как отработал лаве.  

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 15:38 
Да что-то как-то никак не слышно...

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 19:30 
>QwertyReg даже ливнул с опеннета так как отработал лаве.

Да не, он посрать вышел. Сейчас придёт.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 03-Дек-21 21:05 
Какой ппц в синтаксисе. Хотя сейчас всякий сахар почти во все языки добавляется.

Пора бы уже символы вводить и специальный font с набором (что-то подобное было, но не могу вспомнить, может анон подскажет?)


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 03-Дек-21 22:31 
Не тот случай. Это не сахар, это гранитная крошка.
Я бы ещё китайских иероглифов напихал.

"Выпуск языка программирования Rust 1.57"
Отправлено menangen , 04-Дек-21 00:41 
Щас и в питон наркоманию тоже вводят

"Выпуск языка программирования Rust 1.57"
Отправлено Зз , 04-Дек-21 02:04 
Я вот лично ничего против раста не имею. Даже готов закрыть глаза на то, что раст имеет против меня - так настырно лезет в мою жизнь, что похоже уже не скрыться. Намеревается уничтожить Си, который я УЖЕ знаю.

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

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

Статистически проблема с памятью возникает два раза в год и исправляется за пол дня. Собрал с санитайзером, поковырял гдб и готово. Это вообще самый простой тип бага, его даже искать не надо, он сам на тебя прыгает.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 13:58 
Рынок безопастников перегрет. Потому учи раст. Потом будешь еще что-то учить абы под ногами не мешался.

"Выпуск языка программирования Rust 1.57"
Отправлено Анонн , 04-Дек-21 17:09 
> а так ли они мешают?

Это ты так шутишь? Правда ведь?

Тут раз в неделю выходить новость о том, что очередные погромисты накосячили с памятью, поэтому твой сервак может выполнить произвольный код из-за кривого пакета или пдф-файла (привет мудилам их HP). Последняя была аж два дня назад - переполнение буфера в Mozilla NSS. И она там минимум с 2012 (а то и с 2003). И там чего-то только не было - и Coverity, санитайзеры, и фаззи-тестинг. И все равно они смогли нафакапить и оно жило в коде годами.

А потом оказывается что у тебя 1млрд уязвимых андроид телефонов или ботнет из 100500 китайских вебкамер, которые никогда не получат обновлений.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 21:55 
Раскажи про утечки памяти в ОС Редос.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 22:28 
> Раскажи про утечки памяти в ОС Редос.

Ну давай, расскажи, что там за "утечки".


"Выпуск языка программирования Rust 1.57"
Отправлено Анонн , 05-Дек-21 00:09 
1. Память в редоксе "текла" потому что модуль управления памятью не был написан (она не освобождалась).
2. Утечка памяти - это не та ошибка, которая получит рут и сольет твои данные налево, максимум - denial of servive.

Встречный вопрос - почему текло ядро https://bugzilla.redhat.com/show_bug.cgi?id=1679972, оно же написано на божественной сишечке лучшими погромистами в мире!


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 04-Дек-21 22:14 
А вот если бы они писали на хрусте...
Никаких принтеров и мозиллынсс бы не было. Был бы один сплошной хеллоуворлд.

"Выпуск языка программирования Rust 1.57"
Отправлено Анонн , 05-Дек-21 00:04 
Прекрасно, допустим раст плохое решение этой проблемы, предположим для этого не подходит.
Назовите другое решение, которое справится с таким потоком говнокода и как следствие уязвимостями.
Только что-то более-менее реалистичное, а не "давайте перестанем писать код плохо и начнем писать код хорошо".

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 00:08 
Хорошая попытка манипуляции, но нет.

Могу посоветовать только не писать говнокод.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 00:09 
И да, если для вас не писать говнокод - это не "что-то более-менее реалистичное", у меня для вас плохие новости.

"Выпуск языка программирования Rust 1.57"
Отправлено Анонн , 05-Дек-21 00:10 
Так в том то и дело что говнокод пишу не я, а си программеры. Sad but true.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 00:12 
Не, ну то, что не пишешь - никто не сомневался.
Я ж не зря посоветовал "не писать говнокод". Можно вообще ничего не писать, думаю, в данном конкретном случае будет лучше.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 22:28 
> Но вот проблемы-то эти с памятью, а так ли они мешают?
> Полагаю если лезть на рынок безопасников - там раста недостаточно, там фаззеры нужны.

Сам спросил, сам и ответил.

Фаззеры, конечно, нужны. Вот только это очень дорогое и ресурсоёмкое удовольствие. Большие программы полностью профаззить нереально.

Поэтому ограничиваются наиболее ответственными модулями.

И если есть язык программирования, которые сходу затыкает многие дыры, то глупо им не пользоваться.

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

Времена, когда программа должна "просто работать" скоро закончатся.


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 04-Дек-21 23:46 
> Времена, когда программа должна "просто работать" скоро закончатся.

Ну да, на расте проги будут просто не работать.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 00:10 
Хуже. Их просто не будет.
А там, где таки умудряться налепить, будут обёртки к сишным библиотекам и ансейфы вдоль и поперёк.
Потому что ущербно by design. Язык не для того, чтобы ограничивать возможности, ага.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 00:11 
// умудрятся

"Выпуск языка программирования Rust 1.57"
Отправлено Зз , 05-Дек-21 03:16 
> Времена, когда программа должна "просто работать" скоро закончатся.

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


"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 05-Дек-21 08:24 
Не понял, а почему апологеты растомании критикуют чистый Си? Причём тут он? Настоящий конкурент Раста, это Си плюс-плюс. Вот, с Си плюс-плюсниками и спорьте.

Растаманы и Си плюс-плюсники ничего такого низкоуровневого не делают, и не будут делать. Они лишь перекладывают готовые кирпичики. А сишник сначала сам из глины готовит кирпич.


"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 09:07 
Плюсам раст с его подходом к наследованию (которого в нём нет) вообще не конкурент даже не сбоку.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 05-Дек-21 10:13 
Дуракам лучше молчать.

"Выпуск языка программирования Rust 1.57"
Отправлено Онаним , 05-Дек-21 10:43 
Так чего пишешь-то тогда?

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 05-Дек-21 08:30 
И напоследок. Си плюс-плюсник и Растаман не знают алгоритмов, им это и не нужно. А чистый сишник просто обязан знать алгоритмы, потому-что язык его структурно-процедурный.

"Выпуск языка программирования Rust 1.57"
Отправлено Аноним , 05-Дек-21 13:55 
> И напоследок. Си плюс-плюсник и Растаман не знают алгоритмов, им это и не нужно.

Какой жирный бред ...
https://github.com/ManticoreProject/llvm/blob/master/lib/Sup...
> A DAG Minimization Algorithm

https://github.com/llvm/llvm-project/blob/main/polly/lib/Tra...
> The polyhedral dead code elimination pass analyses a SCoP to eliminate

Покажи "готовые сишные кирпичики", аль обычный балабол?

> А чистый сишник просто обязан знать алгоритмы

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