Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению, заимствованию и другим концепциям языка Rust! Предыдущий тред : >>3371041 (OP)
Rust — blazing fast язык для системного программирования без segfault'ов и с гарантиями потокобезопасности. Он позволяет писать безопасный и эффективный код, который легко поддерживать и масштабировать.
В этом треде мы объясняем базовые и продвинутые концепции языка, а также программирования в целом. Поможем новичкам, подскажем, что выбрать для веба, игр или, прости господи, блокчейна.
Кстати про работу: сделал тестовое, сказали что нравится и спросили желаемую зепку. Назвал 1800. Сказали мы вам перезвоним. Я охуел просить столько на джуновскую вакуху не имея почти никакого коммерческого опыта на няшном растике? Вакансия была на позицию бэкенд-макаки.
>>3407697 (OP) > Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению Блять, каким обещаниям? Надо было "контрактам" написать. Ладно, в следующий раз.
Как же долго раст компилируется, это пизда. Со всеми опциями оптимизации можно я даже не знаю... сходить сготовить еду например. Реально ооооооооооооочень долго. Ждать когда он это всё высрет. Как будто код везут на слепых лошадях из Воркуты в Москву.
>>3412845 >компилируется В 2020 линковщик оче долго работал, даже была эксперементальная замена ему, продолжаю охуевать от растодебилов, прошла практически половина десятилетия, до сих пор ничего не изменилось.
>>3412845 У меня есть личный проект, где на основе пользовательской конфигурации, нужно было генерировать персональный бек и клиент, все это дело собиралось в джокере. Условно говоря, пользователь выбирает нужную функциональность, генерируется конфиг, на основе конфига билдятся бек и клиент, все это разворачивается в облаке. Так вот первым кандидатом для меня был раст, учитывая, что бек в моем случае по сути являлся обычным недопропрокси. Но из-за петушиной по длительности сборки сразу пришлось отказаться от этой затеи. По итогу выбрал Говно, которое билдится за считанные секунды и не приносит такой попаболи.
>вебговно Буквально требуется принимать бинарный пакет, парсить его и пересылать данные на клиент. Да и в чем претензия? Инструментов для вебговна на расте написано больше, чем для системной разработки и байтоебства, что довольно иронично.
>Сразу почему не выбрал, экспертизы не хватило Потому что язык без ГЦ и милипиздрическими бинарниками лучше языка с ГЦ, рантаймом и жирным бинарем? У меня почти 3 контейнера с растоверсией недопрокси весили столько же как один гошный.
>>3412884 Да он бля будет полчаса-час компилиться. У меня в облаке 4 cpu + 16 gb ram одна сборка идёт около часа (!). В принципе наверно ты правильно сделал. Я последовал совету rust guide'а, они типа пишут, мол просто добавьте workspace и всё будет чотка. Ну я добавил. Он теперь в два раза дольше компилит с воркспейсами лол. И вообще, я заметил - он иногда дублирует зависимости. Допустим берёт tokio-rustls компилирует v0.24.1 версии и v0.26.2. Дальше он компилирует tower версии v0.4.13 и версии v0.5.2. Может поэтому долго, я пока ещё этому кунгфу с зависимостями не научился.
>>3412927 Раньше я этой хуйни не замечал. То есть было в районе 100 зависимостей и он собирался быстро. Теперь по мере роста проекта, чтобы только один бинарник скомпилить - их уже штук 500. Ну и плюс, он не может больше одного ядра использовать из-за настроек оптимизации. Такие дела.
>>3413654 Напишите такой же аналоговнет на расте Замечание: 1) строка 1 - определяем рекурсивно тип 2) строка 2 - содаем циклическую структуру (сама на себя ссылается) 3) строка 8 - рекурсивно печатаем содержимое поля a
Заодно ответе на вопрос. Зачем вар боров чекер если вы не линукс хакеры? Чем вам сборщик мусора мешает в голенге? В голенге выразительности нет? Возьмите окамел. Синтаксис - руст на максималках, а ебли с боровчекерами и тамлайфами нет
>>3413681 Во первых зачем мне это делать, во вторых что ты вобще скинул, в третих какое отношение к вебу > определяем рекурсивно тип это что такое и какого она размера?
>>3413716 размер Option<x> равен размеру x + 4 байта Если ты делаешь struct x { inner Option<x>}, то она имеет бесконечный размер sizeof x = sizeof inner = sizeof x + 4
>>3413717 1) Так я попросил аналоговнет на расте потому. Свой пример я скомпилировал и запустил. Он работает из-за TCO а не вываливается в переполнение стека 2) Конкретно окамел я сам только штудирую
>>3413729 Не тоже самое. У тебя нет циклических ссылок, а только рекурсивно определеная структура. Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать. Одна из причин называлась. PS я не расто хейтер если чо
>>3413739 Ну как не видишь? У тебя печататет Hello world 2 3 А у меня печатает бесконечную портяку из 1 2 3 В сишке ты тоже можешь создать три указателя на три структуры и зациклить их в круговую. Это не займет кучу памяти
>>3413768 >Потому что хачкель академический язык, а в окамле есть все, хоть и местами устаревшее. Ну как будто бы хачкель более распространен, тот же pandoc, например, или grease. А ocaml только в контексте jane steet вспоминается.
>>3413689 Никаких сложностей с борров чекером нет. Кто память руками чистил борров чекеров не боится. Проблемы только у залетевших питонистов/жсеров и прочих, которые только в расте про указатели узнали.
>>3413654 То есть то, что программы надо писать с буквально единственным явным владельцем у любого объекта - это не большая проблема? Или ты любой объект всегда клонируешь при передаче? >посмотри как веб на плюсах\си выглядит Сорян, но я не дебил, чтобы на СИСТЕМНОМ языке писать веб дерьмо.
>>3414083 >единственным явным владельцем у любого объекта сильно удивишься если узнаешь что в расте это не обязательное условие? раст бук пролистай на досуге, может хоть позориться в расто треде не будешь больше
>>3414873 Никакие списки, кроме тех, которые юзаются во всякой лок-фри хуйне, нахуй не нужны. В этом плане этот список ничем не хуже любого другого из стандартных либ.
>>3415915 Да каво ты блять спрашиваешь, он сам нихуя не знает. Он даже не пытается как-то аргументировать свой ответ. Rust для микроконтроллеров норм! Бери embassy и делай че хочешь. В смысле, что за вопрос такой "норм или не норм". Ты думаешь что проблема всегда в плохих языках, а не в кривых руках из жопы которые нихуя не умеют программировать?
> 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.
>>3413731 >Недавно компилятор тайпскрипта переписали на голенг, а не раст, по тому что в расте трудно с циклическимими ссылками работать
немного по-другому же >Перед началом работы над проектом разработчики изучили возможность использования различных языков программирования и поэкспериментировали с прототипами на разных языках. В итоге для создания нового компилятора был выбран язык 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.
>>3417329 снимаю шляпу за ссылку на источник но >>3417327 >such as the need for structural compatibility with the existing JavaScript-based codebase вот это в первую очередь вряд ли там 90% кода - обход деревьев но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли так что аргумент "сложна" считаю несостоятельным, а выбрали больше потому... переведу на нормальный с официально гринтекст: "ну го больше внешне на джс похож, чем другие, а компилятор уже написан на джс - кодерки будут брыкаться, а разогнать их не могу, они же и писал тс компилятор, чувствуют власть, новое учить не будут, поэтому го. Что то хуйня на сборщике мусора, что эта - горбоатого только могила исправит. Даже шарпам пытались научить, что было бы более логично, но макаки взубнтовались, им сложна, очень далеко от их джс-сиськи"
>>3417363 почему ты так считаешь, анон? почему есть проекты, которые начаты на rust? почему им уперлось? такое - это какое? разверни мысль, хотелось бы услышать не просто мнение, а обоснование
>>3413681 >>3413683 А что это за язык такой? Выглядит неплохо, но есть доеб: непрозрачно Поясню: очевидно, что тут работает через ссылки, но в коде этому нет отражения. Напомнило шарпы: экземпляр класса выделяется на куче, возвращается ссылка, работаешь дальше только со ссылкой. Но это приводит к проблемам, ведь не все объекты - экземпляры класса. Так и тут: y - это ссылка? Любой объект - это ссылка? Объекты хранятся на стеке или на куче? Если на куче, то язык к гц? Если на стеке, то нахуя создавать каждому объекту ссылку? Понимаю, что я просто не знаю язык, поэтому много вопросов, но в любом языке непрозрачность вредит. Я тут не вижу где указывается ссылка/указатель
>Напишите такой же аналоговнет на расте Нет идеального языка, где-то будет бо-бо. Либо гц надо будет создавать, либо безопасность будет держаться на плечах кожаного мешка, либо как в расте: болью создания циклических структур - оказывается нет идеального языка Но, внезапно, в ансейфе можно создавать циклические структуры, прямо как в небезопасных языках, то есть хуже, чем в небезопасных языках не будет. Но остальные части можно писать в сейф-режиме, то есть лучше, чем в небезопасных языках.
Ну и кста, если тревожник и циклическая структура используется не в хот-пути, то берем за основу вот это >>3413729, добавляем RefCell, получаем циклическую структуру на расте без unsafe
быстро дополню да, согласен, unsafe-код получился больше, чем у тебя: длиннее, по логике лишняя сущность (refcell), чуточку сложнее но 1) никто не запрещает юзать unsafe, и это в любом случае будет НЕ хуже, чем у тебя 2) мы взяли пример, где у раста слабое место. Как я говорил, идеального языка не существует, что-то уйдет в минус, но у раста прям хороший трейд-офф: вместо гц и потери безопасности в узких местах надо ввести refcell (что чуть-чуть усложнит код и введет хоть и незаметный, но оверхед), либо все же потерять гарантии безопасности, но лишь в этих самых узких местах, которые отполируют в либах взрослые дяди и отдебажат тысячи ручек
>>3417618 Плохо выразился Я к тому, что по абстрактной логике - никакого refcell быть не должно Вот типа пишешь на псевдокоде - ты не будешь писать refcell А вот когда уже кодишь на расте, ты должен учитывать, как ты называешь, внутреннюю логику и ее реализацию Поэтому да, чисто логически: refcell - лишняя сущность, но необходимая в языке с аффинными типами, которые дарят свои плюшки
>>3417618 ну и немного подушнить раст использует аффинные типы (те, которые следуют move семантике), их правильное применение гарантируется борроу чекером. Видимо, ты это имеешь в виду, когда говоришь "у раста есть внутренняя логика". Но RefCell - это не реализация этой внутренней логики. Это даже не часть языка. Это просто код, контейнер, который немного ослабляет ограничения борроу чекера для элемента этого контейнера во время компиляции и переносит эти проверки на время выполнения путем использования unsafe кода внутри.
>>3417416 >но даже создание и обход можно было бы написать на unsafe, обернуть это в safe api и юзать без боли Лол, так может сразу на сишке написать? Или лучше на зиге!
>>3417635 Правильная реализация линкед листа на педерасте - это ненаписанная реализация линкед листа, смешно видеть эти все рефцелы и прочий костыльный мусор.
>>3417907 если пытаться переобучать макак с джс - согласен но так уж получилось, что Хейлсберг в тупике: очевидно, что заменить команду он не может, ведь они писали компилятор и знаю нюансы и тонкости, а переобучать макак на что-то далекое от джс - макаки устроят бунт но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке
>>3417908 тут уже фак для таких как ты пытались создать даже мои посты выше давали ответ, но растхейтеры действуют по своей методичке я не хочу второй раз объяснять, просто перечитай хотя бы это >>3417533 >1) никто не запрещает юзать unsafe, и это в любом случае будет НЕ хуже, чем у тебя >2) мы взяли пример, где у раста слабое место. Как я говорил, идеального языка не существует, что-то уйдет в минус, но у раста прям хороший трейд-офф: вместо гц и потери безопасности в узких местах надо ввести refcell (что чуть-чуть усложнит код и введет хоть и незаметный, но оверхед), либо все же потерять гарантии безопасности, но лишь в этих самых узких местах, которые отполируют в либах взрослые дяди и отдебажат тысячи ручек
Да просто пиздец, ты сам выделил в гринтекст мою цитату "обернуть это в safe api и юзать", но все равно будто не видишь этого. Ты не смог разобрать ОДНО предложение и понять его смысл. Давай все же натолкну: unsafe 0,1% кода != unsafe 100% кода. Или это тоже надо как-то разъяснять?
Когда усвоишь информацию выше - можешь мне написать Если я увижу, что ты не усвоил информацию или усвоил, но все равно действуешь по своей методичке - я не хочу тратить на тебя время
>>3417912 Еще один с методичкой Реализуй линкед лист как хочешь: хочешь с рефцеллом, хочешь без, в зависимости от твоих требований
Тебе тоже относится то, что я писал анону выше в этом посте. Тоже проспись, тоже почисти зубки, поешь полезную и сбалансированную еду, сделай зарядку, приведи голову в порядок, чтоб у тебя была возможность усвоить то, что я написал (вроде ничего сложного не писал же), обработать эту информацию, а после этого мы сможем конструктивно поговорить. А то как с нпс общаюсь, одни и те же предложения, одни и те же тейки. Приводишь контраргументы, ждешь какого-то развития событий, конструктивного обсуждения, но происходут перегруз, и... "на расте ты не сделаешь циклическую структуру", "на расте невозможно реализовать линкед лист правильно". День сурка какой-то
>>3418080 >но если бы эта команда изначально знала раст - написали бы за тот же срок, что и на гошке Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов. >растхейтеры Мимо, педераст, я хейчу вас, растомакак, язык норм для своих задач.
>>3418659 >Через 3 года любая команда, которая изначально знает раст, педерасто-сообществом выписывается в команду, которая не знала раст изначально, или неосиляторов. таблетки
>>3424660 в том, что для сборки оно в интернет лезет, зачем то хочет качать архивы раста, каиро старой версии, а затем кучу всего в директорию vendor, хотя сорцы уже скачанные лежат, зачем то накостылен bootstrap.py с неотключаемым скачиванием этого добра, несмотря на то, само добро заранее лежит на диске, понятно что можно забить и разрешить всё это, но я не хочу в сборочных чрутах давать выход в сеть, поэтому и возник вопрос, как собрать без интернета
как лучше его ставить? через пакетный менеджер или через пакетный менеджер ставить rustup или вообще не юзать пакетный менеджер и ставить через rustup, который брать с rustup.rs?
>>3407697 (OP) >игры Даже самые профессионалы своего дела обоссали Раст, заявив что в отличие от С# и, прости-господи, C++, делать игры на нем сложно и муторно, особенно на этапе прототипирования, где ебля с безопасностью и прочими unwrap'ами сжирает кучу времени, не оставляя времени на сам начальный этап разработки игры. >Веб Нахуя писать веб на Раст? Ни один большой современный бизнес не пойдет на это, для обычных продуктов возьмут C#, Go, Java, JS/TS, для каких-то совсем редких кейсов - С++ из-за обилия либ. А Раст зачем брать? Этап прототипирования веба тоже упирается в проблему из пункта 1 .
>>3432743 Единственное применение и реальный плюс Раста я вижу в эмбеддед, т.к есть реальные примеры компаний, временами пишущих на нем эмбеддед прошивки для МК и прикладного софта. Но остальное нинужно.
>>3432814 > в 30 раз более производительная Но зачем? В ИИ всегда можно пренебречь скоростью IO и обработки данных, потому что есть многопоточная обработка и сборка батчей в любое количество потоков. В бигдате всегда приоритет в удобстве, а не скорости.
>>3408035 Есть третий путь: Выучить С++ и вкатиться в НИИ на сытые 100к в месяц с БРОНЬЮ от мобки и полным соцпакетом, без страха что тебя уволят как растопидора
>>3432743 Надо быть конченным ебланом, чтобы делать игры на пидорасте. В криптонаебалове пишут на расте - понятно почему. >>3432795 >>3432848 Можно пример, где т.н. безопастность на расте во встройке как-то зарешивает? То есть реальный пример с листингом, что от раста была тут польза. >>3432814 Замена pandas на C будет ещё производительнее и напишут это быстрее, нахуй раст нужен?
>>3432953 >Можно пример, где т.н. безопастность на расте во встройке как-то зарешивает?
Эмбед как правило работает без нормальной ОС, поэтому любой сегфолт нужно дебажить мало что не вольтметром. Так что любой баг, который можно отловить на этапе компиляции - это +5 часов твоей жизни.
>>3432974 Пидоран, ещё раз, будет, что по теме сказать или тебя в школе научат чтению, то приходи. >>3432977 >сегфолт Даунитос, какие сегфолты во встройке? >любой баг, который можно отловить на этапе компиляции Какие баги ты собрался во встройке ловить? У тебя там даже аллокаций нету.
>>3432980 Хуеплет, ты сам научись сначала мышлению, ты приперся обсуждать ,что лично тебе не нужен раст? Люди уже написали на расте, а на сишке только напишут, скоро, в твоих маняфантазиях.
>>3432743 Зачем на расте писать - потому что на нем платят больше, уровень сениорности существенно выше и проекты интересней. Если интересны лоу айкью индусокод на >C#, Go, Java, JS/TS то без проблем, можно еще пхп ковырять ради ламбо которых там никогда не было. Либо турболегаси на с++ с ооп и уб. У меня с поиском работы никаких проблем нет с средним предложением в 250к в год. Для этого и дропнул упомянутые C#, Go, Java, JS/TS, C++. Хотя го еще +- норм и ТС для пулуми.
>>3432993 >Вот готовая либа на расте, испольуется в тырпайзе >Замена pandas на C будет ещё производительнее и напишут это быстрее, нахуй раст нужен? А человек паук всех победит, да...
>>3432996 >Зачем на расте писать - потому что на нем платят больше А кто будет писать игры и веб на расте, лол? Так и платить растерам не будут, если работы на нем не будет в этих областях.
>Если интересны лоу айкью индусокод Там хотя бы работа есть и платят нормально, а не 15 вакансий, где 80% это крипта или системщина
>>3433008 >А кто будет писать игры и веб на расте, лол? Так и платить растерам не будут, если работы на нем не будет в этих областях. Плевать на игры, там зарплаты низкие, хуяк-хуяк и увольнения после кранча. Игры разве что в одно лицо надо делать, а там можно на чем хочешь делать - одна из самых успешных игр была сделана на луа в прошлом году, стардью волли написан жопой (сырцы посмоти) на шарпах с ультра уебищным фреймворком от мс. >Так и платить растерам не будут, если работы на нем не будет в этих областях. Сейчас начинается бум раста как раз. Никс + раст + богатая част европы - ебейшие деньги в оборонке. Только никаких ремоутов. >Там хотя бы работа есть и платят нормально, Платят там мало и переступит 120к в год сложно, особенно сейчас. Рынок компактится, а ты советуешь идти туда где конкуренция и индусы с генерилками кода. >Там хотя бы работа есть и платят нормально, а не 15 вакансий, где 80% это крипта или системщина Что не там с криптой и системщиной? Короче, ты малой просто
>>3433022 Зверек? Ты обосрался в своем троллинге и пытаешься вот так победить? Нахуя в оборонке раст спрашивай у тех кто там это диктует. Я не имею директорской позиции в оборонке и в принципе там не работаю. Но отрытые позиции вижу и там раст зачастую с никсом причем. Вообще вот это все нытье что раст слишком сложный уже порядком надоели. Что там сложного? С raii все крестовики работали, а это считай половина борроу чекера. Что вам сложно. Реально единственная существенно херовая часть раста - асинк, там любые манипуляции с указателями сделают обрастают лайфтаймами и дженериками. Ну и циклические связи убого делать. Во всем остальном - удобно и быстро разрабатывать, не надо по сто раз тестировать то от чего защищает компилятор. Асахи лина отреверсинженерил гпу драйвера от арим макбуков на линукс, на расте и явно сказал что именно из-за всех этих борроу чекеров было проще написат, потому компилятор очень в многом помогает.
>>3433055 >Но отрытые позиции вижу и там раст зачастую с никсом причем. Пруф или уёбывай. >Что вам сложно >Вообще вот это все нытье что раст слишком сложный уже порядком надоели >удобно и быстро разрабатывать >не надо по сто раз тестировать то от чего защищает компилятор Просто пидорастодвоечка нахуй. Пиздец, ты зверёк. Сам-то поди только лабы на пидорасте пишет, иначе бы такой не писал.
>>3432902 > сытые 100к в месяц За 100к как-то работать даже не хочется. Я вот в интеграторе сижу за 100к, пинаю хуи днями на удалёнке, сегодня рабочий день к концу подходит, но реально работал я минут 15 и в рабочих чатах 30 минут советы советовал. Весь остальной день скролил двач и смотрел ютубчик. Иногда дрочильню какую-нибудь запускаю, поглядывая на втором мониторе за "работой" и чатиками.
>>3433071 Ребенок какой-то. >>3433325 Веб разве что веб3 лол. Вот там платят нормально 200к+ в год за просто синиора минимум. Выгодней чем каким-то архитектором быть на веб2 говне, потому и кинул.
>>3433328 Вот буквально недавнее 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!
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.
>>3433136 Везет тебе. Работаю за 130к в месяц, полные 8 часов в день, еще и тайминги нужно присылать типо сколько часов и минут работал над какой задачей. Проебываться не выйдет 100%, следят
>>3433055 >раст слишком сложный Раст простой не накручивай. Питон, плюсговно и сишка, вот эти языки сложные. >>3433331 Какой-то ммм. >>3433342 Какой-то 1 соевый стартап на весь мир, с каким-то ноунеймом. РЯЯ ОНЛИ РАСТ В ОБОРОНКИ
>>3434118 >-Зибята бум раста оборонка вся на расте и с никсам уии >-Где и нахуя там раст? >-<Показывает очередное попильное ИИ говно и с растом для веба> >-Нахуя ты это говно принёс, где остальная оборонка? >-АРЯЯЯ НИЩЕНКА АРЯЯЯ Лол, походу единственные, кто реально делал какие-то вещи с прошивками и лоу левел на расте это buttplug.io
Если не учитывать официального талисмана Rust — краба Ferris, то в качестве символического аниме-персонажа для языка Rust можно выбрать героиню, которая отражает его ключевые принципы: безопасность, скорость, многопоточность и отсутствие глобального сборщика мусора (GC).
### Кандидаты:
#### 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 без неожиданных падений). - Высокая производительность: может обрабатывать информацию на космическом уровне. - Минимальные накладные расходы: молчалива и эффективна.
### Лучший выбор? Если нужен **жесткий, системный подход** — **Юки Нагато**. Если важна **боевая надёжность** — **Сабера**. Если важен **баланс между силой и контролем** — **Шаллоу**.
>>3434064 Он стоял, уперев руку в бок, и не отвечал. Только умудренная улыбка и неторопливые перекаты вальяжной походки, что понесли его домой. Больше они об этом случае не разговаривали.
>>3432743 > Go Для веба раст гораздо удобнее гошки, так что с ним в этой нише вполне себе может конкурировать. Одни дженерики и асинхронность дают в разы больше удобства над ctrl+c ctrl+v и горутинами с каналами, про остальное молчу.
>C# >Java Это совершенно другая ниша, обычно крупные проекты в банках, с совершенно другими взглядами на жизнь. Разработчики там привыкли к проектам, которые пилят годами и эти проекты живут десятилетия. Это больше про кровавый энтерпрайз
>JS/TS Как вариант, но не для всех проектов, нода хоть и держит дохуя rps из всей скриптопараши, но утекает по памяти и имеет свои ограничения. Но для проектов где примитивные круды какой-нибудь nestjs будет топ
>>3434380 Да, от них много хейта. Пишут какую нибудь обертку над никому не нужной библиотекой на си, а потом ноют на форумах что 20 лет писали на расте и пришли к выводу какой он говно. Плюс можно по треду и предыдущим заметить что один из представителей ЛГБТК+ никак не успокоится и постоянно срет здесь
Показатель нормального полноценного языка - проще всего решать практические задачи, например алгоритмы с Leetcode. С этим он справляется хуже всего, даже на форумах по Расту профессионалы пишут что решать на нем подобные алгоритмические задачи с Литкода это бред и максимально неэффективно, в отличие от С++.
>>3434582 "Действительно, если смотреть исключительно на скорость «прототипирования» и лаконичность кода для алгоритмических задач вроде 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.
В итоге выбор языка зависит от задачи и контекста. Что вам ближе сейчас — прокачка алгоритмов или надёжная разработка реальных сервисов?"
>>3434835 Зачем тогда по-твоему существует Литкод? Если бы он был не нужен, алгоритмы с Литкода не давали бы на собеседованиях в крупнейшие и самые богатейшие айти-компании мира, и он не был бы одним из самых посещаемых сайтов по айти.
Рыночек порешал и показал эффективность алгоритмов с Литкода. А Раст неэффективен для решения подобных алгоритмов. Вывод - Раст нахуй не нужен. Это просто как 2+2.
>>3434849 >Зачем тогда по-твоему существует Литкод? дрочить алгоритмические задачки
> Если бы он был не нужен, алгоритмы с Литкода не давали бы на собеседованиях в крупнейшие и самые богатейшие айти-компании мира, и он не был бы одним из самых посещаемых сайтов по айти ложное логическое следствие
> Рыночек порешал и показал эффективность алгоритмов с Литкода никакой связи между рынком и литкодом
> А Раст неэффективен для решения подобных алгоритмов чо несешь, сам то понял?
> Вывод - перестань быть ведомый идеями из интернета и начинай мыслить самостоятельно ну и я хуй знает, почитай про логику и причино следственные связи, чтоб так больше не позориться
>>3434849 >Рыночек порешал и показал эффективность алгоритмов с Литкода. А Раст неэффективен для решения подобных алгоритмов. Вывод - Раст нахуй не нужен. Это просто как 2+2. Ебать у тебя мышление настолько узкое и простое как решение задачки на литкоде по переворачиванию строк, действительно натренировался. В реальности выбор того или иного инструмента затрагивает множество аспектов, как и рабочий код в продакшене редко когда это решение примитивных алгоритмов. Когда ты там уже доучишься и первую работу найдешь?
>>3434884 Печально, а так зедчиком хотелось стать. >>3435079 >не может в решение простых алгоритмов >ААУУУВААУ ЛИТКОД НИНУЖИН КУДАХ ПРАМЫШЛИННАЯ ПРОГРАММИРОВАНИЕ Ты поди чисто джейсо-макакич.
>>3435335 Выглядит как говно. Кому вообще придёт в голову использовать реляционную базу в гейминге? Шиза с синхронизацией базы по сети - вообще пизда. Как будто они никогда не видели как неткод в играх выглядит.
>>3435144 >>3434859 >жалкие оправдания растомакаки А методичек не подвезли? Неужели USAid перестал финансировать расточмонек? Даже жалко как-то, язык то умирает...
>>3436242 >USAid В предыдущих тредах обоссали уже какого-то школьника, который с этим носился. Напомню что это политическая контора, в первую очередь рассчитана на политиков и медиа, а раст финансируют майкрософты с гуглами. Толстота не удалась и ты решил продолжить позорится
>>3436561 >пишет вебчик на пидорасте С этого я проигрываю каждый раз. Ебанутые написали свой нодежс на расте и теперь всем рассказывают, что их бекенд работает быстрее. Быстрее ждет ответа от кафки, наверное. Другие языки спокойно существуют в своих нишах, и только чулочники пытаются протолкнуть свой раст в каждую дырку.
>>3436561 >ВСЯ ОБОРОНКА пишет вебчик на пидорасте Ага, США до сих пор пишет код для оборонки на Аде и Коболе, а в РФ все еще пишут код для ракет на Си стандарта 1980 годов
>>3437745 Пишешь в 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. Ору нахуй с этой замены сишки и плюсодерьма.
>>3439342 юзкейс раста это дать инвалидам повод доёбываться до новых проектов с вопросом "а чому не на расте?", поэтому новые проекты могут даже заранее расписывать причину "почему мы не использовали раст", чтобы исключить ебанутых.
>>3439445 >Раст для embedded хорош Дебил блять, у тебя хелоуворд растовский не влезет в половину железок просто из-за того, что весит как ядро ОС, написанное одним шизофреником. Сука блять, иногда я хочу, чтобы зздесь можно было постить только после подтверждения квалификации через гойуслуги, такую хуйню несёте.
>>3439782 Как там в 2000? Сейчас у микрухи сраного мосфета больше памяти, чем в 486. Или ты про аналоговнеты на технологиях 60х годов? Так там любой яп выше местячкового асм оверкилл.
>>3439879 >6 килобайт Для чего? Блинка светодиодом? Ну как-то жирновато. Алсо, что-то кроме пресловутого блинка не наблюдаю каких-то мега-йоб на канале этом полуживом.
>>3439813 > Так а какой эмбед сейчас кроме батплагов на пидерасте делают? Авионику может или автомобили? Памяти же дохуя. Например много Real Time OS для эмбеддед Раста уже написано
>>3440321 Какой планировщик, ты ебанутый? Так то это полноценные ОС для встроенных систем.
А вот примеры использования Раста в аэрокосмической отрасли: 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
https://github.com/esp-rs/esp-hal/ Это пиздец какой-то монстр, с асинком-хуинком, с ансейфом через ансейф. Ебало дебичей, которые этим будут пользоваться.
no_std подразумевает, в том числе, отсутствие ядра операционной системы и стандартной библиотеки языка Си (что характерно для всяких микроконтроллеров/embedded). Заместо операционной системы, в окружении которой выполняется программа, в данном случае, микроконтроллер просто выполняет зашиваемую программу. При этом, так как нет ядра ОС (а только сама програмка/прошивка), то компилятор компилит прогу таким образом, что все данные и инструкции помещались в "стеке" (stack), а не в "куче" (heap) - ибо покуда нет ядра ОС, то нет и оперативки, которая выполняет роль "кучи".
>>3443162 >https://rust-gcc.github.io/ Чёт звучит как что-то годное. Короче, пидорастеры такие пидорастеры. >оборонка на пидорасте (вебчик) >криптонаебалово на пидорасте Странно, что пидорастеры не упоминают одну базюльку на расте, видимо, только лабы пишут.
>>3443162 >Есть альтернатива лучше, включенная уже в GCC (+- могет в rust версии 1.49) >https://rust-gcc.github.io/ оно может собрать rust c std в чруте, без интернета так, чтобы собранный rust был способен собрать себя из исходников?
>>3443826 Нет, ничего не тормозит, но у меня нормальный пека. Использую как IDE RustRover. Анализатор только не мгновенно работает, а после 2-3 секунд после изменения кода. >>3440879 Да, можешь загуглить Discord Go Rust. Там объяснение почему нужно писать круд на расте. >>3444670 Познакомился с концепцией trait и crate, а хочется классов?
>>3443826 >как же раст аналлизатор душит мой дрищецпу Попробуй использовать workspace, если у тебя большой проект, то раздели его на несколько crate и бери тяни зависимости из главного cargo.toml, используя workspace = true. Если у тебя жирные зависимости, замени их на что-то полегче или избавься вовсе. Опять-таки, смотря сколько у тебя зависимостей.
>>3445237 При чем тут массивы не понял? Я про целочисленное переполнение когда uint перемахивает через 0. Такая арифметика много где используется именно в системном программировании. Переполнения боятся всякие матлибы и прочее, но кто их на расте то пишет?
>>3444714 >IDE RustRover в ровере не аналлизер, там своя реализация. >>3445204 >сегфолт в рантайме сегфолт это защита ос. раст не доводит дело до ос, вызывая панику. >>3445237 раст вставляет проверку выхода за пределы для паники. >>3445267 >>3445270 действительно странно, если речь про раст, то при переполнении происходит паника, но только в дебаге.
>>3445274 > сегфолт это защита ос Чел, сегфолт - это обращение к невалидному участку памяти. Это часть аппаратной виртуальной памяти, оно не имеет никакого отношения к ОС.
>>3445278 ошибся но всё же думаю, что ос может эмулировать мму. в любом случае это механизм защиты, который не срабатывает из-за паники. >оно не имеет никакого отношения к ОС и при этом всё настраивается ос и обработка исключений тоже