Добро пожаловать в тред, посвященный гарантиям, обещаниям, владению, заимствованию и другим концепциям языка Rust! Предыдущий тред : >>3407697 (OP)
Rust — blazing fast язык для системного программирования без segfault'ов и с гарантиями потокобезопасности. Он позволяет писать безопасный и эффективный код, который легко поддерживать и масштабировать.
В этом треде мы объясняем базовые и продвинутые концепции языка, а также программирования в целом. Поможем новичкам, подскажем, что выбрать для веба, игр или, прости господи, блокчейна.
Растишки. Хочу вкатиться к бэкенд. Нужно для себя, а не для работы по найму (я так понимаю, что в этом смысле в РФ не разгуляешься). Рассматривал разные варианты: PHP, Node.js, Go, Rust (Java и Kotlin не рассматриваю, очень не зашли).
У раста выявил только два минуса для себя: - кривая обучения очень уж крутая (чтобы что-то начать делать в бэке нормально нужно месяцев 12) - долгая разработка в сравнении в другими языками (то, что я сделаю на других языках за 1-2 дня, на расте буду делать неделю или две)
В других языках нашел минусов намного больше. Меньше всего в Go, но он не заточен на сложную бизнес-логику, сделать-то можно конечно, но на костылях и с тяжелой поддержкой в дальнейшем. А мой проект содержит сложную бизнес-логику: бухучет, оперативный учет и т.п. (я сам бухгалтер), которую я планирую годами расширять и совершенствовать. И это будет именно веб-проект со всеми вытекающими (будет даже telegram mini app).
Но экспертных материалов по практическому применению Rust в бэкенде я не смог найти. Как-то все в общих чертах, обзорно, толком полную картину не составишь. Это как в статьях про Python - да он может всё, очень гибкий, можно и в бэк и в ml и в гуй тоже может. А на деле - очень медлительный и очень прикладной, но хорошо для DS и ML (клей для Си в основном).
В концепциях программирования я не профессионал, но умею в VBA, Python и 1С в рамках своих компетенций по профессии). А также немного в CSS, HTML и JS.
Дайте пожалуйста вашу экспертную оценку. Если будет время, напишите пожалуйста развернутый ответ.
>>3453403 От нейродебилов не получилось взять релевантную информацию. Они и про Пиструн мне говорят: О да, это отличный вопрос. Python может решить все ваши проблемы. Огромное сообщество, дохулирд фреймворков...
>>3453411 Так ты знаешь питон, начинай писать на питоне. А не спрашивай дикпики о выборе языка. И еще думай как сделать так чтобы можно было как можно больше делигировать в будущем, наемным макакам, а не самому писать все.
>>3453423 Извини, бро, но неужели ты думаешь, что я не рассматривал этот вариант? Питон не отвечает моим требованиям по производительности. Нужно что-то пошустрее. Хотя бы уровня Node. Но это опять компромиссы. Уже 2 недели в ступоре хожу, читаю, смотрю, слушаю, но так не могу найти консенсус.
>>3453447 Чел. Ты хотя бы мвп запили для начала. А уж потом думай о производительности для своего круда. 100% ты не сможешь одновременно учить все и пилить что-то рабочее. Ты в расте только начнешь изучать лайвтаймы с боровчекером и уже забудешь о своей главной цели из-за когнитивного перегруза.
>>3453388 >У раста выявил только два минуса для себя: Я тебе добавлю третий минус от себя - время компиляции. Попробуй хоть раз скомпилировать ну какой-нибудь скажем форум целиком сделанный на расте и ты охуеешь. А то что ты сказал... Нуууу для меня это не является минусами - 1) "кривая обучения очень уж крутая" - хорошо, меньше всяких тупых детей, рукожопов и случайных людей будет. 2) "долгая разработка в сравнении в другими языками" - мне лично похуй, за меня 70% кода нейронка пишет.
>экспертных материалов по практическому применению Rust в бэкенде я не смог найти Хуёво искал. Заходишь на amazon.com, в поиск вбиваешь слово "rust", категория "books" и там будет писят тыщь этих книг.
>Меньше всего в Go, но он не заточен на сложную бизнес-логику Скорее проблема в тебе, а не в go. Это ты не заточен на сложную бизнес-логику.
>>3453388 Никто не пишет на срасте бек для веба потому что слишком много времени занимает, ты вместо алгоритмов пишешь бойлерпринт и сражаешься с языком. Сервер игры - частично, может быть, чаты - неплохо, почему бы и нет, трансляции поедания кала - вполне рабочая тема.
Бек для веба пишут на ноде, либо жаба если это тырпрайз, всё потому что эти языки позволяют хуякс-хуякс и в продакшн, есть куча встроенных в языки плюшек. А нода/бан/deno ещё и производительные дохуя.
Если хочешь писать бек на компилируемом языке, то во-первых используй zig (этот тред реклама zig на самом деле) потому что бойлерпринта меньше, во-вторых тебе придётся писать ебейшую кучу собственных велосипедов, и я что-то нихуя не уверен что это имеет смысл. Для твоей бизнес-логики придётся самому писать конечные автоматы, сигналы и эвенты, и всё это с аллокацией и структурами данных на массивах. Будешь не только бухгалтером, но и системным архитектором, лолд, готов?
>>3453616 >Никто не пишет на срасте бек ВНИМАНИЕ, ВСЕМ СРОЧНО ПЕРЕСТАТЬ ПИСАТЬ БЭК, АНОН НА ДВАЧЕ СКАЗАЛ ЧТО НА НЕМ НИКТО НЕ ПИШЕТ ВСМЫСЛЕ УЖЕ НАПИСАЛИ ВСЁ!?!?! УДАЛЯЙТЕ!
>>3453644 Блядь, да что угодно https://github.com/jennypeng/ImageBoard Первое что попалось. Тут строчек 300, наверное, основная часть это счётчики, лол, которые можно написать не так уебищно. Думая основная работа с БД, роутами и АПИ для борды занимает строчек 100, не больше.
В пидорасте бойлерпринта просто дохуя. Слишком дохуя для адекватного написания бека.
> Первое что попалось тебе реально при поиске движков борды всё что выдало древнее говно уровня лабы 12 летней давности? попробуй получше поискать, что то реально похожее на борду
> Думая основная работа с БД, роутами и АПИ для борды занимает строчек 100, не больше. ну если дальше уровня лабы не уходить то да
>>3453661 > ахахахаа там буквально 1 форма + просмотр Погоди, что не так? В борде только это и есть. Треды и доски реализуются ещё двумя функциями. > тебе реально при поиске движков борды всё что выдало древнее говно уровня лабы 12 летней давности? Да, гугл в наши дни нихуя не ищет. > ну если дальше уровня лабы не уходить то да Чел, это борда. Тут нет ничего сложного. Прямо совсем ничего. На расте это сложно только из-за того что язык говно.
>>3453686 >Погоди, что не так? В борде только это и есть. блять чел, ну ты глянь хотя бы как борда на которой ты сейчас находишься выглядит и что делает кроме того что просто тебе показывает треды
>Да, гугл в наши дни нихуя не ищет. предлагаешь мне вместо тебя гуглить? точно сам не справишься?
>Тут нет ничего сложного кто тут про сложность говорит? легко != 10 строчек кода, тут есть еще функционал кроме того чтобы тебе хтмл показать + формочку сделать
>>3453693 > блять чел, ну ты глянь хотя бы как борда на которой ты сейчас находишься выглядит и что делает кроме того что просто тебе показывает треды Так расскажи мне что она такого делает, кроме подсчёта статистики и полутра вызовов апи. Ты точно писал борду? Сколько запросов апи у тебя было? > предлагаешь мне вместо тебя гуглить? точно сам не справишься? Да, мне поебать на это дерьмо. > кто тут про сложность говорит? > легко != 10 строчек кода, Если ты пишешь на нормальном языке для бекенда - сложность прямо пропорциональна количеству строк кода. В случае сраста это конечно не так, но это проблема языка. > тут есть еще функционал кроме того чтобы тебе хтмл показать + формочку сделать Это борда. Всё что борда делает - сохраняет и отправляет стринги. Доски, топ тредов и прочая хуйня решаются ещё одной строчкой которая добавляет посты в кэш/бд. Самая сложная часть харчка - это капча.
>>3453719 >Так расскажи мне что она такого делает, кроме подсчёта статистики и полутра вызовов апи. модерация + админка медия (в моем случае) реал тайм постинг базовая безопасность (чтобы не завайпали гомонеграми) настройка борды избранное \ скрытие
>сложность прямо пропорциональна количеству строк кода во дибил
>Да, мне поебать на это дерьмо. ну так а о чем с тобой говорить?
> борда это супер просто 20 строчек кода > хоть один движок видел\писал? > пук среньк, всё просто строчка бд апи формочка > ты хоть понимаешь функционал борды > пук среньк, строчка капча
>>3453750 > модерация + админка Ого, много. Поздравляю, твой апи расширился на один запрос. Вместо пяти стало шесть. Если ты создаёшь команду чмодератеров, то будет семь. Семь апи точек, бля, много... > медия Что медия? Стрим файла это функция на 20 строчек. С буферами работает. Конечно, в пидорасте это будет минимум 1к строк отборного говнокода, но что поделать... > в моем случае) реал тайм постинг Постинг и так всегда реалтайм. Тут всё наоборот, чтобы делать постинг батчами нужно больше кода, да и нахуй это не нужно особо. > базовая безопасность (чтобы не завайпали гомонеграми) Две строчки кода при использовании кук, четыре строчки кода при использовании токена. Много.... > во дибил Речь идёт про нормальный язык бекенда, а не про раст. > ну так а о чем с тобой говорить? Можешь ещё повизжать о том как сложно тебе было писать борду на срасте. > > пук среньк, Сколько вызовов апи было на твоей борде? Напиши мне это, не стесняйся.
>>3453642 >Это хуйня которая занимает 200 строчек в JS для всего сервера и 200 строчек для клиента? Пиздец мощно. Что-то ещё будет? У меня есть проекты на расте. Я пишу бекенд. Что ты хотел-то? Вот описание проекта ---> https://pastebin.com/raw/RxjYq1iW Вот пример кода ---> https://pastebin.com/raw/JBerjWZj Там около ~130 тысяч строк лютого пиздеца на расте, не считая typescript и фронта.
>>3453388 >кривая обучения очень уж крутая (чтобы что-то начать делать в бэке нормально нужно месяцев 12) С растом ты будешь каждый день своей жизни учиться, потому что две трети любого кода на расте — это объявления новых вспомогательных типов для ублажения компилятора, и соответственно, работающие с тобой люди будут непрерывно писать новые и новые вспомогательные конструкции под свою логику. Помню, я охуел, когда увидел, насколько сложно. Safe реализация двусвязанного списка на Rust настолько нереальна, что они по итогу сплошной unsafe ебанули в std.
>Меньше всего в Go, но он не заточен на сложную бизнес-логику, сделать-то можно конечно, но на костылях и с тяжелой поддержкой в дальнейшем В чом тяжесть поддержки? Пиши на Elixir, лол.
>Это как в статьях про Python - да он может всё, очень гибкий, можно и в бэк и в ml и в гуй тоже может. А на деле - очень медлительный и очень прикладной, но хорошо для DS и ML (клей для Си в основном). По-моему никто не скрывает, что питон еле ползает. Можешь попытаться у нейросетки поспрашивать вопросы, и подчёркивать ей, типа "я хочу не мейнстрим", "какие альтернативные взгляды на этот вопрос бывают?". Гуй, кстати, очень грустный в питоне. Я не в последнюю очередь думал свою либу многозадачности под нужды гуя адаптировать, но там настолько всё плохо в питоне, что ну его нахуй. Питон — это реально bash, со всеми вытекающими и втекающими.
>>3453411 >От нейродебилов не получилось взять релевантную информацию. Они и про Пиструн мне говорят: О да, это отличный вопрос. Python может решить все ваши проблемы. Огромное сообщество, дохулирд фреймворков... Странно. Можешь показать пример промта, по которому нейросетка выдала тебе хуйню?
>>3454544 >>3454549 Нейровысеры не интересуют. Следующий раз приноси свой код, посмотрю что там у тебя.
>>3454649 >две трети любого кода на расте — это объявления новых вспомогательных типов для ублажения компилятора >Помню, я охуел, когда увидел, насколько сложно. Safe реализация двусвязанного списка на Rust настолько нереальна, что они по итогу сплошной unsafe ебанули в std. База. А если это мультипоток будет? На этом пидорастёнок зависнет, потому что токены в GPT исчерпались.
Почему у зига такой ублюдский тулинг спустя 5 лет? Литералли хуже крестов. Вот я создал проект через zig init, он собирается, но при сборке мне пишет: > error: invalid option: -Dcpu > error: invalid option: -Dtarget > error: invalid option: -Doptimize Что это блять, в build.zig нет никаких аргументов и я не передаю ему? А дальше под этим стектрейс build.zig, без ошибки. Что ты хочешь, сука? Есть менеджер пакетов, но название пакета и название модуля разное, я должен идти в репу и смотреть в zig.mod как они назвали модуль. Потом ещё прописывать в build.zig сборку и импорт каждой зависимости. При этом мне пришлось смотреть видос на ютубе как правильно добавить её в build.zig, ведь документация к zon не гуглится. Ебануться. И эти мудаки зачем-то переписывают LLVM на зиге, не осилив даже сделать нормальную сборку и документацию. Воистину красноглазые пердоли не умеют в юзерфрендли софт, только в пердольное говно. А потом они ещё рассказывают как у них встроен clang в компилятор и его можно использовать как более удобную замену крестового компилятора. Более удобную чем что? Чем makefile как из нулевых? При этом они рассказывают про нативную поддержку сишки без ffi в зиге, но как мне например заинклюдить Windows.h под виндой? Я должен сам окружение настраивать руками? Виндобляди даже в нулевые про такую дикость не слышали.
>>3455279 Умом Ржавый не понять, И кол-вом строчек не измерить: У него особенная стать — В Раст можно только верить. (Ф. Тютчев)
ПОЗДРАВЛЯЮ ВАС, РАСТОВЧАНЕ, С ДЕСЯТИЛЕТИЕМ ПОТРЯСАЮЩЕЙ РАСТ ПОБЕДЫ! ПУСТЬ ВАШ КОД БУДЕТ БЕЗОПАСНЫМ КАК НЕПРИСТУПНАЯ КРЕПОСТЬ, БЫСТРЫМ КАК ГОНОЧНЫЙ БАЛИД! ПУСТЬ ЗАВИСТНИКИ КРИЧАТ ПРО СВОЮ СЛАБОСТЬ И НИАСИЛ СИНТАКСИСА! СЛАВА РАСТУ! ПОБЕДЕ СЛАВА!
>>3456720 Потому что раст сделали наглухо пизданутые чулочники. Функция get возвращает указатель на элемент массива. Просто получить элемент по индексу будет v[] Вот так работает: fn main() { let mut v = vec![1,2,3,4,5]; let first = v[0]; v[0] = 42; v.push(6); println!("{first}"); println!("{v:#?}"); }
>>3456731 Лучше бы показали кто это говно спонсирует. А то такие довольные, явно баблищем их заваливают, и неспроста, явно не от полезности и прибыльности этого высера.
>>3457083 Я знаю что растанам больно от реальности, но ЯП с безопасной памятью - это в первую очередь джава и шарп. Про раст никогда речи даже и не шло.
>>3457877 Ну крч ты начал фантазировать про пидорастные команды которых нет. Уверен они там пишут полтора микросервиса, связанные с либой на расте. А в бизнес-логику и БД их даже близко не пускают, даже на полшишечки.
>>3455279 Языку всего десять лет, а его уже интегрируют в линукс и постепенно вытесняют плюсоговно (в предметной области максимально ригидной к изменениям). Для сравнения какому-нибудь пистону уже больше 30 лет, а выстрелил он только когда нейросетки начали разрабатывать.