Это копия, сохраненная 29 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.
Ссылка на официальный сайт: https://www.rust-lang.org/
В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.
IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
GayDev для 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/
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/
Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41
Предыдущий: >>2655915 (OP)
Ну кудаж без этого. Всем их не хватает. Тем более в такой-то месяц.
мимо си фаг
> Валидация ссылок при помощи времён жизни
что это за пиздец, ничего не могу понять
есть объяснение для дебилов?
Учи англюсик.
На С я бы хуйнул массив для терминала, который я отображаю, а также еще n дополнительных массивов для "окон". А дальше сделал управляющую структуру с массивом указателей на все запасные окна, хранящую в себе активное окно. После этого каждый раз когда я захочу что-то написать в окно, я бы по факту писал в массив, на который указывает "активный" указатель в управляющей структуре, осталось тока организовать управление ими.
Попытался сделать теперь тоже самое на Rust и хуйнулся об хуй пытаясь сделать это говно без поинтеров и ансейфа. Кто нибудь обьясните, как это нормально организовать в расте?
В чем проблема хранить индекс массива в массиве массивов, а не поинтер? Ты в принципе можешь и поинтер хранить через Rc<RefCel<>>, но это не крабовый путь. По-моему без пойнтеров можно сделать.
Rc и Ref не могу пока, т.к. no_std без аллокатора
Проблема в том, что потом эта хуйня будет использоваться везде ака getstdout(), то есть надо будет много ссылок, причем mut, на один объект.
https://docs.rs/generativity/latest/generativity/
Штука, которая статически позволяет пометить указатель чтобы его можно было использовать только с родительским объектов. Почему работает - хер знает.
У меня есть недоделанный проект, который это пытался обобщить, но я забил. Можешь поиграть, может на мысли наведет.
https://pastebin.com/teRf3WeP
Поинтеры юзай. &mut - это не поинтер, это уникальная ссылка на объект. Одновременно иметь две уникальных ссылки на один объект в расте - UB.
Так что проще всего в твоём случае делать прямо как в C и использовать указатель, если индексы не подходят. Тем более все эти указатели должны спрятаться внутри кода управляющей структуры.
Я пока так и сделал, просто это какой-то не идеологически правильный путь что-ли.
Хотя я сам себе жепу сделал, что в no_std, так что может тут действительно никак не обойтись без ансейфов и поинтеров
Нет, анон, curses на чистом расте не написать.
Ты мог бы и раньше работу искать, хз.
RefCell можно и в no_std использовать
Что там с реддитом раста происходит?
1. Меня в интернете пугают что раст это очень узконаправленная вешь и что угодно на нём не напишешь. Это правда?
2. Мне предлагаться использовать Clippy или Cargo Check, что нужно?
P.S Мне Раст как и другой любой язык программирования нужен просто для развлечения, это не больше чем просто хобби. Я люблю брать не очень популярные ЯП и изучать их. В планах на Раст у меня такое: написать простенькую игрушечку типа змейки (вроде Bevy самый нормальный для игр?), и впервые попробовать себя в бэкэнде. Это исполнимо?
ЗАРАНЕЕ СПАСИБО ГОСПОДА ГОСПОДИНЫ
А и ещй вопрос как дела у Раста обстоят в GUI? Есть хорошие библиотеки с современным интерфейсом? (я имею ввиду чисто на расте, без js и подобного)
К слову я понимаю что в шапке есть ссылка на GUI библиотеки, я просто не понимаю что из этого хорошо а что неть
1. Напишешь, но вот именно "что угодно" только когда ёбнешься и несколько лет похлебаешь борща. А если что-то конкретное, то зависит от задачи.
2. Ты будешь использовать оба, пролистай растбук по этому поводу.
>2. Ты будешь использовать оба, пролистай растбук по этому поводу.
Использую всегда clippy на автомате, просто check давно уже не запускал
Да там по полной митингуют, популярные сабы почти все стали приватными
https://reddark.untone.uk/
А все из-за жадности кабанчиков
>пришли пожрать проприетари нахаляву
>засунули себе зонды поглубже
>схавали кучу рекламы и уебищный интерфейс для детей аутистов и пришлось написать кучу сторонних приложений/фронтендов
>схавали ЦРУ-ботов и повесточку
>схавали анальную мочу
>ОЙ, А КАК ЖЕ ТАК, ЧТО КОМПАНИЯ СТРЕМИТСЯ ЗАРАЬОТАТЬ НА ГОЯХ? СРОЧНО БАСТУЕМ
Действительно большинство людей, скорее мать продаст, чем деньги из кармана.
Только с реддитовых соевых куколдов никто копейки и не возьмёт. Смешная хуйня, к счастью ни на что не повлияет.
Эта их приватность на что-то влияет вообще? Я правильно понимаю, что если у меня есть аккаунт педдита, то субпеддит мне доступен?
не имею аккаунта педдита
Так это и не для куколдов сделано, а для рекламодателей. Сейчас откатят изменения, "извинятся" перед гоями и захреначат в 2 раза больше рекламы пол предлогом недостатка денег. Мол "парни, вы нам не платите, но хотя бы рекламку смотрите", а как нужный уровеь добьют и акции поднимут, то могут и продать всю эту помойку подороже.
Если был на него подписан то да, если нет то не видишь даже зареганый. Сейчас унылая лента без топовых сабов
Даже если подписан, не видишь нихуя.
А зачем им откатывать? Они далеко не первые и не последние с такими решениями. Твиттер не так давно провернул ту же историю без задней мысли, деньги то не лишние. Плюс сторонние клиенты похоронят, одни плюсы.
Был подписан. Отписали
Потому что создатели раста хотели насовать хуёв конкретно тебе в рот этим синтаксисом
https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html
два чая
Тут они как обычно обосрались, ведь у меня не привкус хуя, а привкус говна.
Двачую, C++ выглядит более лаконичным. Синтаксис раста это дегенеративный результат скрещивания синтаксиса джаваскрипта, шарпа и плюсов.
Я один пока что курил, через traits
Обилие бессмысленных спецсимволов.
Взять хотя бы объявление переменных, параметров и методов. Нахуя писать variable : type, когда можно type variable? Нахуя нужно было переносить тип возвращаемого значения в конец и добавлять "->"? Нахуя fn, если процедур как в паскале нет?
>Обилие бессмысленных спецсимволов.
Это ты еще до менеджмента памяти не дошел.
>Нахуя писать variable : type, когда можно type variable?
Это нужно только для констант. Ну и вообще строгие типы? не, не слышал.
>Нахуя нужно было переносить тип возвращаемого значения в конец и добавлять "->"?
На хуя ставить его в начало?
>Нахуя fn, если процедур как в паскале нет?
Что бы было ясно, что это поинтер функции. Функции могут быть аргументами других функций.
>Нахуя писать variable : type, когда можно type variable?
А можно типы не писать и там где это очевидно компилятор их выведет.
>Нахуя нужно было переносить тип возвращаемого значения в конец и добавлять "->"?
Чисто вкусовщина, во многих языках сделано похожим способом, тот же go например
>>734690
> Нахуя fn, если процедур как в паскале нет?
Потому что это ключевое слово которое указывает что это функция, также как let, const, trait, struct указывают что это переменная, константа, трейт и структура. Тут как раз таки выглядит вполне логичено.
Статический - через всякие <T : Trait1 + Trait2>
Динамический - принимаешь в функцию какой нибудь &dyn Trait
> спец символов
А, ты до этого доебался лол. Открою тебе секрет что когда пишешь код это практически не замечаешь, да даже в том же php не замечаешь когда пишешь $ каждый раз где-то после пары дней работы с ним.
>Как убирание лишнего двоеточия уберет еще и типизацию?
Никак, просто это общепринятое обозначение.
https://en.wikipedia.org/wiki/Type_theory#Basics
Людьми, которые придумали типы.
>А можно типы не писать и там где это очевидно компилятор их выведет.
Потом сидишь в жирной IDE как у жабистов и, как додо, водишь мышком рассматривая какие типы там навозвращались.
еще через енумы
> водишь мышком рассматривая какие типы там навозвращались
Зачем? И так все видно, ты либо вимоеб, либо вкатун с блокнотом, даже самая простейшая ide это умеет.
Можно и на шарпах хуярить все объявлениями var'ами, и TS типы выводит. Только вот переменная без прибитого типа, где-то поменялся возвращаемый тип и сосёшь бибу.
> даже самая простейшая ide это умеет.
Сейчас блядь ещё чтобы дифф пулреквеста посмотреть открывать целую IDE. Пиздец.
мимо
let array = [0u8; 10];
let slice = &array[1..3];
у slice будет тип просто &[u8], а не &[u8; 2]? Почему сделали так, что теряется информация о размере из типа, хотя она известна на этапе компиляции?
А все отбой, ты про статическую длину.
Лол, тогда какой смысл? Без IDE это так же не читабельно, тот же гитхлам откроешь и не прочитаешь, а отображение ровно такое же ка если бы сам объявил.
>где-то поменялся возвращаемый тип
И как это возможно в расте?
>>736892
>Сейчас блядь ещё чтобы дифф пулреквеста посмотреть открывать целую IDE. Пиздец.
>>736939
>Без IDE это так же не читабельно, тот же гитхлам откроешь и не прочитаешь
Лол и так все понятно, когда смотрю другие проекты в нашем гитлабе ни разу проблем не возникало с типами. Когда пишешь код тебе критично знать что там u64 или i32, но когда читаешь нет.
Вообще если бы вы хоть раз попробовали кроме жабошарпов пописать на чем-нибудь типа джавоскриптопитухоноруби как второй язык я использую js на нем удобно тех же ботов в телегу писать на коленке за пару часов у вас бы подобных вопросов не возникало бы, вот там реально по дороге тип может поменяться и вообще ничего не подписано, но при этом кроме жабодебилов ни у кого боли от этого нет
> И как это возможно в расте?
Также как в шарпах и ТС?
Вот абсолютно тот же механизм: переменная без аннотации получает то, что в нём прилетает.
Конкретно в твоём примере с инициализацией либералами в одном месте - похуй, да.
На сабже пишет 3.5 калеки. Если исключать системщину, то скорее всякий гигахайлоад, куда-нибудь в кор блокчейна или что-нибудь в этом роде.
Скорость разработки ниже чем на жабо-шарпах. Найти на замену шарпо-жабу - проще.
Скорее шарпомух заставят GC открутить в узком месте.
Работаю. Да, в лохчейне. Да, мне похуй потому что зп почти 3х с моей прошлой + раз в квартал ещё и собственной крипты наваливают.
>Скорее шарпомух заставят GC открутить в узком месте.
Еще полгода назад заходил, тут какой-то додик из криокамеры говорил, что зачем твой моно на линуксах, не зная что шарп лет 6 на кроссплатформе. А теперь уже говорят про ансейф в шарпах.
К сожалению тоже не вижу профита в расте, на С++ то трудно спеца найти, а потом еще его за свои деньги и время обучать, когда неблагодарный срулит в любое время.
Пока раст для самопиара могут позволить себе крупные кабанчики и хайпо ютуберы.
Как и первым так и последнем, слишком легко спрыгнуть на другой хайп. А попенсорцы очень медленно с си на раст переписывают либы, а там уже всякие mojo костылят.
Бля вот тоже работаю в лохчейне за копейки, под солану в свое время смарты писал, но чёт эта тема заглохла, проектов хуй да нихуя. Под Substrate запросы есть, конечно, но не вникал в технологию, да и в целом в сфере так смердит, что думаю понемногу в жаву свалить и пердеть спокойно. Ты с чем работаешь?
Оборонка, медицина, всякая фирмварь работающая в опасных средах, вебассембли - тебе этого мало что ли?
Сиди переписывай со всеми либы за бесплатно за идею, либо жди когда запилят похожий продукт, но нормально совместимый c c/c++
Понтоваться перед коллегами ктотрые кроме скриптухи ничего не видели
Если бы посмотрел на компании у которых вакансии в эти самых блокчейнах... Казино на казино и казино погоняет. И это только вершина айсберга.
Стоит начать с Си.
В том, что есть какие-то полтора кейса, обычно в контексте сравнения гофера с растам, о которых известно, где перешли на раст.
Цветное повесточное комьюнити и непонятное направление комитета.
Вон, достаточно сходить в предыдущий тред и ознакомиться, как повестка влияет на разработку языка
АСТЕРОЖНА, ДРАМА АЛЕРТ:
https://www.jntrnr.com/why-i-left-rust/
https://www.reddit.com/r/rust/comments/13tsmht/jt_why_i_left_rust/
tl;dr: либо повестка лезет с инструментом, либо повестка суёт палки в колёса инструменту
Ну ОБЪЯСНИ нам, чтобы мы поняли. Иначе просто пройди нахуй с такими заявлениями?
Nikhuya manyovri poshlee
Когда раст загнётся, тебе работы больше достанется, хорошо?
Хуйло не смог ответить даже на уровне тезиса.
Когда?
Спасибо
Это везде говнокод, непонятно как вообще до этого додумались.
Я вроде как догадался через слайсы сделать, но по человечески можно как-то?
Хотя в принципе и так работает
Ладно, пойду опять Джаву скачаю, зря удалил всё таки.
Уже устраивают, пока не качаю Джаву.
Просто это очень не стандартное решение относительно других языков. С таким же успехом по сути можно задать параметром Vec<(f32, f32)> в моём случае.
Я когда начинаю думать логикой Раста у меня голова взрывается и из меня лезут демоны.
>Просто это очень не стандартное решение относительно других языков
...Нет? В Джаве тоже есть слайсы и тоже нет произвольного количества аргументов в функциях. Это наоборот эзотерическая штука, которая мало где есть и еще реже используется.
В java 21 будут
Это язык не про "а я не знаю чо там будет, давайте потом по месту решим, а то я сейчас не могу определиться". Здесь нужно сесть и решить заранее, какие сценарии будут нужны и как их обрабатывать.
>чем плохо принимать вектор или impl Iterator
Ничем не плохо.
Вектором владеешь, при передаче в ф-цию он туда уйдёт, либо придётся копировать (что не есть хорошо с точки зрения производительности). Слайс - просто ссылка на вектор (или его кусок), ф-ция отработала с вектором по ссылке, вектор остался там, где и был. Если тебе и дальше нужен этот вектор, ты в ф-цию кидаешь его ссылку. Если тебе он не нужен, отдай ф-ции, чтобы не висел в памяти, он очистится при выходе из этой ф-ции.
С Iter будет примерно то же самое, это по сути последовательность тех же элементов вектора, по которой ты проходишься. Насколько я знаю, сама конструкция for .. in имплицитно создаёт iter, так что если ты за в ф-цию закинешь всвой vec.iter(), и уже внутри по нему пробежишься, будет абсолютно то же самое, что передать в ф-цию slice, и там по нему пробежаться. Грубо говоря:
for elem in &vec
эквивалентно
vec_iter = vec.iter()
for vec_iter
Алсо, у iter те же 2 стула, с владением, либо через ссылки. В 1-м случае iter у тебя "забирает" твой вектор, во 2-м случае оставляет тебе.
for owned_elem in vec
эквивалентно
vec_owned_iter = vec.into_iter()
for owned_elem in vec_owned_iter
Насколько я понимаю iter, там суть в другом, ты этот же цикл можешь как-то "красиво" оформить через .map(), избегая "громоздкой" конструкции цикла (а скомпилироваться оно должно примерно в то же самое), хотя мне лично после си привычнее (и приятнее) видеть обычный for loop.
>придётся создавать вектор
Зачем его создавать, если он уже есть? В любом случае, если у тебя несколько однотипных элементов не в коллекции, то это уже странно.
Зачем если есть Rust-lang?
У меня скоро будут ещё вопросы так что порадую своим содержимым папки "азиаточки"
Хотя я думал Растеанам такое не нравится. Судя по дискорд серверам раст сообщества - это самый пидорский ЯП на свете
>Хотя я думал Растеанам такое не нравится. Судя по дискорд серверам раст сообщества - это самый пидорский ЯП на свете
Я вообще мимо треда шел и на тяночку забайтился.
Сам на плюсах и сишке пишу
Значит ли это, что если я продолжу дрочить раст, то тяночки перестанут вставлять, в переносном смысле?
Да, я вот покодил на Расте пару недель и вот недавно ещё зашёл на Раст серверы в дискорде. Теперь встаёт только на квир небинарных персон (they/them) gay furry porn futanari big cocks LGBTQ+++
Просто берешь и начинаешь учить, нахуй не нужен какой-то правильный порядок изучения. Если вдруг понадобится, то параллельно поучишь.
Как это нет произвольного колличества аргументов? А это что https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html#varargs ?
Залез на хебр, и очередная статья "почаму я лублу хруст!".
Действительно, почему?!
Нет банальной перегрузки функций, дефолтных параметров, произвольного числа аргументов. Даже гребанный принт написан через макрос. А чтобы что-то писать на ембеддед, надо навернуть такого костыля, что js для ардуины становится легче взять.
Но самое мое любимое это победа над злой памятью, причем чаще теми людьми, которые с ней никогда проблем не имели, мигрируя с очередного языка с GC.
Заметил что раст уже не торт, там новый хайп по mojo идет
>Нет банальной перегрузки функций, дефолтных параметров, произвольного числа аргументов.
Нет, потому что ты должен явно все указать. Придут со своих js и начинают просить всякое
>>745623
>там новый хайп по mojo идет
Не взлетит так же как crystal, хотя на этот раз более продуманно к этому подходят
>It's a shortcut to creating an array manually
Тогда у Плюсов есть встроенный менеджер пакетов, apt называется.
Не выебывайся. Оracle в доках называет это arbitrary number of arguments. Можешь ли ты определив method(Integer... args) вызывать method(1, 2) и method(1, 2, 3, 4)? Можешь. Какая разница, если это шорткат? Никакой.
> банальной перегрузки функций
не нужно.
>дефолтных параметров
есть, но у структов.
>произвольного числа аргументов
не нужно
>Даже гребанный принт написан через макрос
можешь вызывать не через мкрос.
>Придут со своих js и начинают просить всякое
Забавно, что как раз динамическим языкам перегрузка не нужна, пока не появляется пародия на типизацию.
>Не взлетит так же как crystal, хотя на этот раз более продуманно к этому подходят
Все прямо зависит от того будет ли агрессивный маркетинг, чтобы натянуть хайп и тогда уже будет "модно" другое.
с++, шарп, котлин, частично жаба.
Реально все кроме говне и ржавого, ну там еще си, но это вообще древни полуассемблер.
ппц у вас тут растеры сидят и эти люди будут вам писать все окружение?
>>шарп, котлин, частично жаба.
>Скриптокал.
То случай, когда прилюдно навалял в штаны, но чтобы не казаться ущербным, стал размазывать говно по телу и лицу, думая что так он будет выглядеть круче, хотя в реале сделал еще хуже.
Не обращай внимания, это местный шиз не первый тред тут срёт, в этом треде до перегрузки методов доебался, в предыдущих доказывал с пеной у рта что в расте есть сборщик мусора и прочий бред ученик Столярова между прочим
>>746381
А что тебе интересно, то и пиши.
Попробуй визуализатор для аудиофайлов написать, аля aimp visualization.
Попробуй физический движок написать и смоделируй ударную волну от ЯО на разных обьектах, например, проверь аеродинамику объекта 279.
Напиши очередной сервер для Gemini.
Напиши генератор статичных html страничек из файлов markdown и свой веб-сервер
Напиши аналог distcc для раста.
Напиши свой стековый ЯП
Напиши демку на расте.
Это скорее местный клоун, возможно ОП, накидывает тухляка в тред, чтоб тот не тонул, ибо всем насрать на язык.
>Напиши аналог distcc для раста.
Сами себя обертки не напишутся, лол.
Если не знаешь что писать, то писать ты ничего и не хочешь. Так что уровень твоей мотивации, это поковыряться немного в коде, так что ковыряйся без "проекта".
Все равно эта чепуха надоест быстро, но хватит чтобы себе в резюме добавить. Будешь говорить о самом любимом языке в мире, на котором никто не пишет.
>Если не знаешь что писать, то писать ты ничего и не хочешь. Так что уровень твоей мотивации, это поковыряться немного в коде, так что ковыряйся без "проекта".
Да вот нифига. Код писать мне интересно, но с идеями совсем туго.
@
Проходит 8 лет
@
Одна из самых пролайканых либ, это переписанная утилита grep
@
Что мы делаем не так?
Этот язык обречен, не потому что плох, а просто он на дне из-за тупого руководства, тупого заезженного до дыр маркетинга, деньги на который могли бы пустить на либы, тулинг или еще что-то. Но нет, спустя 8 лет очередная статья - почему я люблю раст. Не, ну серьезно?
Так я у тебя и говорю, что у тебя борщевой синдром - код ради кода. Зачем мучить себя, напиши grep 3.0
Ебло, мне нужно посидеть 2-3 недели поломать голову над чем-нибудь цельным чтобы зафиксировать полученные знания и бонусом иметь что-нибудь показать вместе с резюме. Какое мне блять дело до твоих борщей или окрошек, а?
>Если не знаешь что писать, то писать ты ничего и не хочешь. Так что уровень твоей мотивации, это поковыряться немного в коде, так что ковыряйся без "проекта".
>Все равно эта чепуха надоест быстро, но хватит чтобы себе в резюме добавить. Будешь говорить о самом любимом языке в мире, на котором никто не пишет.
Ты с кем общаешься, шиз?
>Сами себя обертки не напишутся, лол.
Ну пиши не обертку, лол.
>мне нужно посидеть 2-3 недели поломать голову над чем-нибудь цельным
Посиди на унитазе, тебе сказали grep пиши.
Зачем? Это же не либа. Я бы морду вообще на электроне написал.
ппц растеры тупые, принес приложение и упрекнул есть ли такое на плюсах, лол. А есть ли на плюсах такой крутой grep что на расте??
Затем, что в топе пролайканого на С++ это учебники как изучить с++, а в топе С -- перепесинный текстовый редактор пятидесятилетней давности. Видимо не отстают загнивать.
Ну да, это же не grep. Но ты настолько туп, что даже не понял над чем сарказм.
Какая разница на чем написано, тебе как фанбою языка должны волновать написанные либы, а не приложения. На сях писалось такое, что тебе даже не снилось и еще не родился, ты даже не представляешь с чем мериться тут собрался, сидя в операционке и браузере, которая скорее всего на тех же плюсах если не мобильное нищебродное чмо, хотя и там глубоко капнув это будет на сях
Ребенок мерится хитхламом, но одним гитхламом фактически живет как раз раст. Какое же тупое поколение, ппц
Я здесь не при чём, я просто перекатил ваш утопающий полнедели тред.
мимо временный перекати-ОП этого треда
Я не пощусь.
Хз не застал сам диванон, но видел уже после, если есть в истории тредов погляди. В кратце шизик ученик Столярова, даже завел сайт такой "почему раст должен умереть" или типа того, тут спалили его вк и выкладывалие его фотки, в одном из перекатов даже был комикс с ним и Столяровым. Была серия тредов где он доказывал нам всякую хуйню, когда его окончательно обоссали он ушёл громко хлопнув дверью, судя по всему снова вышел на связь.
>Я здесь не при чём, я просто перекатил ваш утопающий полнедели тред.
Иди лучше жабу с пхп перекатывай, они там месяцами тонут
Наверняка придумали себе какую-то очередную гуманитарную философию для языка и решили именно тут упороться ментально, взамен практичности. Сейчас это нормально, художник так видит.
Жалко лурк сдох, столько драмы проходит мимо. Хотя в стартовых го тредах было куда веселее с Ильей.
Не имею с ними ничего общего. Туда - только через мой труп.
почему этот ответ (строка кода ниже) неверный, разве "s" не освободиться второй раз после выполнения main (что было бы undefinded behaviour)? Функция если что возвращает &str который "dangling pointer", т.е. уже указывает на освобождённую память.
"let s = make_separator("");"
Там даётся такая подсказка "the caller must use the result of make_separator, e.g. via println.", т.е. если "s" будет использован в println тогда только будет undefined behaviour, но почему так не понимаю.
Существование невалидной ссылки само по себе считается UB. Из-за этого uninitialized выпилили.
Странный тест.
Какое джаваскрипт заклинание заставляет вкладку отжирать 4 гига оперативы?
Не желание продакта и бекенд команды тащить фильтры и подобную хуету на бек, где этой хуете и место.
да но почему ответ "let s = make_separator("");" не правильный? вот в чем мой вопрос
Ну представь что dangling reference это такой классический бомж в оркостане. Пока он лежит обосранный, обоссаный и облёванный где-нибудь под деревом то ничего особенного не происходит. Но стоит его палкой ткнуть так сразу начинают исходить потоки говна, мата и визгов "подайте на похмелиться". В твоём случае от этого самого бомжа попросту избавится RAII aka инсульт и всё будет хорошо, ну а про то, что если его тронуть я уже написал.
хаха, гениальная аналогия, спасибо. буду опираться на неё, потому что RAII я еще не изучал. странно почему тогда этот вариант добавили в опросник, вроде не писали про такое поведение в предыдущих главах.
Создание ссылки - это поведение. Как unreachable_unchecked. Это признак того, что указатель валидный. Это компилятор может использовать для оптимизации и выпилить выпилить весь код, например.
Подумай над своим поведением прежде чем троллить тупостью
repl.it
В первом случае, компилятор скорей всего вырезал мертвый код.
Вопрос в тесте четко спрашивает, что было бы, если бы борроу чекер пропустил висячую ссылку. Твой пример вообще никак к этому не относится. И кто кого троллит?
5 минут спустя...
Ох, пойду я дальше свой сишарп теребить
Не гуглится, всякую хуйню выдает
Двачаю, там и не понял нахуя этому додику перегрузка нужна и что она может конкретно в этом месте исправить, в его примере не понятно что это говно делает, но скорее всего грубое нарушение банальных общепринятых принципов SOLID и KISS когда один метод делает дохуя всего. Да и в качестве агрумента структура напрашивается.
Короче без остального кода тут не понять, в любом случае целовать руки молотком тому кто это писал не удивлюсь если этот си-шарповый столярыш сам же и написал
1) Это проблема разработчика, а не языка
2) Это проблема разработчика который не умеет в макросы
То что вероятно с пика нашло в rustwasm:
https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.MouseEvent.html#method.init_mouse_event_with_can_bubble_arg_and_cancelable_arg_and_view_arg_and_detail_arg_and_screen_x_arg_and_screen_y_arg_and_client_x_arg_and_client_y_arg_and_ctrl_key_arg_and_alt_key_arg_and_shift_key_arg_and_meta_key_arg_and_button_arg_and_related_target_arg
А есть ещё похожая простыная, только там сурсовые ссылки иначе сделаны и название функции уезжает (пик)
https://moxie.rs/target/doc/moxie_dom/prelude/event/struct.MouseUp.html#method.init_mouse_event_with_can_bubble_arg_and_cancelable_arg_and_view_arg_and_detail_arg_and_screen_x_arg_and_screen_y_arg_and_client_x_arg_and_client_y_arg_and_ctrl_key_arg_and_alt_key_arg_and_shift_key_arg_and_meta_key_arg_and_button_arg_and_related_target_arg
Докину
>Видимо кодоген
Как бы префикс gen_ у файлов и дальше в имени файлов CamelCase говорит сам за себя
https://github.com/rustwasm/wasm-bindgen/blob/main/crates/web-sys/src/features/gen_MouseEvent.rs
Это методы обертки для wasm, в данном случае не знаю надо ли делать именно так поскольку не знаком с wasm, но в обычном коде подобное решается оборачиванием аргументов в Option<> и не нужно делать перегрузок и плодить десятки методов я бы вообще в структуры поубирал все что больше 4 аргументов
Снова программисты плохие.
Никогда такого не было и вот опять.
дефолтные параметры и перегрузка решили бы эту проблему. Да и вообще не слушай меня, иди лучше проголосуй за любимый язык на SO.
>Снова программисты плохие.
Если именно в таком виде требуется для того же wasm, то почему бы этот говнокод не сгенирировать приватным, а для публичного использования сделать методы с какими нибудь структурами в виде аргумента? Я кстати тут вообще вижу билдер для initMouseEvent. Если это сгенерировали, то и билдер тоже можно было легко сгенерировать. И потом в зависимости от полученной структуры вызывать нужный приватный метод. Как вариант
Да именно програмисты плохие, тех кто передает больше 4-5 аргументов надо бить головой об клавиатуру. Тех кто генерирует подобное говно, но не делает обертки чтобы ими было удобно пользоваться вообще об стену бить.
>дефолтные параметры
Есть структутры с Default:default(), есть тот же Option который в данном случае бы зашел самый раз, есть множество вариантов.
Хороший программист рассказывает, как нужно создавать говноструктуру по типу антипатерна God object, даже не зная что структура это в первую очередь логический элемент бизнес модели, а не желание ржавого пропихнуть в метод структуру с рандомными полями.
То есть, вместо одной проблемы ты создал другую (даже не буду говорить какую, так как программистов тут почти нет в треде)
>кто передает больше 4-5 аргументов
Ты сказал?
Язык это не твой господин, не надо защищать, вон гоферы выпросили себе дженерики за 10 лет, молодцы же, хера вы извиваетесь и стелетесь, вместо требований базового функционала. Ну типа раст не плохой язык, что плохого станет, если добавить фич из 80х годов?
>структура это в первую очередь логический элемент бизнес модели
Функция тоже, и если у тебя возникает потребность добавлять в неё какие-то дополнительные сущности, то в чем необходимость делать это через список аргументов, а не через структуру? Её можно собирать множеством разных способов, валидировать отдельно от бизнес-логики, кешировать.
> Ну типа раст не плохой язык, что плохого станет, если добавить фич из 80х годов?
В нём уже есть фичи аж из 90-х годов, которые перекрывают функционал 80-х и дают даже больше. И даже эти фичи будут доделываться ближайшие лет 50.
>логический элемент
Чем тебе не логический элемент MouseEvent? С другой стороны дай определение что такое логический элемент, является ли метод им?
Вообще с чего ты решил что структура это именно логический элемент бизнес модели, книжек из 90х начитался?
>Ты сказал?
Да, я сказал и твой МР бы развернул
>God object
Кстати пропустил, а где ты его увидел? Тут структура только под определенную задачу, она не хранит ничего лишнего и не делает ничего лишнего, а отвечает только за эвент мыши.
>>750945
>>750974
>>750978
>>751041
Ппц кодмонки порвались, готовы даже говнокодить, но не признавать нехватку функционала. Причем наследования то нет, и особых трудностей в технологиях древних, для разрабов компилятора нет. Как и с перегрузкой (там вообще банально постфикс добавляется к имени).
То есть, реально, как макаки готовы накручивать опрос на SO, о самом любимом языке, на котором никто не пишет. Но чтобы реально удобные вещи в язык принести, готовы с пенной у рта что-то там пытаться доказывать.
Лол, тебе ответить нечем, как обычно перешел на воду. Сам придумал про бизнес модели точнее прочитал из пожелтевшей от старости книги сам же и не можешь за неё пояснить
> но не признавать нехватку функционала
Давай еще скажи что тебе динамической типизации не хватает и поэтому язык говно
> Потому что это ключевое слово которое указывает что это функция, также как let, const, trait, struct указывают что это переменная, константа, трейт и структура.
Но функция - это значение. Часто константное. И что логично, так это val f = fn (x,y) => ... в SML.
Ура! Драма?! Лучше бы это была драма...
Ну так он почти во всём прав, кроме двух пунктов.
Первый пункт в котором он неправ:
>Cargo is mandatory
Ну типа да, флаги компилятора не закреплены гвоздями, так ты ебучий системный программер, закрепи гвоздями версию компилятора в своём проекте, кто тебе мешает?
Второй пункт
>Concurrency is generally a bad thing
Тут он как бы прав, в том что параллельность — это говно. Проблема в том, что это не зависит от программеров, просто создатели процессоров не могут ускорять свою срань другим образом. Поэтому либо жрёшь параллельное говно, либо валишь нахуй отсюда, потому что твоя программа будет работать на камне из 2000 года быстрее, чем на камне из 2024.
Ну а так да, раст может заменять C, но не везде это хорошая замена (по крайней мере на текущий момент), об этом кроме шизиков спорить никто не будет.
Для экзотических архитектур, которыми пользуется полтора пингвина, и для которых у раста тир 3 саппорт, либо вообще нет саппорта. Там часто и сишка не обязана работать, по крайней мере в теории, но как-то похуй, потому что обычно работает.
Для мелких микроконтроллеров C всё ещё выглядит получше раста, насколько я знаю, хотя тут давно не тыкался, может что-то и поменялось.
RIIR большой сишной кодобазы в фулл раст - идея говна, но новые фичи можно на расте добавлять, но это обычно боль, и если у тебя вся команда сишников, то нахер оно нужно.
Это пожалуй всё, что знаю конкретно я.
Пользоваться i32 вместо usize - очень плохая идея. Для задачки с литкода сойдёт, для реального кода за такую хуету тебя на любом ревью пизданут. В крайнем случае, если пиздец как надо именно число со знаком, используй isize вместо usize.
А вообще, просто открываешь растовый стд, находишь binary_search, и читаешь исходники, там всё в комментах.
Копировать из стд всё, включая ансейф и найтли фичи необязательно.
https://doc.rust-lang.org/std/primitive.slice.html#method.binary_search_by
https://doc.rust-lang.org/src/core/slice/mod.rs.html#2508-2510
> Для мелких микроконтроллеров C всё ещё выглядит получше раста, насколько я знаю
Можно ли на расте в zero runtime?
Какой рантайм?
Даже на Лиспе и хаскелле можно.
Только что там остаётся от лиспа, хаскеля или раста, вот вопрос.
Ну это же пиздец, нет? В чём "Сейф" тогда заключается? Что нет висячих поинтеров и какого-то там абстрактного UB?
Да ни в чём, нет у языка плюсов, иди на плюсах пиши, а мы тут все шизики и борщехлёбы.
>нет у языка плюсов
Тащемта, так оно и есть. А у C++ аж два плюса. Сосать, хипстеры! ахахахахаахачто, растовщики, не смеётесь? не смешно, да? это Россия!
Главная цель - избавиться от UB, из-за которого никакой анализ программы невозможен. Если есть просто дедлок - это неприятно, но решаемо. А вот дедлок, который происходит только на O2 - это можно сразу вешаться.
это решение задачи с литкода 139 word break с использованием префиксного дерева (да я знаю что можно намного проще)
Считать, что в растовом str всегда ascii — плохая затея. Очевидно, что на литкоде там всегда ascii, но в реальном коде — нифига.
А в остальном код как код.
да, я понимаю, что строки в расте кодируются в utf-8 и размер "символа" может быть вплоть до 4 байт
>>762779
условие читал???
https://leetcode.com/problems/word-break/
>Input: s = "catsandog", wordDict = ["cats","dog","sand","and","cat"]
>Output: false
Можно же разбить аж 2 вариантами:
cats + and + dog
cat + sand + dog
Или я что-то не так понял в условии?
Они там якобы победили поинтеры, но в плюсах и так давно уже RAII юзают. Что касается страшных UB, там в js наверное не меньше подводных камней приходится так же знать. Да и в прикладных целях всякие шарпы могут тоже в unsafe и так же поинтеры тискать, да и без ГЦ работать в нужных местах, но только из каждого утюга это не доноситься, ибо реально редкая потребность.
В общем, очевидно, что успешные менеджеры просто пилят проект и вкладываются больше в маркетинг, отсюда мы имеем самый любимый язык и каждый раз громкие вскрики, но совершенное унылое состояние либ и окружения за 8 лет.
Сам смотрю на проект много лет, но пока потенцевала не вижу.
> но в плюсах и так давно уже RAII юзают
Вангую это просто синтаскический сахар, как в все в плусопараше.
Плюсую, вчера довелось попердолить на шарпах, думал будут флэшбэки, но в реале поймал мысль - какого хера я страдал 7 лет на жабьем протухшем говне, вместо этого.
Как бы срать, смысл в том, что никто ручками уже указатели не "считает". А количество годных либ, просто тонна.
Надо было просто сделать прокси язык как котлин или тайпскрипт для плюсов.
Должна быть наоборот радость, что растом интересуются не только дети с питона.
На объём занимаемой памяти в большинстве тырпрайзов похуй пока не придут счета за облако/новые серверы или не словишь OOM на проде лол.
В джавашарпах три проблемы:
1. Или GC делает Stop-the-World, или ты вручную ебёшься с памятью посильнее, чем в Rust. А Stop-the-World для критичных к latency приложений - это какие-нибудь 10us на обработку торгового приказа в p99 (а то и в p95) превращаются в 50ms, и пизда KPI/OKR/SLA твоего проекта .
2. NullPointerException/NullReferenceException . В джавашарпах надо вручную слишком много мест обмазывать проверочками, в расте достаточно не пользоваться unwrap.
3. Слишком просто написать не-thread-safe код. Создал тред/фьючу/таску, передал ему ссылочку на объект, и всё вроде работает, пока где-то не ёбнется из-за race condition, и вперёд обмазываться локами и семафорами. В расте без относительно правильно расставленных Send/Sync у тебя оно даже не скомпилируется. С дедлоками - да, приходится по-старинке работать (лочить ресурсы всегда в одинаковом порядке).
Это я перечислил то, с чем в основном сталкивался в видеостриминге (раньше) и трейдинге (сейчас). Для большинства пректов в формошлёпстве/крудоёбстве/перекладывании джсонов джавашарпы/го-пыхо-питоно-ноды всё ещё более предпочтительны.
>NullPointerException/NullReferenceException . В джавашарпах
После добавления nullable annotations в шарпе мы забыли что такое нре от слова совсем.
Говори за себя, у кого-то есть легаси сервисы которые нельзя просто взять и перевести на новую версию языка/дотнета.
Ну так если ты не можешь перейти на новый дотнет, то сменить язык точно так же не можешь
> NullPointerException/NullReferenceException . В джавашарпах надо вручную слишком много мест обмазывать проверочками
Ну да, а в расте не вручную каждый резалт ветвить? Забавно что юзают почти тот же оператор ветвления, но думают что делают другое.
И да, в котлине и шарпах есть нуллабл типы, это оказалось куда удобнее опшенов.
>Слишком просто написать не-thread-safe код.
Да блин можно даже на ноль в программе поделить и упрекнуть в этом язык. Или открыть 100500 дискрипторов.
Как бы работа программиста требует тонну скилла и отвественности и толку что твой раст там что-то может, никто условного джуна в такие кишки не пустит.
Работу с новым дотнетом ты найти еще сможешь, а вот работу на расте.
Ты не поверишь, есть в шарпах и unsafe и следовательно есть и возможность без ГЦ поработать.
То есть, если собрался писать дробилку, то возможности у тебя есть. Но в реальном прикладном мире трогать каждый кусок памяти вообще не нужно и даже вредно в долгоиграющим приложении (фрагментация). А засунуть раст в ембеддед так же сложно как и сишарп (жабу тоже вроде совали).
PS Нет ничего плохого в еще одном языке нет, но этот маркетинг убивает просто. Желторотики бегут рассказывают как же безопасна стала работа с памятью, при том что с памятью они и не работали никогда.
С памятью особо никогда не дрочился, но в целом возможность написать быстрый код да ещё и с гарантиями безопасности которых на этапе компиляции вагон подкупают. Ну про cargo даже говорить не нужно, после траханья с make/cmake что он что репозитории js/питона это просто сказка.
>И да, в котлине и шарпах есть нуллабл типы, это оказалось куда удобнее опшенов.
Жаль только discriminated union'ов пока нет
Закон Мерфи на помидоров распространяется так же, как и на ждунов, никакой опыт сам по себе избежать багов не поможет, максимум сократить частоту их возникновения. Это и Кармак подтверждает (в интервью Лексу Фридману), у которого опыта побольше, чем у 99% треда.
Поэтому, например, что касается памяти, в С++ стараются с голыми пойнтерами не работать, а используют RAII, самописные системы управления объектами и смарт пойнтеры. Т.е. либо ты пишешь костыли, которые предотвращают стрельбу по ногам, либо необходимые механизмы встроены на уровне языка. Первый вариант не обязательно хуже второго.
То есть есть четырехмерный вектор либо ndarray, в целом поебать, отправляется в функцию вместе с индексами аргументом, например ,(3,1,2,0), и при проверке размера, например, размерность (10, 20, 30, 40) превращается в (40, 20, 30, 10).
Ебучий чатгпт писал нерабочую хуиту, в интернетах не нашел. Уже довольно давно ебусь с этим в свободное время, и нихуя не выходит. С меня тонна нефти
https://www.google.com/search?q=rust+transpose
https://docs.rs/transpose/latest/transpose/
https://stackoverflow.com/questions/64498617/how-to-transpose-a-vector-of-vectors-in-rust
>в питоне
>numpy
Это в си делается, в питоне вызывается. Можешь из раста вызвать ту же функцию с тем же результатом.
https://www.google.com/search?q=rust+numpy
https://docs.rs/numpy/latest/numpy/
(2) ошибки в конструкторах
(3) делегация сестринскому типу
(4) итераторы
(5) полиморфизм
(6) стдлиб
пока расто-макаки не предоставят миру данные пункты, на их ворованный недоязычок стыдно даже смотреть.
>>766077
Согласен, nullable в шарпе решили большинство проблем с NRE. Осталось дождаться, когда их в 3rdparty либы затащат. Ну и nullable заменяет Option, а для Result подходящей замены в дотнете ещё не сделали.
>>765912
Для производительного кода - примерно одинаково. На шарпе быстрее писать и дольше тюнить, на расте медленнее писать и быстрее тюнить (прост GC внезапно не садится тебе на ебало). Для формошлёпства, если уж пришлось пилить на расте - сначала было медленно с непривычки, теперь примерно одинаково.
>>766094
Когда тырпрайзы переезжали с плюсов/делфи на джавашарпы, заметно убавилось Access Violation Exception/Segmentation Fault прост из-за подхода к управлению памятью. Старички ворчали, что можно и на ноль делить. Кол-во новых проектов на плюсах заметно скукожилось, делфи умер к хуям. Теперь в расте есть способ заметно уменьшить количество гонок в многопоточном коде. Слышу знакомое ворчание.
>>766114
> есть в шарпах и unsafe и следовательно есть и возможность без ГЦ поработать
Есть возможность написать кусок кода, который не будет выделять память в куче. А практической возможности запустить дотнетное приложение без GC - нет. Просто потому, что AspNet/Grpc будет выделять память в куче, Newtonsoft/System.Text.Json/Protobuf будет выделять память в куче, все удобные методы из System.Linq будут выделять память в куче, и либо GC таки будет триггериться и руинить тебе latency, либо от сишарпа и дотнета у тебя останется нихуя не сишарп и дотнет, а какой-то обрубок, на котором придётся с нуля писать свой сетевой сервер, сериализаторы и всю хуйню.
> трогать каждый кусок памяти вообще не нужно и даже вредно в долгоиграющим приложении (фрагментация)
Каждый кусок памяти никто и не трогает - так же как и в сишарпе, ты либо делаешь свои дела на стеке, либо преаллоцируешь что-то крупное что тебе нужно в каком-то пуле и от туда таскаешь - при этом без внезапного GC. Ужосы с фрагментацией сильно преувеличены (jemalloc же).
> засунуть раст в ембеддед так же сложно как и сишарп
Если clang/llvm собирают твой код под твою платформу - то не сложно, если нет - то сложно. Рантайм то не нужно портировать, пушо его нет.
Основной головняк с растом в моих проектах - незрелая экосистема. Если в дотнете я могу взять aspnetcore/grpc.net со всеми батарейками вроде аутентификации, рейт-лимитера и телеметрии, newtonsoft.json/system.text.json/protobuf.net, disruptor.net/что-то-на-акторах, EFCore/Dapper, Polly, Faster.Net и ещё с десяток нужных либ и пилить проект, не ебя себе мозги, то в расте приходится очень внимательно изучать зависимости - то три года как протухло, это появилось пол-года назад и пилит один чувак, здесь у нас v0.1.11, а такого вообще пока не написали.
Хотя сейчас уже лучше, чем было несколько лет назад.
>>766077
Согласен, nullable в шарпе решили большинство проблем с NRE. Осталось дождаться, когда их в 3rdparty либы затащат. Ну и nullable заменяет Option, а для Result подходящей замены в дотнете ещё не сделали.
>>765912
Для производительного кода - примерно одинаково. На шарпе быстрее писать и дольше тюнить, на расте медленнее писать и быстрее тюнить (прост GC внезапно не садится тебе на ебало). Для формошлёпства, если уж пришлось пилить на расте - сначала было медленно с непривычки, теперь примерно одинаково.
>>766094
Когда тырпрайзы переезжали с плюсов/делфи на джавашарпы, заметно убавилось Access Violation Exception/Segmentation Fault прост из-за подхода к управлению памятью. Старички ворчали, что можно и на ноль делить. Кол-во новых проектов на плюсах заметно скукожилось, делфи умер к хуям. Теперь в расте есть способ заметно уменьшить количество гонок в многопоточном коде. Слышу знакомое ворчание.
>>766114
> есть в шарпах и unsafe и следовательно есть и возможность без ГЦ поработать
Есть возможность написать кусок кода, который не будет выделять память в куче. А практической возможности запустить дотнетное приложение без GC - нет. Просто потому, что AspNet/Grpc будет выделять память в куче, Newtonsoft/System.Text.Json/Protobuf будет выделять память в куче, все удобные методы из System.Linq будут выделять память в куче, и либо GC таки будет триггериться и руинить тебе latency, либо от сишарпа и дотнета у тебя останется нихуя не сишарп и дотнет, а какой-то обрубок, на котором придётся с нуля писать свой сетевой сервер, сериализаторы и всю хуйню.
> трогать каждый кусок памяти вообще не нужно и даже вредно в долгоиграющим приложении (фрагментация)
Каждый кусок памяти никто и не трогает - так же как и в сишарпе, ты либо делаешь свои дела на стеке, либо преаллоцируешь что-то крупное что тебе нужно в каком-то пуле и от туда таскаешь - при этом без внезапного GC. Ужосы с фрагментацией сильно преувеличены (jemalloc же).
> засунуть раст в ембеддед так же сложно как и сишарп
Если clang/llvm собирают твой код под твою платформу - то не сложно, если нет - то сложно. Рантайм то не нужно портировать, пушо его нет.
Основной головняк с растом в моих проектах - незрелая экосистема. Если в дотнете я могу взять aspnetcore/grpc.net со всеми батарейками вроде аутентификации, рейт-лимитера и телеметрии, newtonsoft.json/system.text.json/protobuf.net, disruptor.net/что-то-на-акторах, EFCore/Dapper, Polly, Faster.Net и ещё с десяток нужных либ и пилить проект, не ебя себе мозги, то в расте приходится очень внимательно изучать зависимости - то три года как протухло, это появилось пол-года назад и пилит один чувак, здесь у нас v0.1.11, а такого вообще пока не написали.
Хотя сейчас уже лучше, чем было несколько лет назад.
>(прост GC внезапно не садится тебе на ебало)
Как часто тебе в твоем мидловом проекте оно садилось на лицо?? Как уже затрахала эта маняфантазия. Там проблемы начинаются когда у тебя кластер размером с датацентр, а не пет проект на 100мбитном канале, с десятком других хостящихся.
Если в жабе начинают тюнить рычаги GC, в шарпах можешь затюнить код без GC (там после профелирования его не много).
Опшены и резалт кусок рудемента прошлого, забавно что в llvm есть эксепшены, просто геи не осилили. хз как там в llvm, но если в твоей голове эксепшены тормозят, то даже в жабе можно отключить стектрейс
>На шарпе быстрее писать и дольше тюнить,
Ты сказал? Я видел как методом тыка епутся с языком там, где в нормальных языках уже потёют над логикой. Ну и костыли в виде .clone() где поплыли мозги с лайфтаймами - вообще шедевр.
>А практической возможности запустить дотнетное приложение без GC - нет.
В этом и фишка, на программиста не перекладывает груз с лайфтаймами и владениями и работает почти так же быстро.
В реальности в ты 99% пишешь подобие круда, перекладывая одни данные в другие и только в 1% пишешь дробилку. В случае RAII ты вообще не паришься и делаешь почти вечно живущие объекты.
Мне еще за 15 не приходилось писать ручками управлению с памятью, может потому что я не работают лидом в гугле, или же может я не школьник пересмотревший ютуб, хз.
>Каждый кусок памяти никто и не трогает
Да, но на тебя накладываются солидные такие рамки языка. Если в шарпах ты просто паришься за логикой, то в расте тебе надо логику пропихнуть через парадигму ограничений, в итоге ты потеешь там, где шарпо-питона макака проходит моментом.
То есть, это все не бесплатно, как и в любом системной языке. И одно дело когда ты в ардуино код пишешь или реальное системное приложение и другое дело пет проекте, где клонируешь все подряд, ибо муторно переписывать уже.
>> засунуть раст в ембеддед так же сложно как и сишарп
>Если clang/llvm собирают твой код под твою платформу - то не сложно, если нет - то сложно
Ну конечно, если оно компилируется в натив, то сразу влезет в ембеддед. Там чтобы раст в это засунуть, надо выкинуть раст, лол.
Очередные маняфантазии юношеского максимализма, не знаю но пишу.
> Как часто тебе в твоем мидловом проекте оно садилось на лицо??
Выше в >>765372 я писал, что пилю код для трейдинга (биржевые/брокерские движки, торговые/маркетмейкинговые боты, всякая инфраструктурная и вспомогательная поебень - и это не HFT). Да, GC мне сильно портит жизнь. За 20-50мс, пока GC что-то помечает и компактит, бот может проебать выгодную сделку, маркетдата может протухнуть, top-of-the-book может уползти слишком далеко от заявки, и клиенты моей конторы проебут деньги.
До этого я пилил код для видеостриминга - там GC тоже создаёт проблемы. Когда у тебя сотни стримов и десятки Gb/s, из-за stop-the-world дропаются фреймы, из-за этого расстраиваются системы видеоаналитики, грустят кодеки, и потом уже и клиенты.
>>767126
>работает почти так же быстро
Недостаточно быстро
> В реальности в ты 99% пишешь подобие круда, перекладывая одни данные в другие и только в 1% пишешь дробилку.
Не угадал. Я как раз делаю так, чтобы перекладывать поменьше данных.
> Мне еще за 15 не приходилось писать ручками управлению с памятью
Что именно ты называешь управлением памятью? Кастомные аллокаторы? Так и я их не пишу. Ручную очистку после использования? Так в большинстве случаев при выходе из скоупа всё или сразу дропается, или в Rc/Arc что-то декрементится и потом может быть дропается. Ты ведь в шарпе IDisposable просто так не создаёшь, без using перед или .Dispose() после? Вот и в расте нужно за этим немного следить. Если речь о возврате использованного объекта/структуры в пул - то я это и на шарпе делал, и в расте - один раз сделал и забыл, прост пользуешься.
>>767149
> Да, но на тебя накладываются солидные такие рамки языка
А в шарпе - солидные рамки рантайма
Там же в >>765372 я писал, что не стоит использовать раст для формошлёпства, так что все твои аргументы про рамки/удобство/перекладывание груза - всё мимо, когда GC мешает, и всё в точку, когда надо отдать на фронт джсонину с оперденью.
>>767166
Я не понимаю, с чем ты споришь. Раст уже давно в embedded https://github.com/rust-embedded/awesome-embedded-rust , где-то ему лучше (ARM), где-то хуже (AVR). HAL есть, async есть (embassy-rs). Stdlib нет (зато есть no_std), но её нет и для плюсов, да и для си она очень куцая (newlib). Есть проекты, затащивщие libc на микроконтроллеры (embox например), но там и камни нужны жырные.
Проблема раста в embedded та же, что и в тырпрайзе - неразвитая экосистема. Вендоры пилят свои SDK и примерчики на сях, почти все драйверы тоже на сях, а те, что портируют на раст - не поддерживаются дольше неск месяцев. Хорошо, что я завязал с embedded лол
> Как часто тебе в твоем мидловом проекте оно садилось на лицо??
Выше в >>765372 я писал, что пилю код для трейдинга (биржевые/брокерские движки, торговые/маркетмейкинговые боты, всякая инфраструктурная и вспомогательная поебень - и это не HFT). Да, GC мне сильно портит жизнь. За 20-50мс, пока GC что-то помечает и компактит, бот может проебать выгодную сделку, маркетдата может протухнуть, top-of-the-book может уползти слишком далеко от заявки, и клиенты моей конторы проебут деньги.
До этого я пилил код для видеостриминга - там GC тоже создаёт проблемы. Когда у тебя сотни стримов и десятки Gb/s, из-за stop-the-world дропаются фреймы, из-за этого расстраиваются системы видеоаналитики, грустят кодеки, и потом уже и клиенты.
>>767126
>работает почти так же быстро
Недостаточно быстро
> В реальности в ты 99% пишешь подобие круда, перекладывая одни данные в другие и только в 1% пишешь дробилку.
Не угадал. Я как раз делаю так, чтобы перекладывать поменьше данных.
> Мне еще за 15 не приходилось писать ручками управлению с памятью
Что именно ты называешь управлением памятью? Кастомные аллокаторы? Так и я их не пишу. Ручную очистку после использования? Так в большинстве случаев при выходе из скоупа всё или сразу дропается, или в Rc/Arc что-то декрементится и потом может быть дропается. Ты ведь в шарпе IDisposable просто так не создаёшь, без using перед или .Dispose() после? Вот и в расте нужно за этим немного следить. Если речь о возврате использованного объекта/структуры в пул - то я это и на шарпе делал, и в расте - один раз сделал и забыл, прост пользуешься.
>>767149
> Да, но на тебя накладываются солидные такие рамки языка
А в шарпе - солидные рамки рантайма
Там же в >>765372 я писал, что не стоит использовать раст для формошлёпства, так что все твои аргументы про рамки/удобство/перекладывание груза - всё мимо, когда GC мешает, и всё в точку, когда надо отдать на фронт джсонину с оперденью.
>>767166
Я не понимаю, с чем ты споришь. Раст уже давно в embedded https://github.com/rust-embedded/awesome-embedded-rust , где-то ему лучше (ARM), где-то хуже (AVR). HAL есть, async есть (embassy-rs). Stdlib нет (зато есть no_std), но её нет и для плюсов, да и для си она очень куцая (newlib). Есть проекты, затащивщие libc на микроконтроллеры (embox например), но там и камни нужны жырные.
Проблема раста в embedded та же, что и в тырпрайзе - неразвитая экосистема. Вендоры пилят свои SDK и примерчики на сях, почти все драйверы тоже на сях, а те, что портируют на раст - не поддерживаются дольше неск месяцев. Хорошо, что я завязал с embedded лол
>Да, GC мне сильно портит жизнь. За 20-50мс, пока GC что-то помечает и компактит, бот может проебать выгодную сделку
Фига там мега чеды покупки делают в наносекунду. Биржа таких гениев не банит что ли? У тебя приложуха может выпасть в просадок 50мс без ГЦ просто по логике. Тебе тут надо реалтайм приложение просто.
В любом случае это явно луп какой-то и как раз решается кэшами без ГЦ. Причем в шарпах сбросить кэш будет быстрее чем освобождение и выделение новой памяти у ОС.
В общем, очередной надмозг программирования нафантазировал задачу в вакууме и думают решил что-то.
Понимаешь нельзя просто взять си или раст и начать производительно писать, ну то есть наговнокодить тормозной код, который будет медленней динамических языков - нефиг делать, сам такое писал на сях что тормозило сильнее пхп, где местные надмозги высерали такие алгоритмы в сорцах, что обосраться можно. Даже подкрученные говнотесты в 100 строк допиливают месяцами, а ты такой гений у нас, взял низкоуровневый язык и сразу все быстро стало.
В общем после 20-50мс я дальше не читал, ссори.
Я так понял у нас наконец-то появился аналог Илюши из го треда?
Расскажи о себе, какие олимпиады выиграл? Как старые тупые взрослые не понимают твоего юного гения? Расскажи как среднестатистические программисты, смеются над твоими идеями и даже не понимают где они, мидлово говно, а где ты, луч нового поколения?
ЧатГПТ с ебалом лягушки мне как-то выдал, что в расте, и в JS есть перегрузки... Даже накатал пример использования.
Полная хуита, но кое как откопал swap_axis который делает примерно то же самое, правда кажись через жопу
Алсо есть ли способ перегнать из питона pil image туда и обратно с минимумом восстановлений из байтов на стороне питона, если изображение перед отправкой обратно нужно вернуть из ndarray? Так то пытаюсь присобачить это модулем потому что numpy массивы в питоне жрут охуеть сколько оперативки как ни крутись, а очистка работает через жопу и замедляет выполнение. Видел где то что rust и быстрее в 100500 раз и памяти на матрицы жрет в разы меньше
Или это все наебка для гоев и зря я сюда полез?
>перегнать из питона туда и обратно
Я так понимаю, ты хочешь оставить питон, но заменить сишный numpy растом и надеешься от этого что-то выйграть? Скорее проиграешь, вряд ли напишешь лучше, чем в либе, которую разрабатывают с 95-го года). Пиши полностью на компилируемом языке, избавишься от оверхеда интерпретатора. Если с ML ебёшься, в сторону раста можешь не смотреть, онли C++. Не, ну можно дёргать сишные апи из раста, но зачем усложнять себе жизнь на ровном месте?
Если не собираешься переписывать с питона на краб, то скорей всего зря.
трансгендеры, сэр
Забавно, но раст реально зависит от llvm, у них нет своего бэкенда (или как там они это называют).
Лайфтаймы это костыль, где вся парадигма языка рухнула.
Когда разработчики пришли к лайфтаймам, экспериментальный проект нужно было закрыть.
>Не осилил?
Это аффтары не осилили нормальную систему типов, и теперь программист должен вилкой чистить вместо компилятора.
Чем тебя не устраивают типы как в Хаскеле?
Ой, да ладно, там интереснее есть (это где-то в тестах компилятора)
Но мне больше нравится, когда там касакад из вложений типа
Arc<Option<Box<Vec<Rc<Jopa>>>>>>
Так это макро.
>Arc<Option<Box<Vec<Rc<Jopa>>>>>>
Как такое говно у тебя получилось? Нахуя например вектор в бокс обернул?
Потому что можно.
Это не реальный пример, но видел нечто подобное, уже не помню что там было. В любом случае спаггети код как есть, на такой цепочке можно долго повиснуть мозгами.
Понятия не имею, подозреваю что опенсорсный.
Так а чем он похож? Тайпскрипт еще ладно, но я хочу нормальный паттерн матчинг, сам тайпы, трейты и тд
Хаскель.
>Существует ли язык похожий на раст но с GC?
Что значит "похожий"?
На OCalm-е попиши, если делать нехуй.
F#
>сам тайпы
Резальты, опшины такое говно если честно. Нуллабл типы оказались удобнее, а обработка ошибок руками не только не удобна, но бестолкова, так как в большой софтине требует стектрейс.
Кто сейчас в здравом уме?
Люди вылезают из жабы, создавая дифицит кадров, я погружаюсь в джаву за 3 сотыгами
Блять, анон, звучит как план сверхразума. Как там срынком сейчас? Джуну возможно пойти на удаленку за 300к/наносек
ХЗ, там они как-то варятся в собственной моче, жизнь идет мимо них. Когда вкатывался в 2020 залетел в жабаконтору на стажировку, там они пилили какую-то кривую crm, короче классика монолитище на спринге, хибернейт и все дела. Поддерживали древний код, я вносил правки в класс 2006 года, куча паттернов ради паттернов. Там даже html генерировался в виде классов, которых генерировали билдеры, а билдеры создавались фабрикой. А уже всякие сортировки по колонками таблицы и графики в виде картинок сделаны были солевыми наркоманами.
А разворачивание софта отдельная песня: скачай jar, поставь такую либу.exe как это у тебя не винда? ну попробуй поставить libhuj-dev.so авось прокатит, скачай jboss лохматой версии, половину зависимостей поставь через maven, другую через ant, перекрестись и запускай.
Я через месяц свалил к хуям.
>Там даже html генерировался в виде классов,
Вот нашел кстати эту либу https://jakarta.apache.org/ecs/ эти элементы генерировались самописными билдерами.
Сука, иной раз до маразма доходило класс билдер чекбокса формы настроек и фабрика для разных чекбоксов, которые различались атрибутами class, name и id но для каждого случая свой класс и иерархия наследований
Да, на макросах, но нужно знать лисп.
Задроченных гиков, готовых посвящать фронт-енду все дни и ночи своей жинзи, на рынке труда предостаточно. А будет ещё больше.
Компании разумно требуют при найме от кандидата соответствовать верху потенциальных кандидатов. Твои хотелки, твоё желание тихой спокойно жизни и оптимального ворк-лайф баланса никого не интересует. Работодателю есть из кого выбирать.
Просто если ты можешь также, как они, то значит, тебе не место в профессии.
Есть профессии с риском для жизни (военные, внедренные менты, пожарные), с отлучением от дома на долгие месяцы (вахты, моряки), с постоянным получением пиздюлей и проведением большей части жизни в изнуряющих тренировочных лагерях на строго диете (спортсмены и мордобойцы). Это всё просто неотъемлемые особенности профессии. Так и в айти. Ну не нужен просто программист, который не горит своей профессией, не готов посвятить ей свою жизнь без остатка. Не будешь ты рядом с такими конкурентно способен.
>As of 2010-09-01, the ECS project is retired
Уфф, анон, соболезную через какое дерьмо тебе пришлось пройти. Нюкните кто-нибудь Apache Foundation, это долбоебы основные поставщики говнокода на жабе в опенсорс.
маняфантазии
Лол, вообще похую пусть эти задроты работаю во всяких яндексах, я себе место найду
хуй
Вышло так, что планы на carbon оказались более влажными чем ожидалось, в общем, они там передвинули превью версию языка и сам релиз еще на 1-2 года. Видимо, в гугле наконец-то поняли, что чтобы пилить язык нужны соответствующие специалисты, а не только влажные фантазии и громкое название языка.
Так что релиз "запланирован" теперь аж на 2026 год. И зачем было вообще об этом говорить в том году?
https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/roadmap.md
Не понимаю зачем они пилят новые языки если айти уже всё
Это скорее для задротов, для которых работа удовольствие, а не способ зарабатывать деньги
> в гугле
Неудивлюсь если карбон окажется здесь https://killedbygoogle.com/
Как-то наивно всерьез рассчитывать на гугл, вот когда выкатят, оно проработает пару лет, будет отдельный независимый фонд с другими спонсорами кроме гугла, тогда и можно этим пользоваться, как напремер было с го
Раст >> всё остальное
Ты даже не представляешь что за легаси там можешь встретить и что не стоит оно никаких денег.
Гугл не очень может в языки, все же яп это не игрушка в виде той политики 20% времени, в надежде что кто-то тебя на халяву высрет топ продукт.
Тут либо ты вливаешь туда тонну ресусров, либо получаешь говно.
> либо получаешь говно.
Справедливости ради он довольно неплохо залетел в нишу микросервисов. Да и по сравнению с другим говном не такой уж и страшный. Простой как мясорубка можно посадить колотить код хоть пхпшника после цмс, работает шустро с небольшими тормозами на ГЦ, многопоточно мешать джсон туда-сюда можно из коробки с минимальными зависимостями.
Начинай осваивать сейчас, как закончишь разовьют получше.
As an AI language model developed by OpenAI, I'm designed to assist with a wide range of queries, providing information, generating text, answering questions, and more. I'm based on machine learning technology, and specifically the GPT-4 architecture, which uses patterns in the data it was trained on to generate responses. It's important to note that while I strive for accuracy, I don't have access to real-time data or personal data unless explicitly provided during our conversation. My primary function is to provide assistance and facilitate a more seamless interaction for users seeking information or help with various topics.
Еще один язык, который почти не используется кроме одной области. Это говно настолько примитивно, что безболезненно писать тонну бойлерплейта можно только в самом простом - микросервисы.
Надо быть одаренным, чтобы всерьез вкатываться в язык, у которого нет кодокапитала и работы.
Влюбляйся и восхищайся, кроме агрессивного маркетинга, явной движухи пока нет конечно, мое мнение.
>Надо быть одаренным, чтобы всерьез вкатываться в язык, у которого нет кодокапитала и работы.
Вкатываюсь на перспективу чтобы писать непробивной софт и фирмварь для военной диктатуры которая вскоре установится во всём мире. Вопросы?
>Ох, эти сложные круд сервисы
Поменяй желтую и синюю фигурку местами и серьезно попробуй куда-нибудь устроиться. Микросервисы бывают разные, где-то в битриксопараше куда тебя возьмут могут быть 3,5 круда для сайта визитки, на проектах уровня озона один сервис это сотни файлов и десятки тысяч строк и их спокойно пилят на го
Это скорее всего один человек, который учился у Столярова, он набегает также и в другие треды, но почему-то здесь как-то усердно прописался не осили баран чекер и обижается на всех
За один только cargo и модульную систему можно отсосать у самой страшной небинарной телки из раст фандейшен. В плюсах просто поднять проект уже задача.
Местного шиза я знаю, у обоих есть свой стиль письма, но раста-шиза в других тредах я не видел.
>Поменяй желтую и синюю фигурку местами
Я рад что ты так легко справляешься с головоломками, но ненужно свои проблемы вкатуна проецировать на других, у меня есть работа, мне перезванивают.
> на проектах уровня озона один сервис это сотни файлов и десятки тысяч строк и их спокойно пилят на го
Воу воу палегче, десятки тысяч строк, вот это го может!
А вообще пахнет уже избитой темой мартых, было 100500 микросервисов, стало 100500 монолитов.
Гейские технологии на страже будущего? А ты не очень силен в фантастику.
В протухшем треде сёмен накидывает на вентилятор, чтобы реанимировать тред. Ему уже говорили хотя бы новости или лулзы кидать, а не бывших питонистов злить в треде.
>Воу воу палегче, десятки тысяч строк, вот это го может!
Лол, сразу видно жабошарписта, если пишешь фабрики фабрик то это может показатся мало, сейчас ради примера в крейте tokio посчитал 108911 строк без остальных крейтов только сам токио https://github.com/tokio-rs/tokio/tree/master/tokio/src а это довольно внушительный проект. Еще раз говорю найди себе работу и не позорься
Это как раз таки антипаттерн
Обсирают го-монолитные микросервисы в десятки тысяч строк кода.
@
Приносит опровержение
@
код в 100К строк
@
код нефига не микросервиса
@
код вообще на расте
>Еще раз говорю найди себе работу и не позорься
Вообще, низко шутить про работу в раст треде.
Год назад на гитхабе писали:
>I'd tolerate rust learning curve complexity or go's garbage collector over carbon just because of the cross platform build system to be honest. It's a shame that this feature is not high priority in carbon.
I think once Carbon gets beyond the super early experimental stages, this may well become a much higher priority. =] I think the real point here is that Carbon is in a much earlier project stage than Rust or Go, both of which are mature and ready for business. =]
Ну ты же доебался за количество строк кода, вот я тебе и привел пример что первое попалось под руку что в 100к кода влазит довольно серьезный проект, тут язык особой роли не играет. Ща я тут тебе выложу код из закрытого репозитория чтобы доказать что-то, ага
>-монолитные микросервисы
Лол, в крупных проектах это именно микро
>>781691
>Вообще, низко шутить про работу в раст треде.
Не берут на расте начни с пхп
Зачем тащить кал для нормисов с ADHD сюда? Кидай такое своим зумерам одногруппникам в телегу, может тебе реакции поставят 🔥🥰
в шапке не хватает в дополенение к https://doc.rust-lang.ru/book/ еще https://github.com/rust-lang/rustlings - цикл задач, привязан к учебнику и на практике позволяют попробовать то, что только что прочитано
-Наш агрессивный маркетинг больше не работает миллорд.
-Давайте накинем так, что мы хейтим язык, но на самом деле будем снова пиарить!
-Ха-ха-ха, какой же вы гений, мой господин!
сова так туго уже лезет на глобус, что сам глобус скоро коллапсирует
В шапке не хватает нормального языка.
Да это рофл походу, там чел удивляется что нет кнопки "ран" и нужно в консоли команду писать. Имагинируйте ебало тех кто всерьёз такое воспринимает
Обмазывание блокчейнов джсонами и погрузка этих джсонов на фронт для покраски кнопок
У меня есть кнопка в вскоде с раст аналайзером
Если по серьезному, то кнопка нужна чтобы через хоткей собирать, да и вообще сейчас не 85 год, чтобы радоваться консольной компиляцией, хотя бы базовый тулинг должен пресуствовать, это же самый любимый язык.
>>784704
В шарпах есть консольная дрочка как и у всех, вылезай уже из криокамеры. неткор в релизе 7 лет, на год меньше чем раст, надо быть уж совсем некомпетентным говном, чтобы ничего не знать о новой технологии в 2023
Memory Safety: Rust has a unique feature called "ownership" with features like borrowing and lifetimes, which guarantees memory safety without needing a garbage collector. This can help prevent common programming errors like null pointer dereferencing, double free, etc.
Zero-Cost Abstraction: Rust, like C++, prides itself on "zero-cost abstractions", meaning you can write high-level abstracted code without having to worry about a performance cost. While Go also has good performance, it doesn't have this zero-cost abstraction principle.
Concurrency: Both Rust and Go provide excellent support for concurrent programming, but Rust's is more advanced. Rust's model allows for more fine-grained control and better performance in some cases, but it comes with increased complexity.
Interfacing with C: Both languages can interface with C, but Rust's FFI (Foreign Function Interface) is more straightforward and safer. Rust's type system and ownership model help ensure that the interface with C code is as safe as possible.
Control over Hardware: Rust gives more control over system resources which makes it a more suitable language for systems programming. It's a good fit for things like game engines, operating systems, and other low-level applications.
Package Manager: Rust's package manager, Cargo, is often cited as one of the best features of the Rust ecosystem. It's powerful, easy to use, and also handles building your code. Go's package management has historically been a point of contention, though this is less true now with the introduction of Go modules.
мимо чатгпт, тратить собственные калории на такие поверхностные вопросы лень
>Сейфовый
Раст победил проблему работы памятью, которой в го не было. Ну офигеть просто.
Кстати, помню что в го гц с гарантированным 10мс потолком, так что ребенок с вымышленной биржой мог бы взять и его.
Для самоутверждения лучше использовать хаскель, все остальное детсад.
>мимо чатгпт, тратить собственные калории на такие поверхностные вопросы лень
Так доиграешься и чатлгбт заменит и тебя.
ChatGPT, Rust и Go служат разным целям. ChatGPT - это AI модель для генерации текста и поддержки беседы. Rust - это язык программирования для системных приложений, обеспечивающий безопасность памяти. Go, созданный Google, прост в использовании и поддерживает многопоточность "из коробки". Выбор зависит от задачи.
>прост в использовании
Ну-ну
>многопоточность "из коробки"
Быть такого не может. Единственный в своём роде
Rust и C++ предназначены для работы в схожих областях, включая системное программирование, но Rust имеет несколько преимуществ:
Безопасность памяти: Rust фокусируется на безопасности памяти без использования сборки мусора, что позволяет предотвращать ошибки вроде разыменования нулевых указателей и гонок данных.
Управление зависимостями: Система пакетов Cargo в Rust упрощает управление зависимостями и сборку проектов, в то время как в C++ отсутствует единая система пакетов.
Отсутствие неопределенного поведения: В C++ много случаев "неопределенного поведения", которые могут привести к сложно отлаживаемым ошибкам. Rust старается минимизировать такие случаи.
Управление жизненным циклом ресурсов: Механизм владения (ownership) и правил жизненного цикла в Rust обеспечивают точное управление ресурсами, что предотвращает утечки памяти и другие проблемы.
Инструменты: Средства разработки в Rust, включая форматирование кода, поддержку тестирования, генерацию документации, встроены в компилятор и обеспечивают единообразие и удобство работы.
Однако, стоит отметить, что C++ имеет более долгую историю, большую базу существующего кода и широкую поддержку в индустрии, что может быть важным при выборе языка для конкретного проекта.
бред
-Тонна готовых решений
-Работает на любом утюге
-Тоже есть RAII, но из каждого курятника об этом не кричат.
-Вменяемый синтаксис, такие забытые технологии древних, как аргументы по умолчанию и перегрузка функций.
-Если нужно - есть ООП, что бывает нужно.
-Есть работа.
-Геймдев
-Тысячи капитал кода.
-В управление сидят люди заинтересованные в практическом развитие языка, так как сами его используют в продуктах, а не имитации бурной деятельности успешных менеджеров, с целью, вероятно, попила на технологии так как кроме агрессивного маркетинга я ничего не вижу
-Там где действительно будет нужен раст, то есть не крудошлебство и веб, скорее всего нужен будет С++ и будет С++ легаси.
В общем, опять два языка за одну зарплату.
ну и нахуй тогда этот ваш раст нужон???
Clone - то что есть возможность клонировать объект (.clone())
Copy - то что вместо того чтобы передавать сам объект, передается его копия (как с интами например)
Из-за Copy ты не передаешь сам объект, но его копию и тогда все правила владения соблюдены
Системный язык.
Система владения стимулирует копировать все что шевелится.
А это очень накладно в рамках большого софта.
Система владения перекладывает на юзера механизм сборки мусора, а так как в большом проекте хер знает сколько понадобиться тот или иной объект, то он создается фактически с (макисмальной) жизнью всей программы, что создает утечку памяти (либо очень короткоживущие).
Сама по себе иммутабельность так же стимулирует копирования объектов.
Есть проверка границ массива.
Есть сборка мусора Rc, Arc.
И как это шляпа в долгоиграющем проекте может быть быстрее С, кроме коротких искусственных тестов?
Что плохого в копировании? Просто пишу на C под микроконтроллеры и ты либо всю память выделяешь статически или на стеке, либо ебёшься потом неделям по логам и без нормального дебага в поисках ошибок в работе с указателями.
MISRA C:2004, 20.4 - Dynamic heap memory allocation shall not be used.
И?
Ты сравнил ембеддед со здоровой разработкой.
Кстати в ембеддед, копирование еще хуже, воткнуться в предел памяти нефиг делать.
Нет, борща хочу.
мимо крок
Конкретно здесь можно залезть в репо и посмотреть на папку examples. Если ни в доках, ни в репе, то очень жаль.
Маркетинг, накрутка.
Так же раст преподносится как альтернатива С++. И когда некий питонист слышит это, вспоминая в студенческие годы лабы на С++ и весь тот ужас древнего языка, он начинает восторгаться, мол как прекрасен раст, хотя ему системная разработка и не нужна была.
Все это заслуги маркетинга, мы видим что восторгаются, но кодовая база растет очень медленно, ибо хайп.
Забавно, что где-то недавно слышал очередную говорящую голову на ютубе и та говорила, мол что действительно круто в расте это очень полные документации на все случае жизни.
Так что помимо маркетинга, тут еще добавляются фанбои с напрочь отсутствующим критическим мышлением, воспринимающие технологию как догму.
Сразу ловлю флешбэки с джавовских пустых документаций.
Опенсорос хули, тут во всех языках такое. Тут хоть в код нырнуть можно, помню как с руби было там вообще все упражнялись в метапрограмировании и использовании синтаксического сахара и когда не было доки был пиздец.
doc.rs на практике бесполезен, лучше открывай сразу репозиторий там больше информации и примеры бывают
Надо различать документацию и туториал. У термиона в доках есть ссылка на README, и там как есть ссылка и на примеры и на туториал. А в доках всё збс, хотя примеров почти нет.
Если бы ты работал за деньги, ты бы не задавал вопросов про эту доку, потому что за деньги очень часто и не делают комменты к функциям, по крайней мере если это говно для внутреннего пользования. Ну либо ты где-то в слишком хорошем месте работаешь, потому что меня на работе отсутствие комментов каждый день триггерит.
>>Вменяемый синтаксис
>>Кресты
>Лол, ты их хоть раз видел?
Еще один пуганый питонщик, вы бы хоть молчали, чтобы свою некомпетентность публично не демонстрировать.
>Еще один пуганый питонщик, вы бы хоть молчали, чтобы свою некомпетентность публично не демонстрировать.
>>793285
>кто его хоть продвигает то?
Успешные менеджеры языка
Классический попил на ИТ-проекте, просто раньше ты его не видел, он проходил не на языках, а на ИТ-продуктах и не каждому кодеру эта кухня понятна.
Мозила дропнула, теперь с фонда сосут. Чем больше хайп, тем больше вокруг него баблом трясут. Или ты думал там за идею работают? кроме попенсорщиков, на тех вывозили всегда
>Придумал себе маркетологов
То что фанбои по инерции с языком бегают, это понятно. Но ты реально думаешь, что весь хайп он естественный? Проекту уже не мало так лет (7-8) слишком много для естественного хайпа, но из всех щелей до сих пор втирают одну и туже методичку с релиза. Мол, почему раст молодой язык и почему он нужен тебе и как хорошо мы победили работу памяти.
Го стартанул где-то в тоже время и там тоже был поддув, но сейчас его уже нет, язык естественно живет своей жизнью без агрессивного-дегенеративного маркетинга.
Свежие инцельские боевые картинки, а ты в тренде.
У Питона еще хуже тащемта.
Тем временем ошибки в плюсах выглядят примерно так, но это всё питонщики некомпетентные.
Идет разговор о синтаксисе С++
@
Как аргумент приводит в пример стектрейс ошибки в одну строку.
Откуда такие гении лезете? Стектрейс на расте будет каким-то другим? Более сказочным или что?
>вы бы хоть молчали, чтобы свою некомпетентность публично не демонстрировать.
А что мешают тебе её демонстрировать?
Почти дубляжи макака не помечает
У меня еще остается надежда, что разгонят успешных менеджеров и ржавый прекратит стагнировать в содомии. Или же высрут альтернативу.
А что тред? Протух тред, если не накидывать, вообще все печально. Кроме пару школьников вкатунов и еще какого-то толстого сёмена тут никакой движухи нет.
Я не против языка, я против фанбойства с догматами, весь этот маркетинговый однообразный булшит немного поднадоел. Люди на полных щах говорят что перегрузка ненужна или зачем нам ваши дефольные параметры. А почему бы и нет?
Отсутствие таких боевых стикеров как у тебя
Поменторишь меня в расте?
>Я не против языка, я против фанбойства с догматами, весь этот маркетинговый однообразный булшит немного поднадоел.
Я вообще этой хуйни не вижу, пчелы видят везде мед, а мухи говно. Хотя и работаю на расте уже 1,5 года и постоянно слежу за новыми версиями и крейтами. Если куда-то идти в определенное место за движухой, то возможно да трапики будут рассказывать как они дрочат друг другу на этот язык. Мне похую на это, я использую инструмент.
> Люди на полных щах говорят что перегрузка ненужна
В текущей реализации и если исходить из концепций языка не нужна. Если нужно использовать разные типы для одного метода, то бери либо дженерики, либо enum где ты явно обработаешь каждый тип, не хочешь так делать бери другой язык. Для других языков с другой философией и где это будет уместно - нужна.
>зачем нам ваши дефольные параметры
Тоже самое ты либо явно указывай при вызове, либо передавай Default::default(), либо используй Option и явно обрабатывай. Не нравится, возьми другой язык.
Вообще не понимаю нохуя ты уже который тред сову на глобус натягиваешь, у каждого языка есть своя концепция и иногда они могут не пересекаться с концепциями других языков и с твоими видениями прекрасного. Ты лучше зайди в жабатред и скажи что хочешь чтобы завезли функциональщины в язык хотя замыкания завезли лол не ООП единым можно же писать! Но нет тебя проклятые оракловские фанбои пошлют в скалу на хуй
Сейчас будет поход в фанбои лол
покормил
Почему такой ошибки не может быть в расте?
И продолжая, как ошибка компиляции соотносится с темой синтаксиса С++?
>Почему такой ошибки не может быть в расте?
Без понятия. Ты утверждаешь — ты и обосновывай.
>И продолжая, как ошибка компиляции соотносится с темой синтаксиса С++?
Ты там на картинке синтаксиса С++ не видишь что-ли?
>Мне похую на это, я использую инструмент.
Что будет когда закроют доступ crates.io? Что что, а политика и общество их больше интересуют чем инструмент.
>Если нужно использовать разные типы для одного метода
Какие еще типы, ну пчел, сигнатура метода вообще может иметь не связанный типы и тем более их может быть разное число. Уже обживали эту тему и показали апишечку с методом на пол страницы из вебассембли, пускай и автогенерацией, но все же апишечку.
Никак там не фиксится перегрузка, кроме как изменение имени (на самом деле компилятор в плюсах делает тоже самое, тупо приписывает к имени постфикс). Серьезно, никакой полиморфизм не заменит перегрузку, хоть может показаться схожем решением.
>Не нравится, возьми другой язык.
Почему нельзя требовать в текущем? Что за догма? Или если я буду это хотеть, меня отменят? С опшенами там тоже бойлерплейт выходит, мне просто лень демонстрировать.
>иногда они могут не пересекаться с концепциями других языков и с твоими видениями прекрасного
Опять же, что мешает требовать? Сейчас реально нет альтернативы плюсам, так почему не сделать альтернативу лучше? Типа я не говорю про какой-то прям сахар-сахарный, есть проверенные подходы и дефолтные параметры разрывают мозг только при наследование в ООП, что расту не грозит.
То что разработчики компилятора перекладывают работу на программиста (бойлерплейт) не есть хорошо. Ведь затрахались с возвратом и добавили оператор "вопрос". Или вон гошники почти лет 10 плакали как не нужны дженерики, а потом вроде и нужны были.
Я не понимаю ваш догматизм, откровенно положили болт, имхо.
>Без понятия. Ты утверждаешь — ты и обосновывай.
Так ты предоставил это как противовес расту. Почему обертка этой либы на расте не высрет такое же чудо? Явно картинка для воробушек, мол смотрите как С++ ругается от ошибка при использование какой-то графической либы, а мы вот знаем как красиво раст рисует ошибки баран-чекера хеллоуворда!
Там ошибка приведения одного типа к другому (причем достаточно номера строки в этом случае), у раста вообще может быть портянка вложений аля "Rc<Box<Cell<Jopa::S::Ruchkoy...", поэтому я продолжу и спрошу - каким волшебством раст решает проблему сложности системы? Или ты воробушек повелся на картинку с проявлением черрипикинга?
Я правильно понимаю, что если ввести перегрузку, то раст магическим образом станет лучше плюсов? Такая перегрузка тебя устроит? И типы разные принимает и количество аргументов сколько угодно. Ебать проблема.
>>794276
Слушай, у тебя у самого глубина стека какая? Раскрути по номерам постов, двач в этом помогает, можно просто мышку навести. Разговор был о вменяемости синтаксиса плюсов. На картинке "вменяемый" синтаксис плюсов, который регулярно видит разработчик. Я нашёл её за 5 секунд гугления. Пример конечно утрированный. Сравнивать его с растом зачем-то ты сам начал. Если тебе интересна эта тема, ты хоть реальный пример продемонстрируй, я тоже с интересом посмотрю, потому как сам пока ещё вкатываюсь и имею нулевой опыт с растом.
>Что будет когда закроют доступ crates.io?
Кто закроет и почему?
>Какие еще типы, ну пчел, сигнатура метода вообще может иметь не связанный типы и тем более их может быть разное число. Уже обживали эту тему и показали апишечку с методом на пол страницы из вебассембли, пускай и автогенерацией, но все же апишечку.
Вот пример https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=f5d6a6a321511b6bf6e69936721caa2c
Через enum можно решить описанную тобой задачу без перегрузок, смысл тут в том что один метод принимает на вход один тип и другого не дано, все должно быть явным и очевидным. Просто твои разные сигнатуры в enum, который нужно обработать в match, то есть обойти все варианты
>Никак там не фиксится перегрузка, кроме как изменение имени (на самом деле компилятор в плюсах делает тоже самое, тупо приписывает к имени постфикс). Серьезно, никакой полиморфизм не заменит перегрузку, хоть может показаться схожем решением.
На сколько помню дженерик при компиляции также делает, но если хочешь похожего как в плюсах то через enum
>Опять же, что мешает требовать?
Потребуй в пятерочке на кассе пересчитать по ППС, никто же не запрещает. Создай ишью или на форуме каком-нибудь и сиди конструктивно предлагай, а не занимайся на двощах троллином тупостью
>Я правильно понимаю, что если ввести перегрузку, то раст магическим образом станет лучше плюсов? Такая перегрузка тебя устроит? И типы разные принимает и количество аргументов сколько угодно. Ебать проблема.
Он будет требовать новое и заебывать всех как старуха в пенсионном фонде
>Такая перегрузка тебя устроит?
Собственно я еще в том треде написал:
>PS на самом деле я ждал мантру про макросы, но местные растеры настолько далеки от реального кодинга, что начали мантру про то что программисты плохие, а не язык виноват.
>>2703576
Меня там местные питоно-растеры вы заху..сосили, потому что я сказал что решение через макросы, ну и там началась олимпиада по говнокоду.
>Через enum можно решить описанную тобой задачу без перегрузок
Нельзя в том треде даже разжевал и обоссал почему, вообще только джун может начать группировать рандомные значения в енам.
>Он будет требовать новое и заебывать всех как старуха в пенсионном фонде
Ну в самом любимом языке важна же не накрутка SO рейтинга, а нужно делать его по-настоящему любимым и удобным.
С каких пор стала норма радоваться бойлерплейту.
Ну меня в том треде не было, извиняй. Хотя я так и не понял чем макросы плохи.
>вообще только джун может начать группировать рандомные значения в енам
Сеньор группирует рандомное поведение под одним именем функции, судя по всему.
>Нельзя
Ты скозал? Это тебя уже обоссали и объяснили почему в концепцию раста это не вписывается. Не согласен тогда бери другой язык или пиздуй создай ишью чтобы тебе такое добавили в Rust, можешь сам пару коммитов отправить, не хочешь или не можешь? Ну тогда хули ты тут пытаешься на двощах свою упоротость показывать. Тем более ты сам сказал что тут одни школьники в треде.
>а нужно делать его по-настоящему любимым и удобным.
Ну так бери и делай, всё в твоих руках.
>С каких пор стала норма радоваться бойлерплейту.
Так ты пиши по другому, вообще меня удивляет как так с маниакальным остервенением надо требовать перегрузку которая и так-то редко употребляется и легко заменяется дженериками. Нет выше высрал какие-то абстрактные примеры без практического применения, так и пояснить не мог нахуя они тебе
>заху..сосили, потому что я сказал что решение через макросы
Потому что оно не всегда к месту и макросы сложнее поддерживать особенно если всякие солевые шизы пишут, они больше нужны для кодогенерации в компайлтайме
>создай ишью чтобы тебе такое добавили в Rust
Этот малолетний наивняк об опенсорсе.
>можешь сам пару коммитов отправить, не хочешь или не можешь?
Именно так и работает, вот так просто принимается новый синтаксис в продуктовый язык, никакого rfcs нет.
Ну и конечно моя идея была первой, никто до этого ничего подобного не делал.
>перегрузку
>легко заменяется дженериками
Снова этот цирк компетентности. Ты же топил за енамы? Там еще кто-то топил за трейты, только один додумался до макросов.
Эх, Серега, Серега. За эти года уже мог бы устроиться программистом, вместо трёпа по тредам.
>они больше нужны для кодогенерации в компайлтайме
В фонд золотых цитат.
Мало того что просто капитан-очевидность, так еще в каком-то моменте усомнился и написал "больше", лол.
>>794542
Ну и? Чего сказать хотел? Пока не увижу ишью от тебя можешь ебальник свой прикрыть, ты не хочешь чего-то принести в язык, а тупо ебешь мозги на ровном месте. А как до дела дошло так и пошли детские отмазки, кококо попенсорс не попенсорс.
Я и про енамы и дженерики тебе говорил выше, но ты упоротый пиздец и даже не смог привести пример где тебе это надо
>>794542
>Серега
Таблетки не принял сегодня или по вене вдарил?
В сербском есть замечательное выражение описывающее мое отношение к тебе. Jeblo te veslo koje te prevezlo
Я же сказал, что япу мозг фанбоям с догматическим мышлением. Вчера говорил с обычным нормальным кодером, он про раст "залил" мне как и положительные моменты, так и явно что ему не хватает или не нравится.
Это нормально восприятие, но когда ограниченный говорит, что вот отсутствие дефолтных параметров или перегрузки это даже хорошо, вот это вызывает изумление. Хотя ты все равно не поймешь.
Серега, скажи, макросы правда нужны чтобы делать кодген в компилтайме, ты уверен?
Не так плох раст, как его безработные фанбои
>В сербском есть замечательное выражение описывающее мое отношение к тебе.
Ты слишком веришь в двачера, ты реально думаешь что всем не насрать и кто-то пойдет гуглить эту жопу?
В ру сегменте есть шарп сообщество на ютубе (возможно единственное, слушаю их за новости), так те упоролись и начали пилить видосы по расту, ну собственно восхищаться им (за деньги или сами "осознались", непонятно).
Так вот, они запили видос с лайв-кодингом или местным литкодом (точно не помню). И все это происходит с периодическим "методом тыка". И так забавно смотреть, как, вероятно, серьезные разработчики, тыкаются в синтаксис аля школота и при этом восхищаются этим продуктом.
Как это работает? Чем больше тебя язык ущемляет, загоняет в рамки и заставляет себя чувствовать не комфортно, тем сильнее ты его любишь и считаешь его правильным?
Я сначала думал что это какой-то мем, но часто стали попадаться видео из Rust-комьюнити типа @NoBoilerplate
Сначала парень записывал видосы про Rust, а потом - про полифазный сон (вредная хуйня вроде Малахова с уринотерапией), hack your brain with Soylent, что-то про то что он современный Прометей. Теперь взял имя Трисс, заходишь в дискорд -- там требуется указать какой ты сорт пидораса (pronounce).
Смотрю других - фронтендер переписывает свой crud с node на rust, требует фронт через wasm на rust, все переписывать на rust т тд.
Почему если Rust, то обязательно проблемы с головой? Что будет с этими людьми, когда из новой волны языков для замены C/C++ определится фаворит, у которого еще и будет двунаправленная совместимость со всей кодовой базой C/C++?
Всякой функциональщине тоже пророчили светлое будущее и рассказывали про невероятные фичи.
С одним промахнулся. То есть получается это вся я тебе одному отвечаю? Пиздец ты поехавший, ты сам пишешь по несколько сообщений, максимально набрасывая говна на вентилятор, я тут отвечаю думая что на разные от разных людей, ты меня этими ответами еще этим попрекаешь, хотя сам так делаешь и Серегой назвал. Неудивлюсь если ты в Бердянске в море срал
> тред ушел в лимит и перекат
Чтобы что? Что тебе дают перекаты или там потенциальному Сереге они дадут, за это деньги платят? Вообще поебать на этот перекат треда бамплимиты и прочую хуйню, вон соседний жабатред вообще после 1000 перекатывают и тем не менее там сидят. Ты еще скажи что из-за кармы на хабре и за лайки в инсте трясешься. Да и в целом больше всех набиваешь посты именно ты, еще и набрасывая чтобы тебе как можно больше ответили, причем срешь по 10 сообщений за раз.
Покормил опять
Гомофобная пидорашка, пиздуй в обратно в 1с-барак.
>Почему если Rust, то обязательно проблемы с головой?
Агрессивный маркетинг, привлекает соответствующую аудиторию.
Как пример маркетинг на хайпе модного движения с подмешиванием раста. Все эти изменения имен констант или слов типа slave/master, это как раз фокус на хайповую движуху, добавляя сюда скандалы и драмы, впоследствии привлекая еще более обостренные умы.
Забавно, но ранний раст хайповал еще на хипстоте, отсюда отсылка название раста к лофту (см первую картинку) и к стимпанку в целом (к его ржавому "rusty" подстилю)
К сожалению, долговременный агрессивный маркетинг свидетельствует, что техническое развитие их интересует меньше всего, так как привлекает в основном шумных маргиналов, а не технически грамотных разработчиков.
>Почему если Rust, то обязательно проблемы с головой?
Время, которое раньше ты тратил на отладку, можно потратить на самоанализ своей идентичности.
>Всякой функциональщине тоже пророчили светлое будущее и рассказывали про невероятные фичи.
ФП был неким способом самоутвердиться, особенно яркий дрочь на хаскель, но не все могли осилить это говнище, поэтому брали что по легче, пока для самых тупеньких не завезли раст.
Но стоит отметить, что реально есть люди с другим складом ума, которые вдохновляются именно этой около математической красотой. В продакшене же эта хрень малопригодна, да и бизнесу нужен продукт, а не абстрактная красота кода ради кода.
Ты хотел сказать время которое тратиться на компиляцию? никаким образом одна только парадигма владения не решает тот груз проблем в программирование, которые есть сейчас
Уеду на пару дней, пока придумай проект для менторства.
А лучше найди какие-нибудь простенькие сорцы, интересно как раст читается вообще, ибо сопровождение важнее написания для меня, можешь свои, в которых шаришь
Гоу только в дискорд? Пока в дороге почитаю про хруст, освежу память.
Ну да, там в дискорде тел привязывать не надо (по крайней мере раньше не надо было), можешь рандомный ник запилить. Чтоб без дианонов и прочего.
Может какие ньюфаги тоже захотят залететь, ибо вся инфа на ангельском, трудновато учить системный яп на английском. А тебе чсв погонять.
>никаким образом одна только парадигма владения не решает тот груз проблем в программирование, которые есть сейчас
Там еще однозначность синтаксиса, за счет которой нормально работает вывод типов и ты не листаешь 15 вариантов одной функции перед тем как понять, что нужной тебе там нет.
Ну и борроу чекер реально даёт много, когда ты знаешь, что объект, который ты используешь, никто не убьет в из рандомного коллбека.
Зачем Дискорд? Я тебе сейчас ссылочку дам там нужно номер карты и код из смс ввести для подтверждения возраста, всё безопасно, ну что согласен?
>отсюда отсылка название раста к лофту (см первую картинку) и к стимпанку в целом (к его ржавому "rusty" подстилю)
А Грэйдон в курсе об этом?
><graydon> I think I named it after fungi. rusts are amazing creatures.
https://www.reddit.com/r/rust/comments/27jvdt/internet_archaeology_the_definitive_endall_source/
Примеров нечитаемых ошибок в расте я от тебя так и не дождался. Зато случайно получил задачку на литкоде с той самой портянкой вложений. В процессе конечно же получил 100500 ошибок и каких-то страданий от их чтения не испытал.
>и ты не листаешь 15 вариантов одной функции перед тем как понять, что нужной тебе там нет
Ну если нет перегрузки, ты теперь листаешь 15 разных функций и теперь у тебя нет образца названия по которому можно найти схожее и эти 15 функций выглядят как остальные 50.
То есть, вместо листания 15 ты стал листать все функции - 65. Офигеть победа.
>I think
Он сам не уверен. Да и движуха хипстоты прошла.
Ну и конечно слово rust у всех ассоциируется с грибком на пятке, не иначе.
Ппц говноедство. Я теперь понял почему они стремяться сокращать имена, полные имена выглядели на весь горизонт при таком подходе.
Судя по второй картинки, первые ошибки сводятся к муву переменных. То есть борьба с языком. Офигеть, мы еще сражаемся с самим языком, до настоящих ошибок не дошли еще.
И да в твоем примере была полноценная либа и вероятно продакшен код, а не эти лабы, хотя уже и в них вложенность пугает.
И что за тупость в ошибках копировать сорцах "с рисунами". Это для самых маленьких или что? Уже как 10-15 лет IDE сами подкрашивают ошибку и приводят за ручку где она случилась. С чего вдруг портянка с рисунка для даунов стала читабельнее, типа строчка кода даст мне сразу представление где она там находится в реале, бред, дальше хелловорда ненужная херня?
>Ну если нет перегрузки, ты теперь листаешь 15 разных функций и теперь у тебя нет образца названия по которому можно найти схожее и эти 15 функций выглядят как остальные 50.
>
Нет, я использую одну функцию, которая принимает лямбду и заменяет все 15.
Соглы, мне тоже не нравится. В каком языке работа с обобщёнными типами лаконичнее? Хаскелл какой-нибудь, наверное.
>>796117
Да ошибок там несколько было. Забыл кеш передавать по ссылке, выбрал итераторы по значениям вместо ссылок, в кеш помещал не копию, а искомый результат. Ну и вместо map надо было в том варианте for_each использовать, вообще глупо написал. В целом ошибки были понятны если вдумчиво их прочитать, а компилятор ткнул носом. При этом несмотря на активное использование стандартной библиотеки их не распидорасило на несколько экранов, как это было бы в случае с С++ даже для "лабы".
>первые ошибки сводятся к муву переменных. То есть борьба с языком. Офигеть, мы еще сражаемся с самим языком, до настоящих ошибок не дошли еще.
Они там все к этому свелись. Вообще-то, от компилятора раста я именно этого рода ошибок и ждал, это же основная фича языка, не понял в чём претензия.
>И что за тупость в ошибках копировать сорцах "с рисунами".
На вкус и цвет. Кому-то наверное и раскрашенный разными цветами выхлоп кажется слишком детским, и что?
Ну эта цитата встречается везде, он прямо говорит что "кажется я назвал его поэтому" и потом он высирает там тонно говна про грибы, хотя мог назвать язык fungi или прям pucciniales, раз ему так зашло.
Вон PHP тоже переобули вовремя, успешные менеджеры же (которые и убили яп).
Вторая проблема, что Грэйдон там существует вроде как номинально, он как витрина. От изначальной задумки автора там мало что осталось в проекте. Это как сейчас от создателя колеса слушать про автомобили.
Я не могу доказать что маркетологи это переиграли, но я видел проблески этой движухи и там стимпанковского rusty стиля было больше чем грибка (его вообще не было), так что я оставлю свое субъективное мнение, а объективно я не прав, раз есть какая-то вырезка irc чата, которую, кстати, никто проверить не может, но выглядит убедительно, лол.
Мне эти высеры в раст ошибках читаются сложнее чем построковые ошибки с номерами строк и текста ошибки.
Я прям визуально чувствую как пытаюсь искать проблему в этом "рисунке" и когда нахожу я иногда не совсем понимаю где это именно это все происходит, когда же в старом стиле я просто иду по номеру "Ctrl+G" и уже вижу весь контекст кода.
Конечно, я могу и тут увидеть текст ошибки и номер строки, но вот эти рисунки в моей голове создают лишний шум, да и непонятно зачем все это, когда у тебя есть номер строки и позиция и IDE может сама подчеркнуть уже в реальном коде.
Наверное есть ключ компилитора, который убирает эти рисунки, но я не искал, я пытался понять раст как обычный потребитель, как есть, а не начинать его там поднастраивать под себя
В общем, кажется предвзято, но рисунки эти нихера не круто. Понятно что зумеры шарахаются от старых ошибок, но все же это задача тулинга, а не компилятора.
Первый же коммент подъеживает.
Yay, biology!
Wait! Then why the symbol of the language is a cogwheel?
перевод:
Ура, биология!
Пождите! Тогда почему символ языка — зубчатое колесо?
Сильно зависит от того, что именно ты делаешь. Но да, абсолютное большинство тех, кто пишет на расте и при этом не пишет на C или крестах, даже не знает, что такое "дамп памяти".
Это хорошо. По хорошему хотел бы вообще избегать с/с++.
Понятно, что для многих важна работа и прочее. Но думаю этот язык точно надо взять себе на вооружение как основной инструмент в "домашней делах" (личной автоматизации). Он реально может занять место хорошего универсального инструмента, стоит только набить мозги. Ну а дальше он сам по себе и выстрелит, когда станет таким "карманным" средством каждого кодера.
Хайпуйте и размножайтесь!
Если есть, то просто ткните куда копать или что почитать.
1) Открываешь карго бук.
2) Ищешь "offline"
3) Находишь что надо
https://doc.rust-lang.org/cargo/reference/unstable.html?highlight=offline#offline-mode
>>797817
Это как однотредовый рантайм токио, только говно и написано своими руками.
https://docs.rs/tokio/latest/tokio/runtime/index.html#current-thread-scheduler
Тоже почти никогда, за 1,5 года один раз и пару раз профайлером, в остальных случаях находил проблемы в коде без труда
Благодарю.
>>797942
Вот этот вариант больше отражает мою потребность (возможность настроить вендор папку в самом проекте)
https://stackoverflow.com/a/65254702
Пока не пробовал, но вроде то что нужно мне. если
кому интересно
Готово
Это копия, сохраненная 29 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.