Это копия, сохраненная 7 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
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
Предыдущий: >>2376798 (OP)
Столяровщина идет лесом
Почему троица, если 4 языка на пикче? И почему Си стали соевым считать?
И там и там unsafe есть,
и там и там сборка мусора,
и там и там дрочь на безопасность,
и там и там проверяются индексы массива или юникод символа.
Но только в шарпе асинки без UB.
>Вне unsafe раст даёт гарантии. А теперь пошёл нахуй.
Ты не поверишь, но шарп тоже дает гарантии если нет unsafe.
Зачем ты опять с шизом споришь? Шарп - параша с полноценным GC на виртуальной машине, раст - компилируемый язык без gc, такой же как плюсы. Это как плюсы с шарпом сравнивать.
обвиосли - Петухон
Так-то и жизнь не нужна, если разобраться.
Неуправляемый язык имеет больше безопасности, чем управляемый, ага.
>>30469
>Шарп - параша с полноценным GC на виртуальной машине, раст - компилируемый язык без gc
Обратите внимание как этот выдрессированный фанбой, на всякий случай использует фразу "полноценным GC"
>компилируемый язык без gc
Там такой рантайм, что надо всю стандартную либу выкинуть. И все равно что-то останеся, потому что надо паники кидать. А теперь представьте раст без стандартной либы.
Неуправляемый язык имеет больше безопасности, чем управляемый, ага.
>>30469
>Шарп - параша с полноценным GC на виртуальной машине, раст - компилируемый язык без gc
Обратите внимание как этот выдрессированный фанбой, на всякий случай использует фразу "полноценным GC"
>компилируемый язык без gc
Там такой рантайм, что надо всю стандартную либу выкинуть. И все равно что-то останеся, потому что надо паники кидать. А теперь представьте раст без стандартной либы.
https://twitch.facepunch.com/
Ожидаемо.
Я не удивлюсь если его адепты отключают js в браузере и сами пишут прошивки для домашних утюгов и тостеров
Шизик-неолуддит от мира айти. Считает что все императивные языки со сборкой мусора это помойка, ненавидит JS, и отключает имейлы
>неолуддит от мира айти
Забавное сочетании. Я так понял это просто очередной инфоцыган, который накидывает на вентилятор, чтобы максимально привлечь к своей персоне, ради продажи книг и прочей чепухи.
Знаю один уже довыеживался, отменили его.
>продажи книг
Его книги доступны бесплатно. Это 3 книги про основы программирования, устройство пк и сеть. Весь хейт сводится к тому, что он дает основы паскаля и то что он не Кнут.
Книги у него годные и содержат много полезной инфы. Можно смело советовать новичкам, но главное их предупреждать, чтобы они философские вставки Столярова серьезно не воспринимали. Вот если его личную шизу убрать, то книги хорошие
Даже жаль его немного, чуваку, наверное, придется держать отдельный форк ядра после того как в Rust войдет в его любимый Linux
На BSD пересядет.
Не войдёт, эксперименты с ним не более чем ублажение сжв-корпоратов.
0) Кроме крипты и драйверов FS, в ядре реально мало модулей, где есть смысл разворачиваться с разделением на safe и unsafe, оно слишком смешано все. Пробовать разделить искусственно, просто чтобы было - это как форсимые некоторыми шизами микроядра, крутая в теории, мёртвая на практике идея, никто не захочет ронять производительность на порядок и более.
1) Закон Мура - всё, чем дальше, тем важнее выносить все что можно на хардварные ускорители, Apple M1 яркий пример. Ебать байты на стыках этих сопроцессоров, DMA и системных вызовов/вызовов гипервизора и так непросто, ещё сюда только типов с лайфтаймами не хватало...
2) За 30 лет, вокруг топорного С в ядре выросла своя система сборки, в частности, на макросах построена вся модульность. Переписать на раст поэтапно означает десяток-другой лет пердолиться с двумя языками сразу, огребая все недостатки без преимуществ.
3) В ядре уже есть kmemleak, kasan, ubsan, недо-GC в виде devm_kzalloc(). А ещё есть проблемы, отличные от привычного юзерспейса, вроде очень маленького стека и необходимости делать все аллокации крупнее POD и указателей на куче, ещё и выбирая каждый раз, нужна ли физически-непрерывная память или сойдёт и виртуальная, нам важнее чтобы аллокация завершилась успешно, или чтобы она не требовала переключения контекста и была применима в обработчиках прерываний, делать ли блокировки мютексами или спинлоками,...
Половина решаемых растом проблем решена своими санитайзерами, половина просто неактуальна или не покрываема NoStd подмножеством.
4) Общая проблема для эмбеддеда вообще: NoStd восимьлет не могли внести в мейнлайн. NoStd Раст неидиоматичен, пишущему на расте с Arc, Box<>, `thiserror` и прочим сахарком придётся туго, прикручивать самому аналоги обратно сложно. Nostdlib C полностью идиоматичный, и требует освоения только предметной области.
>Закон Мура - всё,
Почему? Он же просто про количество транзисторов и М1 вполне вписывается со своими 100 триллионами .
Проиграла с коупинга.
Частоты, латентность доступа к рам, производительность на Вт топчутся на месте. Да, уменьшение процессов позволяет напихать больше транзисторов, но процент одновременно работающих снижается, потому что происходит затык по тепловыделению, синхронизации шин и когеретности кешей.
Средняя кодомакака даже с многопоточностью и атомиками с трудом справляется, от написания софта под NUMA на стены лезет, без когерентной памяти будет вообще пиздец, так что в рамках старой модели VM для С или раста наращивать производительность некуда.
С другой стороны, крипта, кодеки или (де)компрессоры часто далёки от затыков по памяти и их можно оффлоадить в железо. Причём оффлоадятся сами алгоритмы, то что вроде как удобно было бы писать на safe rust, а вот количество unsafe сопряжений, заливок фирмвари в железо и т.п. становится только больше. Раст сюда как седло на корове лезет.
Он его переплюнул. Если С++ это слоенное, многолетнее убожество, которое трахает целое комьюнити. То раст, это перделка с нуля, в которой даже нет ООП и которая могла тупо стать удобным инструментом, не смогла.
С++ победит только практичный, а не идеологичный язык. А пока идет битва уродов, шарп потехоньку отгрызает последний прикладной уровень - разработку игр (и не важно что это скриптовой уровень, важно что он становится языком/синтаксисом де-факто для игр).
PS Раст вообще непонятная шляпа. На ембеддед не тянет, на системщину (настоящую) только со звездежом и условностями, а на прикладной уровень он не годится вообще, потому как многократно проще взять управляемые языки за ту же производительность (techempower это доказывает).
В общем, раст, это удачная перделка, чтобы залочить себя у какого-нибудь кабанчика. И кстати, какая ирония, игра rust написана на юнити - шарпе.
>в которой даже нет ООП и
И это хорошо.
>На ембеддед не тянет, на системщину (настоящую) только со звездежом и условностями,
Пруфы? Он при отключении стандартной либы в Си превращается(но боров-checker продолжает работать). Да и в bare metal пишет, что тебе еще нужно?
>В ТРЕДЕ СРЁТ СТОЛЯРОВСКИЙ ШИЗИК!
>ЕСЛИ ВЫ ВИДИТЕ УПОМИНАНИЕ ШАРПА, СБОРКИ МУСОРА
Вообще говоря, это взаимоисключающих параграфы, по столярову этот кадр — тоже бездарная макака, тем более фанат спермы.
А это просто шарпошиз.
>латентность доступа к рам, производительность на Вт топчутся на месте
Чел которому ты отвечал привёл в пример М1 — таки не топчутся, а конкретно упираются в дженерик интерфейсы.
Правда такой перформанс будет ебать как дорого стоить, но об этом пусть кабанчики задумываются, лол.
>Раст сюда как седло на корове лезет.
На крипту прекрасно лезет, сейчас блокченый мягко говоря, очень далеко убежали от какой нибудь первой ревизии битка.
> Демагогия
Пока такие как ты пиздят, другие просто пишут код. Раст хорошо вписался в блокчейн, байтоебить на нем кстати довольно удобно и ещё на нем пишут производительные микросервисы также как и на го, ну и в линуксе он вкатывается постепенно. Собственно вот его основные ниши которые сложились.
Раст в линуксе больше маркетинговый ход, чем практичный. Его там реально надо напильником допиливать, чтобы вообще заработало.
>Удачи
Что удачи, блядь? Если тебе нужен НАСТОЛЬКО низкий уровень на нищей железке, то можно писать как на Си, только с проверками. Если железка на уровне ардуины за 4$, то можно и с std хуярить.
>Пока такие как ты пиздят, другие просто пишут код.
Чел, я за этим говном с момента релиза слежу, он развивается скорее в рамках статистической погрешности. Языку, если что, 7 релизных лет.
Ты посмотри на гитхламе сколько по тому же го высрали за эти года.
>Раст хорошо вписался в блокчейн
Пузырь в пузыре. Это как радоваться что устроился в МММ работать, в девяностые.
>на нем пишут производительные микросервисы
Пока нет стабильных асинков, пописать они могут себе только анус.
Не путай пиар компании и реальным рынком. Если топ компании могут поиграться для пиара среди комьюнити, то обычному рынку срать на язык без разработчиков, тем более никто не хочет быть бесплатным бета-тестеров.
Как писать на низком уровне в языке, где проверяются доступ к индексам массива и utf-8 букв? Как писать на языке где нужно юзать сборку мусора в виде Rc?
Как писать на языке в котором у тебя 100500 опшеннов и резалтов, которые нефига не бесплатны и занимают ощутимо памяти? Я как-то на сях писал и случайно не уместился в 2кб флеш памяти, а ты мне хипсторную перделку предлагаешь (где еще свою стандартную либу придется писать).
>Как писать на языке где нужно юзать сборку мусора в виде Rc?
Как ты заебал, мудак, блядь. Ухххх, бляяя, ажтрисет.
А что не так? За все треды я не увидел реальный контраргумент кроме того, что в плюсах есть какой-то такой же поинтер? Для меня это тоже выглядит как костыль, мол затычка чтобы работала в рамках парадигмы.
Ага, только ты говорил, что в плюсах - это функция, а в расте обязательство. И что без этой херни программу не написать. Ну и пруфов не принес, конечно же.
Понятно, опять какое-то маняврирование, вместо прямого контраргумента, что не костыль-заплатка.
Говна там поел? Ты вообще-то первый начал вбрасывать маняаргумент про обязательный ГЦ в расте, а когда с тебя спросили пруфов, то ты начал игнорировать и сливаться, как и сейчас, в общем-то. У нас в треде для обвинения нужно доказать вину, иначе я утвержаю, что ты пидор-копрофил, пока не докажешь обратного.
>когда с тебя спросили пруфов
Я тебе должен описать случаи множественного владения или что? Ты не программист?
Блядь, а я все сомневался.... Буквально статью с rustmustdie.com пересказываешь....
> Но кроме столь запутанного и хрупкого механизма заимствований и владений Rust обладает ещё одним способом управлять значениями. Пускай его фанаты и маркетологи это отрицают, но в Rust есть и весьма распространён сборщик мусора — причём ладно бы он был один, но их даже несколько. Впрочем, давайте разбираться.
Мы можем написать такую программу, отдав строку во власть встроенного в стандартную библиотеку сборщика мусора методом подсчёта ссылок:
>...
> Особо стоит подчеркнуть, что сборщик мусора встроен в стандартную библиотеку, которая неотделима от самого языка, а потому заявления, что Rust — это якобы язык без сборки мусора, — лживы. С таким же успехом это можно сказать про язык D. Да, вы можете писать программы без сборки мусора, если очень захотите. Но, во-первых, в случае Rust это будет тяжко, ведь язык накладывает на вас многочисленные ограничения. Во-вторых, даже если ваша программа не будет его использовать — ваши зависимости будут, и почти наверняка, ведь использовать его очень легко. Наконец, сборщик мусора просто-напросто встроен в Rust, он есть в вашей программе независимо от того, используете вы его или нет.
>Но это, конечно, не волнует любителя Rust. Любителя Rust волнует то, что приведённый мной сборщик мусора работает только для последовательных программ. Как мы помним, Rust не предназначен для последовательных программ, ведь это язык будущего. И гениальные разработчики этого языка встроили асинхронную версию сборщика мусора, с тем подвохом, что его содержимое должно быть неизменяемым. Итого в Rust уже даже не один, а два сборщика мусора!
Иди на хуй в общем. Все твои утверждения про обязательный ГЦ исходят из одной причины: ТЫ НЕ ОСИЛИЛ
>таки не топчутся, а конкретно упираются в дженерик интерфейсы.
Этот подход не масштабируется, нужный для современных серверов объем RAM напихать и развести в монолитной сборке просто не получится.
>На крипту прекрасно лезет
А крипта, в свою очередь, быстро оффлоадится в GPGPU, а если совсем взлетит, то и в ASIC-и. Оркестрировать эти ускорители на высоком уровне потом можно хоть на питоне с джавой, а вот для драйверов, которые распихивают через DMA данные, гарантии раста только мешаться будут.
Ниша "безопасного числодробления" на CPU в целом отмирает, разве что научные расчёты, но там ещё не все с Фортрана на С слезли, Раст они точно не потянут.
>, а вот для драйверов, которые распихивают через DMA данные, гарантии раста только мешаться будут.
>Дополнительно можно отметить инициативу по использованию языка Rust для написания работающего на уровне ядра Linux драйвера для GPU Apple AGX, используемого в чипах Apple M1 и M2. Отмечается, что GPU Apple AGX выполняет прошивку и использует достаточно сложные совместно используемые структуры данных. Реализация управления прошивками и структурами на Rust позволила бы упростить разработку и добиться более высокой безопасности. Рассматриваются два варианта разработки: написание основой части на Си, но использование компонентов на Rust для взаимодействия с прошивкой и управления структурами данных в разделяемой памяти, или написание всего драйвера на Rust и создание Rust-обвязки для подсистемы DRM.
https://www.opennet.ru/opennews/art.shtml?num=57628
Поживем, увидим
Ну вот смотри, опять, маневры, а не контраргументы.
>Буквально статью с rustmustdie.com
Да ну понятно, что кто-то будет иметь такую же мысль, ибо ловят фрустрацию, когда маркетинг создает одно ожидание, а в реале муть какая-то выходит, а когда пытаешься в дисскус, все оправдание у макак сводится к мантрам - "а вы видели что С++ небезопасный! Или у него тоже есть умные поинтеры с гц".
В общем, ожидание создают одно, а потом тебе говорят, что сам виноват что так ожидал.
Я еще в дни релиза говорил, что раст это экспериментальный язык, который пытаются натянуть на прод. Тогда он еще и по тестам смешил народ, благо под тесты они оптимизировали за 7 лет, а продуктов так и нет (потому что маркетинг и попил бабла важнее чем твои продукты). И я же тогда говорил что мозила их выкинет и серво загнется.
Во много такую же фрустрацию я и с котлином поймал, но это другая история. Мы живем в эпоху где маркетинг важнее продукта, это ужасно.
>контраргументы
На что? На твое личное мнение, которое ты даже примером не подкрепил? Ну тогда я скажу, что у меня все нормально без Ar/arc работает. Достаточно контраргументированно?
>Да ну понятно, что кто-то будет иметь такую же мысль,
))))))))
>когда пытаешься в дисскус, все оправдание у макак сводится к мантрам
Напоминаю, что накидывание безпруфного говна с твоей стороны на вентилятор - это не дисскус.
>а вы видели что С++ небезопасный!
И в чем не правы?
>-Или у него тоже есть умные поинтеры с гц".
Аргумент с поинтерами был приведен в ответ на твой наброс про сьорщик мусора в расте и его отсутствия в плюсах. А когда тебе припомнили умные указатели в плюсах, то ты начал маняврировать и говорить, что в расте без них нельзя, а в пллюсах это как опция только. Из чего можно уже сделать вывод, что ты неосилятор.
>смешил народ
Видимо Торвальдсу очень такая шутка понравилась, что он его в яядро добавил. Ну и в NASA тоже шутники сидят.
https://kevinlynagh.com/rust-zig/
Раст там во время компиляции вставляет гей-порно видео?
Очень аргументированно.
>>33855
Можешь пару тредов назад посмотреть, где я сборку проектов на расте и плюсах сравнивал. У меня проект на расте с 20мб при компиляции до 1.2Гб раздувался. Как выяснилось, компилируется вообще все зависимости из исходников, когда у плюсов часть зависимостей уже встроена в систему. После сборки всех зависомостей на плюсах(glib-ы, хуибы и прочие штуки) +- столько же места заняло.
>>33856
>Ограничения и ебля в жопу тупых прогеров борроучекером - это благо. Иначе вы долбаебы будете стрелять себе в обе ноги и по окружающим попадет.
Получается не макак не существует? Ибо даже у даже у дидов-атлантов с PhD находят дыры в ногах.
По логике растаманов - жопосриптах, петухоне, жабах и решетке - нет ручной работы с памятью вообще, значит там пишут всегда безопасный софт.
>У меня проект на расте с 20мб при компиляции до 1.2Гб раздувался
Ппц дно. ты проверь бинари, там по любому гачимучи в HD
>После сборки всех зависомостей на плюсах(glib-ы, хуибы и прочие штуки) +- столько же места заняло.
Глаза от дрочки ослепли?
@
ПРИЯТНО УРЧИШЬ, ПИШЕШЬ КОД, ПОПУКИВАЯ В СТУЛЬЧИК
@
КОНТОРА РЕЗКО СХЛОПЫВАЕТСЯ
@
ВСЕ КРОМЕ ТЕБЯ КУДА-ТО УЛЕТУЧИВАЮТСЯ
@
ЗА ЖАБРЫ ХВАТАЮТ ТОЛЬКО ТЕБЯ
@
НА ЗОНЕ УЗНАЮТ ЧТО ТЫ ПИСАЛ НА ГЕЙСКОМ ЯЗЫКЕ
@
ТЕБЕ УКАЗЫВАЮТ НОВОЕ МЕСТО РАЗРАБОТЧИКА У ПАРАШИ
@
ТЕПЕРЬ ВМЕСТО КОДА РАЗРАБАТЫВАЕШЬ СЕБЕ ОЧКО
Глупенький, там нету господина нашего Борроучекера, чтобы ебать в жопу макак. Следовательно напрашивается ввод о том, что только RUST обеспечивает разработку безопасного ПО. Славься Борроучекер!
@
НЕ ОСИЛИЛ
@
20 ТРЕДОВ СРЕШЬ В ТРЕД
>С виндой всё понятно, там расту ничего не светит.
Они как бы тоже начали в свои проекты раст внедрять...
>что не нашлось на расте: файловый менеджер, оконный менеджер, текстовый редактор, редактор изображений, просмотрщик изображений, видеоредактор, конвертация аудио/видео/изображений (типа ffmpeg), видео- и аудио- записывалка, видеоплеер, аудиоплеер, читалки epub/fb2/pdf/djvu, мультипротокольный мессенджер, оффлайновый словарь, торрент-клиент.
Лол, блядь, вест гитхаб завален подобным говном на расте. Иди на хуй, жирный.
Оно и логично, если осилил и работаешь, то какой смысл срать на двощах. В тренде срут либо вкатуны, либо объебанные столярным клеем религиозные фанатики
Какое дно, нашли чем гордиться на графике. Достижения раста, уровня /b
как ffmpeg на расте называется?
Мы заметили, что у тебя рвет попку 20 тредов. Даже в мертвый(по твоему мнению) тред прибегаешь, чтобы насрать.
бог простит. Могу устроить встречу
https://t.me/rust_jobs
https://t.me/rust_jobs_feed
Большинство вакух - блокчейн на удалёночке. В большинстве из них нужен опыт в блокчейне, как ни странно.
[code]err("Don't use magic numbers that spell things (consider 0x12345678)");[/code]
Какие же растодауны инфантильные обиженки, пиздец просто. Как будто у языка не осталось никаких проблем, вроде сахарка проброса ошибок, обязательной плавучки и паников в no_std...
9 женщин не родят ребенка за месяц. Так и от этого коммита ничего быстрее/медленнее не сделается.
А хули им там не поравилась эта cafebebe?
Их уже троллят, лол)
Пиздос, как же тебя здесь проткнули, что ты в мертвый тред пишешь, пытаясь развести срач.
Так это же ты инфантильный омежка, а ребята следят за чистотой кода так как считаю нужным и не считаются с мнением таких омежек как ты.
>Неуправляемый язык имеет больше безопасности, чем управляемый, ага.
Но ведь он прав, С# не защищает от гонок по данным. А в остальном то же самое.
> бэк пишу и как-то подзаебало
Где, если не секрет? Мне блокчейны до лампочки, а вот бэк бы пописал.
Гугл говорит, что это из жабы какая-то константа. Так что, тут надо бы ещё и до оракла доебаться (хз, может уже).
Алсо, раст зависит от спонсоров, а спонсоры спонсируют всё, что как им видится, уравнивает в правах расы и гендеры. Вот фаундейшены и лезут из кожи вон, доказывая, что они достойны подачек.
Пока что вижу как проткнутый додик мониторит тред 24/7 т видит в каждом аноне своего протыкателя, бггг.
Потому что идиотизм мешать анализатор и компилятор вместе.
Блокчейн все, ну нельзя так долго стричь лохов.
Есть мнение, что раст околопопильная технология, собственно, цель которой пилить бабло с кабанчиков. Если посмотреть с этой стороны, многие происходящие процессы становятся более понятными (хипсто геи просто будут фаниться, прожирая ресы спонсоров, или делать то что надо каждому спонсору)
Они же вроде использовали очеь узкий круг языков
https://yandex.ru/jobs/vacancies/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA-%D0%B2-%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D1%83%D1%8E-%D0%B8%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%83-9733
- Маам, хочу пони, тяжёлый матан и пончики.
- Держи, сына, С++
- Маам, мама, помоги, там злой "Segmentation fault"!
- Мама:
Почему эта топ компания не запилила свой язык? Сейчас бы за мизерную зарплату, прототипировать алгоритмы, на языке, на котором гвоздями прибили любое самовыражение в коде.
> самовыражение в коде
Это ты про те сотни миллиардов строк говнокода, которые успели накодить за последние 70 лет?
Нет, это я к языку, в котором без костылей связанный список нельзя написать. Как тут вообще алгоритмы с нуля придумывать?
Хочу, к примеру, так:
let x = 5;
let y = x as Decimal;
Здесь и тута ничего своего не бывает.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=baaae2ec9d626e6508ecd7edc8d4c04e
Пиздуй обратно к Столярову под стол
Никто не говорил, что нельзя, говорили что придется навернуть костыли, что ты и показал. А вообще ты в курсе, что опшены не бесплатные?
Сам факт что для простейшей структуры приходится прибегать к абстракциям уже говорит, о том, что любые экзотические, тестовые алгоритмы придется писать через тотальное костылеварение.
>А вообще ты в курсе, что опшены не бесплатные?
Да, как и null иногда не бесплатный в прямом смысле этого слова. Если нужно что-то пиздец быстрое оберни в unsafe и делай что хочешь. Ты не понимаешь или понимаешь но пытаешься троллить философии языка и пытаешься её натянуть на своё мировоззрение из C, это как ты пытался бы сравнить перфоратор и шуруповёрт, отверстия сверлит и то и то, но у инструментов разные цели. Вот ты и пытаешься долбить бетон шуруповертом. Все эти Option нужны в первую очередь для безопасности, в расте меньше способов выстрелить себе в ногу, просто в разы меньше и безопасная работа с памятью, но за это приходиться жертвовать и делать лишние телодвижения, это не хорошо и не плохо
У нас за unsafe на шарпе увольняли.
>философии языка
Маркетинг языка, пофиксил.
>перфоратор и шуруповёрт
Эта дилетантская попытка сравнивать с инструментами. На собесе такое не ляпни. Это уже становиться де-факто стандартном некомпетентности.
Остальное вода, от фанбоя.
Давай зайдём от обратного:
C/C++ - говно-языки в которых без ub связный список нельзя написать. А ты опровергай.
>C/C++
У тебя опшены с оверхедом, проверка границ у фундаментальной структуры, обязательный сборщик мусора для совместного владения, проверка юникод символа во время произвольного доступа.
Ты уверен что ты имеешь право сравнивать его с Си, где Си фактически ассемблер в другом синтаксисе?
Или с С++ где у тебя есть ООП, да и вообще херова туча парадигм, есть даже исключения, которое не могут осилить современные разработчики языков (технология древних!)
Этот управляемый язык, как и сишарп, у которого тоже есть ансейф и прямое управление памятью.
Я уже не помню, но в расте, вроде, даже нет арифметики указателей?
>Маркетинг языка, пофиксил.
Можно и так, что плохого в маркетинге?
>Эта дилетантская попытка сравнивать с инструментами. На собесе такое не ляпни. Это уже становиться де-факто стандартном некомпетентности.
Нет, я на собесе так и говорю когда меня спрашивают на каких языках пишешь и к этому все относятся нормально. Да и вообще судя по тому как ты говоришь про собесы, видно что для тебя это какая-то дрочка с экзаменовкой, у меня это тупо беседа последние разы я там говорю все что хочу и не трясусь как ты. Прикинь я даже js иногда беру и пишу на ноде всякие вещи которые нужно быстро наговнякать и не нужно поддерживать, для меня это просто инструмент.
Вообще странный подход использовать языки как религию, а не как инструмент для решения задач.
>Остальное вода, от фанбоя.
Что-то неудобное и ты не хочешь отвечать? Или тебе нужно больше возможностей стрелять в ногу? Да и вообще кто из нас фанбой, мне кажется ты фанбой Столярова, который промыл тебе мозги.
>обязательный сборщик мусора для совместного владения
Уебище, сьеби с треда. Каких же Столяров ебанутых миньонов делает, просто пиздос.
Знаю. Си острый
>с С++ где у тебя есть ООП
Обзмеился с этого оопшника.
Какое нахуй ооп ау, у тебя багованная программа может переписать какую угодно память, про инкапсуляцию слышал? Так вот, в ООП она должна быть.
Так ты сам пишешь
>в процедурном
Он разве претендует на ООП?
А в джавошарпах действительно не получится написать такой код, который из-за бага перепишет чужой объект. Сознательно - да, можно, случайно - никак.
Хотя конечно и в крестах когда ты ступаешь на территорию адресной арифметики это уже расценивается как использование unsafe и рефлексии в джаве, так что я всё же сгустил краски.
>крестах когда ты ступаешь на территорию адресной арифметики это уже расценивается как использование unsafe и рефлексии в джаве
В этом весь сюр, когда агрессивный маркетинг привлекает вот таких экспертов.
Не может, он даже или не он не показал линкедлист на крестах. Вообще больше похож на вкатуна, который начитался opennet и говорит какими-то абстрактными словами
>Вообще больше похож на вкатуна, который начитался opennet и говорит какими-то абстрактными словами
Этот шизик, который 24/7 мониторит данный тред и срет в нем последние 5 тредов минимум, является одним из подсосов-ученичков Столярова и по совместительству автором таких статей как rustmustdie.com и cmustdie.com. Узнать его можно по однотипным высерам, которые не меняются из треда в тред, а именно: сравнение раста с Сишарпом и безпруфные заявления про GC в расте(на самом деле он не осилил раст и начал кидаться говном, заявляя, что Arc - это обязательный сборщик мусора. А когда ему привели в пример умные указатели в плюсах, то начались виляния жоплй в духе "ряяя в плюсах это как опция, а в расте обязательство потому что я не осилил, поэтому раст - язык с ГЦ). Ну и за все время, этот додик ни разу не доказал свои слова пруфами, вместо этого начиная набрасывать говно на вентилятор и уводить диалог на другую тему
>Вы лучше с его учителем ознакомьтесь - Столяровым( на ЛОРе ник Croco)
Там отдельная шиза в соседнем треде обсуждали
ГЦ дает stop the world из-за чего не всегда подпадает под требования проектов. Типо VoIP, rt-систем, потоковое видео, онлайн-гейминг.
Современный ГЦ обязан обрабатывать циклические ссылки, что также сказывается на производительности.
Часто пишут что в С++ это unique_ptr, но на самом деле это аналог Box в rust - создается в хипе.
Получается в /pr/ два типа шизиков: те кто создает бесполезные треды и те, кто их засирает?
А хули ты хотел это же двощи
А где не так, лол?
> и говорит какими-то абстрактными словами
Абстрактные слова, лол))
>У тебя опшены с оверхедом, проверка границ у фундаментальной структуры, обязательный сборщик мусора для совместного владения, проверка юникод символа во время произвольного доступа.
Когда очень не приятно, то факты из списка становятся "какими-то абстрактными непонятными словами".
Извини
Зумерки не знают про разного рода ГЦ, например что вообще существуют даже реал-тайм ГЦ. Arc это сборка мусора, просто в самой сборке мусора, с точки зрения компьютерной науки ничего плохого нет, это негативный раздутый маркетинговый ход.
И если язык обязывает использовать Rc, а в С++ это опционально, раст является ГЦ языком.
Взял на себя покакал
>И если язык обязывает использовать Rc, а в С++ это опционально, раст является ГЦ языком.
Животное, ты за последние 2 треда так и не доказал свои слова, а посему идешь на хуй. Если ты неосилил, то просто закрой вкладку и забудь про данный язык.
Без бенчмарков это абстрактные слова, ты ни строчки кода в тред не написал, ни одной ссылки не приложил. Показал бы хоть насколько небесплатны опшены. Только срешь круглосуточно.
И вообще покажи свой линкедлист на плюсах о котором ты выше говорил, я погляжу твою на реализацию на правильном языке
Кратко, в своей статье про раст этот додик не осилил включить флаг оптимизации -O и назвал выхлоп огромным оверхедом. Охуевшие пользователи ЛОРа взбугуртили, написали и доказали автору статьи(нашему шизу), что с этим флагом код на расте 1 в 1 построчно соответствует выхлопу компилятора на Си/Плюсах. На что наш пациент ответил
>Мне кажется нерепрезентативен как раз оптимизированный код, но спасибо за предложение. Поясню почему оптимизированный код мне сравнивать кажется неверным решением:
>Прежде всего, он менее ясен, часто существенно менее ясен -- разобраться и понять, как исходный код стал полученным машинным становится сложно. Поэтому и разобраться в нём становится сложней, а значит и сравнивать.
>Кроме того, тогда вместо языков мы скорее сравниваем искусство оптимизации компиляторощиков -- чего мне тоже не хотелось бы.
>Наконец -- можно и включить оптимизации, результат изменится не принципиально -- код будет всё так же больше и всё так же медленней в случае Раста, особенно в случае Раста "эталонного".
ЕБАЛО ПРЕДСТАВИЛИ? Какой это уровень верчения жопой? А если наш додик будет говорить, что это не он, то пояитаем другие его высказывания
>Вопрос: с каких пор библиотечные примитивы стали сборщиком мусора?
>С тех пор как они стали исполнять алгоритмы сборки мусора, не поверите. Как именно сборщик мусора включён в программу -- абсолютно не важно, важно что если он в ней по итогу есть, то он в ней есть. То что раст позволяет писать программы без сборщика мусора -- это конечно замечательно, но ровно в той же степени, в какой это позволяет делать D. Предупреждая линию мысли "но в D это часть языка, а тут лишь часть стандартной библиотеки" -- стандартная библиотека Rust неотделима от языка, как было показано в статье.
Никого не напоминает? Можете почитать про него вот здесь(http://stolyarov.info/node/342), жаль, что его ебанутый учитель почистил все неудобные комментарии.
Себя не похвалишь - никто не похвалит
Вот поэтому раст и нужен потому что есть сишечка и кресты. Без ебли с этими языками не понять зачем и для чего создавался раст.
Удалил падла. И хули у него сайт на пхп, он же на горе искал себе cms на плюсах http://stolyarov.info/index.php
Подсчет ссылок(тобишь Arc в Расте и shared_ptr в плюсах) для него это ГЦ. Но так как в расте без Arc нельзя писать код(по его словам), а в плюсах можно(в плюсах это опция), то раст - это язык с ГЦ.
>Опшены и резалты мы будем игнорить
А что с ними не так? Если ты программист, то увидишь логику:
- Если у тебя объект, то ты не используешь резалт или опшн но и NULL(VOID) ты туда не впихнешь как в небезопасном языке.
- Если у тебя может быть NULL(VOID) (как в небезопасном языке) то ты обернешь в резалт или опшн, и в необходимом месте проверишь, вывернешь объект.
В отличии от небезопасного языка тебе тут не надо помнить делал ли ты уже проверку на валидность объекта или нет (бывает в сложном коде проверки идут излишние "просто на всякий случай, мало ли вызывающий код не проверял еще"). Отсюда получается что Option / Result экономят циклы процессора.
Дальше, для них существует оптимизация - если T в Option<T> / Result<T> содержит в себе указатель, то Option / Result становится бесплатным по-памяти.
// As of Rust 1.22.1
Type T Option<T>
i32 4 8
&i32 8 8
Box<i32> 8 8
&[i32] 16 16
Vec<i32> 24 24
Result<(), Box<i32>> 8 16
>И если язык обязывает использовать Rc
Вот и выяснили, слава Богу rust не обязывает использовать Rc. Он обязывает выделять потенциально небезопасный код, чтобы все такие места можно было тщательно проинспектировать.
ГЦ на полшишечки.
>кококо, хруст системный язык
>чтобы что-то написать в ембеддед, надо пол хруста выкинуть.
https://www.youtube.com/watch?v=dIY8wxysIuI
Столяровский шизоид насрал в каменты, и пошёл срать сюда. Лол!
Язык гендер, язык пидорас. извини
Это типичная болезнь гениев, особенно математиков (где-то прибыло, где-то убыло). и я серьезно
>>49068
>против раста => гений
Подсос столярова не палится.
Это же шизик известный, рома царь или как там его.
https://tsar1997.blogspot.com
Тима
https://devblogs.microsoft.com/dotnet/dotnet-6-is-now-in-ubuntu-2204/
Вот пример нужна либа которая сохраняет html со всей статикой (css, js, картинки) вроде нашел консольную утилиту, которая это делает. На crates.io она есть, думаю зеабись ща себе встрою и будет тихонько пердеть работать.
Открываю lib.rs, а там хуй https://github.com/Y2Z/monolith/blob/master/src/lib.rs
Сразу вопрос нахуя тогда на crates.io выложили, ладно хуй с ним, думаю погляжу в main что там, может пару методов надо дернуть.
А там сука портянка в 267 строк https://github.com/Y2Z/monolith/blob/master/src/main.rs#L66 ладно, хуй с ним начинаю читать обилие clone() и parse() одного и того же url просто зашкаливает, хуй с ним. Вроде нашел метод который обходит DOM и пиздит ссылки walk_and_embed_assets туда чего-то по мутабельным ссылкам передается, хз как работает нырнул туда, а там ебуться черти в огненном котле https://github.com/Y2Z/monolith/blob/master/src/html.rs#L707
Даже cargo clippy не удосужился запустить, он мне целую портянку высрал.
Думаю погляжу на ебало додика авторы либы, прошлые проекты C/C++ https://github.com/orgs/Y2Z/repositories
Почему так? Вот каждый раз когда вижу говнокод автор обязательно писал до этого на правильных православных языках C/C++ или битриксоид пхпшник. Всякие питонисты, джавоскриптизеры и рубисты пишут более грамотный и читабельный код чем настоящие программисты. Да и как на C не открою чего так и глаза кровью обливаются какие-то нечитаемые портянки в пару сотен строк, которые нужно компилировать в голове чтобы прочитать.
Зато тестов написал, некоторые из ни проверяют нихуя https://github.com/Y2Z/monolith/blob/master/tests/opts.rs#L13
Столяров относится хуёво ко всему, кроме C, C++ (с отключёнными исключениями и без STL, даже #pragma once презирает) и Лиспа.
Причина - если ты опустился до того, чтобы писать код на управляемом языке, то лучше писать в функциональном стиле, а не ебаться с императивщиной.
Какие подводные по сравнению с плюсами?
Rust currenty only works on architectures supported by LLVM.
Compared to C++ and especially C, Rust often produces larger binaries and less efficient code; the compiler is also considerably slower.
https://www.reddit.com/r/rust/comments/4b5rfi/what_in_your_opinion_is_the_worst_thing_about_rust/
А что мне делать, если я шиз и хочу писать в декларативном стиле?
оптимизируй сам, it's up to u
раст - низкоуровневый инструмент. TCO - более высокоуровневая фича
С# и С++(до 11 версии) хорошо знаю, я так понимаю раст и тем и тем вдохновлен?
Хвостовая рекурсия -- не читаемая залупа, если правда не оптимизирует, то правильно зделоли, что отпугивают всяких шизов вроде тебя
мимокрок
>often produces larger binaries
По умолчанию да, так как все зависимости собираются статически в один бинарник, но при желании можно подрубить динамическую линковку, либо вообще либы на Си/Плюсах дергать. Также размер бинарника снижается при использовании некоторых флагов при компиляции и удалении отладочных символов.
>less efficient code
Чет пиздеж, там llvm все оптимизирует и итоговый бинарник генерирует. Такой же бекэнд как на плюсах.
>the compiler is also considerably slower.
На мелких проектах заметно, да, но на больших разница с плюсами минимальна. Да и медлительность обусловлена преверками при компиляции, а не потому что компилятор говно.
Потому что на маркетинговый буллшит ведутся только додики. Вменяемый кодер открыл раст, потыкал (да или просто увидел
что обычный принт через макрос сделан) словил фрустрацию и
молча ушел. А всякие фанбои, бывшие скрипт-киди они же не понимают, они ведутся на это все, плюс там же еще повесточка, в общем все модно и молодежно.
Великий человек.
Будешь бета тестером кустарный либ гейского комьюнити. Выше чел уже поел говна парсера на расте. Ждем карбон через 10 лет, а пока пишем на шарпе.
>бывшие скрипт-киди
Ты жопой читал?
Вот они как раз нормальный код пишут. Вот такое говно чаще от всяких сишников. Да и в целом этот говнокод сишный стиль писать методы одной портянкой в сотрудничестве и строк
Допустим в твоей столярной религии это ГЦ, не буду что-то доказывать. Кто тебя заставляет его везде пихать? Взял первое попавшееся что-то крупное что в голову пришло https://github.com/serde-rs/serde погрепал 3 места Rc< и 3 места Arc<, а Rc:: и Arc:: по 1 разу в довольно крупной библиотеке.
Где есть асинхронность будет побольше, но тоже не в каждой дырке.
Может у тебя руки кривые что ты его везде пихаешь?
>бывшие скрипт-киди
Декомпозиция предметной области, требует соответствующего уровня навыка. Само по себе программирования на си или расте не делает тебя профессионалом и как раз скрипт-киди либо начинает творить портянку, либо наоборот чрезмерно размазывать логику по функциям.
Красивый мальчик.
>Допустим в твоей столярной религии это ГЦ
ГЦ это в computer science, анальный ты глиномес. Проблема в том, что в расте это затычка, которая невписалась в парадигму. Именно эту проблему пыталась решить МС в своем экспериментальном языке (верона, что ли), который они прикрыли.
>Где есть асинхронность будет побольше
Сейчас, когда ядер больше чем у тебя извилин в мозгах, асинхронность нужна везде.
>погрепал 3 места Rc< и 3 места Arc<, а Rc:: и Arc:: по 1 разу в довольно крупной библиотеке
Там может быть одна функция, но вызываться она может 10.000-100.000 раз в узком месте. Тогда плюсовик поинтер выкинет и растер соснет тунца.
>асинхронность нужна везде
Сразу видно вкатунишку. Асинхронность нужно брать только в тех случаях, когда это действительно нужно. Когда есть ощутимая нагрузка и нужно лучше утилизировать время CPU.
Асинхронный код писать и поддерживать намного сложнее чем обычный синхронный, так что всюду впиливать асинхронщину не нужно, только если ты не фронтендер.
>и нужно лучше утилизировать время CPU.
>ну да, зачем нам на около-системном языке утилизировать время ЦПУ, бред какой-то придумал. Сразу видно вкатунишку
Не, парни, мы же реально берем С++ и раст просто по кайфу, для души, зачем нам утилизировать какие-то ресурсы железки.
>>50747
Что сказать-то хотел? Внезапно на C++ и Rust пишут не только веб сервера, где иногда имеет смысл дрочиться в утилизацию IO, есть еще CPU-bound задачи, которые нужно решать на системных тредах, и где асинхронщина в привычном понимании бесполезна.
А так это все жидкий пердеж с твоей стороны, так как epoll или io_uring никто не запрещает дергать из раста или плюсов. И асинхронных либ полно что для раста, что для плюсов. В чем бугурт я так и не понял.
Если С++ это историческое говно, которому приходится костылить, то раст это новый язык, у которого мало того кривая асинхронщина с каким-то UB, так еще и потребность в ARc, потому что эксперементальный язык натянули на рынок.
Мы берем системные языки, чтобы выжить максимум с железки и пукать в тред о том что "ненужно", это крайняя стадия идиотизма. Если тебе ненужно реально, то скорее всего ты зря слез с петухона.
>Асинхронный код писать и поддерживать намного сложнее чем обычный синхронный
Я тебе больше скажу - если ты ни разу в жизни не писал асинхронщину - это для тебя будет не "намного сложнее", а "непосильно". Так что покорми собак и ничего не трогай.
>Выше чел уже поел говна парсера на расте
Которые написал бывший сишник)
>Будешь бета тестером кустарный либ гейского комьюнити.
>кустарных
Лол, покажи мне аналог Serde на Си или плюсах.
>Ждем карбон через 10 лет
Эталонное НИНУЖНО.
>Тогда плюсовик поинтер выкинет
Передай поинтер/ссылку в расте, кто тебе мешает?
>когда ядер больше чем у тебя извилин в мозгах, асинхронность нужна везде.
Какок отношение асинхронность имеет к количеству ядер, болезный? Ты с мультипотоком спутал?
>так еще и потребность в ARc
Как у любого языка без сборки мусора в асинхронной среде.
Тебе лучше чем в ебло ткнуть в этот раз? Ядро линукса уже было, дальше можешь сам выбирать, лол.
>Лол, покажи мне аналог Serde на Си или плюсах.
Он тебе только на шарпе что-то сможет показать, это же вебмакака.
>Мы берем системные языки, чтобы выжить максимум с железки и пукать в тред о том что "ненужно", это крайняя стадия идиотизма. Если тебе ненужно реально, то скорее всего ты зря слез с петухона.
Тогда бери и на АСМе пиши, чтобы максимум из железки выжать. Зачем тебе какие-то высокоуровневые костыли? А всякие расты оставь додикам, которые врего лишь ценят свое личное время и не хотят бороться с языком, исправляя ошибки и костыли языка
>Как у любого языка без сборки мусора в асинхронной среде.
Важно понимать, что shared_ptr в плюсах - это опция, а вот Arc в расте - это обязательный элемент языка без которого невозможно написать программу. И нет, это не потому что он не осилил или ему насрал Столяров, а потому что просто верь ему, бро. Разве может человек, написавщий ЦЕЛУЮ СТАТЬЮ врать? Вот и я так думаю.
Первый пик - обязательно
2-4 пик - опция языка
>Там может быть одна функция, но вызываться она может 10.000-100.000 раз в узком месте. Тогда плюсовик поинтер выкинет и растер соснет тунца.
Ну что за виляния жопой? Может быть иуды сюды, дай ссылку на код да и все, ты только пиздеть умеешь.
За асинхронность и многопоточность обссали уже. Иди к столярову под стол опыта набираться
Опция языка есть опция языка, авторы ядра линукса, рантайма шарпа и битка пиздеть точно не станут.
О, Господи, а как же так? Неужели Си и Плюсы такие же языки с ГЦ как и раст? Неужели Страуструп и Ритчи не смогли натянуть парадигму на язык и пришлось использовать костыли? Пойду писать на божественном и свободном шарпе.
>Ой хоспади, этож Столяров нам врал!!!!
Это какой уровень информационного насилия по Столярову?
>и так делают когда нужно. Но когда критично, его можно выкинуть,
Т.е. рантайм ЯП, финансовая хуйня и ядро ОС - это не критично? Понятно, так и запишем. Они могли выкинуть, но не захотели. Ну либо не такие профи программирования на Си как Столяров и его миньоны.
Ничего. Вопрос в вообще другом.
Поколения тупеют, теперь писать код как древние становиться все сложнее, приходится к неуправляемым языкам прикручивать ГЦ.
Ничего плохого нет, просто раст получается как морская свинка - и не свинья и не морская. Раст и не системный язык и как прикладной избыточно сложный
Полегче С++ на порядок. Борроу чекер делает из программиста дауна. Больше не надо думать про всякие юз афтер фри и проблемы конкуррентности. Скомпилировалось - значит работает.
>Какие у вашего манясистемного языка с проверкой индексов массива не только в релизной версии возможности для байтоёбства?
Вот такие
>Больше не надо думать про всякие юз афтер фри
Только проблема в том, что такие языки уже придумали (жабы, решетки). Там даже эксепшены осилили.
Не думаю что нужен бы какой-то слой языков между С++ и шарпом, да еще и синхронный.
Там нет возможности полностью выкинуть окружение без костылей из ночной сборки, а значит до сих пор никаких возможностей для полной байторадости нет. Только на пол шишечки, для маркетинга хватает.
В Rust нет сборщика мусора(По крайней мере насколько мне известно). Там используется модель памяти с временем жизни на основе !права собственности!.
>>245154
>Джава, решетка
Так они же делают медленные программы. Да ещё и с рантаймом по полсотни МБ
>Так они же делают медленные программы
techempower говорит что норм, не надо жрать напрямую память, чтобы писать более менее быстрый код. Заплатишь только оверхедом на ОЗУ и небольшими всплесками.
Ну, "опционально" подразумевает, либо используешь, либо нет. Это не говорит о том, что не используют вообще. Мне правда нужно опускаться до самых низов, чтобы объяснять элементарную логику? Почему нынешнее поколение такое тупое?
Чем вам с++ не угодил? Уже сколько времени умные указатели есть. А с новыми редакциями так вообще все отлично, можно хоть как первый язык учить, постепенно углубляясь. Словно bolgenos продвигается насильно. Вроде и работает, но зачем оно нужно?
Тут срачи шарповиков еще видел, какое-то время пользовался и впечатлений куда больше, хотя все равно на любите как по мне.
Ты же понимаешь, что у тебя в коде может быть критичные участки, а может быть и нет. Например, отрисовка пикселей, которых может быть миллионы, скорее всего критична к проверке на границу или подсчету ссылок. Так же и тут надо смотреть где этот код участвует.
Так же, возможно, уровень разработки падает и люди чаще прибегают к ГЦ. НО! Это ГЦ не обязательно языковыми рамками, это уже выбор разработчика хочешь используй, хочешь нет.
Да, мы поняли, да. Ядро, биток и рантайм языка - это не критично, да и вообще уровень разработки упал. Не то, что деды, которые хуярили сплошное UB и благодаря которым дааж в 2022 году находят уязвимости в ядрах и протуктах того времени. Куда нам до самих ДИДОВ, верно? Ну и главное запомнить, что в расте гс - обязаловка, а в плюсах - опция. Just trust me, bro
Дядь, критичные участки могут быть и на расте так же написаны. Правда почему-то авторы технологий, вроде JIT в шарпе (достаточно перформансно-зависимая штука, не?), почему-то предпочитают так не делать. Почему же? Потому что код паралелиться перестаёт, блять.
Вопрос к тебе, зачем ты продолжаешь срать в обосранные штаны.
Я вообще с тобой уже давно не разговариваю и не обижался, я на убогих не обижаюсь. Просто подметил что столярошизы такие же упоротые религиозные фанатики, которые с особым упорством видят каждую соринку в чужом глазу, но у себя бревна огромного не видят, даже когда их тыкают в лужу собственной мочи. Также как и комми в /po
мимо
>кривая асинхронщина с каким-то UB
В чем кривость и где там UB? Пока что вижу в тебе techempower-шизика, который засирает борду
1) Нет стандарта.
2) Эта причина вытекает из первой, так как на данный момент стандарт == текущая версия компилятора, то у языка один "хозяин" и один компилятор. Можете закидывать говном и просить меня надеть шапочку из фольги, но для меня это большая проблема. Хотя компилятор раста в GCC может исправить эту ситуацию.
3) Подход "сверху вниз", а не "снизу вверх" в вопросе подключения библиотек. Если в плюсах\сишке\zig ты подключаешь необходимые тебе библиотеки по мере надобности, то в расте тебе искаробки дают кучу всего и при необходимости придется это отключать. Но на сколько я знаю, все говно, которые ты не используешь при компиляции выкидывается автоматически.
Ну и пару слов по поводу байтоебства на расте. Советую посмотреть вам на библиотеки, написанные на расте, под различные МК на гитхабе. Достаточно отключить std и оставить core и ты уже можешь писать bare metal в любую железку.
Но вот тебе причина номер раз, осознавай:
На расте менеджер зависимостей на голову выше не то, что питоновского с отсутствующим плюсовым, но и даже нодовского.
Когда переваришь, приходи за вторым.
есть такая штука: https://zed.dev/ - позиционируется, как WIP IDE написанная на расте с поддержкой нескольких ЯП на старте, в том числе и самого раста. Очень хочется глянуть хотя бы одним глазком, но дают пощупать только макоёбам в режиме закрытого тестирования.
Процесс идёт, баги репортятся https://github.com/zed-industries/feedback/issues
но нашему треду нужен свой инсайдер, который чётко раскидает за то, как оно vs Vscode/Idea, и порадует скринами/видосами того, как оно работает.
Это херня кастомизируется, как emacs, neovim, lem, например? Если нет, то нахуй не нужно.
Писать из-за карго? Хуя ты извращенец
Название ватное
У меня мак, но мне не хочется что-то еще ставить, кроме neovim/vs code
>Но когда критично, его можно выкинуть, но не растеру.
Выкинь подсчет ссылок из хендлов WinAPI и OpenCL.
>1) Нет стандарта.
Дядь, вылезь из криокамеры, оно так во всех новых языках лет 20-30 уже как. И это хорошо, и то что это хорошо не доходит только до ГНУтых уебанов.
>Хотя компилятор раста в GCC может исправить эту ситуацию.
Проблемы которую ГНУтые долбоёбы сами же себе создают.
Вообще, идеальный кейс — фронтенд языка должен быть полностью абстрагирован от таргетов, и под ним уже должно лежать что угодно (по факту конечно таргета всего 2 — gcc и llvm, ещё полтора спермовора про msvc могут что-то пёрнуть, но на них похую). Но подход со стандартами — говно ебаное, не надо его воспроизводить.
>то в расте тебе искаробки дают кучу всего
Это уже твои маняфантазии, с го не попутал тред?
Стотысячная IDE, написанная на коленке и нихуя не умеющая. Интересно, давай ищо.
>с го не попутал тред?
Его там уже обоссали в свое время, потом в питонотреде срал, теперь тут
>оно так во всех новых языках лет 20-30 уже как
И? Это не показатель "хорошести". Потому что как минимум не позволяет создать аналогичный по качеству компилятор, так как все аналоги будут "запаздывать" от основного.
> Но подход со стандартами — говно ебаное, не надо его воспроизводить.
Так без стандартов в серьезном "железном" мире делать нечего. Тебя кабанчики и их бюрократы просто на хуй пошлют, и правильно сделают, потому что это серьезная область, а не хипстерское говно, где все меняется каждый день. Тогда зачем, собственно, заявлять, что ты язык, который production ready?
>Вообще, идеальный кейс — фронтенд языка должен быть полностью абстрагирован от таргетов, и под ним уже должно лежать что угодно
И есть идеи как реализовать? gcc и llvm - вообще разные вещи.
>И это хорошо, и то что это хорошо не доходит только до ГНУтых уебанов.
>Проблемы которую ГНУтые долбоёбы сами же себе создают.
Причина подрыва? Тебя Столлман в подворотне обоссал или Линукс неосилил?
мимо
>gcc и llvm - вообще разные вещи.
Почему разные, обоснуй. А то тут у нас один был, который думал что llvm запихивает в таргет виртуальную машину
>Почему разные, обоснуй.
Если кратко, то промежуточное представление кода в компиляторах разное. Фронтенды llvm генерируют IR-код и у gcc тоже генерируют в собственный формат. Конечно, в теории это можно сделать, тогда придется пердолить и раздувать фронтенд, а при компилиции выбирать бекенд через ключи, но зачем? Причина чисто идеологическая. GCC не примут чужой фронтенд из-за не православной лицензии, а проект rust не будет пилить поддержку бекенда gcc, потому что им это не нужно. Поэтому каждый будет пилить свой компилятор(https://github.com/Rust-GCC/gccrs)
>А то тут у нас один был, который думал что llvm запихивает в таргет виртуальную машину
Справедливости ради, llvm с некоторыми ключами может работать почти как виртуальная машина.
Я это к чему вообще - если на выходе тот же самый машинный код, то какая разница что там было в середине?
>Тебя там за котлин обоссали
Кто обоссал? Тебя же и обоссали, techempower шизик, иди наверни своего любимого шарпа и успокойся уже наконец, не засирай треды.
Я тоже видел, обоссали. И ты зачем-то в раст тред сразу прибежал. У меня аж испанский стыд за тебя.
https://www.opennet.ru/opennews/art.shtml?num=57723
>Потому что как минимум не позволяет создать аналогичный по качеству компилятор, так как все аналоги будут "запаздывать" от основного.
Покеж-ка такие компиляторы в мире си/плюсов, очень интересно.
https://en.cppreference.com/w/cpp/compiler_support
Ой, они же уже 4 года один стандарт все имплементировать не могут, это наверно другое.
>Так без стандартов в серьезном "железном" мире делать нечего
И чем же определяется сурьёзность области?
По моему в первую очередь количеством бабла — и по этому показателю твоя "сурьёзная железячная" отрасль сосёт хуец.
>И есть идеи как реализовать? gcc и llvm - вообще разные вещи.
Оно там и так частично реализовано, у раста 2 или 3 своих промежуточных представления.
>Причина подрыва?
А об был? Я просто констатирую факт.
>>52948
>Если кратко, то промежуточное представление кода в компиляторах разное.
Если кратко, то ты обосрался только вступив в эту дискуссию.
>тогда придется пердолить и раздувать фронтенд
Уже раздули, нет вариантов не раздувать его для современных языков, все хотелки всех языков в один бэкэнд всё равно не влезут.
>Причина чисто идеологическая.
И ты потом спрашиваешь почему кто-то считает ГНУтых уебанов уебанами, лол.
>И? Это не показатель "хорошести". Потому что как минимум не позволяет создать аналогичный по качеству компилятор, так как все аналоги будут "запаздывать" от основного.
И как вишенка на торте "хорошести" концепции стандартизации языков программирования, расширения, которые городит каждый ёбаный вендор —
https://clang.llvm.org/docs/LanguageExtensions.html
https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/C-Extensions.html
https://docs.microsoft.com/ru-ru/cpp/build/reference/microsoft-extensions-to-c-and-cpp?view=msvc-170
https://developer.arm.com/documentation/101028/latest
ой, а пачиму код на стандартизированном языке не билдица на другом кампиляторе(9
Жду уже когда раст активно начнут использовать в больших продуктах (а не очередной самописной ОСи или там утилиты grep или crud микросервисе), причем настоящие программисты , а не фанатики. Так как искренни считаю (но не хочу доказывать), что раст разменивает ручную работу с памятью на техническую утечку памяти, ибо язык накладывает на программиста оверхед, а получит он с этого копейки (в плане утилизации железа). А для размера памяти на производительность есть уже всякие решетки (или же древняя жаба)
Потому что не православно
Может просто не могут осилить?
Или бьет по больному эго: как же так, язык ОГРАНИЧИВАЕТ меня в моих ТВОРЧЕСКИХ порывах говнокодить.
Лол ты что ебанутый? Это сами растовики и пишут, пытаясь создать впечатление что их недоязык кого-то заботит.
https://medium.com/@siberianguy/an-almost-religious-case-for-rust-e4c4764acd8d
Ладно я набрасывал, ибо раст с натягом можно назвать системным языком, особенно в сравнение с Си. Но эти чудики реально решили это говно противопоставить управляемым языкам.
Знаете, это как современному трактористу, у которого в машине чуть ли не автопилот с кондиционером, показать трактор, который заводится рукоятью и тот скажет - "как же хорошо и практично руками заводить трактор, каждый импульс руки у тебя под контролем, не то что ваша (GC) кнопка с зажиганием, где не знаешь что у тебя под капотом происходит!"
>Тебе не надоело кажый раз заходить в этот тред и писать, что он не нужен?
Прекрати всякой херней бампать тред и тебе тут же перестанут ссать в лицо.
Чтобы вы понимали, маркетологи котлина долгое время преподносили, как на котлине продуктивнее писать, в отличии от джавы ага, когда котлин юзает 90-99% все ту же инфраструктуру жабы, но маркетологам раста нехватило мозгов и они тупо присосаться к этому тезису котлина и высрали "это".
>>56489
А чего ты испугался, ну будут некоторые критичные к скорости исполнения программы с Java и C#, теперь не на С++ а на Раст переписывать. Не со всеми же так будет.
Вот процы уперлись в потолок по ядру, и прирастают теперь ядрами, а раст дает больше чем управляемые языки в многопоточности. Защищает еще и от гонок по данным, ничего когда-нибудь и у вас борроу-чекер приделают. Тогда вам больше не понадобится всюду GC юзать, а только (A)RC в некоторых местах.
>как на котлине продуктивнее писать, в отличии от джавы
На расте также, вот пример распарсить json и отфильтровать https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=e0b0cf01bbf7edc19845e061f5e9567d
Тут код такой же как на котлине и js, все делается легко и в одно выражение, напиши также не плюсах. Если прямые руки и до этого писал на "неправильных" "не православных" языках по столярову, то легко будешь пользоваться этими конструкциями, особенно после руби.
С длиной опечатался впадлу исправлять
>Тогда вам больше не понадобится всюду GC юзать, а только (A)RC в некоторых местах.
Сборка мусора на полшишечки.
>.unwrap()
К сожалению, в языке где ручками надо пробрасывать ошибки, невозможно промышленное программирование.
Я уже представляю стек из 160 функций и в каждой ручками прокидывают ошибки, или проверяют через условный оператор (match, if, пофиг) на ошибку.
В общем в жабах и шарпах твой раст нужен как весло кораблю.
В продакшене был бы Resul и ? чтобы пробросить нахуя в каждом месте проверять это же не go.
А теперь к сути вопроса, напиши такой же код на C++ который распарсит json и отфильтрует или лучше даже на C. НО ты ничего писать не будешь, да? Потому что не умеешь даже на C писать.
А ты реально грязноштаных комми из /po напоминаешь, вычленяешь что-то удобное из текста не отвечая на остальной вопрос и бросаешься категоричными словами типа "никогда", "невозможно". Вас там в одном месте обучают? Или тоже штаны постирать не можешь?
>напиши такой же код на C++ который распарсит json
Как можно сравнивать системный язык с прикладным? И да, в том сообщение же с котлином сравнивали, иди посмотри как делают в нормальных языках и сравни сколько ты бойлерплейта написал.
В плюсах на любителя, в расте технически не возможно решать без ГЦ множественное владение.
То есть ты писать код не умеешь?
Это приводит к гонкам по данным, что нарушает принцип безопасной работы с памятью. Поэтому в рсате это разрешено через использование unsafe чтобы явно показать что использовать нужно с остапожностью. Примитив называется UnsafeCell.
Ко-ко-ко, у нас самый безопасный язык.
@
А, ну, в этом случае нужно использовать ансейф.
@
Что, упало? Так это не мы виноваты, это ты сам виноват использовал ансейф.
Мой сосед порится в жопу => значит я тоже могу пороться в жопу?!
Так логика у растера работает?
Кто о о чем, а подстолыш столярова о гомоебле. Логику тебе выше скинули что ГЦ shared_ptr в плюсах используют повсеместно, но ты не видишь из-под стола
Тогда и в плюсах не опционально
Но на практике используется чаще (как и ненужное копирование данных), чем в Расте, потому что хер его знает, как там себя поведут лайфтаймы.
Так ведь это правда, самый безопасный. А что бы ты улучшил, самое главное как бы ты это реализовал? Можешь сколько угодно здесь клоуна корчить, но лучше ничего пока нет.
Все твои аргументы звучат как "А почему вы неидеально сделали? Я хочу идеально"
Но ведь это физическое ограничение архитектуры современных компьютеров. Раст это ответ на вопрос как в таких условиях обеспечить удобный, непротиворечивый доступ к памяти без ущерба производительности.
>К сожалению, в языке где ручками надо пробрасывать ошибки, невозможно промышленное программирование.
GO
Значит в расте опционально, а в плюсах обязательно
Кстати, живой пример. Гоферы же тоже бегали и кричали что джаве хана, заменятор приехал, но на деле оказалось, что дальше круд-микросервисов на этом писать больно. Так и осталась это говно узко специфичным. Так же вымерло checked exceptions в джаве, по сути это та же проброска ручками (естественно во всяких котлинах и шарпах его сразу выпилил). И кстати, был человеческий фактор, на практике checked exceptions приводили к пустым заглушкам.
Но благо в го ошибки бесплатные, а в расте результ это опшен с оверхедом.
>Гоферы же тоже бегали и кричали что джаве хана
Ну там да, загнивает потихоньку, монолиты теперь пишут самые упоротые
> но на деле оказалось, что дальше круд-микросервисов на этом писать больно
Да, сейчас все в облаках, докерах, распилено на сервисы, каждый делает свое дело вместо огромнейшего монолитного говна. Тем более в зависимости от потребностей можно использовать разный стек не одним go живут микросервисы. И я бы не сказал что это очень узкая ниша микросервисы сейчас везде от крупных банков до стартапов.
Ты видимо теоретик, который ни дня не работал вот и пишешь всякую хуйню что услышал от замшелых преподов шизиков.
Отдельная тема, насколько выразительный раст, приходится прибегать к макросам.
Хотя хеллоуворд на макросе должен был напугать еще сильнее.
> приходится прибегать к макросам
Ты долбоеб? Нахуя ты там понаписал говна
println!("{:<22} {:>4} Option<T>", "Type", "T");
println!("{:<22} {:4} {:4}", "i32", size_of::<i32>(), size_of::<Option<i32>>());
println!("{:<22} {:4} {:4}", "Result<(), Box<i32>>", size_of::<Result<(), Box<i32>>>(), size_of::<Option<Result<(), Box<i32>>>>());
Само собой будут затраты по памяти на опшены и резалты, надо быть совсем долбоебом чтобы не понимать что им нужно место в памяти. Но ты так и не принес бенчмарков показывающих насколько это оверхэд, судя по тому как ты кукарекаешь разница должна быть в разы, напиши какое-нибудь байтоебство на плюсах и на расте, выложи сюда и покажи что там пиздец какое все тормозное, но проблема в том что ты не умеешь писать код и не можешь свои слова ничем подкрепить, даже линкедлист не показал на плюсах
>Само собой будут затраты по памяти на опшены и резалты
Залупа кост абстракшен быстро ты переобулся, системный язык, лол
>быстро ты переобулся
Я и не отрицал, я тут не один в треде, да и чего-то не особо кто-то другой это отрицал, лол
>системный язык,
Что ты подразумеваешь под этим понятием и почему раст ему не соответствует? А я тебя послушаю
>Ты долбоеб? Нахуя ты там понаписал говна
Дурачок заинлайнил макрос, нарушив DRY.
Сразу видно что кодер любитель.
>Дурачок заинлайнил макрос, нарушив DRY.
Дурачок, наколхозил макросов вместо того чтобы сделать проще, нарушив KISS. Сразу видно любителя "красивого" кода, который потому хуй прочитаешь. Я бы тебя с этими макросами на пустом месте на ревью завернул
>Я и не отрицал
Ты может нет, но местный петух кудахтал, а потом пруфы стал просить на "базу" из доков.
>Что ты подразумеваешь под этим понятием
Это вы там придумываете понятия, а основной показатель системного языка это максимальная утилизация ресурсов, та самая зеро кост абстракшен, или ранее - "не платить за то, что не используется" никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
> никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
Неси бенчмарки заебал, посмотрим сколько стоит null safe тогда и поговорим о ресурсах в обмен на безопасность. Хули воздух сотрясать вхолостую
Ты похоже тот додик, которого обоссали в шарп треде и окунули в котлин треде.
Понимаешь, хоть ты и владеешь частично теорией, но у тебя очень сильно выделяют все эти моменты, которые показывают, что ты кодер любитель и от скуки срешься во многих тредах за разные языки .
DRY - это такой тонкий подход, который даже ждун начинает использовать, не зная вообще о том, что существует такой концепт, потому как на практике это очень быстро бьет по рукам.
А теперь смотри как в моем примере легко добавить случаи, с нулевым оверхедом.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=c016c50f322f6060977e7dfe66171879
>Ты похоже тот додик, которого обоссали в шарп треде и окунули в котлин треде.
А теперь обоссали и в раст треде.
Отличный манёвр. Ты, кстати, еще не принес пруфы что в Го ошибки бесплатные.
>Ты похоже тот додик, которого обоссали в шарп треде и окунули в котлин треде.
Нет
>DRY - это такой тонкий подход
Охуеть какие тонкости не писать повторяющийся код
>А теперь смотри как в моем примере легко добавить случаи, с нулевым оверхедом.
Хуясе магия, ебать колотить, а я ж не знал, охуеть можно
А теперь смотри какая штука с этими макросами:
1. Их плохо читать
2. Они генерируют код в компайлтайме, когда ты их пишешь ты должен понимать что ты делаешь
3. Они плохо подсвечиваются IDE
У тебя еще простой вариант, но есть любители которые пишут сложнее и там целые проблемы, их следует избегать по возможности. Хотя я не знаю как у вас в плюсах там наверное никак без них как и с ГЦ.
Вот пример без макроса просто с дженериком https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=9d5bc73f03f100fe36c306c3f64344f7
Не стоит делать из окружающих долбоебов, покуда сам долбоеб
И еще линкедлист на плюсах, я тут давно стою жду за мной будете
То есть за опшены обоссан, можно и другое нести?
>Го ошибки бесплатные..
Потому что там нет вообще абстракций для работы с ошибками.
Если не считать "if" языковой абстракцией.
Да, в принципе неплохо тебя обоссали за опшены. Давай неси пруфы что в го ошибки бесплатные уже. И линкед лист на плюсах тому анону.
Ошибки пробрасываются оператором '?'. Это один знак в конце вызова функции, да ещё и видно что тут функция может вернуть ошибку.
>ненужный
Сам придумал, сам опроверг. Иди просохни сначала.
В жабу 8 (2014г) тоже Optional добавили, но костыль оказался настолько ущербный в проде, что уже никто и не помнит сей бред-оверхед. Один котлин залил годное решение с нуллами (или где-то вдохновился) без необходимости гонять опшены по всему языку.
Да он не знает нихуя, даже выше кусок кода слепо со стековефлоу скопировал и потом начал выть что нужно макросы использовать
>Один котлин залил годное решение с нуллами (или где-то вдохновился) без необходимости гонять опшены по всему языку.
Это называется nullable type. Но не сравнивай жопу с пальцем. В котлине каждый объект находится за ссылкой. В расте тоже так, ЕСЛИ объект в себе имеет ссылку, то она будет использоваться для нивелирования оверхеда Option/Result. https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=1d525d8290f94af4ebcad7340a1c52f3
Выше уже джва раза писали, не игнорируй очевидное.
В расте сделано так, как если бы ты перешел на лоу-левел и ручками это написал если бы стал оптимизировать.
Это не я вообще был. Пррсто охуеваю с такого дурачка как ты, которому "похуй" на "ненужный тред", но сам сидишь ИТТ 27/4 и отвечаешь на каждый пук.
Да ну надо быть совсем хлебушком, чтобы понять что твой "?" костыль и тебе все равно ручками придется переписать все сигнатуры методов в цепочке.
Стоит поссать в нору так сразу повылазило. Какие неудобные вопросы ты задавал? Типа линкед лист на плюсах?
Троолинг тупостью это не вопрос, а диагноз
Можно сколько угодное придумывать оправданий, но стоит признать что решение котлина с нулами куда практичнее опшинов с древне-костыльного ФП, а ссылки не ссылки можно адаптировать.
>Какие неудобные вопросы ты задавал? Т
Ебать, какой же ты сверхманевренный. Тебе бы в депутаты идти.
Какие? Типа очевидных, когда необходим Rc?
Я вообще не понял меня троллили тупостью или здешние растеры больше скриптов не писали. И каждый додик приводит в противовес поинтеры с С++.
И вот непонятно это такой троллинг или этих хлебушков знаний уровня "сказали на конференции".
>Типа линкед лист на плюсах?
Это я задавал, ты же так и не написал ни строчки, а я хотел сравнить твою реализацию с моей неправильной
Мы конкретно обоссываем одну тему, додик используя тупые приемы демагогии, неожиданно врывается в тред и пытается перевести тему в другое русло.
А потом такой - "ну почему мне не отвечают", может быть нахуй? ты, по-моему, тот же додик который неожиданно требует гитхаб показать
>Ты не маневрируешь и не отвечаешь на вопросы
>Какие именно вопросы?
>Ну, вот ты продолжаешь не отвечать на не заданные вопросы.
Я в твои клоунские игры играть не буду. Ты все прекрасно понимаешь, но продолжаешь прикидываться дурачком, игнорируя все вопросы.
Да мне насрать как бы тоже, я на полном серьезе считаю, все эти тезисы надо обсудить, но с фанатиками это делать трудно.
Я ливну и смотри как протухнет тред.
Я тут давно сижу и был ОП прошлого треда, а ты пришел сюда и воняешь, собственно как мы выяснили ты даже код писать не умеешь.
>ну почему мне не отвечают
Наоборот ты как раз таки и отвечаешь, много и жидко, но почему-то твои ответы максимум сотрясение воздуха. А вот по делу ты нихуя не смог, кроме того как скопипастить со стековефлоу даже не понимая что там написано.
>я на полном серьезе считаю, все эти тезисы надо обсудить, но с фанатиками это делать трудно.
С фанатиками Столярова
Я не понял, а нахера там был Box
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=fc520dff511fa7de5a264df1945a4c62
Все так, ненужный язык, ненужный тред. А теперь уходи из этого ненужного треда к нужному Столярову.
Скипни до нужных глав.
>пок-пок-пок
Сорта хуйни, что столярный, что итт шизики.
Чем здесь лучше, чем на /b/реддите или стаке?
хоть бы макабу хрустящую попиливали, было бы не так убого.
Это мимокрок какой-то, я ничего не писал. Оставил подписку чтобы посмотреть как тред стухнет.
>Чем здесь лучше, чем на /b/реддите или стаке?
Ничем, я на бреддите и сижу. Здесь даже Си и плюсотреды мертвы, а что тогда про раст говорить? Просто посрать зайти.
Если только твои структуры иммутабельны. В другом случае тебе везде приходится тыкать проверки. Мало ли что там поменялось в процессе работы программы.
В расте просто достал объект один раз и работай спокойно.
Можешь привести пример, и показать как было бы правильно реализовать (в "нормальном" языке) ?
>их плохо читать
Приходит с практикой
>когда ты их пишешь ты должен понимать что ты делаешь
А когда не макросы пишешь, то можно не понимать?
>Они плохо подсвечиваются IDE
Old news. В последних версиях rust-analyzer это исправили. Не знаю как сегодня, но несколько месяцев назад мне пришлось ручками с гитхаба качать плагин для VSCode и устанавливать, иначе проц.макросы не раскрывались.
Пока не распространилась повсеместно архитектура, которая бы обеспечивала непротиворечивый асинхронный доступ к памяти (CHERI architecture) будете кушать что дают.
>И кстати, какая ирония, игра rust написана на юнити - шарпе.
@
>Движок использует для написания скриптов C#[5].
Получается C# удобный скриптовый язык? А зачем его тогда с Rust сравнивать, ведь это разные ниши.
>Приходит с практикой
Одно дело когда у тебя простой метод с дженериком и ты одним взглядом за секунду понял что оно делает, другое дело макрос в который нужно вчитываться
>А когда не макросы пишешь, то можно не понимать?
Так этот долбоеб и не понимает ничего весь тред засрал, с простым кодом с дженериком все более очевидным выглядит для новичков
>Old news. В последних версиях rust-analyzer это исправили. Не знаю как сегодня, но несколько месяцев назад мне пришлось ручками с гитхаба качать плагин для VSCode и устанавливать, иначе проц.макросы не раскрывались.
ХЗ у jetbrains до сих пор как-то через жопу они работают, хотя и не обновлялся давно надо проверить
Я специально написал макрос и был уверен что половина здешних споткнется на этом и скорее всего заигнорит этот пост (как и вышло). Но один чудик умудрился высрать портянку из принтов с моего же примера, нарушив саму основу разработки (DRY) и когда его ткунли носом в эту лужу, он убежал просвещаться и через пару дней высрал вариант с дженериками. И теперь же это чудо, бегает этим кичиться, переписываясь самим с собой уже полтреда (но никто этого ущерба все похвалит, кроме самого себя).
Что собственно и нужно знать о местных растерах, они на своем языки практически не пишут, а некоторые вообще даже не программисты.
Чего стоят лузлы, когда никто не понимал зачем нужна заглушка с Rc, но зато
как дрессированные сразу же вставляли плюсовый шаред поинтер, потому что только в таком контексте о нем и слышали. Или же тот же пример, что енамы имеют оверхеды по памяти, а это, ведь, прям в доках описано.
В общем, тут сидит пару очередных вкатунов и шизик-инвалид, который со скуки лазает по всем тредам и со всеми в полемику вступает. Тред ценности вообще не имеет.
>Я специально написал макрос
Это ты писал? https://stackoverflow.com/a/16515488
И при этом ты пожаловался на
>>56843
>Отдельная тема, насколько выразительный раст, приходится прибегать к макросам.
Ты если пиздишь, то хотябы делай это правдоподобно
>Но один чудик умудрился высрать портянку из принтов с моего же примера, нарушив саму основу разработки (DRY) и когда его ткунли носом в эту лужу, он убежал просвещаться и через пару дней высрал вариант с дженериками
Лол в течение часа, вот все посты:
>>56940
>>56978
>>56982
И то запилил после того как ты показал это
>>57010
Вот и то получилось полчаса потому что занят был:
>>57032
Хули там с дженериками просвещаться? Что ты в них видишь сложного требующего просвещения? Если бы ты попробовал на расте пописать хотябы день, то познакомился бы с ними, я вообще не понимаю почему вкатуны писуются из-за дженериков, довольно простой инструмент
>и шизик-инвалид, который со скуки лазает по всем тредам и со всеми в полемику вступает.
Самокритично
>Тред ценности вообще не имеет.
Вот именно поэтому ты и ушёл хлопнув дверью и оборвались, но почему-то вернулся обратно. Хули тебя порвало, ушёл и ушёл хуй с тобой, но за что то живое тебя задели раз ты никак не можешь уйти
Ещё и запизделся, вон я выше написал как.
>Это ты писал?
Да, по памяти, там, наверное, строчек 15-20. Ты бы еще к хеллоувордам докопался за копипаст (изначально пример был в какой-то статье или examples, не помню).
>Отдельная тема, насколько выразительный раст, приходится прибегать к макросам.
У тебя базовый хеллоуворд на макросе, о чем тут говорить?
>>60398
Аватарко дебила репортнул, я вернулся, потому что ко мне обратились. Сережа, выпей таблетки уже
Вообще снес подписку, тоните.
>Да, по памяти, там, наверное, строчек 15-20. Ты бы еще к хеллоувордам докопался за копипаст (изначально пример был в какой-то статье или examples, не помню).
Да хорош пиздеть тут уже всё понятно с тобой, ладно хоть не с вопросов копируешь, а с ответов это уже хорошо
>Аватарко дебила репортнул
В прокуратуру и спортлото не забудь написать
Йобу прилепляю чтобы ты знал что именно со мной говоришь а не с Сережей или Андреем Викторовичем
>Вообще снес подписку, тоните.
Послезавтра прибежишь обратно
https://spb.hh.ru/vacancy/68510158
Нихуясебе там требования
>Cloudflare перешёл с NGINX на собственный прокcи Pingora, написанный на языке Rust
Ну чё, сборка мусора получается, нинужный язык.
> Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.
Погодите-ка, а в си плюс плюс и в си до сих пор нету нормальной многопоточности?
Короче в кратце они писали на go типа все заебись, но когда начинал работать gc это был адовый пиздец на пике 1 график, где видно как он работал. Короче как они только с бубном не танцевали описано в половине статьи, нашли какое-то решение типа запускать чаще и уменьшить кэш LRU, но один хуй было говнясто. Кто-то там у них пилил на расте и они решили попробовать написать этот сервис на расте и в итоге все заработало как и было, только без этих скачков как были с gc на пике 2 видно сравнение синий Rust, фиолетовый Go
Короче теперь хлопают в ладоши, пьют шампанское и подобные сервисы пишут на расте.
Вот это практический опыт людей которые столкнулись с проблемами из-за gc и исправили эту проблему переписав на rust. Так что слова этого боевого петушка засравшего не один тред этой темой можно считать обоссаными вдоль и поперёк, жаль что он отписался и не увидит лол
>Pidora
Дали даже название своей прокси, но кодов, я так понимаю, не дали? В общем, очередной раз покатались на хайпе раста, или порекламили себя на хейтерстве (черный пиар) топ продукте на рынке. Но на деле вообще обосрались lua (см пик).
Опять покатушки на хайпе. То-то их нагрузки 20-40% так напрягали и задержки раз в ~2минуты в 300мс так пугали (для чатика с делеем), что пришлось тратить время на новую неизвестную технологию да еще сразу в прод.
Статья древняя и помню где-то гоферы её как-то обоссали. Но суть не в этом, говно уже вентиляторе, маркетологи счастливы.
Жалко гоферов, еще лет 5 назад ровно такой же хайп на историях успеха был их в сторон, а теперь жертвы они.
Ты статью почитай, а не долбоеба из комментариев у которого манямирок реальность искажает.
Делюсь инересным каналом.
https://github.com/topjohnwu/Magisk
Устали наверно одно и то же разжевывать троллям. Когда будет аргумент, тогда и посты появятся.
...за неимением лучшего...
struct {
header: u32,
l1: [[ [[InnerStruct; 8];8 ]; 1000]; 1000],
}
Обмазавшись repr(C, packed) добился размера в байтах такого же как файл на диске, тут все ок. Но попытки разместить ее с помощью Box::new([....]) приводят к переполнению стека.
Какие есть варианты добиться желаемого?
Я пока смотрю в сторону разбиения внешнего массив на вектора и их последовательное заполнение, но это лишние сложности, фрагментация памяти и тп. Логично разместить ее одним непрерывным куском. Посматриваю в стороню unsafe, но все же надеюсь, что найдется идеологический правильный способ.
Если у тебя нет опыта в программировании — смысла вообще нет, вакансии редки и там обычно ждут плюсовиков с кучей опыта.
Вопрос между С++ и растом даже не стоит, у раста банально даже нет глубокой документации, чтобы сразу взять системный уровень с нуля. Но самое забавное, что и С++ в 90% тебе не нужен будет, в большинстве случаем у вкатунов неправильное восприятие мира и они считают что чем "ниже" язык тем круче (самые упоротые вообще за ассемблер топят), ну а про страшный ГЦ, вообще можно не рассказывать, потому что все мы пишем только в реалтайм операционках.
Вопрос между С++ и растом даже не стоит, у раста банально даже нет глубокой документации, чтобы сразу взять системный уровень с нуля. Но самое забавное, что и С++ в 90% тебе не нужен будет, в большинстве случаем у вкатунов неправильное восприятие мира и они считают что чем "ниже" язык тем круче (самые упоротые вообще за ассемблер топят), ну а про страшный ГЦ, вообще можно не рассказывать, потому что все мы пишем только в реалтайм операционках.
Лишним не будет, но скорее всего не вкатишься на расте
ну давай разберём по частям тобою написанное
8x8x1000x1000 ~ 61 МБ стека - нихуя ты баклажан, а ulimit -s ты тоже через ансейф обходить собрался? создание структуры в любом случае породит её сначала на стеке, и лишь потом её можно отбоксировать в кучу
давай ебош вектора и не выёбуйся тут стековыми бигдатами
в продолжение >>68688
а вообще то, что тебе нужно (по растовой классике), ещё только рфсишится
https://github.com/rust-lang/rfcs/pull/2884
Нашел у кого просить, в боршехлёбном треде.
>8x8x1000x1000 ~ 61 МБ стека - нихуя ты баклажан
Ты забыл про InnerStruct! Но там не сильно много байт.
Я не хочу его размещать на стеке, мне его нужно в кучу.
Но пожалуй самое простое решение, развернуть это все в линейный вектор и самом пересчитывать индексы в итоговый "плоский" индекс. Впрочем не уверен, что это сильно по растомански. Ну и как запасной вариант, можно аллоцировать нужный кусок и сделать Box::from_raw, причем такой вариант мне кажется более правильным.
как и везде - на одном стуле листхеад с мьютексом лоченым на другом lock-free с АBАой дроченой
Заполняем брешь между обучением языку через Раст-бук / rust-by-examples и написанием реальных проектов.
Начать хватит, а дальше как везде, шишки набивать.
Ей изредка сносит башню, invalidate caches & restart помогает.
Не понял особо, в чем проблема сделать это на С?
struct foo {
uint32_t val;
struct foo next;
struct foo prev;
};
struct foo get_next(struct foo val)
{
if (val == 0 || val->next == 0) / Ну тут есть кстати вариант что мы /
return 0; / делаем кольцевой, но там суть та же/
return val->next;
}
struct foo get_prev(struct foo val)
{
if (val == 0 || val->prev == 0)
return 0;
return val->next;
}
>зирокост
Такого кода не бывает, любая процессорная команда это уже не зеро кост. Ты путаешь нулевые абстракции с чем-то своим в голове.
мимокрок
Заменили if на match и думают что всех переиграли? У тебя опшены с оверхедами и проверка юникод символов и массивов в рантайме, успокойся уже со своим залупа-костом.
>Вся эта история с доцентом, студентом МГУ и статьёй https://rustmustdie.com/ показывает, что где-то внутри вуза построен странный образовательный процесс, который мешает студентам получать актуальную информацию и формировать независимое мнение.
>Я бы мог пройтись практически по всем пунктам студента: толстые бинари, медленный код, сборщик мусора, что времена жизни — это хак компилятора, что заимствования слабее указателей. Но это бы лишний раз показало, что преподаватель, который влил эту чушь в голову студентам МГУ, не просто находится не на своем месте, он вообще ничего не смыслит в системном программировании.
>Я бы хотел, чтобы в МГУ (самом МГУ!) ученые и студенты были открыты к познанию. Ведь в этом и есть суть университетов, нет? Слишком многого хочу?..
>второй язык разработки для ядра Линукс
>почти вся крипта
>создается спецификация для использования раста в аерокосмической сфере
>стабильно выпукаются патчи и обновы к компилятору и тулчейну
>ряяяя мертвый и не нужный
Понимаю.
У тебя ничего не подгорело от статьи?
Не, ты не понимаешь. ТАКОГО обсирания раста нигде больше нет кроме Россиюшки. Это настолько выделяется, что складывается впечатление о проплаченности ивента. Чем-то вроде https://pvs-studio.com/ru/
Там еще в Яндексе охуевшее лобби любителей плюсов.
>второй язык разработки для ядра Линукс
Просто через дикие патчи кое-как подпустили к драйверам
>почти вся крипта
На деле часть на сях
>создается спецификация для использования раста в аерокосмической сфере
Когда будет там, напиши.
>стабильно выпукаются патчи и обновы к компилятору и тулчейну
Страдают херней и постоянно что-то ломают.
>ряяяя мертвый и не нужный
Нет реально ниши для языка.
>>второй язык разработки для ядра Линукс
>>почти вся крипта
>>создается спецификация для использования раста в аерокосмической сфере
>>стабильно выпукаются патчи и обновы к компилятору и тулчейну
а тред всё равно мертвый. как так-то? видимо не так уж и нужна эта хуйня, как ты пытаешься представить
Можно еще с такой стороны посмотреть - есть люди которые и в мужском общественном туалете могут кушать. Но не все.
Понятно что всякий туалет туалету рознь. Перечитай этот туалет и попробуй представить уровень запаха от расто-хейтеров.
Чем раньше раст попадет на прод, тем быстрее многим станет ясно о низкой продуктивности на нем. Не просто так же серво загнулся.
Раст сейчас идет только на энтузиазме фанбоев на какой-нибудь крипте или пет проектов и агрессивном маркетинге.
>Не просто так же серво загнулся.
Экспериментальный проект, над которым на фуллтайме работали что-то в районе 5 человек загнулся, да так что его куски уже не первый год как работают в фф, лул.
>Раст сейчас идет только на энтузиазме фанбоев
Скорее агрессивный маркетинг создают хейтеры своей жопной тягой.
>Скорее агрессивный маркетинг создают хейтеры своей жопной тягой.
Двачаю, этот тред поднимают больше столяровские шизики, они сюда пишут больше чем в C тред, который умер
Уже много раз писали. Servo был исследовательским проектом отдела Emerging Team (Раньше называлась Mozilla Reserach -- попытка исследования интернет трендов на 5-10 лет в будущее). Который закрыли из-за недостатка средств в т.ч. в связи с коронокризисом.
Далее, учитывайте что более 50% средств мозилла получает от гугл. https://www.opennet.ru/opennews/art.shtml?num=56314
Также, все наработки используются в самом firefox, и существует проект oxidation по переписыванию опасных частей на rust.
Бегали с этим сервом в грудь били, а сейчас, "мням мням, это было не серьезно и вообще игрались и деньги то не наши, а гугла и вон даже в лисе пару строк кода переписали".
Гугл загнул FF теперь загнет и лису, а потом появиться модная молодежная фуксия, в ядре которой запретили на расте писать и всех спасет, лол.
>а потом появиться модная молодежная фуксия
У которой кроме ядра >30% кода на русте, от сетевого стека и фс до прочих юзерлевел хуиток, лул.
Так гугол закапывает раст или откапывает, определись уже.
>линукс
Ебало представили?
Зачем загибать то, чем пользуешься сам и остальные корпорации? Как бы это не звучало бредово, но GPL только помог корпорация сэкономить. Нахрена тратить деньги на разработку серверов/рабочих станций для личного пользования, если можно всем корпам скинуться и пилить один проект? Внутри компании используешь бесплатное открытое ПО, которое можешь сам изменить в случае чего, а пользователям продаешь проприетарные сервисы, услуги и устройства.
Ты же понимаешь, что они именно запретили, поэтому звездеж на тему, "у нас на нем никто не пишет, поэтому запрещаем", выглядит натянутым?
Я уверен, что они раст пощупали и сделали определенные выводы. И был бы он так крут, как носятся с ним фанбои, не думаю, что они стали бы его выкидывать.
Основной момент был что они начали ядро писать еще хз когда давно, раст вроде и релизнул 1.0, но еще не был особо зрелым.
> у нас на нем никто не пишет, поэтому запрещаем
Остальное пишут, значит в целом ок.
https://lkml.org/lkml/2022/9/19/1105
Похуй, что он там высрал. Главное, что коммиты в ядро идут и будут расти со временем. Напомни, когда там плюсы в ядро добавят?
И в чём заключается попущение? Люди лезут в ядро не зная правил программирования в ядре. Такие же люди могли лезть с коммитами на Си. Пошёл нахуй в общем, обосрыш.
Если я последний раз погроммировал в школе в 2007 году на паскаль абс - стоит ли мне влезать в это всё? Почитал тред и охуел с количества срачей.
Мне не особо умная программа нужна, я расчёты делаю в экселе и покупаю продаю вручную с шагом в неделю. Бот, написанный мимокроком на расте, сможет справиться с этой задачей?
>Питона хватит, раст оверкил.
this
А если бы тебе на раку или хаскеле посоветовали бы написать, тоже бы попробовал?
>Предлагаемая модель безопасного программирования для C++ предполагает использование предоставляемых стандартной библиотекой классов при работе с буферами вместо манипуляций с голыми указателями. Например, предлагается использовать классы std::array, std::vector и std::span, в которые будет добавлена проверка выхода за границы выделенной памяти, производимая во время выполнения.
>В libc++ планируется реализовать опциональный режим усиленной защиты, при включении которого во время выполнения будут отлавливаться некоторые ситуации, приводящие к неопределённому поведению. Например, в классах std::span и std::vector будет отслеживаться обращение за пределы выделенной области памяти, в случае выявления которого программа будет аварийно завершаться.
>Производимые во время выполнения проверки в libc++ планируют разделить на категории, которые можно будет включать по отдельности. Некоторые из предложенных проверок, которые не приводят к усложнению операций или изменению ABI, уже реализованы в рамках безопасного режима libc++ (safe mode).
Ахах, ккак же llvm ебет столяровских шизов. Сто процентов подлые растоманы пробрались в проект и портят креств
>я расчёты делаю в экселе
Что те херню посоветовали что эти, бери шарп, я серьезно, как минимум у тебя будут не кустарные библиотеки и больше фич. Игрушечный питон не бери эта хрень тормозит аки слон и не может в мультипаточность. С большими объемами данных сразу это заметишь.
>хрень тормозит
Все еще 3.4 используешь?
>мультипаточность
Мультипроцессинг бери тогда.
>С большими объемами данных сразу это заметишь.
С ними нужно уметь работать. Обосраться можно хоть плюсами, хоть с питоном
>Кто мешает ему писать без стд на олдскульном 98?
Работодатель, а сам он ничего не пишет один хрен.
Чет нихуя не понял. С возвращением созданных в методе объектов как-то легко было, а тут вообще не понимаю
Когда ты берешь ссылку на переменную, создаётся лайтайм. Лайфтайм - это конкретный участок твоего кода, на котором ссылка гарантированно валидна. В нормальных условиях лайфтайм - это участок от let до конца скоупа (т.е. до }), но он может преждевременно прерваться, если родительский объект был перемещен (присвоен другой переменной или передан в функцию по ссылке или изменен (т.е. создана ссылка с &mut). При попытке использоваться ссылку после окончания её лайфтайма будет ошибка компиляция.
Еще есть сложные лайфтаймы и особенности с мутабельными ссылками в структурах, но они нужны реже, и я рекомендую пока не лезть в залупу.
Насколько я понимаю, явно нигде в нём указывать не нужно, в какую коллекцию он будет перерабатывать мою итерационную цепочку.
Как эта хуйня реализована вообще? Может это что-то очевидное, но я со своим плюсовым мышлением чёт ничего особо придумать не могу.
Через возвращаемый тип задаётся. Можно указать явно, может вывести само, если это возврат из функции с известным типом, например.
Вывод типов. Где-то все равно должно знать что именно надо.
Это буквально время жизни.
Ссылка должна указывать на живую структуру или примитив. Если есть вероятность, что указываемая структура умрёт (будет перемещена, освободится память для неё, время жизни уменьшится из-за смешения разных лайфтаймов в один, etc.) до момента как ссылка будет использована, борроу чекер пошлёт тебя на хуй.
БЧ просто не даёт тебе трахать трупы, потому что в программировании из-за секса с трупами рождаются назальные демоны.
При этом БЧ консервативен, и если что-то пахнет как труп, то он не даст это трахать, даже если оно случайно живым. Он считает, что лучше иногда не трахнуть живое, чем случайно трахнуть мёртвое.
Удваиваю. Какие современные программисты заморачиваются например о поддержании когерентности кеша? А ведь даже это полезней чем думать постоянно о том, как бы не наступить на граблю и не выстрелить себе в ногу.
>Какие современные программисты заморачиваются например о поддержании когерентности кеша?
никакие. это забота профессора
Решил вкатиться.
Почему все ресурсы по расту ориентированы на то, что читатель уже писал на с/с++?
Как вкатиться в этот язык, если до этого не писал на си?
Посоветуйте ресурсы для изучения, если я до этого не писал на вышеупомянутых языках и вообще во всем этом низкоуровневом плохо понимаю. Что можно паралельно читать вместе с rust book?
Разве?
>
>Почему все ресурсы по расту ориентированы на то, что читатель уже писал на с/с++?
Просто рассчитаны что ты не полный нуб.
>Посоветуйте ресурсы для изучения, если я до этого не писал на вышеупомянутых языках и вообще во всем этом низкоуровневом плохо понимаю. Что можно паралельно читать вместе с rust book?
Просто начни что-то делать на нем да и всё, он легче всего учиться на практике
У меня есть установленная на днях программа на расте для трансляции экрана, короче бесплатный аналог тимвмивера. Очень толковая вещь.
Если по котлин книжке понятно, что разработчики может умеют делать языки, но не особо умеют писать учебный материал, то растбук откровенно халтура. Основной парадигме владения и лайфтаймам посвящено пару страничек и не раскрывается мысль как на этом вообще писать, если у тебя что-то больше чем хеллоуворд. И было бы как бы похер, но эту книгу советуют почти всегда и до фанбоев просто не достучаться. Хотя они же жалуются на кривую обучения, конечно, откуда взяться ровному обучению, когда по новой парадигме нет толком никакой информации как лучше строит сложные архитектуры, чтобы потом из-за чекера все заново не переписывать.
Сука
— Mark Russinovich, CTO of Microsoft Azure
Хейтеркам Раста вырасшем на ковырянии винды от этой цитаты может стать неприятно.
If your code is expected to be a bottleneck in terms of CPU usage, memory usage, latency or bug-fixing, then Rust is a very strong contender. It can save you money and effort in the long run.
Given that I've been programming professionally for over a decade in Python, Perl, Ruby, C, C++, Javascript, Java, and Rust, I'll pick Rust absolutely any time that I want something running that I won't get called at 3 AM to fix. It probably took me 5 times as long to write it as if I did it in Go or Python, but I guarantee it's saved me 10 times as much time I would have otherwise spent triaging, debugging, and running disaster recovery.
--Taywee 5 from the Hacker News network
- One is for touching and one is for looking
>They will recoil at seeing Arc<RefCell<T>>
Где-то выше бегал шизик, который говорил что без этого никак не получится писать на расте
ООП в принципе говно, ЯП тут ни при чём.
Это копия, сохраненная 7 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.