Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 110 14 37
Rust #37 /rust/ Аноним 12/03/25 Срд 21:42:01 3407697 1
1741804914997.png 14Кб, 720x405
720x405
Netflixlielearn[...].jpg 79Кб, 700x620
700x620
17417168728690.mp4 1875Кб, 1280x720, 00:00:48
1280x720
dontpanic.jpg 53Кб, 512x512
512x512
Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению, заимствованию и другим концепциям языка Rust!
Предыдущий тред : >>3371041 (OP)

Rustblazing fast язык для системного программирования без segfault'ов и с гарантиями потокобезопасности. Он позволяет писать безопасный и эффективный код, который легко поддерживать и масштабировать.

Ссылка на официальный сайт: https://www.rust-lang.org/

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

НОВИНКА: Rust для Windows: https://metanit.com/rust/windows/

IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
Игры на Rust: https://arewegameyet.rs/
Что еще есть для Rust?
- Посмотри сам: https://wiki.mozilla.org/Areweyet

Основная литература:
Rust Book (версия на русском языке): https://doc.rust-lang.ru/book/
Rust Book: https://doc.rust-lang.org/book/
Rustlings (упражнения для привыкания к Rust): https://github.com/rust-lang/rustlings
Rust by Example: https://doc.rust-lang.org/rust-by-example/
The Rustonomicon (для продвинутых): https://doc.rust-lang.org/nomicon/
Programming Rust: https://www.oreilly.com/library/view/programming-rust/9781491927274/
100 упражнений по Rust: https://rust-exercises.com/100-exercises/

Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба (старому ОПу). Здесь ты сможешь найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41
Аноним 12/03/25 Срд 22:59:56 3407728 2
Шизы, можно срать! Но лучше C++ код сюда посетить, конечно.
Аноним # OP 12/03/25 Срд 23:04:57 3407732 3
Аноним 12/03/25 Срд 23:12:53 3407736 4
>>3407728
Шизы не умеют код писать
Аноним 12/03/25 Срд 23:19:04 3407740 5
>>3407736
Поможем, расскажем.
Аноним 13/03/25 Чтв 14:28:55 3408035 6
ПутьСильного.png 69Кб, 870x470
870x470
Аноним 13/03/25 Чтв 14:56:53 3408056 7
Переписал на раст.
> ряяяя MEMORY SAFE
Аноним 13/03/25 Чтв 15:00:04 3408060 8
>>3408035
Мы вас растодебилов уже обоссали в пхп треде, больше не суйтесь к нам со своими картиночками, опущи.
16/03/25 Вск 21:25:59 3409860 9
17085349231350.mp4 6267Кб, 1080x1558, 00:01:27
1080x1558
Ну как, нашли работу то на своем чудо-языке?)
Аноним 17/03/25 Пнд 15:53:38 3410384 10
>>3409860
Нет, написал игровой движок. Переписываю модули ядра сейчас на расте.
Аноним 17/03/25 Пнд 21:53:09 3410625 11
>>3410384
Как наиграешься, не забудь на плюсы обратно переписать
Аноним 18/03/25 Втр 14:00:37 3410909 12
Кстати про работу: сделал тестовое, сказали что нравится и спросили желаемую зепку. Назвал 1800. Сказали мы вам перезвоним. Я охуел просить столько на джуновскую вакуху не имея почти никакого коммерческого опыта на няшном растике? Вакансия была на позицию бэкенд-макаки.
Аноним 18/03/25 Втр 19:00:28 3411123 13
>>3410909
Смотря в какая компания.
Я так понимаю из гейропы, поэтому не очень то и жирно
Если в РФ нашел ваку, то очень может быть
Аноним 18/03/25 Втр 19:27:27 3411134 14
>>3410909
>Назвал 1800
Спалился как вкатун. На ржавом зепки от $5к начинаются.
Аноним 19/03/25 Срд 13:00:38 3411558 15
>>3407697 (OP)
> Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению
Блять, каким обещаниям? Надо было "контрактам" написать. Ладно, в следующий раз.
Аноним 20/03/25 Чтв 18:54:22 3412526 16
image.png 481Кб, 1280x720
1280x720
dog, cat, triangle, circle и пр. уже не актуальны, теперь у нас песни
Тейлор Свифт
Аноним 21/03/25 Птн 10:30:19 3412845 17
20a37a5170be547[...].jpg 86Кб, 736x748
736x748
Как же долго раст компилируется, это пизда. Со всеми опциями оптимизации можно я даже не знаю... сходить сготовить еду например. Реально ооооооооооооочень долго. Ждать когда он это всё высрет. Как будто код везут на слепых лошадях из Воркуты в Москву.
Аноним 21/03/25 Птн 10:54:03 3412870 18
>>3412845
>компилируется
В 2020 линковщик оче долго работал, даже была эксперементальная замена ему, продолжаю охуевать от растодебилов, прошла практически половина десятилетия, до сих пор ничего не изменилось.
Аноним 21/03/25 Птн 11:06:17 3412884 19
>>3412845
У меня есть личный проект, где на основе пользовательской конфигурации, нужно было генерировать персональный бек и клиент, все это дело собиралось в джокере. Условно говоря, пользователь выбирает нужную функциональность, генерируется конфиг, на основе конфига билдятся бек и клиент, все это разворачивается в облаке.
Так вот первым кандидатом для меня был раст, учитывая, что бек в моем случае по сути являлся обычным недопропрокси. Но из-за петушиной по длительности сборки сразу пришлось отказаться от этой затеи. По итогу выбрал Говно, которое билдится за считанные секунды и не приносит такой попаболи.
Аноним 21/03/25 Птн 11:18:35 3412896 20
>>3412884
>вебговно
>кандидатом для меня был раст
Ебать даун.
>По итогу выбрал говно
Сразу почему не выбрал, экспертизы не хватило, даун?
Аноним 21/03/25 Птн 11:29:53 3412912 21
>>3412896
Причина тряски?

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

>Сразу почему не выбрал, экспертизы не хватило
Потому что язык без ГЦ и милипиздрическими бинарниками лучше языка с ГЦ, рантаймом и жирным бинарем? У меня почти 3 контейнера с растоверсией недопрокси весили столько же как один гошный.
Аноним 21/03/25 Птн 11:45:25 3412927 22
>>3412845
джаст бай нью писи дуууд
Аноним 21/03/25 Птн 11:58:54 3412937 23
>>3412912
>вебговна на расте написано больше, чем для системной разработки и байтоебства
потому что вебговно намного большая сфера чем байтоёбство

на плюсах и на си было бы точно также, если бы на них хоть кто то был бы готов веб писать
Аноним 21/03/25 Птн 22:27:31 3413387 24
>>3412884
Да он бля будет полчаса-час компилиться. У меня в облаке 4 cpu + 16 gb ram одна сборка идёт около часа (!). В принципе наверно ты правильно сделал. Я последовал совету rust guide'а, они типа пишут, мол просто добавьте workspace и всё будет чотка. Ну я добавил. Он теперь в два раза дольше компилит с воркспейсами лол. И вообще, я заметил - он иногда дублирует зависимости. Допустим берёт tokio-rustls компилирует v0.24.1 версии и v0.26.2. Дальше он компилирует tower версии v0.4.13 и версии v0.5.2. Может поэтому долго, я пока ещё этому кунгфу с зависимостями не научился.

>>3412927
Раньше я этой хуйни не замечал. То есть было в районе 100 зависимостей и он собирался быстро. Теперь по мере роста проекта, чтобы только один бинарник скомпилить - их уже штук 500. Ну и плюс, он не может больше одного ядра использовать из-за настроек оптимизации. Такие дела.
Аноним 22/03/25 Суб 03:41:42 3413470 25
images.png 6Кб, 279x181
279x181
>>3413387
Будь проклят тот день, когда ты сел за бараку этого пылесоса.
Аноним 22/03/25 Суб 11:39:59 3413601 26
>>3412937
>потому что вебговно намного большая сфера чем байтоёбство
Только один вопрос, зачем так мучить жопу?
Алсо, где тред арийского языка Zig?
Аноним 22/03/25 Суб 14:08:41 3413654 27
>>3413601
> зачем так мучить жопу?
пока из мучений только время компиляции, что далека не такая большая проблема

к примеру посмотри как веб на плюсах\си выглядит, вот там уже реальный треш начинается с userver
Аноним 22/03/25 Суб 15:22:29 3413681 28
1.png 106Кб, 3000x2000
3000x2000
>>3413654
Напишите такой же аналоговнет на расте
Замечание:
1) строка 1 - определяем рекурсивно тип
2) строка 2 - содаем циклическую структуру (сама на себя ссылается)
3) строка 8 - рекурсивно печатаем содержимое поля a
Аноним 22/03/25 Суб 15:24:02 3413683 29
1.png 82Кб, 1594x408
1594x408
>>3413681
сори забыл обрезать
Аноним 22/03/25 Суб 15:35:50 3413689 30
Заодно ответе на вопрос. Зачем вар боров чекер если вы не линукс хакеры? Чем вам сборщик мусора мешает в голенге? В голенге выразительности нет? Возьмите окамел. Синтаксис - руст на максималках, а ебли с боровчекерами и тамлайфами нет
Аноним 22/03/25 Суб 15:48:58 3413694 31
>>3413689
Байтоебля - это весело.
Аноним 22/03/25 Суб 16:08:37 3413706 32
>>3413681
Во первых зачем мне это делать, во вторых что ты вобще скинул, в третих какое отношение к вебу
> определяем рекурсивно тип
это что такое и какого она размера?
Аноним 22/03/25 Суб 16:18:54 3413711 33
>>3413706
>какого она размера?
А тебе зачем? Для микроконтроллеров пишешь? Вопрос был для вебмакак, которые тут пишут покер солверы всякие
Аноним 22/03/25 Суб 16:20:11 3413712 34
>>3413711
>А тебе зачем?
потому что структура не может хранить в себе себя же
Аноним 22/03/25 Суб 16:22:59 3413714 35
>>3413712
Даже в сишке можно через указатели создать циклическую ссылку. Но в сишке легко наебать самого себя, а в окамлах нет.
Аноним 22/03/25 Суб 16:24:16 3413715 36
>>3413714
да, но указатель это не структура, мне самому гадать что у тебя option в твоем яп делает?
Аноним 22/03/25 Суб 16:26:32 3413716 37
>>3413715
Тоже что в расте Option<x>
Аноним 22/03/25 Суб 16:28:55 3413717 38
>>3413716
размер Option<x> равен размеру x + 4 байта
Если ты делаешь struct x { inner Option<x>}, то она имеет бесконечный размер sizeof x = sizeof inner = sizeof x + 4
Аноним 22/03/25 Суб 16:33:04 3413721 39
>>3413717
1) Так я попросил аналоговнет на расте потому. Свой пример я скомпилировал и запустил. Он работает из-за TCO а не вываливается в переполнение стека
2) Конкретно окамел я сам только штудирую
Аноним 22/03/25 Суб 16:51:52 3413729 40
Аноним 22/03/25 Суб 17:05:34 3413731 41
>>3413729
Не тоже самое. У тебя нет циклических ссылок, а только рекурсивно определеная структура. Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать. Одна из причин называлась.
PS я не расто хейтер если чо
Аноним 22/03/25 Суб 17:22:06 3413739 42
>>3413731
> циклических ссылок, а только рекурсивно определеная структура
не вижу разницы а этих определениях
Аноним 22/03/25 Суб 17:28:26 3413743 43
>>3413739
Ну как не видишь?
У тебя печататет
Hello world
2
3
А у меня печатает бесконечную портяку из 1 2 3
В сишке ты тоже можешь создать три указателя на три структуры и зациклить их в круговую. Это не займет кучу памяти
Аноним 22/03/25 Суб 17:55:01 3413758 44
>>3413683
Чому Ocaml, а не хачкель?
Аноним 22/03/25 Суб 18:01:46 3413768 45
>>3413758
Потому что хачкель академический язык, а в окамле есть все, хоть и местами устаревшее. Монады через монады ебать тоже не комфортно.
Аноним 22/03/25 Суб 18:06:51 3413772 46
>>3413768
>Потому что хачкель академический язык, а в окамле есть все, хоть и местами устаревшее.
Ну как будто бы хачкель более распространен, тот же pandoc, например, или grease. А ocaml только в контексте jane steet вспоминается.
Аноним 22/03/25 Суб 18:13:56 3413777 47
>>3413743
ансейфа цепляешь к последней ноде голову и наслаждаешься
если впадлу ансейф - Rc

ни функция ни структура от этого не поменяется
Аноним 22/03/25 Суб 18:49:57 3413805 48
>>3413689
Никаких сложностей с борров чекером нет. Кто память руками чистил борров чекеров не боится. Проблемы только у залетевших питонистов/жсеров и прочих, которые только в расте про указатели узнали.
Аноним 22/03/25 Суб 18:55:26 3413809 49
Аноним 22/03/25 Суб 20:33:59 3413877 50
>>3413601
>Алсо, где тред арийского языка Zig?
Утонул, школьники побаловались и хватит
Аноним 22/03/25 Суб 23:33:45 3413959 51
изображение.png 268Кб, 597x556
597x556
Аноним 22/03/25 Суб 23:53:57 3413968 52
images.jpg 3Кб, 300x168
300x168
Аноним 23/03/25 Вск 10:52:52 3414083 53
>>3413654
То есть то, что программы надо писать с буквально единственным явным владельцем у любого объекта - это не большая проблема? Или ты любой объект всегда клонируешь при передаче?
>посмотри как веб на плюсах\си выглядит
Сорян, но я не дебил, чтобы на СИСТЕМНОМ языке писать веб дерьмо.
Аноним 23/03/25 Вск 10:54:23 3414085 54
>>3413694
Мы уже выяснили, что раст для веб дерьма, а не байтослесарии.
Аноним 23/03/25 Вск 11:19:29 3414100 55
>>3414083
>единственным явным владельцем у любого объекта
сильно удивишься если узнаешь что в расте это не обязательное условие?
раст бук пролистай на досуге, может хоть позориться в расто треде не будешь больше
Аноним 23/03/25 Вск 11:54:01 3414133 56
>>3414100
>позориться
Позоришься тут только ты, напиши мне линкед лист, без ряя ансейфа.
Аноним 23/03/25 Вск 12:18:01 3414158 57
Аноним 23/03/25 Вск 12:25:34 3414162 58
>>3414158
>почитаешь сам
Я понял, что ты нихуя не шаришь.
Аноним 23/03/25 Вск 12:26:41 3414163 59
>>3414162
> не осилил раст бук
> не осилил прочитать ответ на свой вопрос
что ты в расто треде вобще забыл?
Аноним 23/03/25 Вск 12:28:05 3414164 60
>>3414163
>пук
Челик, ты даже линкед лист не осилил написать.
Аноним 23/03/25 Вск 14:46:05 3414238 61
>>3414164
Потрогай траву, чел.
Аноним 23/03/25 Вск 16:29:34 3414332 62
Аноним 23/03/25 Вск 21:51:28 3414585 63
>>3414164
>линкед лист не осилил написать
Покажи как надо, научи нас, гуру
Аноним 23/03/25 Вск 22:03:11 3414597 64
Аноним 24/03/25 Пнд 10:03:59 3414789 65
Аноним 24/03/25 Пнд 10:22:10 3414807 66
нахуй вы этого толстяка кормите

если анон не подает признаки того что хотя бы прочитал раст бук, то о чем с ним вобще говорить в расто треде?
Аноним 24/03/25 Пнд 11:14:06 3414865 67
Аноним 24/03/25 Пнд 11:16:23 3414867 68
>>3414789
>Показываю.
А ты сам хоть сможешь прочитать? Я думал ты свой код покажешь, но как обычно..
Аноним 24/03/25 Пнд 11:23:46 3414873 69
>>3414865
Ну списки вот такие >>3414597 точно нахуй не нужны, каким же дебичем надо быть, чтобы так писать.
Аноним 24/03/25 Пнд 11:40:24 3414894 70
>>3414873
Никакие списки, кроме тех, которые юзаются во всякой лок-фри хуйне, нахуй не нужны. В этом плане этот список ничем не хуже любого другого из стандартных либ.
Аноним 25/03/25 Втр 02:03:51 3415438 71
Раст на микронтролерах норм тема? Хочу вкатится
Аноним 25/03/25 Втр 08:52:56 3415479 72
>>3415438
там лучше с си начинать
Аноним 25/03/25 Втр 17:16:49 3415870 73
1701215002716.jpeg 573Кб, 1290x1967
1290x1967
Аноним 25/03/25 Втр 17:34:38 3415883 74
>>3415870
Это бы сработало, если бы у системщики не были стабильно на параше в плане зарплат по сравнению с примерно со всеми остальными.
Аноним 25/03/25 Втр 18:07:10 3415915 75
Аноним 25/03/25 Втр 18:19:23 3415934 76
>>3415915
Трудно представить ебало программиста не знающего си
Аноним 25/03/25 Втр 20:16:34 3416022 77
>>3415870
> сеньоры компетятся с выпускниками на равных
Это не так работает, совсем не так...
Аноним 26/03/25 Срд 02:51:51 3416193 78
>>3415915
Да каво ты блять спрашиваешь, он сам нихуя не знает. Он даже не пытается как-то аргументировать свой ответ. Rust для микроконтроллеров норм! Бери embassy и делай че хочешь. В смысле, что за вопрос такой "норм или не норм". Ты думаешь что проблема всегда в плохих языках, а не в кривых руках из жопы которые нихуя не умеют программировать?
Аноним 26/03/25 Срд 09:09:04 3416260 79
> In Rust, you don't have classes in the same way as languages like Java or Kotlin.

Хахахахахахахахахахаха. Без комментариев.
Аноним 26/03/25 Срд 09:13:34 3416266 80
>>3415915
>С раста не стоит?
С паскаля надо начинать.
Аноним 26/03/25 Срд 09:14:46 3416270 81
>>3416193
Прошивки для батлплагов погроммировать на расте, да.
Аноним 26/03/25 Срд 10:20:49 3416309 82
> Rust does not support function overloading, which means you cannot have multiple functions with the same name that differ only in their parameter types or count.

Это какой-то C уровень.
Аноним 26/03/25 Срд 10:44:48 3416339 83
Аноним 26/03/25 Срд 10:52:52 3416352 84
>>3416339
Нет, в Цэ с этим всё верно сделано, как и в пидорасте.
Аноним 26/03/25 Срд 10:55:51 3416360 85
Аноним 26/03/25 Срд 10:59:30 3416363 86
>>3416309
Трейты заменяют 90% юзкейсов, билдеры еще 9%. В одном проценте написать лишнее слово руки не отвалятся.
Аноним 27/03/25 Чтв 15:38:05 3417321 87
>>3413731
>Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать

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

>Язык Go обеспечивает хорошую производительность, развивается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, имеет встроенные средства защиты от проблем при работе с памятью. Ценой безопасной работы с памятью является сборщик мусора, который может приводить к появлению задержек во время работы, но для компилятора появление таких задержек не имеет значения.

>В качестве варианта рассматривались и другие языки, такие как Rust, но они слишком сильно концептуально отличаются от TypeScript и при их использовании портирование превратилось бы в разработку компилятора с нуля, при которой было бы трудно добиться полной совместимости со старым компилятором, пришлось бы заново решать уже решённые в старой кодовой базе проблемы и проект потребовал бы значительно больше времени и ресурсов.
Аноним 27/03/25 Чтв 15:47:54 3417327 88
>>3417321
Читай комент от Хейлсберга

The TypeScript compiler's move to Go was influenced by specific technical requirements, such as the need for structural compatibility with the existing JavaScript-based codebase, ease of memory management, and the ability to handle complex graph processing efficiently. After evaluating numerous languages and making multiple prototypes — including in C# — Go emerged as the optimal choice, providing excellent ergonomics for tree traversal, ease of memory allocation, and a code structure that closely mirrors the existing compiler, enabling easier maintenance and compatibility.
Аноним 27/03/25 Чтв 15:51:25 3417329 89
Аноним 27/03/25 Чтв 16:36:02 3417363 90
>>3417327
Да ёб вашу ж мать, понятно же, что на расте такое начинать нахуй не уперлось никому.
Аноним 27/03/25 Чтв 17:49:08 3417416 91
>>3417329
снимаю шляпу за ссылку на источник
но
>>3417327
>such as the need for structural compatibility with the existing JavaScript-based codebase
вот это в первую очередь
вряд ли там 90% кода - обход деревьев
но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли
так что аргумент "сложна" считаю несостоятельным, а выбрали больше потому... переведу на нормальный с официально гринтекст: "ну го больше внешне на джс похож, чем другие, а компилятор уже написан на джс - кодерки будут брыкаться, а разогнать их не могу, они же и писал тс компилятор, чувствуют власть, новое учить не будут, поэтому го. Что то хуйня на сборщике мусора, что эта - горбоатого только могила исправит. Даже шарпам пытались научить, что было бы более логично, но макаки взубнтовались, им сложна, очень далеко от их джс-сиськи"
Аноним 27/03/25 Чтв 17:56:23 3417421 92
>>3417363
почему ты так считаешь, анон?
почему есть проекты, которые начаты на rust? почему им уперлось? такое - это какое?
разверни мысль, хотелось бы услышать не просто мнение, а обоснование
Аноним 27/03/25 Чтв 19:14:25 3417520 93
>>3413681
>>3413683
А что это за язык такой?
Выглядит неплохо, но есть доеб: непрозрачно
Поясню: очевидно, что тут работает через ссылки, но в коде этому нет отражения. Напомнило шарпы: экземпляр класса выделяется на куче, возвращается ссылка, работаешь дальше только со ссылкой. Но это приводит к проблемам, ведь не все объекты - экземпляры класса. Так и тут: y - это ссылка? Любой объект - это ссылка? Объекты хранятся на стеке или на куче? Если на куче, то язык к гц? Если на стеке, то нахуя создавать каждому объекту ссылку?
Понимаю, что я просто не знаю язык, поэтому много вопросов, но в любом языке непрозрачность вредит. Я тут не вижу где указывается ссылка/указатель

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

Ну и кста, если тревожник и циклическая структура используется не в хот-пути, то берем за основу вот это >>3413729, добавляем RefCell, получаем циклическую структуру на расте без unsafe

https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=91b432f9cb912aee761cb8177e115ef4
Аноним 27/03/25 Чтв 19:23:50 3417533 94
>>3417520
>>3413683

быстро дополню
да, согласен, unsafe-код получился больше, чем у тебя: длиннее, по логике лишняя сущность (refcell), чуточку сложнее
но
1) никто не запрещает юзать unsafe, и это в любом случае будет НЕ хуже, чем у тебя
2) мы взяли пример, где у раста слабое место. Как я говорил, идеального языка не существует, что-то уйдет в минус, но у раста прям хороший трейд-офф: вместо гц и потери безопасности в узких местах надо ввести refcell (что чуть-чуть усложнит код и введет хоть и незаметный, но оверхед), либо все же потерять гарантии безопасности, но лишь в этих самых узких местах, которые отполируют в либах взрослые дяди и отдебажат тысячи ручек
Аноним 27/03/25 Чтв 21:06:01 3417618 95
Какой
>>3417533
> по логике лишняя сущность (refcell)
У раста есть внутренняя логика (заимствований), и RefCell - её реализация. Нахуя так обобщать?
Аноним 27/03/25 Чтв 21:13:39 3417622 96
>>3417618
Плохо выразился
Я к тому, что по абстрактной логике - никакого refcell быть не должно
Вот типа пишешь на псевдокоде - ты не будешь писать refcell
А вот когда уже кодишь на расте, ты должен учитывать, как ты называешь, внутреннюю логику и ее реализацию
Поэтому да, чисто логически: refcell - лишняя сущность, но необходимая в языке с аффинными типами, которые дарят свои плюшки
Аноним 27/03/25 Чтв 21:38:05 3417635 97
>>3417618
ну и немного подушнить
раст использует аффинные типы (те, которые следуют move семантике), их правильное применение гарантируется борроу чекером. Видимо, ты это имеешь в виду, когда говоришь "у раста есть внутренняя логика". Но RefCell - это не реализация этой внутренней логики. Это даже не часть языка. Это просто код, контейнер, который немного ослабляет ограничения борроу чекера для элемента этого контейнера во время компиляции и переносит эти проверки на время выполнения путем использования unsafe кода внутри.
Аноним 27/03/25 Чтв 21:51:19 3417638 98
>>3417635
> переносит эти проверки на время выполнения путем использования unsafe кода внутри
Ну, так.
Аноним 28/03/25 Птн 00:33:26 3417773 99
>педеRUST
Аноним 28/03/25 Птн 10:17:35 3417907 100
>>3417421
Им надо не через 5 или 10 лет выдать конпелятор, а через год. Раст для этого не подходит очевидно.
Аноним 28/03/25 Птн 10:18:55 3417908 101
>>3417416
>но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли
Лол, так может сразу на сишке написать? Или лучше на зиге!
Аноним 28/03/25 Птн 10:33:40 3417912 102
>>3417635
Правильная реализация линкед листа на педерасте - это ненаписанная реализация линкед листа, смешно видеть эти все рефцелы и прочий костыльный мусор.
Аноним 28/03/25 Птн 10:35:28 3417913 103
>>3417908
Мир не ограничивается laba1 и laba2.
Аноним 28/03/25 Птн 10:38:13 3417915 104
>>3417913
У тебя буквально весь софт на си написан, а другая маленькая часть на плюсодерьме. Ты ебобо?
Аноним 28/03/25 Птн 10:43:01 3417920 105
>>3417915
Этот софт обычно делает что-то кроме создания списков, в отличие от laba1.
Аноним 28/03/25 Птн 11:18:17 3417937 106
>>3417920
Этот педераст перегрелся, несите нового?
Аноним 28/03/25 Птн 11:24:07 3417938 107
>>3417908
если тебе лучше можешь даже и на ассемблере написать
Аноним 28/03/25 Птн 14:03:01 3418080 108
>>3417907
если пытаться переобучать макак с джс - согласен
но так уж получилось, что Хейлсберг в тупике: очевидно, что заменить команду он не может, ведь они писали компилятор и знаю нюансы и тонкости, а переобучать макак на что-то далекое от джс - макаки устроят бунт
но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке

>>3417908
тут уже фак для таких как ты пытались создать
даже мои посты выше давали ответ, но растхейтеры действуют по своей методичке
я не хочу второй раз объяснять, просто перечитай хотя бы это
>>3417533
>1) никто не запрещает юзать unsafe, и это в любом случае будет НЕ хуже, чем у тебя
>2) мы взяли пример, где у раста слабое место. Как я говорил, идеального языка не существует, что-то уйдет в минус, но у раста прям хороший трейд-офф: вместо гц и потери безопасности в узких местах надо ввести refcell (что чуть-чуть усложнит код и введет хоть и незаметный, но оверхед), либо все же потерять гарантии безопасности, но лишь в этих самых узких местах, которые отполируют в либах взрослые дяди и отдебажат тысячи ручек

Да просто пиздец, ты сам выделил в гринтекст мою цитату "обернуть это в safe api и юзать", но все равно будто не видишь этого. Ты не смог разобрать ОДНО предложение и понять его смысл. Давай все же натолкну: unsafe 0,1% кода != unsafe 100% кода. Или это тоже надо как-то разъяснять?

Когда усвоишь информацию выше - можешь мне написать
Если я увижу, что ты не усвоил информацию или усвоил, но все равно действуешь по своей методичке - я не хочу тратить на тебя время

>>3417912
Еще один с методичкой
Реализуй линкед лист как хочешь: хочешь с рефцеллом, хочешь без, в зависимости от твоих требований

Тебе тоже относится то, что я писал анону выше в этом посте. Тоже проспись, тоже почисти зубки, поешь полезную и сбалансированную еду, сделай зарядку, приведи голову в порядок, чтоб у тебя была возможность усвоить то, что я написал (вроде ничего сложного не писал же), обработать эту информацию, а после этого мы сможем конструктивно поговорить. А то как с нпс общаюсь, одни и те же предложения, одни и те же тейки. Приводишь контраргументы, ждешь какого-то развития событий, конструктивного обсуждения, но происходут перегруз, и... "на расте ты не сделаешь циклическую структуру", "на расте невозможно реализовать линкед лист правильно". День сурка какой-то
Аноним 29/03/25 Суб 10:07:53 3418659 109
>>3418080
>но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке
Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов.
>растхейтеры
Мимо, педераст, я хейчу вас, растомакак, язык норм для своих задач.
Аноним 29/03/25 Суб 10:31:10 3418670 110
>>3418659
>Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов.
таблетки
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов