The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск Rust 1.79. Создан консорциум для разработки высоконадёжных систем на Rust, opennews (??), 13-Июн-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


183. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +1 +/
Сообщение от Аноним (-), 14-Июн-24, 14:39 
> Единственно, где C++, возможно, до сих пор незаменим — приложения, выжимающие максимум производительности (за счёт оптимизаций, запрещённых в более безопасных языках).

В расте не запрещены никакие оптимизации. Но зато есть возможность эти оптимизации локализовать в unsafe, и позволить компилятору затем оптимизировать агрессивнее.

Например, строки в rust'е все в utf8. Код работы со строками с целью оптимизации полагается на то, что весь этот utf8 валиден, вплоть до UB в случае невалидного utf8 внутри str. Но std гарантирует, что если ты не создаёшь str при помощи unsafe, то все они будут валидны.

В C++ с этими вещами исторически проблемы, потому что когда C++ создавался, и потом когда его STL создавалась, программисты ещё никак не могли решить, как разделить ответственность между вызывающей и вызываемой сторонами за валидность данных. В результате эта ответственность размазана, то она на вызывающей стороне, и вызов функции с невалидными данными -- это UB, то она на вызываемой стороне, и та в рантайме выполняет проверки, которых часто можно было бы избежать. И C++ не содержит средств, для того, чтобы следить за валидностью данных внутри string. Программист легко может получить char*, затереть там '\0' и вписать невалидный utf8. Код string в результате проверяет в рантайме, то, что он может проверить, сегфолтит на том, что он не может проверить, и получается что ни тебе гарантий в отношение кода, ни производительности.

Единственно, где C++ до сих пор незаменим, это существующие кодобазы на C++.

Ответить | Правка | К родителю #136 | Наверх | Cообщить модератору

187. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Аноним (187), 14-Июн-24, 14:52 
>Единственно, где C++ до сих пор незаменим, это существующие кодобазы на C++.

Заменим, незаменим...

Когда  Rust начнут использовать для ПО используемом на АЭС, в аэрокосмической отрасли и т.п, тогда можно сказать про какую-то замену.

А пока "истории успеха" от этого языка единичны.

Ответить | Правка | Наверх | Cообщить модератору

196. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +1 +/
Сообщение от Аноним (72), 14-Июн-24, 15:35 
В софте для АЭС не может быть никакой магии. Или в аэрокосмической области. Не может быть такого что из карго прилетел неизвестный пакет и не может быть такого что лишняя непонятная магия проверяет некие абстрактные выходы за границы буфера.  
Ответить | Правка | Наверх | Cообщить модератору

201. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +2 +/
Сообщение от Алиса (??), 14-Июн-24, 15:43 
> АЭС
> аэрокосмической
> карго

Тех кто юзает "карго" и всякие хипстерские "безопасные" язычки, как правило, не допускают к этим областям на пушечный выстрел)

Ответить | Правка | Наверх | Cообщить модератору

335. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Прохожий (??), 15-Июн-24, 03:05 
Правильно ли я понимаю, что поскольку Си - нехипстерский язык, то ваять на нём софт для АЭС или космоса - нормалёк, несмотря на известную распространённость ошибок определённого класса, от которых на 100% защититься невозможно?
Ответить | Правка | Наверх | Cообщить модератору

415. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Аноним (415), 15-Июн-24, 23:15 
Си -язык простой (в математическом смысле). Sapienti sat.
Ответить | Правка | Наверх | Cообщить модератору

424. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Ivan_83 (ok), 16-Июн-24, 06:28 
for (int i = 0; i < 100; i ++) printf("%i/n", i);

Зачем мне тут от чего то защищатся? :)
Даже если int станет 8 бит, понятно что ничего не изменится.

Ответить | Правка | К родителю #335 | Наверх | Cообщить модератору

476. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Аноним (483), 17-Июн-24, 09:50 
>Даже если int станет

Ваня, слезай с дерева! Ты не прав.

(0..100).for_each(|d| println!("{d}"))

Ответить | Правка | Наверх | Cообщить модератору

210. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  –2 +/
Сообщение от pavlinux (ok), 14-Июн-24, 16:37 
> В софте для АЭС не может быть никакой магии.

Как такого "софта для АЭС" нет, там всë аналоговое. Полупроводники не любят радиацию

Ответить | Правка | К родителю #196 | Наверх | Cообщить модератору

244. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Массоны Рептилоиды (?), 14-Июн-24, 17:46 
> Как такого "софта для АЭС" нет, там всë аналоговое. Полупроводники не любят радиацию

Там чистый стимпанк в основном. Шестерёнки и паровые клапана

Ответить | Правка | Наверх | Cообщить модератору

362. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Аноним (-), 15-Июн-24, 08:42 
>> В софте для АЭС не может быть никакой магии.
> Как такого "софта для АЭС" нет, там всë аналоговое. Полупроводники не любят радиацию

То-есть древний журнал "наука и жизнь" про станционную ЭВМ (если не ошибаюсь "Скала" называлась) в анализе аварии ЧАЭС - нагло гнал? Или таки полупроводник полупроводнику рознь?

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

Ответить | Правка | К родителю #210 | Наверх | Cообщить модератору

197. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Аноним (72), 14-Июн-24, 15:37 
Ты же понимаешь что в си плас плас софте все так потому что ни для кого это не является проблемой кроме тебя. И то ты просто теоретик и си плас плас никогда в глаза не видел.
Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

312. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  –1 +/
Сообщение от Аноним (-), 15-Июн-24, 00:38 
> Например, строки в rust'е все в utf8. Код работы со строками с
> целью оптимизации полагается на то, что весь этот utf8 валиден, вплоть
> до UB в случае невалидного utf8 внутри str. Но std гарантирует,
> что если ты не создаёшь str при помощи unsafe, то все
> они будут валидны.

То-есть если строка передается ремотой, мы можем конкретно выкусить? Оок!

Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

370. Скрыто модератором  +/
Сообщение от Аноним (500), 15-Июн-24, 09:31 
Ответить | Правка | Наверх | Cообщить модератору

390. "Выпуск Rust 1.79. Создан консорциум для разработки высоконад..."  +/
Сообщение от Ivan_83 (ok), 15-Июн-24, 14:37 
Про отвественность между вызывающей/вызываемой и проверкой кода возврата - да.
Но я лично всегда всё проверяю на входе и проверяю код возврата если не пофиг на результат.


Насчёт строк - уже много раз писал: нет в С/С++ никаких срок кроме константных объявленных в коде.
Всё что вы откуда то получили - это область памяти с какими то данными предположительно содержащими текст, и именно так и надо это обрабатывать: указатель + размер передавать везде, а не думать что там /0 будет и что только валидный текст.

Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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