Предыдущий тред : >>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
*постить
Поможем, расскажем.
> ряяяя MEMORY SAFE
Мы вас растодебилов уже обоссали в пхп треде, больше не суйтесь к нам со своими картиночками, опущи.
Как наиграешься, не забудь на плюсы обратно переписать
Смотря в какая компания.
Я так понимаю из гейропы, поэтому не очень то и жирно
Если в РФ нашел ваку, то очень может быть
> Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению
Блять, каким обещаниям? Надо было "контрактам" написать. Ладно, в следующий раз.

Тейлор Свифт

>компилируется
В 2020 линковщик оче долго работал, даже была эксперементальная замена ему, продолжаю охуевать от растодебилов, прошла практически половина десятилетия, до сих пор ничего не изменилось.
У меня есть личный проект, где на основе пользовательской конфигурации, нужно было генерировать персональный бек и клиент, все это дело собиралось в джокере. Условно говоря, пользователь выбирает нужную функциональность, генерируется конфиг, на основе конфига билдятся бек и клиент, все это разворачивается в облаке.
Так вот первым кандидатом для меня был раст, учитывая, что бек в моем случае по сути являлся обычным недопропрокси. Но из-за петушиной по длительности сборки сразу пришлось отказаться от этой затеи. По итогу выбрал Говно, которое билдится за считанные секунды и не приносит такой попаболи.
>вебговно
>кандидатом для меня был раст
Ебать даун.
>По итогу выбрал говно
Сразу почему не выбрал, экспертизы не хватило, даун?
Причина тряски?
>вебговно
Буквально требуется принимать бинарный пакет, парсить его и пересылать данные на клиент. Да и в чем претензия? Инструментов для вебговна на расте написано больше, чем для системной разработки и байтоебства, что довольно иронично.
>Сразу почему не выбрал, экспертизы не хватило
Потому что язык без ГЦ и милипиздрическими бинарниками лучше языка с ГЦ, рантаймом и жирным бинарем? У меня почти 3 контейнера с растоверсией недопрокси весили столько же как один гошный.
>вебговна на расте написано больше, чем для системной разработки и байтоебства
потому что вебговно намного большая сфера чем байтоёбство
на плюсах и на си было бы точно также, если бы на них хоть кто то был бы готов веб писать
Да он бля будет полчаса-час компилиться. У меня в облаке 4 cpu + 16 gb ram одна сборка идёт около часа (!). В принципе наверно ты правильно сделал. Я последовал совету rust guide'а, они типа пишут, мол просто добавьте workspace и всё будет чотка. Ну я добавил. Он теперь в два раза дольше компилит с воркспейсами лол. И вообще, я заметил - он иногда дублирует зависимости. Допустим берёт tokio-rustls компилирует v0.24.1 версии и v0.26.2. Дальше он компилирует tower версии v0.4.13 и версии v0.5.2. Может поэтому долго, я пока ещё этому кунгфу с зависимостями не научился.
>>12927
Раньше я этой хуйни не замечал. То есть было в районе 100 зависимостей и он собирался быстро. Теперь по мере роста проекта, чтобы только один бинарник скомпилить - их уже штук 500. Ну и плюс, он не может больше одного ядра использовать из-за настроек оптимизации. Такие дела.

Будь проклят тот день, когда ты сел за бараку этого пылесоса.
>потому что вебговно намного большая сфера чем байтоёбство
Только один вопрос, зачем так мучить жопу?
Алсо, где тред арийского языка Zig?
> зачем так мучить жопу?
пока из мучений только время компиляции, что далека не такая большая проблема
к примеру посмотри как веб на плюсах\си выглядит, вот там уже реальный треш начинается с userver

Напишите такой же аналоговнет на расте
Замечание:
1) строка 1 - определяем рекурсивно тип
2) строка 2 - содаем циклическую структуру (сама на себя ссылается)
3) строка 8 - рекурсивно печатаем содержимое поля a
Во первых зачем мне это делать, во вторых что ты вобще скинул, в третих какое отношение к вебу
> определяем рекурсивно тип
это что такое и какого она размера?
>какого она размера?
А тебе зачем? Для микроконтроллеров пишешь? Вопрос был для вебмакак, которые тут пишут покер солверы всякие
Даже в сишке можно через указатели создать циклическую ссылку. Но в сишке легко наебать самого себя, а в окамлах нет.
да, но указатель это не структура, мне самому гадать что у тебя option в твоем яп делает?
размер Option<x> равен размеру x + 4 байта
Если ты делаешь struct x { inner Option<x>}, то она имеет бесконечный размер sizeof x = sizeof inner = sizeof x + 4
1) Так я попросил аналоговнет на расте потому. Свой пример я скомпилировал и запустил. Он работает из-за TCO а не вываливается в переполнение стека
2) Конкретно окамел я сам только штудирую
Не тоже самое. У тебя нет циклических ссылок, а только рекурсивно определеная структура. Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать. Одна из причин называлась.
PS я не расто хейтер если чо
> циклических ссылок, а только рекурсивно определеная структура
не вижу разницы а этих определениях
Ну как не видишь?
У тебя печататет
Hello world
2
3
А у меня печатает бесконечную портяку из 1 2 3
В сишке ты тоже можешь создать три указателя на три структуры и зациклить их в круговую. Это не займет кучу памяти
Потому что хачкель академический язык, а в окамле есть все, хоть и местами устаревшее. Монады через монады ебать тоже не комфортно.
>Потому что хачкель академический язык, а в окамле есть все, хоть и местами устаревшее.
Ну как будто бы хачкель более распространен, тот же pandoc, например, или grease. А ocaml только в контексте jane steet вспоминается.
ансейфа цепляешь к последней ноде голову и наслаждаешься
если впадлу ансейф - Rc
ни функция ни структура от этого не поменяется
Никаких сложностей с борров чекером нет. Кто память руками чистил борров чекеров не боится. Проблемы только у залетевших питонистов/жсеров и прочих, которые только в расте про указатели узнали.
То есть то, что программы надо писать с буквально единственным явным владельцем у любого объекта - это не большая проблема? Или ты любой объект всегда клонируешь при передаче?
>посмотри как веб на плюсах\си выглядит
Сорян, но я не дебил, чтобы на СИСТЕМНОМ языке писать веб дерьмо.
Мы уже выяснили, что раст для веб дерьма, а не байтослесарии.
>единственным явным владельцем у любого объекта
сильно удивишься если узнаешь что в расте это не обязательное условие?
раст бук пролистай на досуге, может хоть позориться в расто треде не будешь больше
> не осилил раст бук
> не осилил прочитать ответ на свой вопрос
что ты в расто треде вобще забыл?
Потрогай траву, чел.
Что это за человек на шебмке?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=4f0bb708094b4289629f5627b2283c30
Создать можно. Его потом обойти нельзя, но так IRL этого и так никто не делает.
Показываю.
https://github.com/torvalds/linux/blob/master/include/linux/list.h
>>14597
Это хуевый код.
если анон не подает признаки того что хотя бы прочитал раст бук, то о чем с ним вобще говорить в расто треде?
труп страуса говорил, что лучше юзать не списки
Никакие списки, кроме тех, которые юзаются во всякой лок-фри хуйне, нахуй не нужны. В этом плане этот список ничем не хуже любого другого из стандартных либ.
Это бы сработало, если бы у системщики не были стабильно на параше в плане зарплат по сравнению с примерно со всеми остальными.
Трудно представить ебало программиста не знающего си
Да каво ты блять спрашиваешь, он сам нихуя не знает. Он даже не пытается как-то аргументировать свой ответ. Rust для микроконтроллеров норм! Бери embassy и делай че хочешь. В смысле, что за вопрос такой "норм или не норм". Ты думаешь что проблема всегда в плохих языках, а не в кривых руках из жопы которые нихуя не умеют программировать?
> In Rust, you don't have classes in the same way as languages like Java or Kotlin.
Хахахахахахахахахахаха. Без комментариев.
Прошивки для батлплагов погроммировать на расте, да.
> 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 уровень.
https://users.rust-lang.org/t/why-rust-doesnt-have-function-overloading/80416
> C уровень
в си разве нет перегрузки фунекций?
Нет, в Цэ с этим всё верно сделано, как и в пидорасте.
Трейты заменяют 90% юзкейсов, билдеры еще 9%. В одном проценте написать лишнее слово руки не отвалятся.
>Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать
немного по-другому же
>Перед началом работы над проектом разработчики изучили возможность использования различных языков программирования и поэкспериментировали с прототипами на разных языках. В итоге для создания нового компилятора был выбран язык Go, как оптимальный вариант для выполнения работы по переписыванию кодовой базы старого компилятора. По сравнению с такими языками, как Rust, Go ближе к TypeScript по семантике и структуре кода, что позволяет сохранить при портировании существующие шаблоны. Использование Go упрощает перенос изменений между кодовыми базами и снижает трудоёмкость задачи по сопровождению старого и нового вариантов бок о бок.
>Язык Go обеспечивает хорошую производительность, развивается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, имеет встроенные средства защиты от проблем при работе с памятью. Ценой безопасной работы с памятью является сборщик мусора, который может приводить к появлению задержек во время работы, но для компилятора появление таких задержек не имеет значения.
>В качестве варианта рассматривались и другие языки, такие как Rust, но они слишком сильно концептуально отличаются от TypeScript и при их использовании портирование превратилось бы в разработку компилятора с нуля, при которой было бы трудно добиться полной совместимости со старым компилятором, пришлось бы заново решать уже решённые в старой кодовой базе проблемы и проект потребовал бы значительно больше времени и ресурсов.
Читай комент от Хейлсберга
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.
Да ёб вашу ж мать, понятно же, что на расте такое начинать нахуй не уперлось никому.
снимаю шляпу за ссылку на источник
но
>>17327
>such as the need for structural compatibility with the existing JavaScript-based codebase
вот это в первую очередь
вряд ли там 90% кода - обход деревьев
но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли
так что аргумент "сложна" считаю несостоятельным, а выбрали больше потому... переведу на нормальный с официально гринтекст: "ну го больше внешне на джс похож, чем другие, а компилятор уже написан на джс - кодерки будут брыкаться, а разогнать их не могу, они же и писал тс компилятор, чувствуют власть, новое учить не будут, поэтому го. Что то хуйня на сборщике мусора, что эта - горбоатого только могила исправит. Даже шарпам пытались научить, что было бы более логично, но макаки взубнтовались, им сложна, очень далеко от их джс-сиськи"
почему ты так считаешь, анон?
почему есть проекты, которые начаты на rust? почему им уперлось? такое - это какое?
разверни мысль, хотелось бы услышать не просто мнение, а обоснование
>>13683
А что это за язык такой?
Выглядит неплохо, но есть доеб: непрозрачно
Поясню: очевидно, что тут работает через ссылки, но в коде этому нет отражения. Напомнило шарпы: экземпляр класса выделяется на куче, возвращается ссылка, работаешь дальше только со ссылкой. Но это приводит к проблемам, ведь не все объекты - экземпляры класса. Так и тут: y - это ссылка? Любой объект - это ссылка? Объекты хранятся на стеке или на куче? Если на куче, то язык к гц? Если на стеке, то нахуя создавать каждому объекту ссылку?
Понимаю, что я просто не знаю язык, поэтому много вопросов, но в любом языке непрозрачность вредит. Я тут не вижу где указывается ссылка/указатель
>Напишите такой же аналоговнет на расте
Нет идеального языка, где-то будет бо-бо. Либо гц надо будет создавать, либо безопасность будет держаться на плечах кожаного мешка, либо как в расте: болью создания циклических структур - оказывается нет идеального языка
Но, внезапно, в ансейфе можно создавать циклические структуры, прямо как в небезопасных языках, то есть хуже, чем в небезопасных языках не будет. Но остальные части можно писать в сейф-режиме, то есть лучше, чем в небезопасных языках.
Ну и кста, если тревожник и циклическая структура используется не в хот-пути, то берем за основу вот это >>13729, добавляем RefCell, получаем циклическую структуру на расте без unsafe
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=91b432f9cb912aee761cb8177e115ef4
>>13683
быстро дополню
да, согласен, unsafe-код получился больше, чем у тебя: длиннее, по логике лишняя сущность (refcell), чуточку сложнее
но
1) никто не запрещает юзать unsafe, и это в любом случае будет НЕ хуже, чем у тебя
2) мы взяли пример, где у раста слабое место. Как я говорил, идеального языка не существует, что-то уйдет в минус, но у раста прям хороший трейд-офф: вместо гц и потери безопасности в узких местах надо ввести refcell (что чуть-чуть усложнит код и введет хоть и незаметный, но оверхед), либо все же потерять гарантии безопасности, но лишь в этих самых узких местах, которые отполируют в либах взрослые дяди и отдебажат тысячи ручек
>>17533
> по логике лишняя сущность (refcell)
У раста есть внутренняя логика (заимствований), и RefCell - её реализация. Нахуя так обобщать?
Плохо выразился
Я к тому, что по абстрактной логике - никакого refcell быть не должно
Вот типа пишешь на псевдокоде - ты не будешь писать refcell
А вот когда уже кодишь на расте, ты должен учитывать, как ты называешь, внутреннюю логику и ее реализацию
Поэтому да, чисто логически: refcell - лишняя сущность, но необходимая в языке с аффинными типами, которые дарят свои плюшки
ну и немного подушнить
раст использует аффинные типы (те, которые следуют move семантике), их правильное применение гарантируется борроу чекером. Видимо, ты это имеешь в виду, когда говоришь "у раста есть внутренняя логика". Но RefCell - это не реализация этой внутренней логики. Это даже не часть языка. Это просто код, контейнер, который немного ослабляет ограничения борроу чекера для элемента этого контейнера во время компиляции и переносит эти проверки на время выполнения путем использования unsafe кода внутри.
>педеRUST
Им надо не через 5 или 10 лет выдать конпелятор, а через год. Раст для этого не подходит очевидно.
>но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли
Лол, так может сразу на сишке написать? Или лучше на зиге!
Правильная реализация линкед листа на педерасте - это ненаписанная реализация линкед листа, смешно видеть эти все рефцелы и прочий костыльный мусор.
У тебя буквально весь софт на си написан, а другая маленькая часть на плюсодерьме. Ты ебобо?
Этот педераст перегрелся, несите нового?
если тебе лучше можешь даже и на ассемблере написать
если пытаться переобучать макак с джс - согласен
но так уж получилось, что Хейлсберг в тупике: очевидно, что заменить команду он не может, ведь они писали компилятор и знаю нюансы и тонкости, а переобучать макак на что-то далекое от джс - макаки устроят бунт
но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке
>>17908
тут уже фак для таких как ты пытались создать
даже мои посты выше давали ответ, но растхейтеры действуют по своей методичке
я не хочу второй раз объяснять, просто перечитай хотя бы это
>>17533
>1) никто не запрещает юзать unsafe, и это в любом случае будет НЕ хуже, чем у тебя
>2) мы взяли пример, где у раста слабое место. Как я говорил, идеального языка не существует, что-то уйдет в минус, но у раста прям хороший трейд-офф: вместо гц и потери безопасности в узких местах надо ввести refcell (что чуть-чуть усложнит код и введет хоть и незаметный, но оверхед), либо все же потерять гарантии безопасности, но лишь в этих самых узких местах, которые отполируют в либах взрослые дяди и отдебажат тысячи ручек
Да просто пиздец, ты сам выделил в гринтекст мою цитату "обернуть это в safe api и юзать", но все равно будто не видишь этого. Ты не смог разобрать ОДНО предложение и понять его смысл. Давай все же натолкну: unsafe 0,1% кода != unsafe 100% кода. Или это тоже надо как-то разъяснять?
Когда усвоишь информацию выше - можешь мне написать
Если я увижу, что ты не усвоил информацию или усвоил, но все равно действуешь по своей методичке - я не хочу тратить на тебя время
>>17912
Еще один с методичкой
Реализуй линкед лист как хочешь: хочешь с рефцеллом, хочешь без, в зависимости от твоих требований
Тебе тоже относится то, что я писал анону выше в этом посте. Тоже проспись, тоже почисти зубки, поешь полезную и сбалансированную еду, сделай зарядку, приведи голову в порядок, чтоб у тебя была возможность усвоить то, что я написал (вроде ничего сложного не писал же), обработать эту информацию, а после этого мы сможем конструктивно поговорить. А то как с нпс общаюсь, одни и те же предложения, одни и те же тейки. Приводишь контраргументы, ждешь какого-то развития событий, конструктивного обсуждения, но происходут перегруз, и... "на расте ты не сделаешь циклическую структуру", "на расте невозможно реализовать линкед лист правильно". День сурка какой-то
если пытаться переобучать макак с джс - согласен
но так уж получилось, что Хейлсберг в тупике: очевидно, что заменить команду он не может, ведь они писали компилятор и знаю нюансы и тонкости, а переобучать макак на что-то далекое от джс - макаки устроят бунт
но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке
>>17908
тут уже фак для таких как ты пытались создать
даже мои посты выше давали ответ, но растхейтеры действуют по своей методичке
я не хочу второй раз объяснять, просто перечитай хотя бы это
>>17533
>1) никто не запрещает юзать unsafe, и это в любом случае будет НЕ хуже, чем у тебя
>2) мы взяли пример, где у раста слабое место. Как я говорил, идеального языка не существует, что-то уйдет в минус, но у раста прям хороший трейд-офф: вместо гц и потери безопасности в узких местах надо ввести refcell (что чуть-чуть усложнит код и введет хоть и незаметный, но оверхед), либо все же потерять гарантии безопасности, но лишь в этих самых узких местах, которые отполируют в либах взрослые дяди и отдебажат тысячи ручек
Да просто пиздец, ты сам выделил в гринтекст мою цитату "обернуть это в safe api и юзать", но все равно будто не видишь этого. Ты не смог разобрать ОДНО предложение и понять его смысл. Давай все же натолкну: unsafe 0,1% кода != unsafe 100% кода. Или это тоже надо как-то разъяснять?
Когда усвоишь информацию выше - можешь мне написать
Если я увижу, что ты не усвоил информацию или усвоил, но все равно действуешь по своей методичке - я не хочу тратить на тебя время
>>17912
Еще один с методичкой
Реализуй линкед лист как хочешь: хочешь с рефцеллом, хочешь без, в зависимости от твоих требований
Тебе тоже относится то, что я писал анону выше в этом посте. Тоже проспись, тоже почисти зубки, поешь полезную и сбалансированную еду, сделай зарядку, приведи голову в порядок, чтоб у тебя была возможность усвоить то, что я написал (вроде ничего сложного не писал же), обработать эту информацию, а после этого мы сможем конструктивно поговорить. А то как с нпс общаюсь, одни и те же предложения, одни и те же тейки. Приводишь контраргументы, ждешь какого-то развития событий, конструктивного обсуждения, но происходут перегруз, и... "на расте ты не сделаешь циклическую структуру", "на расте невозможно реализовать линкед лист правильно". День сурка какой-то
>но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке
Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов.
>растхейтеры
Мимо, педераст, я хейчу вас, растомакак, язык норм для своих задач.
>Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов.
таблетки
я про сборку этого, в чруте, без доступа к интернету
https://github.com/rust-lang/rust/archive/refs/tags/1.86.0.tar.gz
в том, что для сборки оно в интернет лезет, зачем то хочет качать архивы раста, каиро старой версии, а затем кучу всего в директорию vendor, хотя сорцы уже скачанные лежат, зачем то накостылен bootstrap.py с неотключаемым скачиванием этого добра, несмотря на то, само добро заранее лежит на диске, понятно что можно забить и разрешить всё это, но я не хочу в сборочных чрутах давать выход в сеть, поэтому и возник вопрос, как собрать без интернета
Ты в курсе, что Rust поощряет композицию?
Ты просто хотел пиццки кусочек, или что тогда?
Nix
>игры
Даже самые профессионалы своего дела обоссали Раст, заявив что в отличие от С# и, прости-господи, C++, делать игры на нем сложно и муторно, особенно на этапе прототипирования, где ебля с безопасностью и прочими unwrap'ами сжирает кучу времени, не оставляя времени на сам начальный этап разработки игры.
>Веб
Нахуя писать веб на Раст? Ни один большой современный бизнес не пойдет на это, для обычных продуктов возьмут C#, Go, Java, JS/TS, для каких-то совсем редких кейсов - С++ из-за обилия либ. А Раст зачем брать? Этап прототипирования веба тоже упирается в проблему из пункта 1 .
Единственное применение и реальный плюс Раста я вижу в эмбеддед, т.к есть реальные примеры компаний, временами пишущих на нем эмбеддед прошивки для МК и прикладного софта. Но остальное нинужно.
Проблем нет, но у меня два папы.
> в 30 раз более производительная
Но зачем? В ИИ всегда можно пренебречь скоростью IO и обработки данных, потому что есть многопоточная обработка и сборка батчей в любое количество потоков. В бигдате всегда приоритет в удобстве, а не скорости.
Да, безопасность Раста в эмбедеде это прям преимущество, все равно на си и плюсах приходилось байтоебить, а на расте это приятнее
Есть третий путь:
Выучить С++ и вкатиться в НИИ на сытые 100к в месяц с БРОНЬЮ от мобки и полным соцпакетом, без страха что тебя уволят как растопидора
Надо быть конченным ебланом, чтобы делать игры на пидорасте. В криптонаебалове пишут на расте - понятно почему.
>>32795
>>32848
Можно пример, где т.н. безопастность на расте во встройке как-то зарешивает? То есть реальный пример с листингом, что от раста была тут польза.
>>32814
Замена pandas на C будет ещё производительнее и напишут это быстрее, нахуй раст нужен?
Тебе ссылку дали на готовый продукт на расте кторый в тырпрайзе используется. Иди пиши очередной рогалик под виндовс апи на своей сишке.
>Можно пример, где т.н. безопастность на расте во встройке как-то зарешивает?
Эмбед как правило работает без нормальной ОС, поэтому любой сегфолт нужно дебажить мало что не вольтметром. Так что любой баг, который можно отловить на этапе компиляции - это +5 часов твоей жизни.
Я тебя тоже понял, ты просто кукаретик, то есть типичный пидораст.
Хуеплет, ты сам научись сначала мышлению, ты приперся обсуждать ,что лично тебе не нужен раст? Люди уже написали на расте, а на сишке только напишут, скоро, в твоих маняфантазиях.
Зачем на расте писать - потому что на нем платят больше, уровень сениорности существенно выше и проекты интересней.
Если интересны лоу айкью индусокод на
>C#, Go, Java, JS/TS
то без проблем, можно еще пхп ковырять ради ламбо которых там никогда не было.
Либо турболегаси на с++ с ооп и уб.
У меня с поиском работы никаких проблем нет с средним предложением в 250к в год.
Для этого и дропнул упомянутые C#, Go, Java, JS/TS, C++.
Хотя го еще +- норм и ТС для пулуми.
>Вот готовая либа на расте, испольуется в тырпайзе
>Замена pandas на C будет ещё производительнее и напишут это быстрее, нахуй раст нужен?
А человек паук всех победит, да...
Пидораст такой пидораст.
100k - это тысяча евро лол. Я на первой работе С++/C# получал в полтора раза больше тыщу лет тому назад. Класс.
Какой у тебя опыт в разработке? Выше синиора хоть раз был? Подсчет затрат в клауде хоть раз делал?
Это шутка. Но вообще многие так и делают, десятилетиями работают в НИИ на базовую ЗП
Можно еще сторожем пойти. Непыльненько, на двачах сидишь, капчуешь, дрочишь на поней в коморке.
>Зачем на расте писать - потому что на нем платят больше
А кто будет писать игры и веб на расте, лол? Так и платить растерам не будут, если работы на нем не будет в этих областях.
>Если интересны лоу айкью индусокод
Там хотя бы работа есть и платят нормально, а не 15 вакансий, где 80% это крипта или системщина
>А кто будет писать игры и веб на расте, лол? Так и платить растерам не будут, если работы на нем не будет в этих областях.
А кому в геймдеве нормально платят, лмао?
>А кто будет писать игры и веб на расте, лол? Так и платить растерам не будут, если работы на нем не будет в этих областях.
Плевать на игры, там зарплаты низкие, хуяк-хуяк и увольнения после кранча. Игры разве что в одно лицо надо делать, а там можно на чем хочешь делать - одна из самых успешных игр была сделана на луа в прошлом году, стардью волли написан жопой (сырцы посмоти) на шарпах с ультра уебищным фреймворком от мс.
>Так и платить растерам не будут, если работы на нем не будет в этих областях.
Сейчас начинается бум раста как раз. Никс + раст + богатая част европы - ебейшие деньги в оборонке. Только никаких ремоутов.
>Там хотя бы работа есть и платят нормально,
Платят там мало и переступит 120к в год сложно, особенно сейчас. Рынок компактится, а ты советуешь идти туда где конкуренция и индусы с генерилками кода.
>Там хотя бы работа есть и платят нормально, а не 15 вакансий, где 80% это крипта или системщина
Что не там с криптой и системщиной?
Короче, ты малой просто
Нахуя ебейшие деньги получать?
Иди сторожем или крудо-реактомакакой на спрингбуте. Только не удивляйся если тебя сократят.
Зверек? Ты обосрался в своем троллинге и пытаешься вот так победить?
Нахуя в оборонке раст спрашивай у тех кто там это диктует. Я не имею директорской позиции в оборонке и в принципе там не работаю. Но отрытые позиции вижу и там раст зачастую с никсом причем.
Вообще вот это все нытье что раст слишком сложный уже порядком надоели. Что там сложного? С raii все крестовики работали, а это считай половина борроу чекера. Что вам сложно. Реально единственная существенно херовая часть раста - асинк, там любые манипуляции с указателями сделают обрастают лайфтаймами и дженериками. Ну и циклические связи убого делать.
Во всем остальном - удобно и быстро разрабатывать, не надо по сто раз тестировать то от чего защищает компилятор.
Асахи лина отреверсинженерил гпу драйвера от арим макбуков на линукс, на расте и явно сказал что именно из-за всех этих борроу чекеров было проще написат, потому компилятор очень в многом помогает.
>Но отрытые позиции вижу и там раст зачастую с никсом причем.
Пруф или уёбывай.
>Что вам сложно
>Вообще вот это все нытье что раст слишком сложный уже порядком надоели
>удобно и быстро разрабатывать
>не надо по сто раз тестировать то от чего защищает компилятор
Просто пидорастодвоечка нахуй.
Пиздец, ты зверёк. Сам-то поди только лабы на пидорасте пишет, иначе бы такой не писал.
Анон, понимаю, что наглею, но расскажи чуть подробнее
> сытые 100к в месяц
За 100к как-то работать даже не хочется. Я вот в интеграторе сижу за 100к, пинаю хуи днями на удалёнке, сегодня рабочий день к концу подходит, но реально работал я минут 15 и в рабочих чатах 30 минут советы советовал. Весь остальной день скролил двач и смотрел ютубчик. Иногда дрочильню какую-нибудь запускаю, поглядывая на втором мониторе за "работой" и чатиками.
Вот буквально недавнее
Position: Protocol Engineer
Salary: Up to $220k USD
Plexus has partnered with an innovative startup developing a protocol that enhances blockchain privacy by enabling encrypted data processing without exposure. This allows for smarter contracts, stronger security, and expanded Web3 use cases while remaining compatible with existing blockchain tools.
They are looking for a Senior Protocol Engineer to join their team and lead the rust development for their Solana solution.
Qualifications
Experience working with Rust and GoLang
Experience working on an L1 or L2 (Bonus if you worked in the Solana Ecosystem)
Proficient in spoken and written English
Offer
Competitive Salary
Tokens
Bonus
If this interests you, please send me an updated CV and we can arrange a call!
Hana Leka
Consultant @ Plexus Resource Solutions
Senior Protocol Engineer Opportunity | MEV ($300k+) 🤖
I have partnered with a protocol leveraging MEV infra who are hiring a remote Rust engineer.
Do you have:
Protocol engineering experience.
3+ years rust experience.
Familiarity with EVM.
5+ years engineering experience.
Let's chat, I can share a JD if interested.
Lee Dart
Recruiter at Plexus Resource Solutions
I’m partnered with Solforge, a trailblazing company redefining Solana’s consensus ecosystem. They’re building high-performance blockchain infrastructure for institutional-grade applications and transforming internet capital markets.
They’re seeking Rust Engineers to tackle distributed systems challenges, working with Rust, Kubernetes, and Go. You’ll help build scalable, modular systems while collaborating with a top-tier engineering team.
The role is fully remote with the Founder and Co-Founder based out of the UK and paying salaries up to $250k USD ON A B2B Basis.
Does this sound like a fit? Let’s set up a quick call: https://calendly.com/vorberg-clarke-digitechresourcing/15min.
Vorberg Clarke
Senior Recruitment Partner
Вот буквально недавнее
Position: Protocol Engineer
Salary: Up to $220k USD
Plexus has partnered with an innovative startup developing a protocol that enhances blockchain privacy by enabling encrypted data processing without exposure. This allows for smarter contracts, stronger security, and expanded Web3 use cases while remaining compatible with existing blockchain tools.
They are looking for a Senior Protocol Engineer to join their team and lead the rust development for their Solana solution.
Qualifications
Experience working with Rust and GoLang
Experience working on an L1 or L2 (Bonus if you worked in the Solana Ecosystem)
Proficient in spoken and written English
Offer
Competitive Salary
Tokens
Bonus
If this interests you, please send me an updated CV and we can arrange a call!
Hana Leka
Consultant @ Plexus Resource Solutions
Senior Protocol Engineer Opportunity | MEV ($300k+) 🤖
I have partnered with a protocol leveraging MEV infra who are hiring a remote Rust engineer.
Do you have:
Protocol engineering experience.
3+ years rust experience.
Familiarity with EVM.
5+ years engineering experience.
Let's chat, I can share a JD if interested.
Lee Dart
Recruiter at Plexus Resource Solutions
I’m partnered with Solforge, a trailblazing company redefining Solana’s consensus ecosystem. They’re building high-performance blockchain infrastructure for institutional-grade applications and transforming internet capital markets.
They’re seeking Rust Engineers to tackle distributed systems challenges, working with Rust, Kubernetes, and Go. You’ll help build scalable, modular systems while collaborating with a top-tier engineering team.
The role is fully remote with the Founder and Co-Founder based out of the UK and paying salaries up to $250k USD ON A B2B Basis.
Does this sound like a fit? Let’s set up a quick call: https://calendly.com/vorberg-clarke-digitechresourcing/15min.
Vorberg Clarke
Senior Recruitment Partner
ну что всосал?
>Замена pandas на C будет ещё производительнее и напишут это быстрее
Только вот поларс уже написан, а замена на C ещё почему-то нет...
C-левелам.
Вот зачем мне учить Раст, если сейчас все системные вакансии на С++?
Чулочники таки пригодились. Возможно в этом и был план наклепать себе армию чулочников, чтобы за идею и лоупрайс клепали код для корпораций
1) Не учи, мир от этого ничего не потеряет.
2) Это их выбор.
3) Так можно про любой язык сказать: зачем нам julia, zig, r, если есть питон.
99% этих вакансий говнолегаси
Ты все еще тут семенишь? За раст платят дохуя по сравнению с другими языками
Везет тебе. Работаю за 130к в месяц, полные 8 часов в день, еще и тайминги нужно присылать типо сколько часов и минут работал над какой задачей. Проебываться не выйдет 100%, следят
>Какой-то 1 соевый стартап на весь мир, с каким-то ноунеймом.
Чёт на расте у челиков только вебчик походу лол.
Да, и крипта хуйня. Иди за косарь баксов круд говно пиши с наллреференсами, нищенка.
>-Зибята бум раста оборонка вся на расте и с никсам уии
>-Где и нахуя там раст?
>-<Показывает очередное попильное ИИ говно и с растом для веба>
>-Нахуя ты это говно принёс, где остальная оборонка?
>-АРЯЯЯ НИЩЕНКА АРЯЯЯ
Лол, походу единственные, кто реально делал какие-то вещи с прошивками и лоу левел на расте это buttplug.io
### Кандидаты:
#### 1. Шаллоу (Shalltear Bloodfallen) из «Overlord»
- Почему? Rust известен своей безопасностью памяти — Шаллоу буквально неуязвима в бою, пока не найдётся эксплойт (как `unsafe` в Rust).
- Многопоточность: как вампир, она может действовать независимо от других NPC Назарика (асинхронность).
- Скорость: мгновенная телепортация и атаки.
#### 2. Сабера (Артурия Пендрагон) из «Fate/stay night»
- Нулевая стоимость абстракций: Сабера — идеальный слуга, эффективна без лишних движений.
- Контроль над ресурсами: Её Экскалибур требует точного управления маной (как ручное управление памятью в Rust).
- Без компромиссов: либо победа, либо смерть (как `panic!` в критических ошибках).
#### 3. Макото Ниидзима из «Persona 5»
- Статический анализ: как прокурор, она строго проверяет все доказательства (аналог borrow checker’а).
- Многозадачность: успевает и работать, и быть Лидером Фантомных Воров.
- Нет GC: она сама разбирается с проблемами, без посторонней помощи.
#### 4. Юки Нагато из «Melancholy of Haruhi Suzumiya»
- Предсказуемость: как интерфейс к данным, она работает строго по правилам (как Rust без неожиданных падений).
- Высокая производительность: может обрабатывать информацию на космическом уровне.
- Минимальные накладные расходы: молчалива и эффективна.
### Лучший выбор?
Если нужен **жесткий, системный подход** — **Юки Нагато**.
Если важна **боевая надёжность** — **Сабера**.
Если важен **баланс между силой и контролем** — **Шаллоу**.
А кто, по-вашему, лучше всего подошёл бы? 😊
### Кандидаты:
#### 1. Шаллоу (Shalltear Bloodfallen) из «Overlord»
- Почему? Rust известен своей безопасностью памяти — Шаллоу буквально неуязвима в бою, пока не найдётся эксплойт (как `unsafe` в Rust).
- Многопоточность: как вампир, она может действовать независимо от других NPC Назарика (асинхронность).
- Скорость: мгновенная телепортация и атаки.
#### 2. Сабера (Артурия Пендрагон) из «Fate/stay night»
- Нулевая стоимость абстракций: Сабера — идеальный слуга, эффективна без лишних движений.
- Контроль над ресурсами: Её Экскалибур требует точного управления маной (как ручное управление памятью в Rust).
- Без компромиссов: либо победа, либо смерть (как `panic!` в критических ошибках).
#### 3. Макото Ниидзима из «Persona 5»
- Статический анализ: как прокурор, она строго проверяет все доказательства (аналог borrow checker’а).
- Многозадачность: успевает и работать, и быть Лидером Фантомных Воров.
- Нет GC: она сама разбирается с проблемами, без посторонней помощи.
#### 4. Юки Нагато из «Melancholy of Haruhi Suzumiya»
- Предсказуемость: как интерфейс к данным, она работает строго по правилам (как Rust без неожиданных падений).
- Высокая производительность: может обрабатывать информацию на космическом уровне.
- Минимальные накладные расходы: молчалива и эффективна.
### Лучший выбор?
Если нужен **жесткий, системный подход** — **Юки Нагато**.
Если важна **боевая надёжность** — **Сабера**.
Если важен **баланс между силой и контролем** — **Шаллоу**.
А кто, по-вашему, лучше всего подошёл бы? 😊

Он стоял, уперев руку в бок, и не отвечал. Только умудренная улыбка и неторопливые перекаты вальяжной походки, что понесли его домой. Больше они об этом случае не разговаривали.
Раст не взлетел из за пидоров?
> Go
Для веба раст гораздо удобнее гошки, так что с ним в этой нише вполне себе может конкурировать. Одни дженерики и асинхронность дают в разы больше удобства над ctrl+c ctrl+v и горутинами с каналами, про остальное молчу.
>C#
>Java
Это совершенно другая ниша, обычно крупные проекты в банках, с совершенно другими взглядами на жизнь. Разработчики там привыкли к проектам, которые пилят годами и эти проекты живут десятилетия. Это больше про кровавый энтерпрайз
>JS/TS
Как вариант, но не для всех проектов, нода хоть и держит дохуя rps из всей скриптопараши, но утекает по памяти и имеет свои ограничения. Но для проектов где примитивные круды какой-нибудь nestjs будет топ
Да, от них много хейта. Пишут какую нибудь обертку над никому не нужной библиотекой на си, а потом ноют на форумах что 20 лет писали на расте и пришли к выводу какой он говно. Плюс можно по треду и предыдущим заметить что один из представителей ЛГБТК+ никак не успокоится и постоянно срет здесь
Двачую Раст реально никому ненужное говно.
Показатель нормального полноценного языка - проще всего решать практические задачи, например алгоритмы с Leetcode. С этим он справляется хуже всего, даже на форумах по Расту профессионалы пишут что решать на нем подобные алгоритмические задачи с Литкода это бред и максимально неэффективно, в отличие от С++.
"Действительно, если смотреть исключительно на скорость «прототипирования» и лаконичность кода для алгоритмических задач вроде LeetCode, C++ сейчас в большинстве случаев выглядит предпочтительнее:
1. Развитая экосистема для CP
В C++ под рукой синтаксически удобный STL: vector, deque, priority_queue, unordered_map и т.д. Писать решения буквально в несколько строк, не теряя при этом в производительности — привычная вещь.
Подавляющее большинство материалов и примеров в сети именно на C++ — так что можно быстро найти паттерны и шаблоны решения.
2. Компиляция и запуск
На онлайн‑платформах компиляция C++ обычно быстрее, чем Rust — и задержки «compile & run» в сумме меньше отвлекают.
Rust-валидатор за проверку безопасных заимствований и lifetime‑анализ иногда «тормозит» ваши итерации правок.
Но это не значит, что Rust «никому не нужен» — просто область применения у него чуть другая:
Безопасность памяти
Rust гарантирует отсутствие «use-after-free», data race’ов и большинства типовых ошибок сегментации на этапе компиляции. В продакшн‑сервисах это критично, а в разовых задачах LeetCode — не очень.
Параллелизм и высоконагруженные системы
Пишешь многопоточный код — и знаешь, что компилятор не даст тебе сделать гоночную ситуацию. Скорость на уровне C/C++ + безопасность.
Удобство поддержки
Rust‑модули обычно проще рефакторить: чёткие ownership‑и borrowing‑контракты снижают риск регрессий.
> Если ваша основная цель — решать алгоритмические пазлы и соревноваться на LeetCode, то да, C++ («короче и привычнее») выглядит более «эффективным» инструментом.
Но если вы строите сервис, где каждое падение на продакшне дорого обходится, или вам нужен безопасный высокопроизводительный код с тонкими ништяками по параллельности и скорости, Rust зачастую выигрывает.
---
Что делать?
Для соревнований и быстрого обучения алгоритмам — смело используйте C++.
Для проектов, где важна безопасность, контроль ресурсов и отказоустойчивость — берите Rust.
Если хотите прокачать навыки Rust в «алгоритмическом стиле», можно:
1. Изучить Vec::with_capacity и другие методы предвыделения памяти, чтобы снижать накладные расходы.
2. Попрактиковаться с крейтами itertools и smallvec (хотя их не всегда можно использовать на LeetCode).
3. Писать свои облегчённые «шаблоны» для деревьев и графов, чтобы не копировать из C++ STL, а иметь готовый skeleton на Rust.
В итоге выбор языка зависит от задачи и контекста. Что вам ближе сейчас — прокачка алгоритмов или надёжная разработка реальных сервисов?"
"Действительно, если смотреть исключительно на скорость «прототипирования» и лаконичность кода для алгоритмических задач вроде LeetCode, C++ сейчас в большинстве случаев выглядит предпочтительнее:
1. Развитая экосистема для CP
В C++ под рукой синтаксически удобный STL: vector, deque, priority_queue, unordered_map и т.д. Писать решения буквально в несколько строк, не теряя при этом в производительности — привычная вещь.
Подавляющее большинство материалов и примеров в сети именно на C++ — так что можно быстро найти паттерны и шаблоны решения.
2. Компиляция и запуск
На онлайн‑платформах компиляция C++ обычно быстрее, чем Rust — и задержки «compile & run» в сумме меньше отвлекают.
Rust-валидатор за проверку безопасных заимствований и lifetime‑анализ иногда «тормозит» ваши итерации правок.
Но это не значит, что Rust «никому не нужен» — просто область применения у него чуть другая:
Безопасность памяти
Rust гарантирует отсутствие «use-after-free», data race’ов и большинства типовых ошибок сегментации на этапе компиляции. В продакшн‑сервисах это критично, а в разовых задачах LeetCode — не очень.
Параллелизм и высоконагруженные системы
Пишешь многопоточный код — и знаешь, что компилятор не даст тебе сделать гоночную ситуацию. Скорость на уровне C/C++ + безопасность.
Удобство поддержки
Rust‑модули обычно проще рефакторить: чёткие ownership‑и borrowing‑контракты снижают риск регрессий.
> Если ваша основная цель — решать алгоритмические пазлы и соревноваться на LeetCode, то да, C++ («короче и привычнее») выглядит более «эффективным» инструментом.
Но если вы строите сервис, где каждое падение на продакшне дорого обходится, или вам нужен безопасный высокопроизводительный код с тонкими ништяками по параллельности и скорости, Rust зачастую выигрывает.
---
Что делать?
Для соревнований и быстрого обучения алгоритмам — смело используйте C++.
Для проектов, где важна безопасность, контроль ресурсов и отказоустойчивость — берите Rust.
Если хотите прокачать навыки Rust в «алгоритмическом стиле», можно:
1. Изучить Vec::with_capacity и другие методы предвыделения памяти, чтобы снижать накладные расходы.
2. Попрактиковаться с крейтами itertools и smallvec (хотя их не всегда можно использовать на LeetCode).
3. Писать свои облегчённые «шаблоны» для деревьев и графов, чтобы не копировать из C++ STL, а иметь готовый skeleton на Rust.
В итоге выбор языка зависит от задачи и контекста. Что вам ближе сейчас — прокачка алгоритмов или надёжная разработка реальных сервисов?"
Раст взлетел из-за пидоров.
Алгоритмы с Литкода наиболее точно отображают реальные проблемы Computer Science науки.
Зачем тогда по-твоему существует Литкод? Если бы он был не нужен, алгоритмы с Литкода не давали бы на собеседованиях в крупнейшие и самые богатейшие айти-компании мира, и он не был бы одним из самых посещаемых сайтов по айти.
Рыночек порешал и показал эффективность алгоритмов с Литкода. А Раст неэффективен для решения подобных алгоритмов. Вывод - Раст нахуй не нужен. Это просто как 2+2.
>Зачем тогда по-твоему существует Литкод?
дрочить алгоритмические задачки
> Если бы он был не нужен, алгоритмы с Литкода не давали бы на собеседованиях в крупнейшие и самые богатейшие айти-компании мира, и он не был бы одним из самых посещаемых сайтов по айти
ложное логическое следствие
> Рыночек порешал и показал эффективность алгоритмов с Литкода
никакой связи между рынком и литкодом
> А Раст неэффективен для решения подобных алгоритмов
чо несешь, сам то понял?
> Вывод -
перестань быть ведомый идеями из интернета и начинай мыслить самостоятельно
ну и я хуй знает, почитай про логику и причино следственные связи, чтоб так больше не позориться
Понял, чмо? Не позорься!
>Рыночек порешал и показал эффективность алгоритмов с Литкода. А Раст неэффективен для решения подобных алгоритмов. Вывод - Раст нахуй не нужен. Это просто как 2+2.
Ебать у тебя мышление настолько узкое и простое как решение задачки на литкоде по переворачиванию строк, действительно натренировался. В реальности выбор того или иного инструмента затрагивает множество аспектов, как и рабочий код в продакшене редко когда это решение примитивных алгоритмов.
Когда ты там уже доучишься и первую работу найдешь?
Выглядит как говно. Кому вообще придёт в голову использовать реляционную базу в гейминге? Шиза с синхронизацией базы по сети - вообще пизда. Как будто они никогда не видели как неткод в играх выглядит.
да не трясись ты, малой
>USAid
В предыдущих тредах обоссали уже какого-то школьника, который с этим носился. Напомню что это политическая контора, в первую очередь рассчитана на политиков и медиа, а раст финансируют майкрософты с гуглами.
Толстота не удалась и ты решил продолжить позорится
>пишет вебчик на пидорасте
С этого я проигрываю каждый раз. Ебанутые написали свой нодежс на расте и теперь всем рассказывают, что их бекенд работает быстрее. Быстрее ждет ответа от кафки, наверное. Другие языки спокойно существуют в своих нишах, и только чулочники пытаются протолкнуть свой раст в каждую дырку.
>ВСЯ ОБОРОНКА пишет вебчик на пидорасте
Ага, США до сих пор пишет код для оборонки на Аде и Коболе, а в РФ все еще пишут код для ракет на Си стандарта 1980 годов
>Другие языки спокойно существуют в своих нишах, и только чулочники пытаются протолкнуть свой раст в каждую дырку.
У растанутых по другому никак. Видят дырку - хотят что-то запихнуть, ибо психология такая
Нахуй ты сам с собой говоришь?
Пишешь в build.rs println!("какая-то магия {либа нейм}") и всё работает. Только надо хедеры сконвертнуть.
>мэйкфайлы завезут
Вызываешь напрямую rustc и делаешь что хочешь.
>раст - оборнка с вебчиком, фирмавари для дилдаков
>zig https://kristoff.it/
>A static site generator written in Zig.
>The tool that generates documentation automatically for Zig
>A TUI Twitch chat client designed for livecoders.
>A zero-allocation Redis client for Zig that works both in blocking and async mode.
Ору нахуй с этой замены сишки и плюсодерьма.
хруст уже был неоднократно выебан языками зумерами типа говна и зигера, они уже нашли свои ниши, а вот хруст никому до сих пор не нужен.
юзкейс раста это дать инвалидам повод доёбываться до новых проектов с вопросом "а чому не на расте?", поэтому новые проекты могут даже заранее расписывать причину "почему мы не использовали раст", чтобы исключить ебанутых.
>Раст для embedded хорош
Дебил блять, у тебя хелоуворд растовский не влезет в половину железок просто из-за того, что весит как ядро ОС, написанное одним шизофреником.
Сука блять, иногда я хочу, чтобы зздесь можно было постить только после подтверждения квалификации через гойуслуги, такую хуйню несёте.
Выше вон линкали раст в ембедед на продакшене, хули ты пиздишь.
Как там в 2000? Сейчас у микрухи сраного мосфета больше памяти, чем в 486. Или ты про аналоговнеты на технологиях 60х годов? Так там любой яп выше местячкового асм оверкилл.
Так а какой эмбед сейчас кроме батплагов на пидерасте делают? Авионику может или автомобили? Памяти же дохуя.
>Дебил блять, у тебя хелоуворд растовский не влезет в половину железок
6 килобайт не влезет? Лол что.
https://www.youtube.com/watch?v=YgpbYBk1M0E
>6 килобайт
Для чего? Блинка светодиодом? Ну как-то жирновато. Алсо, что-то кроме пресловутого блинка не наблюдаю каких-то мега-йоб на канале этом полуживом.
Он влезал во все мои микрухи, начиная с AVR и заканчивая STM32. Не выдумывай, пидорас теоретик.
> Так а какой эмбед сейчас кроме батплагов на пидерасте делают? Авионику может или автомобили? Памяти же дохуя.
Например много Real Time OS для эмбеддед Раста уже написано
https://arewertosyet.com/
Нет, более мелкая контора, ОООшка
Какой планировщик, ты ебанутый? Так то это полноценные ОС для встроенных систем.
А вот примеры использования Раста в аэрокосмической отрасли:
Lechev.space (GitHub) - Building various aerospace-related projects including a Ground station service using Rust. https://github.com/LechevSpace
Cryptosat.io (GitHub) - Building the Trust Infrastructure for Web3, using satellites, in space. https://github.com/cryptosat
Вот примеры использования Раста в реальной эмбеддед индустрии:
49nord - 49nord develops safe and secure Industrial IoT hardware and applications using Rust. https://49nord.de/rust
Calyptech - Used for high performance embedded system components as an alternative to C. http://calyptech.com/
Espressif (GitHub) - Improving performance of embedded and IoT devices with using Rust in esp products. https://github.com/esp-rs/
System76 (GitHub) - As a Linux-based computer-manufacture, much of our infrastructure and desktop Linux projects are written in Rust. https://github.com/system76
SmartThings(1) - Memory-safe embedded applications on our SmartThings Hub and supporting services in the cloud. https://www.smartthings.com/how-it-works
Star Lab - As an embedded security company, Rust allows us to have confidence in the performance and reliability of our products.
https://starlab.io/
Вопросы будут или снова только пуки от тебя?
> растотред
> я не написал ни строчки на расте
> но с уверенным ебалом пишу хуйню
и так каждый тред...
Почему? Что конкретно не так?
>safe and secure Industrial IoT hardware
>safe and secure
Спарк уже в раст завезли?
Там go и джабаскрипт лол.
https://github.com/esp-rs/esp-hal/
Это пиздец какой-то монстр, с асинком-хуинком, с ансейфом через ансейф. Ебало дебичей, которые этим будут пользоваться.
rust с помощью gcc собирают
https://github.com/thepowersgang/mrustc
оно собрало, но библиотеки ниасилило, хуйня какая то
Не анон выше,но поясню
no_std подразумевает, в том числе, отсутствие ядра операционной системы и стандартной библиотеки языка Си (что характерно для всяких микроконтроллеров/embedded). Заместо операционной системы, в окружении которой выполняется программа, в данном случае, микроконтроллер просто выполняет зашиваемую программу. При этом, так как нет ядра ОС (а только сама програмка/прошивка), то компилятор компилит прогу таким образом, что все данные и инструкции помещались в "стеке" (stack), а не в "куче" (heap) - ибо покуда нет ядра ОС, то нет и оперативки, которая выполняет роль "кучи".
>>41263
Есть альтернатива лучше, включенная уже в GCC (+- могет в rust версии 1.49)
https://rust-gcc.github.io/
Чёт звучит как что-то годное.
Короче, пидорастеры такие пидорастеры.
>оборонка на пидорасте (вебчик)
>криптонаебалово на пидорасте
Странно, что пидорастеры не упоминают одну базюльку на расте, видимо, только лабы пишут.
>Есть альтернатива лучше, включенная уже в GCC (+- могет в rust версии 1.49)
оно может собрать rust c std в чруте, без интернета так, чтобы собранный rust был способен собрать себя из исходников?
Виндузятник спокухнись нах
Нет, ничего не тормозит, но у меня нормальный пека. Использую как IDE RustRover. Анализатор только не мгновенно работает, а после 2-3 секунд после изменения кода.
>>40879
Да, можешь загуглить Discord Go Rust. Там объяснение почему нужно писать круд на расте.
>>44670
Познакомился с концепцией trait и crate, а хочется классов?
>как же раст аналлизатор душит мой дрищецпу
Попробуй использовать workspace, если у тебя большой проект, то раздели его на несколько crate и бери тяни зависимости из главного cargo.toml, используя workspace = true. Если у тебя жирные зависимости, замени их на что-то полегче или избавься вовсе. Опять-таки, смотря сколько у тебя зависимостей.
А как должно быть? Проверка выхода за пределы массива при каждом обращении? Даже в джаве таким не страдают, это слишком медленно.
При чем тут массивы не понял? Я про целочисленное переполнение когда uint перемахивает через 0. Такая арифметика много где используется именно в системном программировании. Переполнения боятся всякие матлибы и прочее, но кто их на расте то пишет?
А при чём тут сегфолты? При переполнении знакового числе нет никаких сегфолтов.
>IDE RustRover
в ровере не аналлизер, там своя реализация.
>>45204
>сегфолт в рантайме
сегфолт это защита ос. раст не доводит дело до ос, вызывая панику.
>>45237
раст вставляет проверку выхода за пределы для паники.
>>45267
>>45270
действительно странно, если речь про раст, то при переполнении происходит паника, но только в дебаге.
> сегфолт это защита ос
Чел, сегфолт - это обращение к невалидному участку памяти. Это часть аппаратной виртуальной памяти, оно не имеет никакого отношения к ОС.
ошибся но всё же думаю, что ос может эмулировать мму. в любом случае это механизм защиты, который не срабатывает из-за паники.
>оно не имеет никакого отношения к ОС
и при этом всё настраивается ос и обработка исключений тоже
>раст вставляет проверку выхода за пределы для паники.
Есть unchecked функции, если что. В зиге тоже есть рантайм проверки в debug режиме и в одном из релиз вариантов - и это правильно.
>Паника на численное переполнение ряя, системный языг какжи так
В gcc есть флажок, чтобы рантайм ебанул тебе исключение на целочисленном переполнении, ну, и тестики гонять с ubsan'ом. х3 можно ли в расте их отключать без nostd.
>>45278
Но сегфолт, который ты ловишь в своём юзерспейсе - это именно сигнал от ос.
Чем больше багов ловишь на тесте, тем очевидно лучше.
Внимание вопрос, к адептам пидораста, как мне написать линкед лист ПРАВИЛЬНО и без ансейфа?
Иди нахуй.
> Но сегфолт, который ты ловишь в своём юзерспейсе - это именно сигнал от ос.
Нет, сегфолт - это аппаратный эксепшен в ЦП. Его обрабатывает ядро и уже передаёт тебе.
Нормальный, вроде, чел. Хочет курс по расту пилить.
Это уже какой-то синдром поиска глубинного смысла. Раст - это просто лаконичный и понятный язык, всё то, что пишется на С++ можно написать на Rust в два раза короче за счёт макросов. При этом имея ту же самую производительность. С++ мне просто не нравится. Там каждая крохотулина ебёт мозги. Rust - это язык для людей. У меня всё окружение сразу настроено - я набрал в консоли cargo test оно протестировалось, набрал cargo add, он добавил зависимость, есть автоматическое форматирование. В С++ же какие-то блять мэйкфайлы, какие-то блять configure, единых тестов из коробки нету, надо ставить с каких-то сторонних сайтов. Всё это с таким вайбом, как будто я попал в 2008-ой год, какую либу не посмотришь, она обновлялась последний раз 10 лет назад и висит на каком-нибудь SVN на sourceforge. На мой личный взгляд, Страуструп слишком перемудрил с языком. Он впихнул туда слишком много абстрактной параши, которая нахуй не нужна. Все эти static_cast, uintptr_t, (uintptr_t(✸)(void ✸, uintptr_t)), хуй запомнишь. Вот например как расшифровать (const void ✸(✸)(void ✸))get_next? Нахуя нужны эти войд со звёздочками, почему допустим просто нельзя написать get_next? Стоит там хоть где-то забыть поставить звёздочку и у тебя программа наебнётся в core dump и ты будешь миллион лет гадать, что же я сделал не так. Ну и плюс, в целом С++ программисты это довольно специфический народ. Везде трёхэтажные конструкции, ноль форматирования и ноль комментариев. Будет какой-нибудь файл на 1000 строк, повсюду говнина со звёздочками, ты даже если и обращаешься к автору, он так смотрит с таким надменными видом как будто ты долбоёб полный и ещё так ответит ну типа отъебись надо же знать))))))) это база)))))))
Сами макросы в русте нельзя назвать простыми и лаконичными, если ты не просто используешь готовые, а сам пишешь, как ты говоришь - для сокращения кода в два раза. Генерацию кода и ковыряние в AST нельзя назвать простым и лаконичным
Что интересно эту хуйню из окамла перетащили в раст. Но в окамле это не часть языка, а прилеплено сбоку библиотекой ppx. А в руст эти макросы вкорячены в сам язык
А может и наоборот. В окамле измачально было апи для манипуляции аст программ на этапе компиляции. Но написали как независимое расширения языка в виде библитеки и внешних инструментов. Но выгдлядит все как врасте.
Зачем все в сам язык пихать? Потом ваш раст превратится в монстра С++
Что за хуйню ты пишешь. Раст всегда был более объёмным по количеству кода по сравнению с крестами. Там где в крестах ты просто пишешь что надо, в расте надо городить велосипеды.
ДА! Я утверждаю что меньше кода. Потому что: 1) можно делать вызовы по цепочке, типа s.chars().filter(|c| c.is_alphanumeric()).collect::<String>().to_lowercase(); это экономит циклы, можно сделать просто .into_iter() и не писать отдельный цикл. 2) макросы опять-таки. Я могу допустим ставить функции логи одной строчкой, метрики, знать сколько раз была вызвана функция, сколько раз с ошибкой, длительность вызова, одной строчкой перед функцией - #[measure([HitCount, Throughput])].
Если ты утверждаешь что с++ более лаконичный - докажи примерами кода, иначе это просто пук в лужу.
> делать вызовы по цепочке
То что ты в одну строчку напихал лапши не значит что кода стало меньше. У тебя в одной строчке 15 языковых конструкций и выглядит это как нечитаемое говно. Почему бы вообще весь код в одну строчку не писать и потом говорить что можно одной строчкой сделать больше чем в питоне. Ты реально шизоид.
Ну подели на несколько строчек, делов-то.
И что ты на пике притащил? Почему справа у тебя проход по массиву, а слева указатели? Не умеешь пользоваться массивами в крестах? Алсо, незнание как запринтить массив в крестах - это пока самое смешное что я видел сегодня. Я уже молчу про то что в крестах есть функционал сложения массивов без циклов.
> А в чем смысл раста?
Перформанс + мемори безопасность + удобство.
> но это же можно делать и на плюсах, разве нет?
Нет. Струструпп предложил ещё лет 5 назад концепцию профилей для С++, вот прям как ты описал дальше
> Просто выделив из плюсов множество, написав банальный кор гайд\стайл, выкинув или запретив например любой менеджмент памяти
и эта идея никуда не пошла. Нет ни одного компилятора, который бы поддерживал профили. Сами профили были обоссаны несколько раз, что хорошо звучат только в теории, а на практике потребуют заново написать С++ с нуля.
#include <iostream>
#include <vector>
#include <numeric>
int main() {
int size = 5;
std::vector<int> a(size), b(size);
std::iota(a.begin(),a.end(),0);
std::iota(b.begin(),b.end(),10);
for(int i=0; i<size; std::cout<<a+b[i++]<<" ");
}
a[ i ]+b[i++]
Вызов принят. Вернусь домой и напишу кожи на расте.
Це мерзость, поэтому будущее за зигом и си (потому что там нет подобной функциональной лапши).
Ещё один обманутый вкладчик.

В крестах хоть нет вырвиглазной лапши и всё консистентно выглядит.
> Rust's (powerful) low-level focus didn't always lend itself to a flexible high-level scripting style needed for rapid prototyping within our specific gameplay architecture.
> Bevy is young and changes quickly. Each update brought with it incredible features, but also a substantial amount of API thrash.
Вторую статью читаю от раст игроделов и одинаковые проблемы. Прототипирование на расте не работает, на нем лучше писать библиотеки, а не игры требующие быстрого тестирования каких-то фичей, которые придётся после теста выкинуть из проекта.
Проблема в том что зачем учить одну и ту же технологию дважды? Системные языки нихуя не простые, на них заскоком формошлепом не запрыгнешь, надо ботать и учиться писать код.
Так что тут не синдром, а прямой вопрос а не хуйней ли мы сейчас занимаемся? Пока что единственный плюс раста, который я вижу и ты привел это его экосистема со сборкой, тесты, зависимости, все приятно писать, тут да, базара зиро.
Но в целом чуть чуть подрочив того же самого можно и достигнуть на симейке + конане. Выглядеть это будет пиздец хуево, но двигаемся дальше. У тебя в твоих примерах описаны не плюсы, а приплюснутая сишка, что уже говно и кринж в мире плюсов. На 20\23 плюсах писать пиздецки как ахуенно, а главное перспективно, в будущий стандарт уже есть пропозалы на экзекуторы от нвидии и либы корутин от фейсбука, тянуть в проекты уже можно прямо сейчас, их добавят как было с либой ренжей. И писать на таких плюсах пиздецки как ахуенно. Можно со спокойной душой катиться на них в хайлод и бекенд и занимать нишу куда претендует раст, кстати как системный язык
>на нем лучше писать библиотеки
Я, блядь, вам с самого первого пидорасто-треда это говорю, но веб-макаки начали раст засовывать туда, где раст будет всегда плохим инструментом.
Но мне больше всего обидно за линукс кернел, пидорастерам БОЛЬШЕ ВСЕХ надо было и им оче быстро завезли поддержку пидораста, но как мы видим, никаких полезный модулей/драйверов на пидорасте нет в мейнлайне. Ёбаные животные нахуй.

Нахуя ты сидишь в треде если ты ненавидишь раст и осеорблчешт тех кто на нем пишет? Иди нахуй своей дорогой путник в С++ тред или откуда ты там вылез.

7 строчек кода и без вложенных инструкций.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=38da5040e1ec26e83f8ce559960c2bc4
>Проблема в том что зачем учить одну и ту же технологию дважды?
У каждого свой взгляд на мир. Кому-то не понравились существующие языки, он решил запилить свой собственный язык. Почему должен быть один язык, один народ, один фюрер? Разных языков не может чтоли быть?
>Системные языки
Про системность никто ничего не говорил, раст можно использовать почти везде - хоть в вебе, хоть в крипте, хоть в эмбеддед. Он скорее универсальный, чем системный.
>а прямой вопрос а не хуйней ли мы сейчас занимаемся?
Я нет, а ты не знаю. Лично я пишу свои проекты на расте, а ты какой-то демагогией занимаешься.
>На 20\23 плюсах писать пиздецки как ахуенно, а главное перспективно
Ну пиши, тебе же никто не запрещает.
>главное перспективно, в будущий стандарт уже есть пропозалы на экзекуторы от нвидии и либы корутин от фейсбука
Похуй если честно. Кто там что тянет, меня не касается, я просто захожу на гитхаб и смотрю библиотеки/фреймворки по факту. Если зайти допустим на сайты издательств, по с++ книги почти не выпускаются в последнее время (я имею ввиду последние 3-5 лет), потому что никому он не интересен. Это уже прошлый век.
>И писать на таких плюсах пиздецки как ахуенно. Можно со спокойной душой катиться на них в хайлод и бекенд и занимать нишу куда претендует раст, кстати как системный язык
САМНИТЕЛЬНА НО ОКЭЙ (с) Олежа Тиньков
Бротишка, пойми. Если ты что то мало мальски конструктивное отвечаешь или говоришь, накидываешь или хотя бы пытаешься. То не надо потом сливаться нууу эт меня не касается, самнительно но окей. Ну раз тебя не касается, так и иди нахуй просто отсюда. Че ты хуйню пишешь какую то? Не надо ничего отвечать просто. Ты что зумер даун дислексивный? Нахуя мне твое лично я, ты не знаю, я нет, чем я занимаюсь. Какая нахуй демагогия? Тебе прямые вопросы задали которые ты сам выставил на обсуждение
Сам иди нахуй. Вы доебали уже. Скатили тред в бессмысленный токсичный срач. Весь тред - никакой пользы, один и тот вопрос "зачем нужен раст". Да какая вам разница, я наверное единственный из всего треда кто не пиздит, а реально делает крупные проекты на расте. Всё остальные только и выясняют почему "Х лучше Y". Зачем нам знать про другие языки, это тред раста. Какие-то залетные приходят и командуют, кому куда идти и как себя вести. Этот тред вообще не для вас, он для междусобойчика растеров.
Всё так
Возможно. Мне просто работу предложили на расте. Я оцениваю перспективы языка и свитча стека. А почему собственно и нет?
А срач наверное и правда заебный учитывая местный контингент. Но тебе то че, тред живет и бампается
Чел, никто не заменяет js на wasm. Wasm для каких-то тяжёлых алгоритмов только нужен. Доступ к DOM у wasm медленнее js.
Фронт перепишем, хром перепишем
Бля наверное ты прав(
>Я оцениваю перспективы языка
Говорю же, язык приятный, быстрый, продвинутое окружение, есть плагины, есть крутые библиотеки, что тебе ещё собака надо? Это же не от нас зависит, что выберет работодатель. Также можно спросить какие перспективы у тайской кухни в России? Или наберет ли молекурная кухня популярность? Это всё вкусовщина. Мы никак не влияем на процесс, язык остаётся нишевым. Ожидаю ли я, что завтра ломанется толпа народа переписывать легаси с пхп на раст микросервисы? Скорее нет, чем да. Но это даже хорошо, что он не становится мейнстримом. Язык держится на идейных людях, а не на тех додиках которые спрашивают "куда можно вкатиться". Здесь случайных людей нету, люди которые выбирают раст делают это осознанно. А не по совету знакомого васяна, который пиздит типа вкатись и зарабатывай 300к в наносек изи.
> Мне одному кажется что официальная документация-книга очень хуевая?
Ну, не идеальная, да. Я в основном ллмки использую если что-то не понятно.
Серьёзно? Ну, ок, можно не смотреть теперь.
Тогда это говно а не язык. Я пердюльки на нем писать не собираюсь сидя в будке сутками. Я жить хочу и деньги зарабатывать. Языки программирования и программирование в целом -- главным образом именно для этого и нужны. Проебывать свое время на хуйню, которая никому не нужна это бред
>Проебывать свое время на хуйню, которая никому не нужна это бред
И тем не менее ты сидишь на сосаче...
> Проебывать свое время на хуйню, которая никому не нужна это бред
> Проебыват время на себя
Лицемер.
>Тогда это говно а не язык
>Я жить хочу и деньги зарабатывать
Да, а что ты ожидал? Что у тебя хуй на 30 сантиметров отрастёт? Зарплата на 300% повыситься? Ты станешь альфачом и все бабы начнут давать? Язык - это просто инструмент. Неадекватно ожидать, что от смены языка, качество жизни повыситься. Если ты до этого был успешным программистом, то ты им и останешься. Проблема в твоих ожиданиях, у языков нет "магического свойства" давать охуенно жить. Если абстрагироваться от всех зарплат, вакансий, работодателей, и так далее, а судить с чисто технической точки зрения то это просто приятный быстрый язык и всё.
>язык приятный
Нет.
>быстрый
Нет.
>продвинутое окружение
Нет.
>есть плагины, есть крутые библиотеки
Нет, не нужны, потому что говно версии 0.0.
>Аналогия с едой
Додик ёбаный.
>Здесь случайных людей нету, люди которые выбирают раст делают это осознанно.
99% выбрали раст, потому что маркетолухи и общественное мнение, которое разгоняется в нужную сторону.
>>47139
Зачем тратить своё время, рассказывая, что ты НЕ СОБИРАЕШЬСЯ там чего-то делать, лол?
У тебя какие то странные представления об успешности. Программисты все время развиваются, ищут стеки и технологии. Если ты этого делать не будешь то ты окажешься позади. Нужно все время стремиться туда где меньше конкуренция, где меньше людей, где больше денег и не хватает экспертности. Это неотъемлемая часть нашей профессии, нужно постоянно переоценивать рынок, вакансии и самого себя. А иначе рискуешь например оказаться на какой нибудь помойной должности никому нахуй не нужной вроде питон бекендера
Я собираюсь. Учи лор очкочтец. Мне работу предлагают на расте, а сейчас я на плюсах пишу бекенды
И зачем ты мне это написал? Мне это даже никак не прокомментировать, или какой ты реакции ждал? Что у тебя в голове было когда ты свои сосиски к клавиатуре тянул?
Так а что именно крыть? Я вообще открыт к критике. Но ты же буквально не написал ничего, какой то гринтекст и все. Или я должен сам за тебя придумать условный аргумент и с ним поспорить? На что мне отвечать то?
Причём здесь экспертность и rust, я нифига не понял. Как это вообще связано. Раст может либо подходить под задачу, либо нет. Ты какую-то хуйню понёс про рынок... Что ты знаешь вообще про рынок... я щас на ocaml'е напишу финансового бота и заработаю дохера денег. Где тогда твой бог будет.
Я сейчас пишу бота, но не финансового на расте. Заработаю кучу денег и скину тебе в личку.
другой анон
Я тоже хочу чтобы мне кучу денег скинули в личку..
> Поможем новичкам, подскажем, что выбрать для веба, игр или, прости господи, блокчейна
И че он во всё это может нормально? То есть я на нём и имиджборду свою смогу сделать и игру запилить?
Конкретно ты хз, но ничего не мешает.
>То есть я на нём и имиджборду свою смогу сделать и игру запилить?
Конечно
https://github.com/bakape/shamichan
Bevy - какая-то заоверинженеренная НЁХ, я не понимаю, о чем они думали.
Два чаю. Все так и было
Линтер максимально не уверен. Вроде надо, а вроде не надо.
https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
Я понимаю, что const fn это аналог constexpr из C++, а значит, вроде как смысл есть пытаться с самого начала делать всё через const. Но при этом в const есть ограничение на использование for цикла, что сразу делает код менее понятным так как приходиться через while делать обход массива.
Какое ваше мнение по поводу использования const?
Константность - это вообще какой-то каргокульт сишке. Компилятор сам должен оптимизировать.
Ща чуть погодя в трапосообществе начнут отменять людей за неиспользования const везде.
Любые const либо static const требуют либо литерал, либо константное выражение, либо константную функцию. Ты не можешь сделать массив размера "запрос GET по адресу malyezalupki.ru"
Окей, спасибо
Знаешь фразу "для каждой задачи свой инструмент"? Так вот для задачи писать низкоуровневый код используют кресты, а для задачи получать ЛГБТ-гранты и долбиться в очко - раст.
запрещённая на территории РФ организация
Там их и 90 нет. В большей части вакансии просто бекенд языки перечислены и накидали ключевых слов чтобы в поиске выдавало. Сами эти компании днища а вакансии не могут закрыть годами.
Но к слову на растущке сейчас гораздо больше дефолт бекенд вакансий и он потихоньку на чьей то инициативе начинает замещать те вещи что на плюсах писались или жабе, и что то можно залететь писать в банк или какой-нибудь маркетплейс просто с улицы
>петушоникс 2002 г.р. сталкивается с суровой реальностью
Да, пидораст оказался никому не нужен. Шок!

там ещё часть, где написано что-то вроде "было бы неплохо знание раста"
Я уверен они имели ввиду доллары.
Чел, сейчас раст - это исключительно разработка блокчейн на Solana Anchor. Нинде больше раста нет.
Если мчитать от первого стабильного релиза, то 10 лет расту и 27 лет С++.
> на Solana Anchor.
А там тоже очко. Документации нихуя нет, разработка под солану тоже в среднем в хуй никому не упала. Буквально раз в год запрос появляется, раз в 2 года в разработку что-то берём.
мимо криптогалера
А надо ли в крипту? Я напротив отсюда срыгнуть хочу, ибо не очень актуальный для переезда в другую страну опыт.
Смарт-контракты под EVM на Solidity хуярятся. Под не EVMки разработки мало. Solana преимущественно для запуска шиткоинов юзается, при любой попытке разработать что-то хоть более серьезное упираешься в незрелость экосистемы. Мне казалось, что ТОН должен был взлететь за счёт TWA в телеге, но пока его не видно. Остальное скорее мёртво.
Бэк на проектах, где я участвовал, преимущественно на ноде, либо ГОвне был. Педераст реже, но тоже есть.
В расте, как и везде, придется ебаться с блокировками. Многопоточка без ебли есть только в голанге, его специально таким придумали.
Для асинхронности есть токио, код выглядит почти как на нодежс.
Понял
>>49321
> И что там в интернете опять говорят?
Да вчера смотрел видос какой-то от ThePrimeTime и он там говорил, что пока вам не нужна многопоточка, то раст кажется очень простым. А когда нужна мноопточка, то сложность обучения улетает на Луну.
https://youtu.be/JeoYA7wABAA?si=u4vhC1IflL-ChC8h
>Кто писал многопоточку на рамте: правда так всё плохо как говорят в Интернетах?
Ну блять, опять одна бабка сказала. Меня лично всё устраивает. Использовать не сильно сложнее чем в typescript. Есть governor https://crates.io/crates/governor он позволяет лимитировать запросы, допустим не более 10 запросов в секунду. Там сложность не столько в самом tokio/futures, сколько в блокировках и атомарностях. У меня есть целая книга по блокировкам. Иногда возникают ошибки по типу "вы пытаетесь запустить tokio runtime внутри tokio runtime". Но в целом, не конец света.
Окей, я решил, что дам расту шанс и закончу на нем проект, в котором нужна многопоточка. Как минимум появится собственное мнение.
>ThePrimeTime
Он же ни на чём никогда не погромировал? Откуда ему знать, где что легко, а где сложно?
Фу вы че реально еще и книги покупаете по этой шляпе. Еще и на русском. Ты че больной
https://www.youtube.com/watch?v=CsKNTwS9kic
https://www.youtube.com/watch?v=WnMin9cf78g
Сейчас бы сравнивать рандомные фреймворки и говорить что протестил скорость ЯП, лол. На крестах надо хотя бы литий брать, а не дракона. Алсо, если взять какой-нибудь vertx и сравнить с растом, то может оказаться что джава быстрее раста, по логике того говноблогера.
Это шутками никогда и не было, пидорастовое коммьюнити крайне ЛГБШное.
Была бы в С хотя бы доля того удобного менеджмента зависимостей как у раста и если бы там на каждой строчке не могли затаиться по UB и сегфолту - так бы оно и было.
> хотя бы доля того удобного менеджмента зависимостей как у раста
vcpkg удобнее раста. Зачем до уровня пердолинга раста опускаться?
> если бы там на каждой строчке не могли затаиться по UB и сегфолту
От тупости ничего не спасёт.
Борроу чекер спасает. GC спасает. Ошибки компиляции спасают. Можно конечно прыгать без парашюта, но я предпочту прыгать с ним чем без него.
vcpkg на крестах работает из коробки, просто пишешь имя зависимости в конфиге и пользуешься ей. Ничего дополнительно не надо делать.
>работает из коробки
из какой блять коробки он у тебя работает
> просто пишешь имя зависимости в конфиге и пользуешься ей
> Ничего дополнительно не надо делать.
а система сборки у тебя этот конфиг каким образом подхватит?)
я уж не говорю о том то чтобы распостранять нормально этот код, люди буквально тебе локально на комп vcpkg ставят
А карго работает из паллета что ли?
>Борроу чекер спасает. GC спасает. Ошибки компиляции спасают. Можно конечно прыгать без парашюта, но я предпочту прыгать с ним чем без него.
Я на LOR устраивал жесткие срачи по этой теме, и тема неоднозначная, на самом деле "не только лишь все понимают, мало кто понимает".
На C/C++ есть статические анализаторы, есть анализаторы рантаймовые, В расте нет GC, а костыльное GC гугл прикручивал к хрому (временное хранилище для освобождённых указателей).
Больше всего суть ситуации описал один чел с хакернью, кратко пересказывая его слова: лучшие проекты написаны на C/C++, потому что над ними работали лучшие программисты.
Именно в этом заключается проблема C/C++ — на нём можно писать хорошо, но 99% макак хорошо писать не смогут. Над ними нужно ставить надзирателей с плётками: линтеры, тесты, кодревью, etc. Rust — это и есть тот фреймворк, где плёточники поставляются из коробки, где небезопасные операции явно отмечены, где целенаправленно замести проблему под ковёр намного сложнее (сравните с C/C++, где часто мимо проблемы проходят даже не обращая на неё внимание). Чтобы писать хороший код на C/C++ я выработал в себе дисциплину: "не бывает несёрьёзных ошибок", "если что-то может упасть — пусть оно упадёт", не использовать сложных неявных конструкций аля сложные деструкторы или копирующие конструкторы, и так далее. Также я из паскаля перенёс привычку ассертить всё на свете, каждый ебаный int, небо и аллаха (эта фишка частично есть в раста). В книжках обычно такому не учат, и даже учат наоборот.
Google — это одна из немногих крупных компаний, которая использует похожий на мой стиль и опубликовала его. Например, там за Boost пиздят ногами, за исключением нескольких легковесных модулей, которых почему-то нет в std.
Но давайте поговорим про более важные вещи — это время компиляции и неоправданная переусложнённость. Это актуально и для Rust, и для C++. Даже не зная, кто сделал Rust, я бы мог вслепую сказать, что это сделали крестовики. Потому что такой сложный и медленный пиздец могут терпеть только крестовики. Они на полном серьёзе считают, что два часа компиляции — это нормально, что спецификация языка на 600 страниц — это нормально, спецификация стандартной либы на 1000 страниц — это ок. И это новый язык, никакого legacy. Rc<RefCell<Box<dyn Trait>>> откушать не желаете?
Всё ебаную историю простота была преимуществом ЯП, но с приходом раст это свойство стало устаревшим. Теперь чем ебанутее ЯП, тем он лучше.
Я серьёзно не понимаю, кто те долбоебы, которым нравится Rust. Не "приходится работать с Rust", а реально "нравится работать"?
>Борроу чекер спасает. GC спасает. Ошибки компиляции спасают. Можно конечно прыгать без парашюта, но я предпочту прыгать с ним чем без него.
Я на LOR устраивал жесткие срачи по этой теме, и тема неоднозначная, на самом деле "не только лишь все понимают, мало кто понимает".
На C/C++ есть статические анализаторы, есть анализаторы рантаймовые, В расте нет GC, а костыльное GC гугл прикручивал к хрому (временное хранилище для освобождённых указателей).
Больше всего суть ситуации описал один чел с хакернью, кратко пересказывая его слова: лучшие проекты написаны на C/C++, потому что над ними работали лучшие программисты.
Именно в этом заключается проблема C/C++ — на нём можно писать хорошо, но 99% макак хорошо писать не смогут. Над ними нужно ставить надзирателей с плётками: линтеры, тесты, кодревью, etc. Rust — это и есть тот фреймворк, где плёточники поставляются из коробки, где небезопасные операции явно отмечены, где целенаправленно замести проблему под ковёр намного сложнее (сравните с C/C++, где часто мимо проблемы проходят даже не обращая на неё внимание). Чтобы писать хороший код на C/C++ я выработал в себе дисциплину: "не бывает несёрьёзных ошибок", "если что-то может упасть — пусть оно упадёт", не использовать сложных неявных конструкций аля сложные деструкторы или копирующие конструкторы, и так далее. Также я из паскаля перенёс привычку ассертить всё на свете, каждый ебаный int, небо и аллаха (эта фишка частично есть в раста). В книжках обычно такому не учат, и даже учат наоборот.
Google — это одна из немногих крупных компаний, которая использует похожий на мой стиль и опубликовала его. Например, там за Boost пиздят ногами, за исключением нескольких легковесных модулей, которых почему-то нет в std.
Но давайте поговорим про более важные вещи — это время компиляции и неоправданная переусложнённость. Это актуально и для Rust, и для C++. Даже не зная, кто сделал Rust, я бы мог вслепую сказать, что это сделали крестовики. Потому что такой сложный и медленный пиздец могут терпеть только крестовики. Они на полном серьёзе считают, что два часа компиляции — это нормально, что спецификация языка на 600 страниц — это нормально, спецификация стандартной либы на 1000 страниц — это ок. И это новый язык, никакого legacy. Rc<RefCell<Box<dyn Trait>>> откушать не желаете?
Всё ебаную историю простота была преимуществом ЯП, но с приходом раст это свойство стало устаревшим. Теперь чем ебанутее ЯП, тем он лучше.
Я серьёзно не понимаю, кто те долбоебы, которым нравится Rust. Не "приходится работать с Rust", а реально "нравится работать"?
>> хотя бы доля того удобного менеджмента зависимостей как у раста
>vcpkg удобнее раста. Зачем до уровня пердолинга раста опускаться?
У раста нихуя нет, чтобы там нужно было с какими-то зависимостями разбираться, язык несколько лет назад возник только. Вот когда оно обрастёт legacy и несколькими конкурирующими пакетными менеджерами — тогда поговорим про удобство менеджера зависимостей.
Например, чо там у нас с зависимостями от библиотек, написанны не на Rust, а на C/C++ или даже Fortran?

> а система сборки у тебя этот конфиг каким образом подхватит?
Таким же как и исходники, лол? Поддержка vcpkg во все современные системы сборки встроена уже.
> "не бывает несёрьёзных ошибок", "если что-то может упасть — пусть оно упадёт"
Это всё сорта говна. В хорошем коде уменьшают количество мест, где может возникнуть ошибка, а не выдумывают как эти ошибки получше размазать по жопе. Это в расте выдумали каждый вызов функции обмазывать в Result/Option, т.е. каждый вызов может зафейлиться и ты обязан думать об этом. В геймдеве, например, хорошая практика делать так чтобы невалидный объект просто делал ничего, а не вызывал ошибки.
> привычка ассертить
Хорошая привычка. Некоторые умные бли из NASA советуют ассертить не только инпут, но ещё и оутпут прямо внутри функции. Не рофл если что, сам иногда когда не лень так делаю.
> Но давайте поговорим про более важные вещи — это время компиляции
Просто купите новый компуктер.
> и неоправданная переусложнённость.
Не согласен. Раст очень простой язык, прям подозрительно простой. Про аминхронщину не знаю, я пока в один поток пишу программу.
> Rc<RefCell<Box<dyn Trait>>> откушать не желаете?
Ну вот это единственное, что меня беспокоит в языке. Сколько видосов про него не посмотрел в каждом матерят канкаренси в расте.
> Не "приходится работать с Rust", а реально "нравится работать"?
Чел, я не знаю как после плюсов можно не любить раст. Мой опыт работы с плюсами один в один как твой. Постоянное ощущение, что я где-то мог накосячить и поэтому нужно всё перепроверить 10 раз. В расте же я просто и расслабленно пишу код потому что борроу чекер, компилятор и строгий линтер мне скажут если я где-то ошибся.
>Rc<RefCell<Box<dyn Trait>>>
>Язык дизайнился не в 80-х
>Современный языг
)) Может проще научится писать на сях?
Подобное убило бы любой язык. Писать на чем-то, что постоянно ломается невозможно с практической точки зрения. Но я предлагаю другую концепцию. Да, мы ломаем обратную совместимость 10 раз на дню, но в сам язык изначально вшит механизм миграции от версии X.0.0 к версии (X+1).0.0. Обратная совместимость сломана, но мы вам поможем сделать перход на следующую версию максимально безболезненным.
Не знаю насколько такое возможно на практике, но мне кажется, что это единственный способ для языка не превратиться в легаси на каком-то моменте своего развития.

Так это настройки системы сборки, лол. Это же не раст, где в конфигах ковыряться надо и писать простыни в build.rs. А тут больше и нечего показывать, потому что ничего нет, система сборки просто подтягивает зависимости и всё.

Блять, агуша, хватит позориться
Буквально нихуя в вопросе не понимаешь, просто в ide три кнопочки нажал и думает что это ИЗ ПОД КОРОБКИ всё само работает, даже не понимает что его vcpkg не сама система сборки запускает
блядь, мне тоже интересно
зачем покупать бумажные книги на русском??
чтобы опечатки и неточности перевода считать на полях?
это же пиздец по-моему

>простыни в build.rs
Посмотрел на сборку в systemd, там ебать какая простыня для мезона, потом вспомнил какую простыню ебашит зиг для дефолтового проекта в build.zig, потом вспомнил, какая у меня ебала в cmake (простыня + куча модулей). И ещё миллион других систем для сборки и конфигурации с тьюринг полными язычками.
>зачем покупать бумажные книги на русском??
Потому что в рф русский язык - священная корова, на игнрише хуй ты где купишь книги. Если начать продавать нужные книги на игрише рюсский язык ждёт участь какого-нибудь к примеру беларусского языка.
вот книжка анона на озоне, например
https://www.ozon.ru/product/rust-atomics-and-locks-low-level-concurrency-in-practice-1981445025/
можно набрать "rust книга на английском" там же в поиске и будет куча книг по расту, где язык издания = Английский
если для тебя "русский язык - священная корова", то забудь про раст и хуярь только на 1С
хуйню ты несешь, даже на знаю рофлишь ты или нет
>хуйню ты несешь, даже на знаю рофлишь ты или нет
Ну-ка найди мне TAOCP на игрише в продаже, сучька.
ты походу реально ебанат
вот на Озоне:
https://www.ozon.ru/product/the-art-of-computer-programming-vol-1-4b-5-1935928199/
https://www.ozon.ru/product/the-art-of-writing-efficient-programs-iskusstvo-effektivnogo-programmirovaniya-na-angl-yaz-363064998/
вот на амазоне: https://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043
через всякие "бандерольки" народ из РФ там прекрасно покупает
но я все равно не понимаю нахуя нужна бумага
ну если только подарочные издания, как предмет интерьера
>амазон
>китай
Це не росiя. В рф только переводные продаются, ещё раз.
>бумага
Почему люди предпочитают бумажные книги тебя ебать не должно, дегенерат.
а, ну понятно, теплый ламповый звук, виниловые пластинки, гоям не понять
Ну вот кстати не китай, они как раз старые совковые книжки издают, всякие от packt pub, только там размер какой-то здоровый сука и мягкие обоссаные обложки.

Держи. У cmake в комплекте есть скрипт для автоустановки зависимостей vcpkg, просто говоришь ему использовать его и всё. Но зачем использовать cmake, когда есть msbuild.
> У cmake в комплекте есть скрипт для автоустановки зависимостей vcpkg
Прекрасно, я как понимаю пресет тебе тоже в комплекте идёт? надеюсь никому больше пресеты не понадобятся, и можно полностью его vcpkg отдавать, ну или кастомить свои
Теперь по прошу к вниманию, добавление кастомных скриптов, добавление кастомных пресетов это ИЗ ПОД КОРОБКИ, не перепутайте
>зачем использовать cmake, когда есть msbuild
потому что в отличии от msbuild, cmake это стандарт индустрии
ладно, с месоном и остальным я тебя мучить уже не буду, если не совсем тупой уже на cmake должен был понять что не прав
> потому что в отличии
Звучит как ВРЁТИ, когда ты игнорируешь рабочее решение и специально выбираешь пердольное.
А cmake кроссплатформенный? В крестах не существует кроссплатформенности, что-то сложнее лаб всегда имеет куски под конкретную платформу, как и сборка со спецификой под неё. Открой любой "кроссплатформенный" проект на cmake и посмотри на скрипт сборки. А на msbuild собирается весь виндовый софт, никто в здравом уме не будет использовать cmake для сборки под виндой, особенно когда cmake сам генерирует проект под msbuild, а не собирает.
Ну уже слишком жирно, даже студентота такой бы бредик не написала
Если уж реально хочешь по этому поводу поспорить то хотя бы иди в плюсо тред
> В крестах не существует кроссплатформенности, что-то сложнее лаб всегда имеет куски под конкретную платформу, как и сборка со спецификой под неё.
Ну, если так судить, то кроссплатформенных тулзов вообще не существует если только они не сложнее лаб. Я понимаю под кроссплатформенностью то, что 90 % сборочного скрипта будет одинаковой между платформами.
мимо
>В хорошем коде уменьшают количество мест, где может возникнуть ошибка, а не выдумывают как эти ошибки получше размазать по жопе...
>В геймдеве, например, хорошая практика делать так чтобы невалидный объект просто делал ничего, а не вызывал ошибки.
Да, я совсем забыл упомянуть важный момент: в геймдеве раст не нужен, потому что падение по ассерту и падение по сегфолту по результатам не отличаются. То есть, геймдеву раст вообще нихуя не даёт.
Собственно, ты прав по поводу "лучше чтобы ошибки нельзя было совершить" — потому геймдев довольно активно уходит от C/C++ и прочей низкоуровневины в сторону того же C#, по крайней мере на уровне логики.
> падение по ассерту и падение по сегфолту по результатам не отличаются
Так пиши debug_assert(), а не assert().
>Просто купите новый компуктер.
12 цпу и 32 Гб оперативы уже впритык — я правильно понел?
>Раст очень простой язык, прям подозрительно простой. Про аминхронщину не знаю, я пока в один поток пишу программу
Нахуй нужен раст в скриптах аля питон? Я их на питоне и напишу, LOL. А где нужна производительность — там асинхронность и потоки.
>В расте же я просто и расслабленно пишу код потому что борроу чекер, компилятор и строгий линтер мне скажут если я где-то ошибся
Ты не поверишь, но именно этого я ждал от раста — просто пишешь код, а он тебе автоматом выводит типы и проверяет заимствования в этой новой парадигме "move by default". Пока не увидел, какой пиздец нужен, если ты хочешь переслать объект из потока в поток:
Ехал Rc через RefCell
Видит Rc — в RefCell Trait
Сунул Rc dyn Trait в RefCell
Rc<RefCell<Box<dyn Trait>>>
Потому что если ты хочешь сложные динамические объекты, то тебе НУЖЕН сборщик мусора. Как в Golang. Это не значит, что теперь GC будет ходить по каждому int в стэке — он будет лишь проходить по объектам из глобальной кучи. Про это Йося Крейнин ещё лет 10 назад писал в великом Frequently Questioned Answers.
Причём, я подчеркну, что счётчик ссылок — это весьма неэффективный способ организации общего доступа, да ещё и со своими проблемами. Например, если ссылка на объект со счётчиком ссылок лежит в глобальной переменной, то эту переменную нужно будет менять под блокировкой (счётчик защищает объект, но не ссылку на него) — в общем, ебатории там столько, что возникают мысли "да ну его нахуй этот раст, пойду голанг учить".
Или, например, дёрнуть туда-сюда счётчик — это грязная кэш линия, а потому нихуя не zero-cost. В частности, в CPython прямо катастрофа для желающих форкнуть процесс и получить read-only представление, поскольку их ебучий GC сделан на счётчиках ссылок (язык изначально делался вообще без GC), и при цикле сборки он дрочит счётчики, делая страницы грязными и нивелируя всё преимущество форка.
>Так пиши debug_assert(), а не assert().
Ну в геймдеве так и делают. Но чаще ничего не пишут, просто игнорируют ошибки.
Ну, ты прав, всё так. Вообще создатели раста собираются что-то делать с асинхронщиной в языке? Я где-то видел разбор, что они забили болт и сказали, чтобы сообщество само придумало решение.
>то тебе НУЖЕН сборщик мусора
Ты не обязан использовать стандартные контейнеры. Сборка мусора не обязана быть черным ящиком, а может быть встроена в алгоритм по построению. Даже в плюсах, но всем насрали в голову с RAII.
>Ну уже слишком жирно, даже студентота такой бы бредик не написала
>Если уж реально хочешь по этому поводу поспорить то хотя бы иди в плюсо тред
В крестах есть больше одного компилятора. Я ещё раз повторяю, что в расте никаких проблем нет потому ,что в нём нихуя нет: единственный компилятор, крошечный набор библиотек, половина которых просто биндилнги к внешним либам.
Окружения для сборки под винду и под никсы радикально отличаются. Да, есть подвижки к унификации, но всё равно разница большая до сих пор.
Да, cmake умеет собирать под винду, но сборка под винду сильно отличается, и потому если проект не писался специально для поддержки винды и это не hello world, то ни на какой винде он не соберётся (без позитксовых эмуляторов аля cygwin, которые создают больше проблем, чем решают).
Короче говоря, сравнивать один из старейших ЯП с желторотой новоделкой несерьёзно вообще, это разные категории.
> async_std
О мертвых или хорошо или ничего.
Поддержка многопоточности в расте по факту в двух либах для разрабатывается: в Tokio и в Rayon.
тебя никак не смущает что ты от VCPKG ВСЁ ИЗ ПОД КОРОБКИ
пришел к тому что ПРОЯВИТЕ ПОНИМАНИЕ, КРОССПЛАТФОРМЕНОСТИ НЕТ ИЗ ПОД КОРОБКИ
Никаких. Это просто не часть языка. Это тоже самое, что сказать, что в C++ есть же Boost, в котором есть всё что нужно.
>Это просто не часть языка
Такое можно сказать про любую либу или фреймворк построенные на языке X, но не вхожие в его стандартную либу.
Ну да, в этом и суть. Сегодня либа поддерживается, завтра не поддерживается. Либа не может изменить существующий семантику/синтаксис языка. Либа не может изменить вообще ничего в языке, она находится в состоянии "я всё это хаваю, у меня нет выбора". Опенсоурсная либа не должна заменять ожидаемую базовую функциональность языка, это просто неправильно.
Это уже общая проблема всей современной разработки, вместо того чтобы сделать и вылизывать 1 единственный универсальный ЯП для всего и инфраструктуру под него же продолжают пилиться всё новые и новые никому не нужные.
а потом выяснится, что универсальнось инструмента влечет за собой хуевость в решении каждой конкретной задачи
и поэтому нам надо несколько языков, чтобы каждый отвечал за свой спектр задач, но делал это охуенно
web

принять по http джон, сохранить в бд и пукнуть в кафку.
Так, 10 лет стажа на жабе, заинтересовал этот ваш раст. Дошёл до 7 главы учебника. Думаю дай-ка напишу свой стек для практики. И ОБОСРАЛСЯ. Чот депрессия накатила от сложности и стоит ли дальше пытаться. В учебнике как будто за ручку ведут по узкой тропинке, а вокруг ебучий варп. А ведь в реальной жизни этой тропинки не будет.
Возможно ли в struct обознать массив с неизвестной длиной?
Либо Box, либо через Layout и alloc.
> Так, 10 лет стажа на жабе, заинтересовал этот ваш раст.
Привет, брат жабист.
> Чот депрессия накатила от сложности и стоит ли дальше пытаться.
Чатгопота в помощь. Я наоборот поражаюсь простоте языка. Но я его сравниваю с плюсами, на которых пишу hot-paths жабовской библиотеке, а не с жабой.
> Возможно ли в struct обознать массив с неизвестной длиной?
Vec<i32>
помню в 2007 прочитал книгу по плюсам от шильда. Потом случайно узнать про жабу и прочитал книгу по ней, и прям на контрасте наслаждался простотой и что разработано для дураков. С тех пор жаба кормит
Вот тебе промт для копилота:
write stack in rust. do not use vec. use array of various size, pass size in constructor. DO NOT USE Vec::with_capacity
У меня такая же история. В вузике работал лаборантом и программировал на С++. Потом устроился на завод и понял, что надо перекатываться в настоящее айти. За год выучил жабу и стал андроид разраб. После плюсов жаба училась очень легко.
Дурак твой копайлот.
>>51257
Коротко: нет, “чистый” массив неизвестной длины внутриstruct вRust объявить нельзя – язык требует, чтобы каждый полностью‑значимый (Sized) тип знал свой размер на этапе компиляции.
Но есть три практичных обходных пути, каждый подходит под разные сценарии.
---
1. Vec<T>— динамический вектор
struct Packet {
id: u32,
payload: Vec<u8>,
}
Хранит длину и данные в одной кучевой аллокации.
Дешёвое создание (Vec::new()), гибкое пополнение, срезы через &payload[..].
Самый «жабовый» вариант (аналог ArrayList, только без лишней синхронизации).
2. Box<[T]>или Arc<[T]>— «фиксированный после создания» срез
struct Packet {
id: u32,
payload: Box<[u8]>, // или Arc<[u8]> если нужно share‑ить
}
Выделяете ровно столько байт, сколько нужно, а потом структура становится иммутабельной.
Нет лишнего capacity, нет метода push, зато меньше памяти и кеш‑френдли.
Хорошо ложится на паттерн «прочёл из сети → положил, не меняешь».
3. “Кастомный DST” (dynamically‑sized type) ― когда нужна C‑подобная «структура‑с‑хвостом»
#[repr(C)]
struct PacketHeader {
id: u32,
len: u32,
data: [u8], // UNSIZED хвост
}
impl PacketHeader {
// Чтение id/len безопасно, но сами экземпляры живут ТОЛЬКО за указателем
}
Разрешён только у последнего поля, и такой PacketHeader нельзя хранить как значение — его можно держать лишь через Box<PacketHeader>, &PacketHeader, Arc<PacketHeader> и т.п.
Создаётся «ручной» аллокацией + копированием данных, либо через crates вроде thin-vec / ouroboros.
Делают так в низкоуровневом коде (парсер бинарных протоколов, FFI‑обвязка).
В стабильном Rust 1.76+ уже можно безопасно “расширять” Box<PacketHeader<[u8; N]>> → Box<PacketHeader> через unsizing coercion .
---
Почему нельзя просто [T]?
Обычный struct в Rust имплементирует Sized по умолчанию.
[T] (срез) — unsized: у него нет компиляционной длины, поэтому он не может лежать «прямо» внутри значения фиксированного размера. Именно поэтому компилятор потребует обёртку‑указатель.
---
Что выбрать на практике?
Что нужноРешение
Мутируемый grow/shrink контейнерVec<T>
Фиксированная, но динамически определяемая длинаBox<[T]> / Arc<[T]>
Низкоуровневый «struct+tail» (zero‑copy, FFI)Custom DST
---
Маленький совет вместо депрессии
Начните с Vec – это буквально два слова кода, а под капотом делает всё нужное.
Когда понадобится убрать overhead, замените Vec на Box<[T]>.
А уж если полезете в zero‑copy/FFI, тогда и достанете тяжёлую артиллерию с DST.
Rust действительно сначала ведёт «за ручку», но по мере роста задач открывается всё больше голых проводов. Спокойно, шаг за шагом: сначала удобство, потом оптимизация, потом unsafe‑магия. Ты же 10лет на Java пережил— с Rust тоже справишься 🙂
Удачного кодинга!
Дурак твой копайлот.
>>51257
Коротко: нет, “чистый” массив неизвестной длины внутриstruct вRust объявить нельзя – язык требует, чтобы каждый полностью‑значимый (Sized) тип знал свой размер на этапе компиляции.
Но есть три практичных обходных пути, каждый подходит под разные сценарии.
---
1. Vec<T>— динамический вектор
struct Packet {
id: u32,
payload: Vec<u8>,
}
Хранит длину и данные в одной кучевой аллокации.
Дешёвое создание (Vec::new()), гибкое пополнение, срезы через &payload[..].
Самый «жабовый» вариант (аналог ArrayList, только без лишней синхронизации).
2. Box<[T]>или Arc<[T]>— «фиксированный после создания» срез
struct Packet {
id: u32,
payload: Box<[u8]>, // или Arc<[u8]> если нужно share‑ить
}
Выделяете ровно столько байт, сколько нужно, а потом структура становится иммутабельной.
Нет лишнего capacity, нет метода push, зато меньше памяти и кеш‑френдли.
Хорошо ложится на паттерн «прочёл из сети → положил, не меняешь».
3. “Кастомный DST” (dynamically‑sized type) ― когда нужна C‑подобная «структура‑с‑хвостом»
#[repr(C)]
struct PacketHeader {
id: u32,
len: u32,
data: [u8], // UNSIZED хвост
}
impl PacketHeader {
// Чтение id/len безопасно, но сами экземпляры живут ТОЛЬКО за указателем
}
Разрешён только у последнего поля, и такой PacketHeader нельзя хранить как значение — его можно держать лишь через Box<PacketHeader>, &PacketHeader, Arc<PacketHeader> и т.п.
Создаётся «ручной» аллокацией + копированием данных, либо через crates вроде thin-vec / ouroboros.
Делают так в низкоуровневом коде (парсер бинарных протоколов, FFI‑обвязка).
В стабильном Rust 1.76+ уже можно безопасно “расширять” Box<PacketHeader<[u8; N]>> → Box<PacketHeader> через unsizing coercion .
---
Почему нельзя просто [T]?
Обычный struct в Rust имплементирует Sized по умолчанию.
[T] (срез) — unsized: у него нет компиляционной длины, поэтому он не может лежать «прямо» внутри значения фиксированного размера. Именно поэтому компилятор потребует обёртку‑указатель.
---
Что выбрать на практике?
Что нужноРешение
Мутируемый grow/shrink контейнерVec<T>
Фиксированная, но динамически определяемая длинаBox<[T]> / Arc<[T]>
Низкоуровневый «struct+tail» (zero‑copy, FFI)Custom DST
---
Маленький совет вместо депрессии
Начните с Vec – это буквально два слова кода, а под капотом делает всё нужное.
Когда понадобится убрать overhead, замените Vec на Box<[T]>.
А уж если полезете в zero‑copy/FFI, тогда и достанете тяжёлую артиллерию с DST.
Rust действительно сначала ведёт «за ручку», но по мере роста задач открывается всё больше голых проводов. Спокойно, шаг за шагом: сначала удобство, потом оптимизация, потом unsafe‑магия. Ты же 10лет на Java пережил— с Rust тоже справишься 🙂
Удачного кодинга!
Так он реально хорош. Мне нужно рассчитать алгоритм где генерируется дерево с миллионами узлов, а потом ещё миллионами раз нужно его пройти обновляя веса нод.
Питон думаешь с таким справиться? А может жаба? Или скала? Или свифт? Не, с таким справятся три языка: С, С++, Rust. И из них самый пиздатый это раст.
Так что не пизди.

ГНУОИД
>а потом ещё миллионами раз нужно его пройти обновляя веса нод
Ты там NumPy переизобретаешь с матричными вычислениями? Так ебани на CUDA.
> Так ебани на CUDA.
Блять. Ты будешь смеяться. Раст не поддерживает куда. А на С++ я не хочу писать этот алгоритм. Вот так вот...
Лол. Кек.
>тебя никак не смущает что ты от VCPKG ВСЁ ИЗ ПОД КОРОБКИ
>пришел к тому что ПРОЯВИТЕ ПОНИМАНИЕ, КРОССПЛАТФОРМЕНОСТИ НЕТ ИЗ ПОД КОРОБКИ
Ты кому отвечаешь? Vcpkg — это удобная windows-only параша. Всё.
Под виндой ты не можешь просто поставить Rust на комп и сразу компилировать бинари — тебе нужно либо MSVC, либо MinGW.
Далее, сам софт на Rust будет кроссплатформенным только если ты его сделаешь таким. То есть, даже в рамках Cargo + Rust на нескольких платформах ситуация не такая простая, как некоторым кажется.
В C/C++ просто ещё больше платформ, ещё больше компиляторов, и ещё больше разных систем сборки-пакетизации.
Чел, съеби уже со своими врёти. Тебе уже показали что в cmake точно так же vcplg работает без какого-то пердолинга.
В vcpkg из коробки есть тулчейн для симейка
Просто указываешь cmake -DCMAKE_TOOLCHAIN_FILE=/путь/к/vcpkg/vcpkg.cmake
Надо знать куда коды симейка писать после установки каждой либы. Но там немного
Да из коропки. Сидишь в коробке из под холодильника и срешься в интернете что лучше руст или цпп..
>дёрнуть туда-сюда счётчик
>zero-cost
Это про другое, еблан, зеро-кост -- это, когда предоставленная тебе хуитка из каропки, будет недороже твоего собственного лисапеда. Пример из жизни классеги из плюсоговна.
>Ехал Rc через RefCell
У пидораста один плюс для анальников - это нескучные обои синтаксис, потому что можно ебануть всё через свои аллокаторы/статически аллоцированые вещи, и твой баран чекер как бы уже и не нужен.
Да, но если не будет финансирования, то всё это такое себе. Рисковать переписыванием всего кода на С++ потому что поддержку раст-куды прекратят не хочется.

Когда там уже 1.0 будет? И вообще zig это какой-то аналог сишки, а не крестов/раста, слишком мало сахара. После крестов выглядит неочень, на простейшие действия надо лепить бойлерплейт, а нормальные абстракции не написать. Когда привыкаешь в крестах изобретать велосипеды на ходу, хочется везде иметь такую возможность. Я вот недавно начал в стрелочки лямбды пихать, нравится.
>слишком мало сахара
В этом и суть.
>метахуйня
Челибос зиг не для писания библиотек.
>нормальные абстракции не написать
>нормальные
Сорокина читни.
>Под виндой ты не можешь просто поставить Rust на комп и сразу компилировать бинари — тебе нужно либо MSVC
Для того чтобы запустить программу под ОС, нужно слиноковать системную либу этой ОС, какой кошмар.
>Для того чтобы запустить программу под ОС, нужно слиноковать системную либу этой ОС, какой кошмар.
Кроссконпеляция, shared objects/dll. Ne?
Тебе в любом случае нужны хедеры.
>Для того чтобы запустить программу под ОС, нужно слиноковать системную либу этой ОС, какой кошмар.
Держу на связи: Golang и FPC компилируют бинари без внешних тулзов.
Здесь прикол скорее в том, что у них собственные заголовки для системы, а си-подобные языки пытаются напрямую использовать системные заголовки, типа чтобы всегда видеть актуальные заголовки.
Эта хуйня с Unix повелась, где было модно системный API специфицировать строго в форме заголовочных файлов для C, но для винды и Linux это не актуально, потому что у этих осей есть свой стабильный бинарный интерфейс.
Также, и Golang, и FPC изначально строились как системонезависимые высокоуровневые ЯП, а Си-подобные ЯП обычно подразумеваются как жёстко зависящие от системы и низкоуровневые.
Если ты не изолируешься от платформы, то ты становишься от неё зависимым — что и требовалось доказать. А мы о чём-то спорим?
> но для винды это не актуально
Тогда зачем, по-твоему, для у тебя стоит десять MSVC Redistributables разных версий?
upd. Да и в Линуксе бинарь, собранный под новый libc, не запустится со старой версией.
>Тогда зачем, по-твоему, для у тебя стоит десять MSVC Redistributables разных версий?
Там по большей части изменения, касающиеся C++.
>Да и в Линуксе бинарь, собранный под новый libc, не запустится со старой версией.
Последняя смена мажорной версии libc была 28 лет назад, лол. Зависимость от минорных версий libc — это уже следствия забития болта на бинарную совместимость интерфейса libc, её просто никто даж не пытается поддерживать. Поддерживают только зависимость по API заголовков и ABI ядра Linux.
Зачем мне читать. Абстракции не только про удобство, но и про производительность. Сишка очень сосёт в ООП-задачах например деревья, когда ты не можешь нормально объяснить компилятору что ты хочешь, вместо этого вываливая кучу процедурных костылей и сидя потом каждую строчку дроча в ассемблере, пытаясь сделать быстро. В то время как в крестах это хуяк-хуяк из классов и оптимизатор за тебя всё делает.
> зиг не для писания библиотек
Любой ЯП с невыразительным синтаксисом выразительность - это когда минимум повторений одинаковых конструкций языка, у раста например постоянно то лапша монад, то однотипные паттернматчинги только для либ и годится. Зачем писать в 3 раза больше кода, когда можно не писать. Поэтому раст так много где не взлетает, например в геймдеве. И зиг туда же, сидя примерно с таким же уровнем мусорности бойлерплейтного кода.
В винде их 3 штуки, а в пердоликсе даже libc не всегда есть, какой-нибудь musl встречаешь и пошёл нахуй. Пересборка софта каждый раз под новые зависимости - это только у пердоликса. Что уж тут говорить, когда даже финский нацик признавал какое говно дистрибуция софта в линуксе по сравнению с виндой/маком. Каждый дистр - это несовместимая хуйня.
>когда даже финский нацик признавал какое говно дистрибуция софта в линуксе по сравнению с виндой/маком
А то что жалкое подобие Миникса монструозное говно он не сказал? Ща Раст в ядро затянет и можно закапывать.
>Там по большей части изменения, касающиеся C++.
>
И вызовы WinAPI. Под Линуксом Го еще дергает системные вызовы напрямую, но на Винду всем похуй, он точно также линкуется с майковским рантаймом. Как и любой другой язык.
>Абстракции
>производительность
Выбери что-то одно
>деревья
Ненужны. Понимаю, для ньюфагов кажется что деревья решают любые проблемы и без деревьев нельзя жить. Но деревья. Ненужны.
> Любой ЯП с невыразительным синтаксисо
Zig это когда ты берёшь и пишешь свой генератор и выражаешь любое возможное и невозможное дерьмище. Деревья в зиге нужно писать компайлтайм, чтобы все все ссылки были захардкоржены в этом дереве и не было никаких проходов дерева во время исполнения.
> Но деревья. Ненужны.
Нужны.
> Деревья в зиге нужно писать компайлтайм, чтобы все все ссылки были захардкоржены в этом дереве и не было никаких проходов дерева во время исполнения.
Лол, удачи в построении дерева на миллиарды нод в компайлтайме.
Почему же тогда в репе зига активность в 20 раз ниже чем у раста? И всего в два раза выше чем у Карбона. Когда Карбон выйдет в состояние рабочего компилятора, про зиг все забудут как про страшный сон.
Не остановимся. Судя по репе активность весь 2024 увеличивалась. В этом году допилят дизайн безопасной памяти. На конец 2026 планы выкатить 0.1 версию компилятора.
А как в карбоне гарантируют безопасность памяти? GC?
>Нужны.
Нет. Деревья для пидоров.
>Лол, удачи в построении дерева на миллиарды нод в компайлтайме.
Тут ты прав, но деревья всё равно не нужны.
>>52217
> Почему же тогда в репе зига активность в 20 раз ниже чем у раста?
Потому что пидоров меньше, белая раssa угнетена чулочниками и соевыми выблядками. Ничего, дух предков ещё не пал, не сломлено наше божество.
>про зиг все забудут как про страшный сон.
Зачем мне забывать про божественный компайлтайм в котором я строю деревья с захордкорженными индексами?
людей которые не собираются писать на расте, а пришли сюда посмотрев о нем пару видосов на ютубе, и решивших спросить зачем он нужен, прошу остаться
неосиляторы, студентота, шизы - вам всем тут рады, спрашивайте глупые вопросы, сритесь не вникая в суть, вобщем веселитесь
>И вызовы WinAPI. Под Линуксом Го еще дергает системные вызовы напрямую, но на Винду всем похуй, он точно также линкуется с майковским рантаймом. Как и любой другой язык.
Там даже в mvcc давно уже Unified CRT и никакой API не меняется.
А по поводу Go можно у нейросеточки было спросить, а не хуйню в инетах языком молоть:
https://www.virustotal.com/gui/file/aa119482ff9c1873781a92da74b8af2a6f292c2e9a8f46dadb868e3327cd0ec3/details
единственная зависимость у него — это kernel32.dll, ему твой visual C++ runtime не нужен. Visual C++ райнтайм — это райнтайм для ихнего компилятора и его бинарей, он никому другому, по-хорошему, не нужен, это не системные интерфейсы.
И что это?
азаза, чулочник
Сиплюшечка родненькая ебашет всю пидорастическую лгбтшную мразотину. Юл невер би а вумен. Раст никогда не станет полноценным языком. TND. TKD.
>Сиплюшечка родненькая ебашет всю пидорастическую лгбтшную мразотину
Жалко конечно что Фурифокс на Раст с Крестов свичканулся, не думаю что будет много желающи движок на нем поддерживать
>Фурифокс на Раст с Крестов свичканулся
И сразу превратился в тоталитарную парашу с радужной гомосятиной вместо интерфейса. Идеально отражает менталитет чулочников-пидорастеров.

Почти, с растанов. У него какая-то постироничная рубрика, где он берёт статью и разбирает по частям, пытаясь подъебнуть каждое слово. В том видосе он кекал с сишника, который перешёл на раст.
>Сиплюшечка родненькая ебашет всю пидорастическую лгбтшную мразотину. Юл невер би а вумен. Раст никогда не станет полноценным языком. TND. TKD.
Держу в курсе: муриканское правительство выпустило рекомендацию, по которой новые критические проекты с 2026 писать на memory unsafe ЯП, а для старых нужно демонстрировать соответствие бюрократическим аббревиатурам. Мой предыдущий проект ещё попадав в категорию legacy, а вот все новые уже всё.
Да, legacy ещё дохуя будет, но тенденция будет ускоряться. С одной стороны, наконец-то в софте станет меньше уязвимостейй, с другой стороны, хуже C++ может быть только Rust.
Основная проблема и C++, и Rust, которая приводит к переусложнённости — это подход "в каждой бочке затычка". То есть, мы делаем для написания performance-critical хуйни и драйверов ОС, и при этом мы пишем на том же ЯП бизнес-логику доставки пирожков, не имея ни GC, ни перспективы его заиметь.
Проблема в том, что архитектура классических тьюринговых ЦП фундаментально ненадёжна, оно рассыпается от малейшей ошибки в алгиритме. Например, указатель стэка случайно сдвинулся на 8 — всё, пиздец, программа пошла выполнять случайный код. На таком фундаменте ничего дельного вы не построите, в том числе поэтому LLM со своими ошибками выглядят не так плохо на фоне ненадёжной работы тьюринг-алгоритмов.
Причём, ещё раз повторяясь, безопасность доступа к паммяти не гарантирует надёжности логики. От того, что у вас программа управления ракетой остановится прямо на взлёте ракеты, у вас ракета всё равно разобъется, с безопасным доступом к памяти и без него, итог не изменится. И именно в плане надёжности писания логики архитекторы Rust вообще ничего даже не начинали делать, я совсем никак не помогает писать надёжнее логику.
>и при этом мы пишем на том же ЯП бизнес-логику доставки пирожков, не имея ни GC, ни перспективы его заиметь.
Ты ни JS ни Питухон ни Java не используешь для такого сорта приложений? Ну что сказать...
>Пишешь многопоточный код — и знаешь, что компилятор не даст тебе сделать гоночную ситуацию. Скорость на уровне C/C++ + безопасность.
Rust никак не проверяет высокоуровневую логику. То есть, если ты сложил коровы с километрами — оно тупо сложит, ему похуй.
Далее, в фундаменте многопоточности Rust лежит ублюдочный механизм координации через блокировки и счётчики ссылки, работают только для медленной межпотоковой коммуникации какой-то GUI параши, вроде нажатия кнопочки. Когда у тебя потоки возаимодействуют через какие-нибудь ring buffer-а, или, хуже того, перекидываются сложными динамическими структурами данных, то ты охуеешь по двести блокировок и счётчиков дёргать на каждый вызов функции.
Самый простой пример корневой глобальной переменной:
static GLOBAL_VAR: Mutex<Option<Arc<Rec>>> = Mutex::new(Some(Arc::new(Rec())));
Если кому не понятно — это безопасный эквивалент сишного:
Rec *GLOBAL_VAR;
При каждом чтении безопасной растовой хуйни вы должны брать мутекс, увеличивать счётчик ссылок, копировать Arc, отпускать мутекс. Если это нужно делать раз в секунду — похуй вообще. Если у вас тысяча потоков делает это тысячу раз в секунду — они уже будут половину времени сидеть в блокировках по мутексу.
По этой причине создатели Go целенаправленно избавились от счётчиков ссылок, вместо этого предпочитая накладные расходы от lock-free барьеров записи (хуйня, которая сигнализирует сборщику мусора об изменении указателя). Самый главный профит от такой реализации Go заключается в том, что при простом чтении вам вообще ничего не нужно делать, ровно как и при изменении не-указателей. У вас даже GC не запускается, если нет выделений-высвобождений памяти.
Это рвёт шаблоны мамкиным оптимизаторам, которые рассказывают, что только на C/C++ может быть быстрый код. Ну то есть как бы да, но на написание корректного и быстрого многопоточного кода нужно въебать настолько много времени, за которое можно десять раз написать парашу на mutex+shared_ptr. А большинству просто похуй, они читают-пишут переменные без блокировок с гонками, а когда раз в месяц падает тестовый стенд под нагрузкой, то говорят "да это кароч менеджер памяти глючит, вон же ж стэк на него указывает".
>Пишешь многопоточный код — и знаешь, что компилятор не даст тебе сделать гоночную ситуацию. Скорость на уровне C/C++ + безопасность.
Rust никак не проверяет высокоуровневую логику. То есть, если ты сложил коровы с километрами — оно тупо сложит, ему похуй.
Далее, в фундаменте многопоточности Rust лежит ублюдочный механизм координации через блокировки и счётчики ссылки, работают только для медленной межпотоковой коммуникации какой-то GUI параши, вроде нажатия кнопочки. Когда у тебя потоки возаимодействуют через какие-нибудь ring buffer-а, или, хуже того, перекидываются сложными динамическими структурами данных, то ты охуеешь по двести блокировок и счётчиков дёргать на каждый вызов функции.
Самый простой пример корневой глобальной переменной:
static GLOBAL_VAR: Mutex<Option<Arc<Rec>>> = Mutex::new(Some(Arc::new(Rec())));
Если кому не понятно — это безопасный эквивалент сишного:
Rec *GLOBAL_VAR;
При каждом чтении безопасной растовой хуйни вы должны брать мутекс, увеличивать счётчик ссылок, копировать Arc, отпускать мутекс. Если это нужно делать раз в секунду — похуй вообще. Если у вас тысяча потоков делает это тысячу раз в секунду — они уже будут половину времени сидеть в блокировках по мутексу.
По этой причине создатели Go целенаправленно избавились от счётчиков ссылок, вместо этого предпочитая накладные расходы от lock-free барьеров записи (хуйня, которая сигнализирует сборщику мусора об изменении указателя). Самый главный профит от такой реализации Go заключается в том, что при простом чтении вам вообще ничего не нужно делать, ровно как и при изменении не-указателей. У вас даже GC не запускается, если нет выделений-высвобождений памяти.
Это рвёт шаблоны мамкиным оптимизаторам, которые рассказывают, что только на C/C++ может быть быстрый код. Ну то есть как бы да, но на написание корректного и быстрого многопоточного кода нужно въебать настолько много времени, за которое можно десять раз написать парашу на mutex+shared_ptr. А большинству просто похуй, они читают-пишут переменные без блокировок с гонками, а когда раз в месяц падает тестовый стенд под нагрузкой, то говорят "да это кароч менеджер памяти глючит, вон же ж стэк на него указывает".
>> в софте станет меньше уязвимостейй
>а ты смешной
Объективно, порядка 60% уязвимостей в коде C/C++ — это некорректная работа с памятью. Высокоуровневые ошибки в логике это не отменит, но уязвимостей станет меньше.
>>52687
>Ты ни JS ни Питухон ни Java не используешь для такого сорта приложений? Ну что сказать...
При чём тут я? Я вообще ебал в рот Rust и его толерантных инклюзивных разработчиков. Мой основной стэк — это C/C++ и Python.
>Что уж тут говорить, когда даже финский нацик признавал какое говно дистрибуция софта в линуксе по сравнению с виндой/маком. Каждый дистр - это несовместимая хуйня.
Это уже давно неактуально и решено. Даже в 2014, когда Торвальдс это говорил, он также озвучивал факт стабильности ABI ядра. Уже тогда я запускал статически слинкованные бинари и они работали, хоть и были пиздец какими большими. Другое дело, что статически линкованному бинарю может понадобиться интегрироваться с остальной системой, вроде запросов к dbus или pulseaudio, а это уже не ядерные интерфейсы и к ним доступ возможен только через разделяемые библиотеки (SO). Плюс есть куски дерьма вроде Python и Perl, для которых деплоё ещё более всратый и они всегда ведут себя так, будто являются единственным ПО на машине — такой софт нужно изолировать в собственное окружение (chroot или контейнера), но при этом появляется новая проблема взаимодействия изолированных окружений.
Как раз за год до речи Торвальдса уже был выпущен Docker, и Flatpak был в ранней разработке, но стабильные Overlay FS, которые на базе read-only пакетов и copy-on-write строили виртуальную файловую систему, появились даже позже, а без них эффективное пакетирование в изолированное пространство реализовать было нельзя.
Сейчас инструменты пакетизации ещё более развиты, есть стандартизированные интерфейсы X Desktop Group, к которым можно обращаться по стабильному ABI с любыми библиотеками и статически линкованными бинарями.
> Блять, развели тут философию общих мест, хоть бы один засранец код привёл для разнообразия. В общем, сами перекатывайте.
Перекотил: >>3452718 (OP)
Я ливаю с этой помойки. Модерация нихуя не работает. Оставайтесь сами с ебанутыми.
Они выпустили рекомендацию, а не регламент. Пользуйся каким хочешь языком, какая разница? Там вообще ни слова про языки. Тем более кто коммерции что скажет? Петушиное правительство спросить забыли на каком языке писать нужно