The OpenNET Project / Index page

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



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

Оглавление

Около 21% нового компилируемого кода в Android 13 написано на языке Rust, opennews (?), 03-Дек-22, (0) [смотреть все]

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


252. "Около 21% нового компилируемого кода в Android 13 написано н..."  –1 +/
Сообщение от Аноним (252), 04-Дек-22, 09:40 
https://rustmustdie.com/
Ответить | Правка | Наверх | Cообщить модератору

256. "Около 21% нового компилируемого кода в Android 13 написано н..."  +1 +/
Сообщение от Аноним (253), 04-Дек-22, 10:20 
>Вновь мы наблюдаем привязку языка к стандартной библиотеке, которая в таком случае теряет своё значение как библиотека и становится просто-напросто частью языка — вновь рушатся иллюзии о нулевом рантайме.

Нкписан бред.

1. любой язык высокого уровря привязан к его стандартной библиотеке в том или ином месте.
2. если код с RangeExpr выоптимизируется в код, эквивалентный руками написанному циклу, то это и есть нулевой рантайм.

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

257. "Около 21% нового компилируемого кода в Android 13 написано н..."  +1 +/
Сообщение от Аноним (253), 04-Дек-22, 10:26 
>Более того, такое поведение, разумеется, приводит к затруднению понимания и генерации кода — вряд ли возможно объяснить начинающему программисту такую конструкцию иначе чем как чистую магию.

Мне в C++ не хватает питоньих range в стандартной библиотеке.

Ranges proposal (P0896R4) же во-первых не об этом, а во-вторых глубако отвратительно, ибо завязано на шаблонах и при малейшей ошибке выдаёт гигантскую и непонятную простыню текста. Лучше бы все подобные вещи были интринсиками компилятора, как в расте. Так хотя-бы понятно в чём ошибка (либо у меня, либо в компиляторе).

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

258. "Около 21% нового компилируемого кода в Android 13 написано н..."  +2 +/
Сообщение от Аноним (253), 04-Дек-22, 10:28 
>замечу только, что знакомая программистам на Си тернарная операция тут мимикрирует под обычный условный оператор, чем провоцирует ещё более частое её использование.

Что значит "мимикрирует"? Это условный оператор мимикрирует под тернарное выражение.

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

259. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 10:30 
>Ещё одна особенность базового синтаксиса: объявления верхнего уровня в Rust могут идти в любом порядке, то есть мы можем использовать функцию, определённую позже в коде программы. Это требует многопроходности, а с учётом обильного использования макросов и статического анализа делает процесс компиляции неожиданно медленным

Согласен.

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

260. "Около 21% нового компилируемого кода в Android 13 написано н..."  –1 +/
Сообщение от Аноним (253), 04-Дек-22, 10:35 
> Также unsafe-блоки часто используются, даже когда строгой необходимости в них нет, а так просто удобней.

Верно.


>Итак, вместо того, чтобы сделать хороший язык программирования, разработчики Rust дают невероятно неудобную модель

они делают удобную модель. Для своего компилятора. А не для программиста, которому надо программу писать абы-как и пофиг на уязвимости. Когда на уязвимости не пофиг, модель внезапно становится удобной, просто потому что альтернативной модели и альтернативного языка попросту нет. Carbon и Hare пока в расчёт не берём.


>из которой все в итоге сбегают в мир полного хаоса

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

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

261. "Около 21% нового компилируемого кода в Android 13 написано н..."  +1 +/
Сообщение от Аноним (253), 04-Дек-22, 10:37 
>Во имя безопасности и принципов Rust делает программирование на себе решительно невозможным.

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

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

262. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 10:38 
>Прежде всего он ставит своей задачей наказание за написание недостойного (по мнению его создателей) кода, а не поощрение за написание хорошего кода.

Кнутом, наверное.

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

263. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 10:45 
> Но при выходе из функции заимствование теряется, его нельзя никуда сохранить или даже вернуть.

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

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

264. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 10:47 
>По сути, время жизни — это хак, внутренняя кухня компилятора, к которой программисту дали доступ в тот момент, когда разработчики языка поняли, что писать на предложенной ими модели невозможно.

Верно. Но людям надо дела делать, а не о невозможности выть.

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

265. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 10:52 
> Легко узнать в этих ограничениях задачу о читателях и писателях, и вновь видна помешанность разработчиков языка на параллелизме. В последовательных программах всё это не имеет смысла и только запутывает.

Последовательные программы всё. На 8ядерных процессорах ты откажешься от ≈8-кратного ускорения? Ну тогда твою программу выкинут на свалку и возьмут ту, где авторы не поленились распараллелить.

Но для параллелизма приходится модифицировать весь язык.

>В последовательных программах всё это не имеет смысла и только запутывает.

Ещё бывает use-after-free. А освобождение может быть в том числе при присваивании - сборщика мусора у Rust нет и не будет.

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

267. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 10:57 
>но в Rust есть и весьма распространён сборщик мусора

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

Ты ещё скажи, что std::shared_ptr - это "сборщик мусора".

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

268. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 11:04 
> Отметим, что макросы Rust подобны таковым из Лиспа в том, что изменяют само синтаксическое дерево, представляющее программу в компиляторе; при этом, в отличие от макросов языка Лисп, макросы Rust пишутся на ином, отличном от базового языке — поэтому для их написания надо изучить по сути ещё один язык вдобавок к базовому языку Rust.

Макросы раста - это то, что не хватает сишке. Будем честны - сишный препроцессор - говно, и результат такого препроцессора - очень трудно отлаживаемые баги. Потому что ты пишешь одно, а оказывается в жопе мира где-то объявлем макрос, который твоё одно преобразует в другое, не уважая границы выражений и операций. И только clang++ -E выручает, хотя он и выдаёт гигантскую отвратительную простыню.

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

269. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 11:07 
>монстр, но ещё страшней его сообщество.
>Сообщество Rust — это мир фанатиков.

Полностью согласен.

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

270. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 11:12 
> Подводя итоги: не зря Mozilla сократила команду, работавшую над Rust.

Команда разработки Rust была выкинута в отдельную организацию именно потому, что язык начали использовать в своих флагманских продуктах Google (о чём и новость), Microsoft и запрещённая в РФ Meta. Было бы справедливо, если бы эти организации оплачивали разработку языка, а не только Mozilla.

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

272. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (253), 04-Дек-22, 11:14 
> Далее будут приведены варианты одной и той же программы на Rust с комментарием о примерном количестве получаемых строк ассемблера в скомпилированном машинном коде.

Какой уровень оптимизации?

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

328. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (345), 04-Дек-22, 19:43 
>> Далее будут приведены варианты одной и той же программы на Rust с комментарием о примерном количестве получаемых строк ассемблера в скомпилированном машинном коде.
> Какой уровень оптимизации?

Естественно, дебагсборка. Забей, тут уже не раз разбирали этот выс^W источник мудрости
https://www.opennet.ru/openforum/vsluhforumID3/126424.html#247

https://www.opennet.ru/openforum/vsluhforumID3/128580.html#92
Оказалось - аффтар просто ламо, не особо разбирающееся в предмете:
> Не врите, автор статьи различает дебаг и релиз-билды. по поводу влияния оптимизации он уже отвечал:
> "И не собираюсь учитывать -- как не учитывал для примера на языке Си. Разбирать оптимизированный код почти невозможно, ровно как и предсказывать, как себя поведут оптимизации. Неоптимизированный код лучше отражает саму идею компиляции, а именно её я хотел показать для тех, кому станет интересно, как же Rust представляет замыкания, кроме того он лучше подходит для сравнения, всё по той же причине большей прозрачности. Если вам кажется нормальным не профессионалу разбирать оптимизированный машинный код -- вы или гений, или идиот."

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

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

350. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Someone (??), 06-Дек-22, 05:25 
Ну у меня например везде есть debug_assert и другие подобные проверки. Их полно и в стандартной библиотеке и в других библиотеках.

Не удивительно что debug версия ну очень тормознутая :-))

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

277. "Около 21% нового компилируемого кода в Android 13 написано н..."  +1 +/
Сообщение от Аноним (277), 04-Дек-22, 12:05 
> https://rustmustdie.com/

Зачем эта портянка от студента-двоечника?
Разбор ахинеи в https://habr.com/ru/post/598219/

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

279. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (279), 04-Дек-22, 12:20 
Какая замечательная статья! Это всё должно быть частью rustanomicon!
Ответить | Правка | Наверх | Cообщить модератору

308. "Около 21% нового компилируемого кода в Android 13 написано н..."  +/
Сообщение от Аноним (297), 04-Дек-22, 16:42 
Самое замечательное оттуда:

"Но на примере опровержения одного лишь пункта про zero runtime мы видим, как просто набрасывать неправду, и как затратно её опровергать"

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

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

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

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




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

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