Rust

Dec. 3rd, 2021 11:45 pm
[personal profile] nz
Я с сабжем не знаком от слова совсем, кроме разве что "там есть borrow checker", что бы это ни значило.

Но попалась ссылка на туториал:



Стал смотреть, и, внезапно, даже все понятно.
Весьма толково освещены основные проблемы C++ (lifetime & aliasing) и показано, как раст их решает.
Все по делу, кто сталкивался, тот поймет.

Досмотрел видео, проникся, пошел читать про раст.
И что я вижу?
В языке нет исключений.

В ЯЗЫКЕ НЕТ ИСКЛЮЧЕНИЙ.
.
.
.
KURWA.

Я не понимаю, кем надо быть, чтобы после 70 или скольки там лет развития индустрии продолжать сочинять языки без исключений.

И вообще, почему каждый очередной "убийца C++" с самого рождения себе что-то отстреливает?

Date: 2021-12-04 01:50 am (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
Обработка исключений замедляют код, вот и весь секрет…

Date: 2021-12-04 04:23 am (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
Поддержка исключений усложняет язык и компилятор. Также она снижает скорость работы программы, так как стоимость обработки исключения, как правило, выше стоимости обработки кода ошибки. Поэтому в местах программы, критичных по скорости, не рекомендуют возбуждать и обрабатывать исключения, хотя следует отметить, что в прикладном программировании случаи, когда разница в скорости обработки исключений и кодов возврата действительно существенна, очень редки.

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

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

Так что разработчики Rust имели основания…
Edited Date: 2021-12-04 04:28 am (UTC)

Религиозные войны

Date: 2021-12-04 05:23 pm (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
“Фактическая сложность уходит в типы данных…”

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

“Я пока не смог нагуглить внятных обоснований такого дизайна от самих авторов”

Вы мне напоминаете участника религиозных войн, который пытаются найти ошибки и ложь в священных книгах. Это сразу наталкивает на иудеев, которые недовольны христианами и мусульманами, которые извратили их ученье и пошли дальше. Брюзжание и ничего более…
Edited Date: 2021-12-04 05:25 pm (UTC)

Re: Религиозные войны

Date: 2021-12-04 06:20 pm (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
“Тот, кто ничего не понимал ни в одном, ни в другом.”

Если С - это удачная попытка заменить ассемблер, то С++ - это путь в никуда… можете меня цитировать…

“Придуманный только что (по историческим меркам) язык уже аналог т.н. "священных" книг?”

Священные книги не были придуманны, а базировались на опыте и мудрости людей и не даром говорят, что это язык на котором с нами разговаривает Бог. Алгоритмический язык не придуман, а точно также основывается на опыте и ошибках старых языков и иногда это случается, что он ведёт не туда, куда надо идти, как это случилось с С++…

“На фоне этого отказ от исключений в пользу ручных проверок результата, даже приправленных Result<> и pattern matching, выглядит дико…”

Они либо добавят исключения в новой версии Rust или предложат, что-то новое, например, если вы не можете жить без исключений, то тогда - plug-in и будет вам счастье!

Re: Религиозные войны

Date: 2021-12-04 08:21 pm (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
Dream on...

February 2026

S M T W T F S
1234 567
891011121314
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 12:18 am
Powered by Dreamwidth Studios