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

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

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

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


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:14 
долгих лет! очень рад! круто!

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 22:52 
https://www.youtube.com/watch?v=ItBgDuUi3Xk

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:08 
в тему!

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:05 
> для платформ Sony PlayStation 1

Они потерялись во времени эдак 18 лет назад.


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 03:37 
Они идут и шум их слышен на 18 годах от текущего... пока...

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 03:47 
Представляешь, когда они до 5-ой плойки дойдут?

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 16:27 
>> для платформ Sony PlayStation 1
> Они потерялись во времени эдак 18 лет назад.

Кто "они"?
Одному чу[в|д]аку было интересно - он и запилил поддержку. Хотя мог бы попукивать в уютное старое кресло и строчить бессмысленные анти-растовые комменты опеннете.


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 16:40 
Знаний растаманов хватает только на технологии прошлого века.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 16:47 
> Знаний растаманов хватает только на технологии прошлого века.

Т.е. ты нам сейчас покажешь свой порт gcc на пятую плойку (ну или хотя бы первую)? Или как обычно у опеннетных  балаболок, начнутся виляния задом?


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 16:54 
Зачем портировать то, что было изначально использовано самой Сонькой?! Карл, PS изначально на gcc!

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 17:54 
>> Т.е. ты нам сейчас покажешь свой порт gcc на пятую плойку (ну или хотя бы первую)? Или как обычно у опеннетных  балаболок, начнутся виляния задом?
>> Или как обычно у опеннетных  балаболок, начнутся виляния задом?
> Зачем <виляния задом поскипаны>

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

> Карл, PS изначально на gcc!

Т.е ты сейчас дашь ссылку на tier3 поддержку PS в gcc или опять "как обычно"?


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 20:30 
Sony used the free software GNU C compiler, also known as GCC

"Выпуск языка программирования Rust 1.67"
Отправлено васёк , 26-Янв-23 22:21 
Спаcибо! Ждем больше системных компонентов на rust в Linux

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:23 
тем временем зиг перешел на самообеспечение

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:57 
И нафиг он нам нужен в новости про rust? Rust уже в ядре, а на Зиг пишут полтора человека.

"Выпуск языка программирования Rust 1.67"
Отправлено Иваня , 27-Янв-23 08:14 
зиг ещё хуже раста

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 09:48 
Почему?

"Выпуск языка программирования Rust 1.67"
Отправлено inferrna , 27-Янв-23 12:45 
Заставить писать на нём трудно даже за деньги.

https://www.youtube.com/watch?v=eIX9zER9vjY


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:23 
там есть что-нибудь вроде qml? (не враппер, не gtk, не js (qml != js))

нормальные десктоп приложухи можно писать?


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:30 
Slint посмотри(а вообще areweguiyet в помощь)

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 01:15 
просили же нормальные...

"Выпуск языка программирования Rust 1.67"
Отправлено Анонимусс , 01-Фев-23 18:45 
Да кому он нужен с такой отбитой лицензией?
Есть rui, есть tauri, есть egui, есть еще много других, не таких популярных.

"Выпуск языка программирования Rust 1.67"
Отправлено Gj , 30-Янв-23 14:32 
Tauri

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:25 
Вот бы переписали на расте

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 00:05 
На самом деле неплохой критерий для проверки состоятельности языка.
Впрочем, я скорее за то, чтобы писать на нём новые вещи, вроде Libreddit, CSS Quantum, Veloren.

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 27-Янв-23 00:41 
> На самом деле неплохой критерий для проверки состоятельности языка.
> Впрочем, я скорее за то, чтобы писать на нём новые вещи, вроде
> Libreddit, CSS Quantum, Veloren.

Вот это да... Вот это нужные проекты!


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 08:53 
Братан, без шуток нужные.
Libreddit, в отличие от обычного Reddit на мобильных устройствах, не блокирует тебе информацию из-за того, что ты не авторизовался. Самое то, чтобы находить ту или иную информацию в популярных сообществах.
CSS движок Quantum повысил производительность Firefox благодаря многопоточности.
Veloren, как FOSS игра, претендует себя как альтернатива скатившемуся Cube World. Кому-то это может быть ценно, просто ты не попал в ЦА.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:25 
> "#[must_use]"

Надо было #[must_die] еще заимплементить на радость анонимусам.


"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 22:29 
В некоторых проектах на С встречаю функцию die(), которая обычно делает perror и еxit. Да в perl такая есть.  

"Выпуск языка программирования Rust 1.67"
Отправлено AKTEON , 27-Янв-23 09:48 
Язык Си - язык ненависти, расовой и гендерной дискриминации.
Насильник - программист на Си (доказанно Хансом Рейзером)

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 30-Янв-23 17:51 
> Язык Си - язык ненависти, расовой и гендерной дискриминации.
> Насильник - программист на Си (доказанно Хансом Рейзером)

Кстати, Ханс не насильник. Опять растоман ошибся.


"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 30-Янв-23 17:52 
> Язык Си - язык ненависти, расовой и гендерной дискриминации.
> Насильник - программист на Си (доказанно Хансом Рейзером)

Ханс убил жену, потому что она изменяла. Ратоманам-куколдам не понять.


"Выпуск языка программирования Rust 1.67"
Отправлено Dzen Python , 26-Янв-23 22:45 
А внезапно - почему бы и нет.
Спецификатор, вставляющий принудительно при конпеляции шаблонно сгенерированный код, который ищет все разделяемые ресурсы там, семафоры, отслеживает логику локов внутри функции и при получении сигнала или паники корректно разлочивает, закрывает ресурсы и при необходимости удаляет созданные системные примитивы.

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


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 00:05 
Так на Rust, сынку, платят ГОРАЗДО БОЛЬШЕ чем на твоих С++ и тем более чем на чистом С.

"Выпуск языка программирования Rust 1.67"
Отправлено деанон , 27-Янв-23 09:10 
да, да, только помимо программирования на Расте нужно еще свою подпись ставить на документах и вопросы не задавать. Очень много плотють, очень

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 13:27 
Пруф? Или так блокчейн платежные системы имеешь в виду?

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 22:26 
> Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"

Почему для async функций указание аннтоации это отдельный случай? Да в сама аннотация помечена как "This is a nightly-only experimental API." https://doc.rust-lang.org/std/hint/fn.must_use.html , а вот в С++ [[nodiscard]] в 17-ом стандарте и до этого можно было использовать через кастомные атрибуты. И это вы называете стабильным языком? Рановато еще.


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:18 
У многих и стабильных языков 28 летней давности, даже такого нет

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 23:20 
> У многих и стабильных языков 28 летней давности, даже такого нет

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


"Выпуск языка программирования Rust 1.67"
Отправлено НяшМяш , 27-Янв-23 00:06 
В оригинальной новости расписано подробнее. Async функция возвращает Future и аннотация must_use применялась только к этой структуре, а не к её ожидаемому результату. Теперь это починили и аннотация распространяется в том числе и на Future::Output.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 00:27 
Ну так в плюсах больше 30 лет ждали этой фичи, а тут уже она есть!

"Выпуск языка программирования Rust 1.67"
Отправлено burjui , 27-Янв-23 02:07 
Сдаётся мне, 30 лет назад плюсовики даже не знали о такой фиче и полагались на своё идеальное, по мнению экспертов с Опеннета, внимание к деталям. Потом увидели её в каком-то другом языке, поняли, что годно, и потянули себе.

"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 11:31 
Атрибут must_use стабильный, вы дали ссылку на функцию hint::must_use, которая не стабильна, а не на атрибут.

Почему возникла необходимость дорабатывать поведение этого атрибута для асинхронных функций? Дело в том, что сигнатура async-функции


async fn foo() -> Bar
Это синтаксический сахар для сигнатуры примерно такого вида:

fn foo() -> impl Future<Output = Bar>

Если на такую функцию повесить атрибут must_use

#[must_use]
fn foo() -> impl Future<Output = Bar>
то получится, что он применяется к возвращаемому типу impl Future, который и так всегда must use. На самом деле, в рамках синтаксиса async-функции, программист ожидает, что must_use применится к значению типа Bar, которое возвращает не функция, а футура, которую вернет функция:

#[must_use]
async fn foo() -> Bar
Понятно, что с точки зрения внутреннего представления это особый случай поведения #[must_use], который отличен от предыдущего, применимого для объявлений типов и значений, возвращаемых из функций напрямую.

"Выпуск языка программирования Rust 1.67"
Отправлено Серб , 27-Янв-23 12:58 
Получается, что синтаксический сахар, скрывающий суть, был проблемой?

"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 13:27 
Не то что бы проблемой, просто он расширил применимость синтаксиса объявления функции. Сделав возврат значения футуры синтаксически подобным возвращаемому значению функции, естественно возникла потребность применять все, что положено возвращаемым из функции значениям также и к возвращаемым из футуры, если они записаны в синтаксисе функций.

"Выпуск языка программирования Rust 1.67"
Отправлено Dzen Python , 26-Янв-23 22:39 
Код под 1.66 соберется под 1.67?

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:58 
Да.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:11 
Ты уверен?

> ошибки, вызванные предположением, что функция изменит значения


"Выпуск языка программирования Rust 1.67"
Отправлено НяшМяш , 27-Янв-23 00:08 
Эксперты опеннета не перестают радовать уровнем своей экспертизы.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 01:17 
Оказалось, что приложения на расте могут собираться с ошибками...

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 01:37 
Раст от логических ошибок в коде не защищает никак, как и 99,9% других существующих языков. Это отчасти есть только в функциональщине с зависимыми типами. Раст это плюсы в наморднике и строгом ошейнике, дабы подсократить класс ошибок, являющийся основным источником CVE

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 03:07 
Дак там немного другое, там UB. Так нагородили, что невозможно понять, что делает ф-я: то ли меняет значение, то ли возвращает. В общем, хренотень нагородили.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 03:08 
А вместо того, чтобы сесть и внимательно продумать заголовки ф-й, начали их костылями подпирать.

"Выпуск языка программирования Rust 1.67"
Отправлено ДаНуНафиг , 27-Янв-23 04:28 
На каком языке сразу понятно, что делает функция bar() - меняет значение или возвращает?

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 06:18 
В расте же. Если параметр передан как mut,  значит меняет.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 11:10 
Прикинь, в других языках тоже есть var, const и out. Растаманы, как обычно, взяли готовое и назвали по-растамановски.

"Выпуск языка программирования Rust 1.67"
Отправлено Илья , 28-Янв-23 08:44 
Разберись сначала, потом знакомые слова пиши

"Выпуск языка программирования Rust 1.67"
Отправлено Илья , 28-Янв-23 08:43 
меня тянет блевать от использования слов foo и bar.

Зачем вы их используете? Они же с реальностью никакой связи не имеют??


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 01-Фев-23 20:04 
От того и используем, что никакой связи с реальностью не имеют, т.к. в контексте их использования она (связь) не нужна.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 22:44 
>Безопасная работа с памятью обеспечивается в Rust во время

Про это написали, а почему про ОСОБЕННОСТИ работы с памятью не написано?


"Выпуск языка программирования Rust 1.67"
Отправлено Dzen Python , 26-Янв-23 22:49 
Потому, что аутотренинг в каждой новости. Работа безопасная, безопасная, безопасная - Я СКОЗАЛ БИЗАПАСНАЯ! БИЗАПАСНАЯ! ТУПЫЕ СИШНИКИ ОДЕРЖИМЯ АРИФМЕТИЯКОЙ УКАЗАТЕЛЕЙ, А Я СВОБОДНЫЙ ОТ НАВЫКОВ ПОГРОММИСТ!

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


"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 22:54 
> Потому, что аутотренинг в каждой новости.

У них еще в changelog'ах к релизам политота проскакивает


"Выпуск языка программирования Rust 1.67"
Отправлено Dzen Python , 26-Янв-23 22:55 
Seriously?

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 22:58 
> Seriously?

Ну вот про Иран https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html


"Выпуск языка программирования Rust 1.67"
Отправлено Dzen Python , 26-Янв-23 23:02 
https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html
Да уже и сам нашел. Хм.
Еще один cons в сторону этого языка.
Я с Notepad++ поэтому и ушел, бо слишком много всунуто политоты.

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 23:05 
> слишком много всунуто политоты.

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


"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 13:06 
Changelog вообще-то тут: https://github.com/rust-lang/rust/blob/master/RELEASES.md

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 27-Янв-23 17:01 
> Changelog вообще-то тут: https://github.com/rust-lang/rust/blob/master/RELEASES.md

Не придирайся. В блоге языка политота. Это даказано. Метка поставлена.


"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 29-Янв-23 01:15 
Это не отменят того факта, что в Changelog политики нет.

"Выпуск языка программирования Rust 1.67"
Отправлено ИмяХ , 26-Янв-23 22:54 
>>для платформ Sony PlayStation

Вот где действительно нужна безопасность!


"Выпуск языка программирования Rust 1.67"
Отправлено Dzen Python , 26-Янв-23 22:58 
А вот вдруг ты начнешь играть в Syphon Filter 2, а тут бамц! и Прямо в лаборатории на Гейба попрут глючные модельки из-за use-after-free? Или прямиком  перед отключение света в туннеле найдется null-указатель?

Вишь, какие продуманные.


"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 22:59 
>>>для платформ Sony PlayStation
> Вот где действительно нужна безопасность!

Там уже можно поставить Линукс через уязвимость в браузере. Куда безопаснее?


"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 13:29 
>>>для платформ Sony PlayStation
> Вот где действительно нужна безопасность!

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


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:01 
Интересно.., только у меня одного получается писать на ржавом так же просто, как на питоне, только намого эффективнее?

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 23:08 
>  только намого эффективнее?

Это когда кол-во кода стремится к нулю? (Все мы эксперты знаем, что лучший код - это его отстутсвие). Нет, ты не один такой.


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:26 
Да вы все равно не поймете, там за печкой...

"Выпуск языка программирования Rust 1.67"
Отправлено burjui , 27-Янв-23 02:20 
Да, только у тебя одного, все остальные сидят на Опеннете и плачутся, что Rust невыносимо ужасный, а им его навязывают под страхом пыток джавой.

"Выпуск языка программирования Rust 1.67"
Отправлено Нанонимус , 27-Янв-23 04:36 
Скинь примеры кода. Я то тоже могу писать на расте, не используя ссылки и лайфтаймы, используя везде исключительно владение через Vec или String, передавая все эти значения через clone. И да, это всё равно будет на порядок эффективнее питона. Только смысл в этом какой? Чтобы писать оптимальный код, сопоставимый с кодом на Си, тебе всё равно необходимо использовать ссылки/указатели. А вот с этим у раста и начинаются бесконечные приседания, аннотации всюду лайфтаймов и прочая ментальная эквилибристика. А ещё не забудь везде mut проставить, натыкать где надо Cell/RefCell, обернуть всё в Rc/Arc, расставить move у замыканий и всё это для того, чтобы заставить компилятор всё же скопилировать твой растово-идиоматичный код, который был бы в 10 короче просто с использованием обычных указателей.

"Выпуск языка программирования Rust 1.67"
Отправлено burjui , 27-Янв-23 10:11 
Очередной онаним-анимешник рубит правду-матку, со своими 0.20 лет опыта в разработке. Оказывается, на Rust писать сложно, ой-ой-ой! Разработчики Linux-то дураки, не спросили у него, теперь придётся везде (в 10%) расставлять mut и лайфтаймы, а могли бы расставлять const через слово и не париться.

"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 13:13 
Смотря что ты пишешь и как ты пишешь. Если пытаешься натянуть на Rust свои старые привычки - то да, будут бесконечные RefCell/Rc и пляски с лайфтаймами. Если же уже приноровился к Rust, то в обычном прикладном коде (мы ведь про прикладной код, так как сравниваем с Python, верно?) не будет ни лишних clone, ни проблем с лайфтаймами.



"Выпуск языка программирования Rust 1.67"
Отправлено Нанонимус , 28-Янв-23 09:52 
Всё это, безусловно, интересные теоретизирования, но хотелось бы рассмотреть конкретные примеры. Споткнуться в системе типов раста можно много в каких местах, я же покажу только один случай, но зато очень наглядный, который раскрывает всю суть раста в полной мере. Этот пример не про clone, а немного про другое. Я максимально упростил пример, оставив только суть. Предметная область меня не сильно интересует, однако в реальной практике такое случается довольно часто. Не просто же так я этот пример "придумал".

Итак, задача: хочу написать простой тип Grouper, который будет группировать значения по определённому ключу и будет иметь два основных метода:
// Устанавливает ключ текущей группы
fn set_current_group(&mut self, current_group: String)
// Вставляет значение в текущую группу, вернёт true в случае успешной вставки
fn add_to_group(&mut self, value: i32) -> bool

Реализация: https://play.rust-lang.org/?version=stable&mode=debug&editio...

И правда, всё просто и даже никаких лайфтаймов не нужно. Круто!
Получившийся тип определяется так:
struct Grouper {
    groups: HashMap<String, Vec<i32>>,
    current_group: String,
}

Но такая реализация далеко не самая эффективная. Можно заметить, что в методе add_to_group мы каждый раз ищем один и тот же ключ (current_group) в хешмапе. Всё же, мы пишем на производительном расте, а не на каком-то там медленном питоне. Хочется закешировать текущую группу и обращаться к ней напрямую. Попробуем это как-то изобразить:
struct Grouper {
    groups: HashMap<String, Vec<i32>>,
    current_group: Option<&'huh? mut Vec<i32>>,
}

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

* Просто забить. И таак сойдёт..
Довольно разумное решение, которое оставляет за собой много философских вопросов: а зачем мне вообще в таком случае нужен раст? Какие проблемы он решает? Не даёт мне писать производительный код? Ради чего? Ради т.н. "безопасности"? Стоит ли это того?

* Вспомнить "свои старые привычки", то есть просто использовать RefCell. Решение: https://play.rust-lang.org/?version=stable&mode=debug&editio...
Ну то есть, такие полезные типы как Rc и RefCell всё же бывают нужны. Не просто так они добавлены в std. Да, тут растеры будут уверять вас, что их нужно использовать редко и только в действительно "редких" случаях как этот. Только с каких пор простое кеширование значения стало чем-то редким? Ну хорошо, всегда можно найти себе оправдание всякими умными словами "преждевременная оптимизация" (то есть вернуться к первому решению), но поймите, к примеру в C++ это вообще не является проблемой. Иногда, и довольно часто, нужно написать такой код и от этого не уйти. Тем более, даже так это решение не самое оптимальное, ибо RefCell это по своей сути динамический бороу чекер, который проверяет возможность досупа к значению в рантайме, то есть имеет ненулевую стоймость, в отличии от простого указателя. К слову об этом, рассмотрим третье решение.

* Да, unsafe! Решение: https://play.rust-lang.org/?version=stable&mode=debug&editio...
Самое сложное из всех представленных. Осмелиться на такое потребует от вас небывалой стойкости духа. Мне приходилось постоянно убирать пот со лба полотенцем, пока я писал это решение, стараясь нигде не разыменовать null и не вызвать UB. Конечно, поскольку этот код использует unsafe, полагаться на его корректность никак нельзя. Я уверен, там куча багов, на которые мне конечно же укажут прошаренные растеры и заклинят меня удалить компилятор и больше не производить на свет подобную ересь.

* Использовать 100% safe и zero cost абстракцию, которая решает данную проблему и требует всего лишь подрубить дополнительную зависимость с crates.io
И правда, зачем делать полноценный язык программирования, если можно сделать недоделку и предоставить удобнейший магазин костылей на любой вкус?

* А может ну его? Почему бы просто сразу не писать на питоне? Решение: https://www.online-python.com/A4H621D8Og
Иронично, но написать оптимальное решение можно без всяких приплясок даже на питоне!
Думаю, это самое лучшее решение из всех приведённых. Да, это будет не так быстро, но если нужна скорость то почему бы не взять C++? Опять же, никаких подобных проблем в C++ нет. Конечно, каждый язык имеет свои слабые стороны, но хотя бы они, в отличии от раста, не затрагивают существенную часть повседневных нужд и доказали временем свою состоятельность. Они позволяют писать рабочий код, без пафоса повсеместной "безопасности", а просто код, который работает. Да, не идеально, но он работает. Баги есть и будут везде, в том числе и в расте. Я расстрою растеров, но волшебства не существует, простите. Чем раньше вы это поймёте, тем меньшее разочарование в конечном счёте испытаете.

Для остальных хочу сказать, каждый раз, когда любители раста рассказывают вам сказки про "не будет ни лишних clone, ни проблем с лайфтаймами", не стоит сразу смеятся им в лицо. Эти люди живут в своём "безопасном" мире, а для них вы лишь недалёкий неуч с опеннета, не важной какой опыт у вас за спиной. Отнеситесь с пониманием. Человеку свойственно умнеть со временем, узнавая что-то новое. К сожалению, не у всех это получается, но терять надежду не стоит. Вот даже в Linux их приняли, лишь бы поменьше обижались. Того гляди, начнут учить нормальные языки вроде Си и научатся писать нормальный код, без тонны костылей и подпорок.


"Выпуск языка программирования Rust 1.67"
Отправлено antonio , 28-Янв-23 10:55 
есть еще такое околокостыльное решение в оффициальной доке https://doc.rust-lang.org/nightly/core/cell/index.html#imple...

"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 29-Янв-23 01:39 
Чем вам решение с указателем не угодило? Unsafe - это не костыль, это полноправная часть языка. Вы не знали? Просто unsafe нужно правильно использовать и по минимуму, но отказаться от него совсем невозможно.

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

Это не значит, что я не писал unsafe кода. Писал, когда это было оправдано и необходимо. Так что его доля вряд ли превышает 0.1% от остального кода.


"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 29-Янв-23 01:51 
Я вот кстати уже не первый раз замечаю, что у многих есть непонимание того, что unsafe - это не костыль, это - одна из главных "киллер-фич" языка.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 26-Янв-23 23:11 
>Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"

Хорошая фича. Такое есть в android, а в обычной java и kotlin нет


"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 23:14 
>>Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"
> Хорошая фича. Такое есть в android, а в обычной java и kotlin
> нет

Как можно сравнивать android с java или kotlin?


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 01:19 
а растаманам не привыкать сравнивать длинное с тёплым.

"Выпуск языка программирования Rust 1.67"
Отправлено Kuromi , 26-Янв-23 23:17 
Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 26-Янв-23 23:22 
> Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.
> середина декабря

Ты ошалел? Больше месяца прошло уже! Через неделю код уже старый. Забываешь пить смузи?


"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 13:17 
> Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.

Минорные релизы Rust выходят с периодичностью в 6 недель, по расписанию. С 2015 года так, привет.


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 00:08 
Не нужно. Мы подождем релиза carbon 1.0.

"Выпуск языка программирования Rust 1.67"
Отправлено НяшМяш , 27-Янв-23 00:09 
У вас уже гошка есть, не нравится?

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 12:55 
Не нравится.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 13:28 
эксперты по Расту знают толк в ООП

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 00:16 
Программирование умирает, скоро эту отрасль на 99.9% займет искусственный интеллект. У дел останутся только талантливые дарования которые могут этот самый искусственный интеллект писать, вэб-макаки и прочие останутся за кормой.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 00:22 
Только в твоих фантазиях.

Заменят тебя и таких как ты, кто пишет однострочники.

Потом наши потомки найдут трактаты идиотов которые пытались на этом "генерировать код". 10 листов описания задачи на 1 лист кода.


"Выпуск языка программирования Rust 1.67"
Отправлено th3m3 , 27-Янв-23 10:07 
Уже лет 15 слышу эти вангования. Вот только что-то всё не сбывается.

"Выпуск языка программирования Rust 1.67"
Отправлено Alex , 27-Янв-23 12:15 
ИИ учится на прошлом опыте людей и программистов. Но, технологии бегут семимильными шагами, ИИ нужно постоянно обучать. Если программисты буду использовать только ИИ то все встанет. Но, такого не будет потому что это будет у всех, а бизнесу нужны преимущества.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 13:30 
Достаточно закрыть некрософт гитхаб

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 22:19 
ИИ не нужен, нужен ИР. ИИ - это просто скопище знаний, тогда как ИР способен обучаться и мыслить самостоятельно. Но человечеству до этого так же далеко, как ишаку до разума вообще.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 00:32 
Как можно умудриться написать компилятор, которому нужно 32 гигабайта оперативки для сборки самого себя? Что они там курят?

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 01:24 
Чуть больше, чем в гугле.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 01:34 
Что в гугл? Какой их компилятор требует столько же оперативы?

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 02:09 
Курят чуть больше, чем в гугле.

"Выпуск языка программирования Rust 1.67"
Отправлено 111 , 27-Янв-23 09:17 
Бред. У меня на четырёх гигах спокойно собирается.

"Выпуск языка программирования Rust 1.67"
Отправлено _kp , 27-Янв-23 12:11 
Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь. Если конечно это не сборка в виртуалке с 4Гб для спортивного интереса.

"Выпуск языка программирования Rust 1.67"
Отправлено 111 , 27-Янв-23 16:20 
> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
> Если конечно это не сборка в виртуалке с 4Гб для спортивного
> интереса.

Это VPS-ка c Фряхой. Делаю всякие эксперименты на ней. Так что да, это для спортивного интереса.


"Выпуск языка программирования Rust 1.67"
Отправлено linux4ever , 27-Янв-23 16:42 
>> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
>> Если конечно это не сборка в виртуалке с 4Гб для спортивного
>> интереса.
> Это VPS-ка c Фряхой.

А, ну тогда все ясно - Бздуны знатные неосиляторы.


"Выпуск языка программирования Rust 1.67"
Отправлено 111 , 27-Янв-23 23:40 
>>> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
>>> Если конечно это не сборка в виртуалке с 4Гб для спортивного
>>> интереса.
>> Это VPS-ка c Фряхой.
> А, ну тогда все ясно - Бздуны знатные неосиляторы.

Спасибо за комплимент!


"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 20:09 
> У меня на четырёх гигах спокойно собирается.

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

За rust зацепился, наверно, по той причине, что процесс его сборки с -O3 сегфолтился в разных местах.


"Выпуск языка программирования Rust 1.67"
Отправлено 111 , 27-Янв-23 23:41 
>> У меня на четырёх гигах спокойно собирается.
> Действительно, перепутал ебилды, прошу прощения за дезинформацию. Это было требование
> другого проекта, вызванное сильным распараллеливанием сборки.

Бывает.


"Выпуск языка программирования Rust 1.67"
Отправлено eugeneko , 27-Янв-23 02:23 
Отличный язык! Позволяет безопасно работать с памятью

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 02:37 
Отличная память! Позволяет безопасно работать языком

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 03:01 
Отличная работа! Безопасно запоминать позволение языком.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 13:31 
Отличный язык! Позволяет проводить поведенческие исследования.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 22:17 
Нет.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 09:06 
Rust уже портировали на raspberry pi?

"Выпуск языка программирования Rust 1.67"
Отправлено 111 , 27-Янв-23 09:16 
Уже: https://www.raspberryconnect.com/raspbian-packages/167-raspb...

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 10:52 
Но, ведь весь функционал раста можно реализовать и в плюсах.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 11:05 
s/реализовать/реализован/

"Выпуск языка программирования Rust 1.67"
Отправлено васёк , 27-Янв-23 11:08 
да даже на ассемблере все это можно реализовать

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 12:52 
У ассемблера нет чекера борова, допускает адресную арифметику.

"Выпуск языка программирования Rust 1.67"
Отправлено васёк , 27-Янв-23 13:41 
в плюсах нет чекера борова, допускает адресную арифметику

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 28-Янв-23 13:40 
У процессора нет чекера борова, допускает адресную арифметику.

"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 13:34 
> Но, ведь весь функционал раста можно реализовать и в плюсах.

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


"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 28-Янв-23 21:52 
> потому что придётся изменить кое-что в фундаментальной философии языка и сломать обратную совместимость

Что придется изменить в С++?


"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 29-Янв-23 01:57 
В Rust небезопасные операции являются расширением языка, который по-умолчанию безопасен. В C++ наоборот, примитивы для безопасной работы с памятью являются расширением языка, по-умолчанию небезопасного. Это два принципиально разных подхода.

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 29-Янв-23 21:21 
> В Rust небезопасные операции являются расширением языка, который по-умолчанию безопасен.
> В C++ наоборот, примитивы для безопасной работы с памятью являются расширением
> языка, по-умолчанию небезопасного. Это два принципиально разных подхода.

Небезопасные операции можно запретить на уровне линтеров. Вместо обычных указателей использовать обертку (как это сделал chromium c MiraclePtr).


"Выпуск языка программирования Rust 1.67"
Отправлено Максим , 27-Янв-23 12:30 
Синтаксис похож на исходник какой-то навороченной заскриптованной web-страницы...

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 16:42 
> заскриптованной web-страницы

...дважды обфусцированной.


"Выпуск языка программирования Rust 1.67"
Отправлено Facemaker , 27-Янв-23 22:33 
Кстати, статья про синтаксис: https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html

"Выпуск языка программирования Rust 1.67"
Отправлено Анонимусс , 27-Янв-23 23:27 
А что это за ниосилятор?

"Выпуск языка программирования Rust 1.67"
Отправлено Facemaker , 28-Янв-23 10:27 
Для тех, кто не понял юмора: статья написана известным экспертом по языку Rust Алексеем Кладовым.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 13:38 
Этот язык изобрели для того, чтобы конкретно отсеять самых поехавших фанатиков, которые преданно будут летая в иллюзиях свободы и безопасности несознательно и в беспамятстве всё делать в угоду корпораций

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 15:21 
Расту дороги неисповедимы!

"Выпуск языка программирования Rust 1.67"
Отправлено Анонимусс , 27-Янв-23 16:23 
Ну так радуйтеь! Они будут сидеть в своем загончике и никому не меша...
О нет, сишники уже приняли их в ядро, гугел нашлепал 1.5 ляма строк кода для андроида, амазон сделал firecracker...
Как же так-то??

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 17:30 
>приняли их в ядро

Удивительно, что в поделке корпораций используеется язык от корпораций(нет).


"Выпуск языка программирования Rust 1.67"
Отправлено Анонимусс , 27-Янв-23 18:16 
А что же тогда там забыла божественная сишечка? Или было просто лень переписывать?

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 18:54 
Только малолетний недоросль может такой вопрос задать. Потому что раста не было, и потому что этот блоатваре был излишний.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 18:55 
Взять и все переписать только в малолетнем недоросле может быть легко, так же, как посуду помыть или убрать мусор за собой.

"Выпуск языка программирования Rust 1.67"
Отправлено freecoder , 27-Янв-23 16:24 
Назовите хоть одну корпорацию, в которой Rust доминирует.

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 27-Янв-23 18:57 
С помощью ваших сектантов начнет. Ваш выбор ведь вы сами сделали и вам никто его не навязывал, свободные кодеры!

"Выпуск языка программирования Rust 1.67"
Отправлено Аноним , 30-Янв-23 17:38 
Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий Столлман, без одобрения Столлмана он не взлелит.

"Выпуск языка программирования Rust 1.67"
Отправлено Анонимусс , 31-Янв-23 18:53 
Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий Торвальдс, без одобрения Торвальдс он не взлелит.

"Выпуск языка программирования Rust 1.67"
Отправлено Вы забыли заполнить поле Name , 01-Фев-23 05:14 
> Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий
> Столлман, без одобрения Столлмана он не взлелит.

Путь к одобрению Столлмана лежит через лицензию.


"Выпуск языка программирования Rust 1.67"
Отправлено швондер , 25-Фев-23 00:56 
* Messages for package dev-lang/rust-1.66.1:

* There is NOT at least 11520 MiB disk space at "/var/tmp/portage/dev-lang/rust-1.66.1/temp"
*
* Space constraints set in the ebuild were not met!
* The build will most probably fail, you should enhance the space
* as per failed tests.
*
* ERROR: dev-lang/rust-1.66.1::gentoo failed (pretend phase):
*   Build requirements not met!


какое же это г-но