М.Двач / Программирование

Rust #37 /rust/ 12 мар, 21:42 3407697 В конец треда | Веб

14 Кб, 720x40579 Кб, 700x6201,8 Мб, mp4,
1280x720, 0:4853 Кб, 512x512

Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению, заимствованию и другим концепциям языка Rust!
Предыдущий тред : >>3371041 (OP)

Rust — blazing 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

Ответы1155814332

2 12 мар, 22:59 2 3407728

Шизы, можно срать! Но лучше C++ код сюда посетить, конечно.

Ответы0773207736

# OP 3 12 мар, 23:04 3 3407732

>>3407728
*постить

4 12 мар, 23:12 4 3407736

>>3407728
Шизы не умеют код писать

Ответы07740

5 12 мар, 23:19 5 3407740

>>3407736
Поможем, расскажем.

69 Кб, 870x470
6 13 мар, 14:28 6 3408035

Ответы08060

7 13 мар, 14:56 7 3408056

Переписал на раст.
> ряяяя MEMORY SAFE

8 13 мар, 15:00 8 3408060

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

6,1 Мб, mp4,
1080x1558, 1:27
sage 9 16 мар, 21:25 9 3409860

Ну как, нашли работу то на своем чудо-языке?)

Ответы10384

10 17 мар, 15:53 10 3410384

>>3409860
Нет, написал игровой движок. Переписываю модули ядра сейчас на расте.

Ответы10625

11 17 мар, 21:53 11 3410625

>>3410384
Как наиграешься, не забудь на плюсы обратно переписать

12 18 мар, 14:00 12 3410909

Кстати про работу: сделал тестовое, сказали что нравится и спросили желаемую зепку. Назвал 1800. Сказали мы вам перезвоним. Я охуел просить столько на джуновскую вакуху не имея почти никакого коммерческого опыта на няшном растике? Вакансия была на позицию бэкенд-макаки.

Ответы1112311134

13 18 мар, 19:00 13 3411123

>>3410909
Смотря в какая компания.
Я так понимаю из гейропы, поэтому не очень то и жирно
Если в РФ нашел ваку, то очень может быть

14 18 мар, 19:27 14 3411134

>>3410909
>Назвал 1800
Спалился как вкатун. На ржавом зепки от $5к начинаются.

15 19 мар, 13:00 15 3411558

>>3407697 (OP)
> Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению
Блять, каким обещаниям? Надо было "контрактам" написать. Ладно, в следующий раз.

481 Кб, 1280x720
16 20 мар, 18:54 16 3412526

dog, cat, triangle, circle и пр. уже не актуальны, теперь у нас песни
Тейлор Свифт

86 Кб, 736x748
17 21 мар, 10:30 17 3412845

Как же долго раст компилируется, это пизда. Со всеми опциями оптимизации можно я даже не знаю... сходить сготовить еду например. Реально ооооооооооооочень долго. Ждать когда он это всё высрет. Как будто код везут на слепых лошадях из Воркуты в Москву.

Ответы128701288412927

18 21 мар, 10:54 18 3412870

>>3412845
>компилируется
В 2020 линковщик оче долго работал, даже была эксперементальная замена ему, продолжаю охуевать от растодебилов, прошла практически половина десятилетия, до сих пор ничего не изменилось.

19 21 мар, 11:06 19 3412884

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

Ответы1289613387

20 21 мар, 11:18 20 3412896

>>3412884
>вебговно
>кандидатом для меня был раст
Ебать даун.
>По итогу выбрал говно
Сразу почему не выбрал, экспертизы не хватило, даун?

Ответы12912

21 21 мар, 11:29 21 3412912

>>3412896
Причина тряски?

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

>Сразу почему не выбрал, экспертизы не хватило
Потому что язык без ГЦ и милипиздрическими бинарниками лучше языка с ГЦ, рантаймом и жирным бинарем? У меня почти 3 контейнера с растоверсией недопрокси весили столько же как один гошный.

Ответы12937

22 21 мар, 11:45 22 3412927

>>3412845
джаст бай нью писи дуууд

Ответы13387

23 21 мар, 11:58 23 3412937

>>3412912
>вебговна на расте написано больше, чем для системной разработки и байтоебства
потому что вебговно намного большая сфера чем байтоёбство

на плюсах и на си было бы точно также, если бы на них хоть кто то был бы готов веб писать

Ответы13601

24 21 мар, 22:27 24 3413387

>>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. Ну и плюс, он не может больше одного ядра использовать из-за настроек оптимизации. Такие дела.

Ответы13470

6 Кб, 279x181
25 22 мар, 03:41 25 3413470

>>3413387
Будь проклят тот день, когда ты сел за бараку этого пылесоса.

26 22 мар, 11:39 26 3413601

>>3412937
>потому что вебговно намного большая сфера чем байтоёбство
Только один вопрос, зачем так мучить жопу?
Алсо, где тред арийского языка Zig?

Ответы1365413877

27 22 мар, 14:08 27 3413654

>>3413601
> зачем так мучить жопу?
пока из мучений только время компиляции, что далека не такая большая проблема

к примеру посмотри как веб на плюсах\си выглядит, вот там уже реальный треш начинается с userver

Ответы1368114083

106 Кб, 3000x2000
28 22 мар, 15:22 28 3413681

>>3413654
Напишите такой же аналоговнет на расте
Замечание:
1) строка 1 - определяем рекурсивно тип
2) строка 2 - содаем циклическую структуру (сама на себя ссылается)
3) строка 8 - рекурсивно печатаем содержимое поля a

Ответы136831370617520

82 Кб, 1594x408
29 22 мар, 15:24 29 3413683

>>3413681
сори забыл обрезать

Ответы137581752017533

30 22 мар, 15:35 30 3413689

Заодно ответе на вопрос. Зачем вар боров чекер если вы не линукс хакеры? Чем вам сборщик мусора мешает в голенге? В голенге выразительности нет? Возьмите окамел. Синтаксис - руст на максималках, а ебли с боровчекерами и тамлайфами нет

Ответы1369413805

31 22 мар, 15:48 31 3413694

>>3413689
Байтоебля - это весело.

Ответы14085

32 22 мар, 16:08 32 3413706

>>3413681
Во первых зачем мне это делать, во вторых что ты вобще скинул, в третих какое отношение к вебу
> определяем рекурсивно тип
это что такое и какого она размера?

Ответы13711

33 22 мар, 16:18 33 3413711

>>3413706
>какого она размера?
А тебе зачем? Для микроконтроллеров пишешь? Вопрос был для вебмакак, которые тут пишут покер солверы всякие

Ответы13712

34 22 мар, 16:20 34 3413712

>>3413711
>А тебе зачем?
потому что структура не может хранить в себе себя же

Ответы13714

35 22 мар, 16:22 35 3413714

>>3413712
Даже в сишке можно через указатели создать циклическую ссылку. Но в сишке легко наебать самого себя, а в окамлах нет.

Ответы13715

36 22 мар, 16:24 36 3413715

>>3413714
да, но указатель это не структура, мне самому гадать что у тебя option в твоем яп делает?

Ответы13716

37 22 мар, 16:26 37 3413716

>>3413715
Тоже что в расте Option<x>

Ответы13717

38 22 мар, 16:28 38 3413717

>>3413716
размер Option<x> равен размеру x + 4 байта
Если ты делаешь struct x { inner Option<x>}, то она имеет бесконечный размер sizeof x = sizeof inner = sizeof x + 4

Ответы13721

39 22 мар, 16:33 39 3413721

>>3413717
1) Так я попросил аналоговнет на расте потому. Свой пример я скомпилировал и запустил. Он работает из-за TCO а не вываливается в переполнение стека
2) Конкретно окамел я сам только штудирую

Ответы13729

40 22 мар, 16:51 40 3413729

>>3413721
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=5cebadc872b7370722256f708e78274d

самая тупая реализация

Ответы1373117520

41 22 мар, 17:05 41 3413731

>>3413729
Не тоже самое. У тебя нет циклических ссылок, а только рекурсивно определеная структура. Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать. Одна из причин называлась.
PS я не расто хейтер если чо

Ответы1373917321

42 22 мар, 17:22 42 3413739

>>3413731
> циклических ссылок, а только рекурсивно определеная структура
не вижу разницы а этих определениях

Ответы13743

43 22 мар, 17:28 43 3413743

>>3413739
Ну как не видишь?
У тебя печататет
Hello world
2
3
А у меня печатает бесконечную портяку из 1 2 3
В сишке ты тоже можешь создать три указателя на три структуры и зациклить их в круговую. Это не займет кучу памяти

Ответы13777

44 22 мар, 17:55 44 3413758

>>3413683
Чому Ocaml, а не хачкель?

Ответы13768

45 22 мар, 18:01 45 3413768

>>3413758
Потому что хачкель академический язык, а в окамле есть все, хоть и местами устаревшее. Монады через монады ебать тоже не комфортно.

Ответы13772

46 22 мар, 18:06 46 3413772

>>3413768
>Потому что хачкель академический язык, а в окамле есть все, хоть и местами устаревшее.
Ну как будто бы хачкель более распространен, тот же pandoc, например, или grease. А ocaml только в контексте jane steet вспоминается.

47 22 мар, 18:13 47 3413777

>>3413743
ансейфа цепляешь к последней ноде голову и наслаждаешься
если впадлу ансейф - Rc

ни функция ни структура от этого не поменяется

48 22 мар, 18:49 48 3413805

>>3413689
Никаких сложностей с борров чекером нет. Кто память руками чистил борров чекеров не боится. Проблемы только у залетевших питонистов/жсеров и прочих, которые только в расте про указатели узнали.

Ответы13809

49 22 мар, 18:55 49 3413809

>>3413805
Угольников.webm

Ответы13959

50 22 мар, 20:33 50 3413877

>>3413601
>Алсо, где тред арийского языка Zig?
Утонул, школьники побаловались и хватит

268 Кб, 597x556
51 22 мар, 23:33 51 3413959

>>3413809
>Угольников
Это он?

Ответы13968

3 Кб, 300x168
52 22 мар, 23:53 52 3413968

>>3413959

53 23 мар, 10:52 53 3414083

>>3413654
То есть то, что программы надо писать с буквально единственным явным владельцем у любого объекта - это не большая проблема? Или ты любой объект всегда клонируешь при передаче?
>посмотри как веб на плюсах\си выглядит
Сорян, но я не дебил, чтобы на СИСТЕМНОМ языке писать веб дерьмо.

Ответы14100

54 23 мар, 10:54 54 3414085

>>3413694
Мы уже выяснили, что раст для веб дерьма, а не байтослесарии.

55 23 мар, 11:19 55 3414100

>>3414083
>единственным явным владельцем у любого объекта
сильно удивишься если узнаешь что в расте это не обязательное условие?
раст бук пролистай на досуге, может хоть позориться в расто треде не будешь больше

Ответы14133

56 23 мар, 11:54 56 3414133

>>3414100
>позориться
Позоришься тут только ты, напиши мне линкед лист, без ряя ансейфа.

Ответы1415814597

57 23 мар, 12:18 57 3414158

>>3414133
https://rust-unofficial.github.io/too-many-lists/

почитаешь сам, там и сейф и ансейф

Ответы14162

58 23 мар, 12:25 58 3414162

>>3414158
>почитаешь сам
Я понял, что ты нихуя не шаришь.

Ответы14163

59 23 мар, 12:26 59 3414163

>>3414162
> не осилил раст бук
> не осилил прочитать ответ на свой вопрос
что ты в расто треде вобще забыл?

Ответы14164

60 23 мар, 12:28 60 3414164

>>3414163
>пук
Челик, ты даже линкед лист не осилил написать.

Ответы1423814585

61 23 мар, 14:46 61 3414238

>>3414164
Потрогай траву, чел.

62 23 мар, 16:29 62 3414332

>>3407697 (OP)
Что это за человек на шебмке?

63 23 мар, 21:51 63 3414585

>>3414164
>линкед лист не осилил написать
Покажи как надо, научи нас, гуру

Ответы14789

64 23 мар, 22:03 64 3414597

>>3414133
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=4f0bb708094b4289629f5627b2283c30

Создать можно. Его потом обойти нельзя, но так IRL этого и так никто не делает.

Ответы1478914873

65 24 мар, 10:03 65 3414789

>>3414585
Показываю.
https://github.com/torvalds/linux/blob/master/include/linux/list.h
>>3414597
Это хуевый код.

Ответы14867

66 24 мар, 10:22 66 3414807

нахуй вы этого толстяка кормите

если анон не подает признаки того что хотя бы прочитал раст бук, то о чем с ним вобще говорить в расто треде?

67 24 мар, 11:14 67 3414865

https://isocpp.org/blog/2014/06/stroustrup-lists
труп страуса говорил, что лучше юзать не списки

Ответы14873

68 24 мар, 11:16 68 3414867

>>3414789
>Показываю.
А ты сам хоть сможешь прочитать? Я думал ты свой код покажешь, но как обычно..

69 24 мар, 11:23 69 3414873

>>3414865
Ну списки вот такие >>3414597 точно нахуй не нужны, каким же дебичем надо быть, чтобы так писать.

Ответы14894

70 24 мар, 11:40 70 3414894

>>3414873
Никакие списки, кроме тех, которые юзаются во всякой лок-фри хуйне, нахуй не нужны. В этом плане этот список ничем не хуже любого другого из стандартных либ.

71 25 мар, 02:03 71 3415438

Раст на микронтролерах норм тема? Хочу вкатится

Ответы15479

72 25 мар, 08:52 72 3415479

>>3415438
там лучше с си начинать

Ответы15915

573 Кб, 1290x1967
73 25 мар, 17:16 73 3415870

Ответы1588316022

74 25 мар, 17:34 74 3415883

>>3415870
Это бы сработало, если бы у системщики не были стабильно на параше в плане зарплат по сравнению с примерно со всеми остальными.

75 25 мар, 18:07 75 3415915

>>3415479
С раста не стоит?

Ответы159341619316266

76 25 мар, 18:19 76 3415934

>>3415915
Трудно представить ебало программиста не знающего си

77 25 мар, 20:16 77 3416022

>>3415870
> сеньоры компетятся с выпускниками на равных
Это не так работает, совсем не так...

78 26 мар, 02:51 78 3416193

>>3415915
Да каво ты блять спрашиваешь, он сам нихуя не знает. Он даже не пытается как-то аргументировать свой ответ. Rust для микроконтроллеров норм! Бери embassy и делай че хочешь. В смысле, что за вопрос такой "норм или не норм". Ты думаешь что проблема всегда в плохих языках, а не в кривых руках из жопы которые нихуя не умеют программировать?

Ответы16270

79 26 мар, 09:09 79 3416260

> In Rust, you don't have classes in the same way as languages like Java or Kotlin.

Хахахахахахахахахахаха. Без комментариев.

80 26 мар, 09:13 80 3416266

>>3415915
>С раста не стоит?
С паскаля надо начинать.

81 26 мар, 09:14 81 3416270

>>3416193
Прошивки для батлплагов погроммировать на расте, да.

82 26 мар, 10:20 82 3416309

> 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 уровень.

Ответы1633916363

83 26 мар, 10:44 83 3416339

>>3416309
https://users.rust-lang.org/t/why-rust-doesnt-have-function-overloading/80416

> C уровень
в си разве нет перегрузки фунекций?

Ответы1635216360

84 26 мар, 10:52 84 3416352

>>3416339
Нет, в Цэ с этим всё верно сделано, как и в пидорасте.

85 26 мар, 10:55 85 3416360

>>3416339
Нету

https://programiz.pro/ide/c/37M6OR018G?utm_medium=playground&utm_source=c-shared-project-link

86 26 мар, 10:59 86 3416363

>>3416309
Трейты заменяют 90% юзкейсов, билдеры еще 9%. В одном проценте написать лишнее слово руки не отвалятся.

87 27 мар, 15:38 87 3417321

>>3413731
>Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать

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

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

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

Ответы17327

88 27 мар, 15:47 88 3417327

>>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.

Ответы173291736317416

89 27 мар, 15:51 89 3417329

>>3417327
https://github.com/microsoft/typescript-go/discussions/411#discussioncomment-12476218

Ответы17416

90 27 мар, 16:36 90 3417363

>>3417327
Да ёб вашу ж мать, понятно же, что на расте такое начинать нахуй не уперлось никому.

Ответы17421

91 27 мар, 17:49 91 3417416

>>3417329
снимаю шляпу за ссылку на источник
но
>>3417327
>such as the need for structural compatibility with the existing JavaScript-based codebase
вот это в первую очередь
вряд ли там 90% кода - обход деревьев
но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли
так что аргумент "сложна" считаю несостоятельным, а выбрали больше потому... переведу на нормальный с официально гринтекст: "ну го больше внешне на джс похож, чем другие, а компилятор уже написан на джс - кодерки будут брыкаться, а разогнать их не могу, они же и писал тс компилятор, чувствуют власть, новое учить не будут, поэтому го. Что то хуйня на сборщике мусора, что эта - горбоатого только могила исправит. Даже шарпам пытались научить, что было бы более логично, но макаки взубнтовались, им сложна, очень далеко от их джс-сиськи"

Ответы17908

92 27 мар, 17:56 92 3417421

>>3417363
почему ты так считаешь, анон?
почему есть проекты, которые начаты на rust? почему им уперлось? такое - это какое?
разверни мысль, хотелось бы услышать не просто мнение, а обоснование

Ответы17907

93 27 мар, 19:14 93 3417520

>>3413681
>>3413683
А что это за язык такой?
Выглядит неплохо, но есть доеб: непрозрачно
Поясню: очевидно, что тут работает через ссылки, но в коде этому нет отражения. Напомнило шарпы: экземпляр класса выделяется на куче, возвращается ссылка, работаешь дальше только со ссылкой. Но это приводит к проблемам, ведь не все объекты - экземпляры класса. Так и тут: y - это ссылка? Любой объект - это ссылка? Объекты хранятся на стеке или на куче? Если на куче, то язык к гц? Если на стеке, то нахуя создавать каждому объекту ссылку?
Понимаю, что я просто не знаю язык, поэтому много вопросов, но в любом языке непрозрачность вредит. Я тут не вижу где указывается ссылка/указатель

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

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

https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=91b432f9cb912aee761cb8177e115ef4

Ответы17533

94 27 мар, 19:23 94 3417533

>>3417520
>>3413683

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

Ответы1761818080

95 27 мар, 21:06 95 3417618

Какой
>>3417533
> по логике лишняя сущность (refcell)
У раста есть внутренняя логика (заимствований), и RefCell - её реализация. Нахуя так обобщать?

Ответы1762217635

96 27 мар, 21:13 96 3417622

>>3417618
Плохо выразился
Я к тому, что по абстрактной логике - никакого refcell быть не должно
Вот типа пишешь на псевдокоде - ты не будешь писать refcell
А вот когда уже кодишь на расте, ты должен учитывать, как ты называешь, внутреннюю логику и ее реализацию
Поэтому да, чисто логически: refcell - лишняя сущность, но необходимая в языке с аффинными типами, которые дарят свои плюшки

97 27 мар, 21:38 97 3417635

>>3417618
ну и немного подушнить
раст использует аффинные типы (те, которые следуют move семантике), их правильное применение гарантируется борроу чекером. Видимо, ты это имеешь в виду, когда говоришь "у раста есть внутренняя логика". Но RefCell - это не реализация этой внутренней логики. Это даже не часть языка. Это просто код, контейнер, который немного ослабляет ограничения борроу чекера для элемента этого контейнера во время компиляции и переносит эти проверки на время выполнения путем использования unsafe кода внутри.

Ответы1763817912

98 27 мар, 21:51 98 3417638

>>3417635
> переносит эти проверки на время выполнения путем использования unsafe кода внутри
Ну, так.

99 28 мар, 00:33 99 3417773

>педеRUST

100 28 мар, 10:17 100 3417907

>>3417421
Им надо не через 5 или 10 лет выдать конпелятор, а через год. Раст для этого не подходит очевидно.

Ответы18080

101 28 мар, 10:18 101 3417908

>>3417416
>но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли
Лол, так может сразу на сишке написать? Или лучше на зиге!

Ответы179131793818080

102 28 мар, 10:33 102 3417912

>>3417635
Правильная реализация линкед листа на педерасте - это ненаписанная реализация линкед листа, смешно видеть эти все рефцелы и прочий костыльный мусор.

Ответы18080

103 28 мар, 10:35 103 3417913

>>3417908
Мир не ограничивается laba1 и laba2.

Ответы17915

104 28 мар, 10:38 104 3417915

>>3417913
У тебя буквально весь софт на си написан, а другая маленькая часть на плюсодерьме. Ты ебобо?

Ответы17920

105 28 мар, 10:43 105 3417920

>>3417915
Этот софт обычно делает что-то кроме создания списков, в отличие от laba1.

Ответы17937

106 28 мар, 11:18 106 3417937

>>3417920
Этот педераст перегрелся, несите нового?

107 28 мар, 11:24 107 3417938

>>3417908
если тебе лучше можешь даже и на ассемблере написать

108 28 мар, 14:03 108 3418080

>>3417907
если пытаться переобучать макак с джс - согласен
но так уж получилось, что Хейлсберг в тупике: очевидно, что заменить команду он не может, ведь они писали компилятор и знаю нюансы и тонкости, а переобучать макак на что-то далекое от джс - макаки устроят бунт
но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке

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

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

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

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

Тебе тоже относится то, что я писал анону выше в этом посте. Тоже проспись, тоже почисти зубки, поешь полезную и сбалансированную еду, сделай зарядку, приведи голову в порядок, чтоб у тебя была возможность усвоить то, что я написал (вроде ничего сложного не писал же), обработать эту информацию, а после этого мы сможем конструктивно поговорить. А то как с нпс общаюсь, одни и те же предложения, одни и те же тейки. Приводишь контраргументы, ждешь какого-то развития событий, конструктивного обсуждения, но происходут перегруз, и... "на расте ты не сделаешь циклическую структуру", "на расте невозможно реализовать линкед лист правильно". День сурка какой-то

108 28 мар, 14:03 108 3418080

>>3417907
если пытаться переобучать макак с джс - согласен
но так уж получилось, что Хейлсберг в тупике: очевидно, что заменить команду он не может, ведь они писали компилятор и знаю нюансы и тонкости, а переобучать макак на что-то далекое от джс - макаки устроят бунт
но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке

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

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

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

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

Тебе тоже относится то, что я писал анону выше в этом посте. Тоже проспись, тоже почисти зубки, поешь полезную и сбалансированную еду, сделай зарядку, приведи голову в порядок, чтоб у тебя была возможность усвоить то, что я написал (вроде ничего сложного не писал же), обработать эту информацию, а после этого мы сможем конструктивно поговорить. А то как с нпс общаюсь, одни и те же предложения, одни и те же тейки. Приводишь контраргументы, ждешь какого-то развития событий, конструктивного обсуждения, но происходут перегруз, и... "на расте ты не сделаешь циклическую структуру", "на расте невозможно реализовать линкед лист правильно". День сурка какой-то

Показать весь текст
Ответы18659

109 29 мар, 10:07 109 3418659

>>3418080
>но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке
Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов.
>растхейтеры
Мимо, педераст, я хейчу вас, растомакак, язык норм для своих задач.

Ответы18670

110 29 мар, 10:31 110 3418670

>>3418659
>Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов.
таблетки

111 6 апр, 18:00 111 3424437

кто осилил его собрать из сырцов, на локальной машине, без интернета, есть такие?

Ответы24582

112 6 апр, 20:55 112 3424582

>>3424437
его?

Ответы24646

113 6 апр, 22:33 113 3424646

>>3424582
Подозреваю, что речь идёт об ego-tree или egobox_ego.

Ответы24653

114 6 апр, 22:41 114 3424653

>>3424646
я про сборку этого, в чруте, без доступа к интернету
https://github.com/rust-lang/rust/archive/refs/tags/1.86.0.tar.gz

Ответы24660

115 6 апр, 23:00 115 3424660

>>3424653
а в чем у тебя проблемы возникли?

Ответы24693

116 6 апр, 23:43 116 3424693

>>3424660
в том, что для сборки оно в интернет лезет, зачем то хочет качать архивы раста, каиро старой версии, а затем кучу всего в директорию vendor, хотя сорцы уже скачанные лежат, зачем то накостылен bootstrap.py с неотключаемым скачиванием этого добра, несмотря на то, само добро заранее лежит на диске, понятно что можно забить и разрешить всё это, но я не хочу в сборочных чрутах давать выход в сеть, поэтому и возник вопрос, как собрать без интернета

Ответы26348

117 8 апр, 19:50 117 3426348

>>3424693
Ты в курсе, что Rust поощряет композицию?

Обновить тред

« /pr/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion