Решил переосмыслить язык заново. Открыл ру документацию кстати, это говорит о вменяемом ру-сообществе, я такое редко вижу и там говорится про настройку edition="2018".
Что с растом произошло кардинального в 2018? Я так понял, была нарушена обратная совместимость?
>>1745027 https://doc.rust-lang.org/edition-guide/editions/index.html > When a new edition becomes available in the compiler, crates must explicitly opt in to it to take full advantage. This opt in enables editions to contain incompatible changes, like adding a new keyword that might conflict with identifiers in code, or turning warnings into errors.
Надо написать функцию, которая на входе берет строчку и пытается распарсить её в число (f64). Если в строке совсем хуйня, то в ошибке должно быть "о вей, не число совсем". Если там почти число но вместо десятичной точки запятая, ошибка должна быть "вай, почти число, может надо . вместо ,"
>>1745079 Это не поломка обратной совместимости. Ты можешь использовать крейты написанные на 2015-варианте и при этом своё приложение писать на 2018-варианте (и вроде даже наоборот). Просто немного меняется сам синтаксис и могут запретить некоторые конструкции языка.
>>1745084 Окей. Меняют сам синтаксис или API (ну там методы депрекейтят)? И насколько часто это происходит? Будет ли какая-то заморозка или это прям такая внутренняя политика?
>>1745089 API тоже могут удалить, но удаление ты заметишь, только если включишь новый вариант, а в старом всё останется как есть (т.е. все старые крейты изменений не заметят). Исключения составляют методы/конструкции, которые уже сейчас имеют неопределённое поведение. Их могут изменять как захотят (и без привязки к варианту языка), потому что если ты их используешь, то твой код уже по сути поломан и от изменений он сильнее не сломается. > И насколько часто это происходит? Хотят раз в три года. Но будут делать только в том случае, если наберётся достаточное количество ключевых изменений. Например в 2018 варианте большинство изменений были направлены на улучшение поддержки NLL (хотя NLL портировали позже и на 2015 вариант), асинхронных функций (например сделали async ключевым словом) и улучшенного менеджмента модулей.
>>1745079 > но хотел бы на работу его принести С этим я был бы очень осторожен. Главные в разработке раста чрезвычайно политизированы (все эти шуточки про смену пола и любовь к блм не из пустого места берутся) и не скрывают этого [1]. Так что если повесточка прикажет, он вполне себе смогут выписывать санкции всем неугодным и смогут вашей компании даже заблокировать доступ к крейтам и подобное.
>>1745106 Мы Барнаульская маленькая компания. Язык мне там нужен только для того чтобы скилуху прокачать, а не чтобы галочку поставить типа "Рога и копыта теперь на расте, история успеха". Никто и не узнает на чем там микросервис.
Хочу сделать его себе основным языком, потому как старый и жирный и С++ уже не осилю. Да еще на горизонте маячит поезд с перспективами webassembly, где такие языки зайдут всегда лучше, чем управляемые.
>>1745115 > Мы Барнаульская маленькая компания. А на тех кто будет поддерживать код после тебя, видимо тебе похуй? Да и так просто всё не делается. "Вчера" заблокировали крым по политическим причинам, завтра барнаул, а rust core team со слюнями выпадающими изо рта быстро побежит выполнять требование правительства, потому что политика важнее каких-то там технических деталей. Да и вообще в барнауле нацисты сидят. > Никто и не узнает на чем там микросервис. Зато ты узнаешь, когда не сможешь сконпелировать приложение, если crates.io заблокирует по политическим причинам все российские ip-адреса. > Хочу сделать его себе основным языком Себе можешь делать что угодно, но зачем компанию-то так подставлять? Принудительно переводить её на слабо-поддерживаемый язык с непонятными перспективами, особенно внутри россии. > на горизонте маячит поезд с перспективами webassembly Чтобы он маячил на горизонте, надо чтобы туда добавили нативную поддержку DOM. А так сейчас это не более чем игрушка, где самые топовые и быстрые библиотеки (с отсутствующим функционалом) медленней монструозных жс-фреймворков.
>>1745133 Одного поля ягоды, кстати. node.js возможно политизирован ещё сильнее. А политические санкции в коде я вообще впервые увидел в жс-библиотеках, которые чуть ли не перечисляли в лицензионном соглашении все компании которым запрещено использовать библиотеку, потому что они не соответствуют повесточке.
>>1745123 Блокируют, вероятно, из-за санкций. Если будет на всю Россию, то ты и сдк джавы не скачаешь и даже пхп. Причем тут раст вообще.
> побежит выполнять требование правительства Ты предлагаешь им сопротивляться, чтобы санкции накинули уже им?
>А на тех кто будет поддерживать код после тебя, видимо тебе похуй? Я стану ценным сотрудником потому, что кодера на расте в моем мухосранске будет не найти. Шучу, на самом деле это микросервис, его просто возьмут и перепишут. А если еще точнее, то там есть момент где нужно взять яп без GC и конечно я С++ не хочу и, в целом, давно поглядывал на раст, хотя первое знакомство у меня было с синдромом утенка. бывает
>Чтобы он маячил на горизонте, надо чтобы туда добавили нативную поддержку DOM Ты, видимо, так и не уловил месседж. То что там будет в будущем, ему твой DOM уже будет не нужен.
>>1745162 > Блокируют, вероятно, из-за санкций. А рамках ЯП блокируют исключительно на добровольной основе. Как например жс библиотеки прямо в лицензии запрещали американскому агенству, работающему с нелегалами использовать их библиотеки, потому что их работа противоречит повесточке. > Ты предлагаешь им сопротивляться, чтобы санкции накинули уже им? Санкциям обязаны подчиняться только крупные корпорации, а все остальные на добровольной основе. Я просто указываю, что если повесточка прикажет разрабы раста на добровольной основе вполне могут оставить россию без своего языка. > Я стану ценным сотрудником потому, что кодера на расте в моем мухосранске будет не найти. Тебя просто пошлют нахуй с такими идеями. > То что там будет в будущем, ему твой DOM уже будет не нужен. А, ну я просто в настолько далёкое будущее не заглядывал. А так да, нейроинтерфейсы, ИИ, перенос сознания, вечная жизнь, сингулярность. Правда раст и сам вебассембли там тоже будут не нужны.
>>1745170 Ну тебе-то норм с твоим домашним приложением. А использовать библиотеки версий pre-alpha v0.0.0.1-1pre с отсутствующим функционалом никто не будет.
>>1745167 >Санкциям обязаны подчиняться только крупные корпорации, а все остальные на добровольной основе Не слышал такое, да ну и не хочу в полит срач. Тебе походу очень скучно, раз для тебя это важно.
>далёкое будущее не заглядывал Ты просто рогом уперся в политику. Или очень скучно. Иди уже в /po, там тебя поймут.
>>1745175 > Ты просто рогом уперся в политику. Лол блядь. Сами разрабы раста заявили что политика настолько же важна, насколько и технические детали языка. Если не хочешь обсуждать политику и соответствовать повестке, то нехуй тебе делать в этом треде и изучать этот язык в целом.
>>1745180 Я >>1745096 и есть >>1745177 и не смотря на то что знаком с технической частью раста, так же знаком с тем, что они ставят политику наравне с ней и активно продвигают свои идею. Я сам был в восторге от языка, но последние события изменили мой мнение к нему. Так что иди нахуй, раз считаешь меня невменяемым.
>>1745177 Ну а что если я с ними согласен? Вот прилетят инопланетяне и скажут - "какие нахуй вам технологии, у вас 70% до сих пор голодают, 1% усрался жиреть, и вы до сих пор пиздите друг друга по цвету кожи и форме сосков??"
Но на самом деле мне глубоко насрать. Я когда беру молоток, мне наплевать что компания которые его создала в чем-то там убеждена, мне нужен именно этот молоток, а тебе нужно идти в /po с этой темой. Тебя там реально поймут, там есть кодеры.
>>1745185 > Ну а что если я с ними согласен? Ну тогда флаг в руки. Главное чтобы компания тоже была согласна с повесточкой, а таких в россии думаю будет не особо много, ибо могут наказать за пропаганду всякого нехорошего.
>>1745183 >Ты вроде вменяемый. Ну я же сказал "вроде". Я был осторожен в своих выводах :) На самом деле зря ты тупо воюешь с ветряными мельницами. Язык, как инструмент, то норм.
Я бы его использовал с осторожностью (а лучше не использовать вообще). В целом достаточно быстры некоторые библиотеки жавы, го, и внезапно .net core: https://www.techempower.com/benchmarks/
>>1745205 > У раста быстрый только актикс Не, раст сам быстрый, на уровне с. > В целом достаточно быстры некоторые библиотеки жавы, го, и внезапно .net core: Если на расте говна в либы навалили, то боюсь представить что там будет. Тогда можно мозги с шарпами не ебать, сразу же взяв си.
>>1745205 >некоторые библиотеки жавы Ровно пока не подключишь тырпрайзные либы, которому срать на ресурсы. Не знаю что у шарпистов. Но думаю такое же. А на го, писать долго, просто невозможно, если хотя бы немного знаешь как сделано это в других языках боль
>>1745208 > Не, раст сам быстрый, на уровне с. На бэке эта быстрота очень редко когда имеет решающее значение. Особенно если ты сам не умеешь её использовать. Вот ты лично например знаешь как бороться с фрагментацией памяти при огромном количестве запросов? Сможешь сам написать обёртку над аллокатором, чтобы всё это работало быстро? Нет, тогда без ГЦ тебе делать нечего - там умные дяди уже всё за тебя сделали. > Если на расте говна в либы навалили, то боюсь представить что там будет. Конкретно в .net core веб-сервер пишут разрабы из микрософт и они там очень неплохи, потому что команды из asp.net и разрабы вм активно сотрудничают и даже вводят новые фичи, котоыре в первую очередь нужны именно для ускорения веб-сервера. Единственный недостаток шарпа (особенно в сравнении с жавой или жс) - маленькое коммьюнити и порой отсутствие библиотек.
>>1745213 > Ровно пока не подключишь тырпрайзные либы На расте и шарпе таких либ нет вообще, так что поэтому формально они и быстрее. Хуй его знает что хуже.
>>1745215 > На бэке эта быстрота очень редко когда имеет решающее значение. Смотря что делать. > можешь сам написать обёртку над аллокатором, чтобы всё это работало быстро? Да делов-то, просто спрошу на форуме как правильно написать. Либо просто найму человека который за меня напишет. > Единственный недостаток шарпа (особенно в сравнении с жавой или жс) - маленькое коммьюнити и порой отсутствие библиотек. Шарп это майкрософт же, зашквар похуже политики раста. Если у раста "политика имеет значение", то микрософт и политика = одно целое.
>>1745230 Раст тоже. А в своих структурах (#[repr(Rust)]) даже поля переставлять, что места меньше занимали (в си поля всегда идут в порядке их определения в коде).
>>1745234 Круто, вообще в вебе решает кэш и процессорное время. Пускай там бд медленная и пинг большой, главное чтобы процессорное времени было больше (быстрее отработал - больше ресурсов другим потокам/процессам).
>>1745238 > Круто, вообще в вебе решает кэш и процессорное время. Ну тогда тебе дорога в С/С++. Хоть они поля автоматом и не переставляют (на самом деле элементарно делается вручную), но у них хоть компиляторы умеют оптимизировать код, в отличии от раста. Растовский компилятор сам практически не делает никаких оптимизаций и просто выплёвывает огромное количество почти не оптимизированного IR-кода для LLVM, в надежде что последняя там что-нибудь соптимизирует. Отсюда и огромное время компилирования. И что самое смешное разрабы компилятора любят ругать ллвм за медлительно, но почему они ожидают от линкера быстроты если он сам выполняет 90% оптимизаций, которые компилятор смог бы выполнить в разы быстрее из-за дополнительной информации.
> The Rust community is inherently moral. > Because of that, on some topics at least, there is no way to avoid taking a political stance. Шепчу. Нужно срочно создать тему про пыню на форуме раста. Всё же политика имеет значение.
>>1745244 Я ничего не считаю. Просто привожу несколько фактов. Они периодически пытаются добавить какие-то оптимизации, но они либо что-то ломают, либо оказываются слишком медленными, либо так и остаются экспериментальными на протяжении годов.
Что особенно смешно от языка, с кучей излишних дополнительных проверок, например того что индекс меньше длины массива. Авторам библиотек остаётся либо использовать unsafe в тех местах где раст ллвм обсирается с оптимизациями, либо использовать ебанутые конструкции вроде
assert!(i < array.len()); let a = array;
чтобы ллвм было легче понять что достаточно одной првоерки а дальше i всегда меньше длины массива.
>>1745245 Американская политика имеет значение. А на остальное похуй, или вообще запрещено. За упоминание китая и уйгуров тебя там забанят быстрее скорости света.
>>1745250 Тогда нужно сделать тему, мол "социализм для сша, ебанём по частной собственности белых буржуев, они против негров". Потоньше только. Боль мочи будет видна за тысячу миль.
Забавно что раст одинаково восхваляют и хейтят. Так, глядишь, к 2030, когда сменится поколения, все будут писать системный код на каком-нибудь kotlin-native, вместо раста или плюсов.
>>1745260 > к 2030, когда сменится поколения, все будут писать Что писать будут? Где хоть одна либа написанная нормально? Кто там пистаь будет, какие гении? Уже сейчас никто писать не может ничего нормальное, говно на говне, зато "мы принимает политику кокок". Через 10 лет всё это говно китайскими хацкерами в бесконечный локдаун уйдет, а сервера будут натурально гореть, когда обнаружат уязвимость в интел 11.
Раст конечно хорош, но никому не нужен. Контрибьютеров капец мало, да и библиотеки все оч сырые капец, на коленке написанные и с нихуевым таким говнокодом. Раз не взлетело, а должно было уже, то забейте
>>1745306 >Зачем нужны тесты без бд? Лол Покликай по вкладкам.
>без бд Когда станешь настоящим программистом и будешь работать в крупной компании, окажется что существуют сервисы почти полностью представляющие собой кэш (формующие кэш)
>>1745306 Потому что ты скорее всего бд будешь бенчмаркать, а не язык.
>>1745349 >>1745367 >>1745396 Как же порвало. Типичный западный хайптрейн, как будто никогда раньше ничего подобного не было. Ну ладно, именно в ит не было, но каждые 5-10 лет во всём западном мире происходит регулярно.
>>1745367 Ебаните туда коммент в стиле "черные разработчики оспорблены тем, что вы не спросили их мнения, вы используете свои белые привелегии, не спрашивая разрешения у черного комьюнити раста"
>>1745409 Они уже и часть своего комьюнити отпугнули. Несколько активные участников на реддите забанили. Ищут САБОТАЖНИКОВ [1], бан всех несогласных оправдывают парадоксом толерантности [2], мол быть толерантными невозможно, так что легче всех несогласных не слушать и забанить. Так торопились показать свой virtue signaling, что замержили коммиты до того как автор успел исправить все найденные неточности. Я вообще проигрываю с этого цирка.
>>1745410 >>1745415 Серьезно так рассматриваю scala для бекенд вката. Рекомендую подумать над этим предложением сначала прочекав наличие блек и вайт листа в исходниках
>>1745423 Ну он как бы подразумевается что он надежный. И четко определены надежные и ненадежные вещи, комунити блюдёт эти правила. Ну, блюла. Иногда. Короче не важно, важно что он быстрый. Был.
>>1745416 Ну, вообще можно ещё собрать "йоба-коммит" понаходив ниприятные слова в коде, а заодно засунув в какую нибудь доку сокращённкую ссылку на картинку со свастоном или ещё какой нибудь хуйнёй, всё равно никто не проверяет.
>>1745426 Был и остался, но для бэка нахуй не нужон если ты хотя бы не яндекс. Даже полумёртвая скала которая по популярности растёт вниз пока Одерски дрочит дотти десять и то лучший выбор если хочешь писать бек.
>>1745423 Ну вдруг он любит быть альфа-тестером. Можно взять супер-быстрый актикс с утечками памяти и неясной безопасностью. Или другой фреймворк, который правда будет медленней аналогов на языках с GC, ну зато вроде безопасно, если не считать те 1000 unsafe-блоков.
Ну и в расте самые быстрые асунк-функции (если ллвм соизволит соптимизировать, сам раст такой мелочью не занимается - не по барски это), правда есть два несовместимых реактора для них и каждая библиотека привязана к какому-то из них, а использовать оба одновременно не получится. Но это мелочи, зато наверное быстро (если ллвм соптимизирует).
>>1745428 Мозилла тебя уволила бы нахуй за такие слова. Это же не мародёры а лутеры, не обижай их чувства! Эти уебаны труд тысяч людей ровняют с говном, лол, это же даже хуже мародёров.
>>1745428 Мозила показывать virtue signaling начала ещё задолго до появления раста. Гугли как они убрали с поста директора Брендана Айка из-за того что он был недостаточно толерантным.
>>1745432 >Можно взять супер-быстрый актикс с утечками памяти и неясной безопасностью. И упереться в базу, продрочив оптимизацию кода, который работает хорошо если 10% всего времени, тащемта логично.
>Ну и в расте самые быстрые асунк-функции Ага, иначе ведь в современном бэке походы в бд не пишутся, панимаю.
>>1745430 > Был и остался Не думаю... > но для бэка нахуй не нужон если ты хотя бы не яндекс. Нет, если делать нормально, то делаешь нормально. Делать говно вообще не вариант. > Даже полумёртвая скала которая Ну так я и говорю что скалу нужно для бека. > дотти десять Че это? Лучше чем скала? Работать хоть?
>>1745431 Ни, скала. У скалы есть неплохая сетевуха и хорошие либы. Хз что там у котлина и имеет ли его смысл вообще щупат и смотреть. К тому же он от гугла.
>>1745445 >Не думаю... Очень много из-за долбоёбов переименовывающих веточки на гитхабе поменялось, прям перформанс на 300% опустился.
>Че это? Лучше чем скала? Работать хоть? Это скала 3, которую так и не дождались и начали массово валить на котлин, лол. Если бы она вышла 2 года назад — никакого котлина бы не существовало.
>У скалы есть неплохая сетевуха и хорошие либы У скалы есть жвм и нихуя своего, ты о чём вообще? На котлине/кложе/чём угодно, что на жвм работает ситуация с либами одна.
>>1745432 Эти все проблемы решаемые, не пизди хуйню. Главное - ограничения платформы. Си и плюсы имеют ограничения в сложности и поддержки миллионов строк кода, почти все остальные - производительность и кол-во нормальных библиотек. Остается только сисярп и скала. Сисярп - майки, нахуй нинужны. Остается скала.
>>1745439 > И упереться в базу Кэш, уже давно можно в озу всё важное хранить.
>>1745455 > Эти все проблемы решаемые Что ж их за всё это время не решили? Стандартизировать реакторы даже в планах нет - они планируют только асинхронные функции в трейтах к концу 2021 года. Готов ждать пару лет, пока язык достаточно разовьётся? > Главное - ограничения платформы. Когда используют ансейф и херят всю безопасность ради того чтобы оптимизировать кусочек кода, который компилятор сам должен был соптимизировать, но разрабам лень - заняты переименованием плохих слов.
>>1745455 >Кэш, уже давно можно в озу всё важное хранить. Ну ты же понимаешь, что если у тебя настолько простая ситуация, что всё закрывается одним кэшом — то ты прикрутив этот самый кэш ты и на пхп медленно не сможешь написать?
>Остается скала. Ахуеть, чел, ты как вообще такую выборку сделал? У тебя все дома?
>>1745447 Да похуй, пидоры же какие-то в любом случае.
>>1745449 >>1745450 Не, нужно же прям было "я черная женщина какого хуя не спросили моего мнения я за блеклист ряяя". Ей бы еще задали вопрос "а вы точно черная?", а потом значит "вы не верите что черные погроммисты бывают ЗАБАНИТЬ". Но тоже неплохо.
>>1745460 > Что ж их за всё это время не решили? Их решают в компаниях, а не в опенсорс сообществе. > Когда используют ансейф Это - решаемая проблема. Просто берешь и переписываешь в сейф. > заняты переименованием плохих слов. А это - проблема политики этих дебов, теперь совершенно ясно что они развитием языка не заинтересованы.
>>1745461 > и на пхп медленно не сможешь написать? Нет, пхп медленнее натива. > Ахуеть, чел, ты как вообще такую выборку сделал? У тебя все дома? А какой выбор? Ну-ка ебани.
>>1745479 Смотря какой коммунист. Растообщество очень инклюзивно. Если ты готов покаяться за свою белую кожу, втать на колени в честь черных меньшинств, то тогда задонать минимум 100$ в организацию BLM с пруфами и тебя примут с распростёртыми объятиями.
>>1745478 > Просто берешь и переписываешь в сейф. Тогда он из топа бенчмарков переместится вниз. И перестанет раст быть самым быстрым языком. Хоть раст и компилируем, его безопасность с таким-то отношением к оптимизации очень дорого стоит. Там 80% абстракций будут зиро-кост только если ллвм созволит их достаточно соптимизировать, а он зачастую этого не делает. У раста гарантированных оптимизаций очень мало, а зиро-кост он зачастую только в теории или если повезёт.
>>1745490 > это нихуя не коммунизм! Не надо тут пиздеть. Всё построено как завещал товарищ Троцкий. Даре немношк перевыполнили план в отношении меньшинств.
>>1745491 > Тогда он из топа бенчмарков переместится вниз. Не на столько вниз. Он все же сравним с производительностью с си. > а зиро-кост он зачастую только в теории или если повезёт. В проблемных местах это вообще вручную делается. если бюджеты позволяют
>>1745494 > Не на столько вниз. Он все же сравним с производительностью с си. Если ллвм созиволит достаточно соптимизировать. > В проблемных местах это вообще вручную делается. Вот разрабы и делают это вручную ансейфом, игнорируя те самые "бесплатные" абстракции, которые нихуя не бесплатны. А ты предлагаешь эти оптимизации убрать, лол.
Вот интересный пример: https://github.com/BurntSushi/aho-corasick Статистика ансейфов: Functions - 19, Expressions - 678, Methods - 22. Вот как оправдывается автор: > When you combine all of this together along with trying to make everything as fast as possible, what you end up with is enitrely too much code with too much unsafe. Alas, I was not smart enough to figure out how to reduce it. Instead, we will explain it. Самое главное сделан одним из разрабов и модераторов раста (именно он удалял все неугодные треды, лол).
Ещё один пример: https://github.com/tokio-rs/bytes Статистика: Functions - 17, Expressions - 602, Impls - 6, Methods - 18. Библиотека активно используется в коммьюнити (фактически она используется во всех асинхронных приложениях с реактором tokio) и в ней не раз находили UB и даже уязвимости.
Вот тебе и безопасный и быстрый раст. Хочешь быстроты - используй полтыщи ансейф-блоков и надейся, что ты умнее всех и у тебя UB точно не будет.
>>1745501 Хотя мой самый любимый крейт это конечно же https://github.com/BurntSushi/rust-memchr Unsafe Expressions - 1896!!! При том, что это не FFI. Там буквально пердоление с байтами, указателями и прочими небезопасными вещами.
>>1745501 > А ты предлагаешь эти оптимизации убрать, лол. Нет, я предлагаю открывать байты и ебать их. Высокропоизводительные интепрайз ядра на уровне машинных инструкций оптимизируют. > Вот тебе и безопасный и быстрый раст Чел, я вообще бек собрался выбрать. Мне не похуй на раст только из-за производительности.
>>1745503 > Я бы сказал что производительность между си++ и джава. Ну где-то там и стоят либы с си, да. Хорошая жава на уровне хуевастого си.
>>1745511 > Нет, я предлагаю открывать байты и ебать их. Быстро ебать их сможешь только в ансейф-коде. Иначе после каждого сложения компилятор будет любезно проверять не переполнился ли байтик. В теории с хорошим range analysis эти проверки можно полностью убрать, но у раста вообще никакого range analysis нету - ни хорошего, ни плохого, а ллвм зачастую обсирается и в итоге вместо байтоёбства е тебя будет несколько десятков проверок и условных переходов и вся производительность пойдёт по пизде.
>>1745512 Ты не понимаешь. Сейф-ансейф это не ограничения платформы. Это ограничения мясной прокладки и архитектуры. Ограничения платформы, например - шиза с вайтлистами и хуевым прогрессом языка.
>>1745517 А кроме котлина разве ничего нет? Котлин странный.
>>1745518 Котлин может, или сможет в нейтив, есть jvm под боком. D - скорее протух. На го писать больно. На С++ еще больнее. Шарп, там какая-то своя тусовка да и там только вирт машина. А больше я и не знаю, кроме совсем там ФП экзотики.
>>1745521 Я честно сам был фанатом раста. Очень обрадовался когда увидел этот пулл-реквест [1] и прочитал про новый фреймворк для dataflow-анализа (а именно здесь и нужно проводить большинство оптимизаций кода, с которыми не справляется ллвм). А воз и ныне там. Что-то активно там делает только один человек. Полный анализатор включён только для константных функций и генераторов (а значит и асинхронных функций), потому что он оказывается слишком медленный если включить его для всех функций.
>>1745517 Ну, на самом деле раст всё таки довольно быстр. LLVM делает отличную работу в плане оптимизации, плюс растодевелоперы туда часто отправляют патчи, чтобы выхлоп rustc оптимизировался ещё лучше.
>>1745552 А что конкретно в асинке у тебя медленно? В качестве рантайма можешь попробовать smol [1], он реально очень быстр. В теории быстрее может быть только реализация рантайма поверх io_uring в линуксе, но стабильных реализаций для раста пока нет.
>>1745559 Ну тут да, в том же smol'е тоже зависания находили. Я лично поэтому асинхронными клиентами и не пользуюсь - для моих нужд и синхронных хватает.
>>1745565 Зависания - это практически самое хуёвое, что может случиться. Даже паника более предпочтительна чем зависание - панику хоть отладить и исправить можно. А вообще tokio известен своим похуистичным отношением к ансейфу. Там один чел помешанный на безопасности тоже жаловался, что с асинхронщиной всё плохо: https://medium.com/@shnatsel/smoke-testing-rust-http-clients-b8f2ee5db4e6 > Two months in, the async/await ecosystem is as immature as you’d expect. If I needed an HTTP client with async I/O right now, I’d use a different memory-safe language. Что смешно с тех пор практически ничего не изменилось, только разве что синхронные клиенты исправили найденные им ошибки и стали довольно неплохими.
>>1745579 Ну это мне напоминает всяких додиков, которые "я щас запилю GUI на расте, чтоб все охуели" и спустя пару месяцев сливаются, потому что гуй оказывается - это мегасложно.
Так и тут каждый делает свою говнолибу как может, думая что если будет писать на расте, то всё автоматом станет в разы проще.
>>1745507 Ну ты отжег конечно. Это и есть либа для пердоленья с байтами. Это как если бы твоя претензия была, что в крестовой либе для быстрых рассчетов на sse используюся ассемблерные вставки с sse.
>>1745581 > потому что гуй оказывается - это мегасложно. Ну не то чтобы мегасложно. Впринципе даже мне, нуфагу без опыта системки, видно направление. Скорее объемно. Что-то - вроде хочешь анимацию, а анимация это уже 8-40к строк асинхронного кода, без тестов. Простой гуи даже этот https://github.com/vlang чел напердолил вместе с своим языком, лол. Еще бы там либы были нормальные, закрытие всех багов, объемные тесты и можно начинать писать на v. Но там ансайф это повседневная реальность, лол, страшна оче даже прод-микросервис писать. Хотя можно всё в контейнеры захуярить, хмм. > Так и тут каждый делает свою говнолибу как может, думая что если будет писать на расте, то всё автоматом станет в разы проще. Как бы подразумевается что должно хотя бы немного проще. Иначе нахуя языки-то новые создают. Раст, как помню, создавали с благой целью - сделать проще написание сейфа системного. Но в процессе проебались, как всегда.
>>1745700 Ты бы какую-нибудь шапку нормальную для треда написал, вместо того чтоб их постоянно перекатывать. Добавь туда пейперов, статей про раст, QA. Чтоб в треде хотя бы не было хуесосов, которые ноют про то что в раст слишком медленный GC или "у вас unsafe. всё? соснули?"
>>1745701 Ну, вот тут ты зря. Если ты уже написал говнолибу, скажем, на расте vs на плюсах, то к тому моменту, когда будет пора вынуть ей кишки, распутать и вставить обратно - на расте с ходу будет ясно, что делать, а вот на плюсах придётся поебстись.
>>1745707 Проблема в том, что скорее всего нужно будет вынуть кишки расту, распутать и вставить обрато. Или написать полностью свою либу для асинхронки с нуля и заменить модули в расте. Это конечно ебланство то еще, не, таким заниматься точно не стоит. Эти должны заниматься создатели раста.
>>1745717 > свою либу для асинхронки с нуля и заменить модули в расте Там проблема, как я понимаю, в реализации рантайма. Уж какой-нибудь из них допилят, полагаю
>>1745701 > Ну не то чтобы мегасложно. На самом деле очень сложно. Не зря же гуйные либы так неохотно пилят, и электрон настолько популярен. В нативных либах добавляются такие забавные вещи как интернационализация и ацессибилити, которые в разных ОС работают по-разному. Возможно за пару лет и сумеешь сделать свой фреймворк с нескучными кнопочками и лабелами (если будешь делать поверх какого-нибудь вебрендера, где уже решили все проблемы с рендерингом шрифтов и прочим низкоуровневым говном). Но дальше начинается особое веселье. Одна качественная реализация GridView может занять пару тыщ LOC и внутри быть сложнее всех асинхронных рантаймов вместе взятых.
>>1745641 Ну ты бы хоть дискуссию прочитал, а. Тот анон думал, что сможет пердолиться байтами в чистом сэйф расте, пока я не разбил его мечты наглядными примерами.
>>1745767 >Не зря же гуйные либы так неохотно пилят Пиздец у тебя в голове насрано. Гуйных либ просто жопой жуй, что на плюсах, что на сях, раст не будет исключением. Плюс в каждой оси есть встроенные, пусть и кривые.
>и электрон настолько популярен Электрон настолько популярен, потому что гуёв настолько много и под каждую платформу они свои, что даже qt не всегда вывозит. Поэтому легче сделать на вебфронте один раз и потом использовать везде, хоть в вебе, хоть на мобилке, хоть на декстопе.
>Одна качественная реализация GridView может занять пару тыщ LOC Пиздец как страшно. Аж пару тысяч, да? Ой-ой-ой.
> и внутри быть сложнее всех асинхронных рантаймов вместе взятых. Ещё что расскажешь?
Гуй пилить это именно, что уныло, а не "сложно". Кому нибудь будет не лень и кто нибудь это проблему всё равно решит (особенно если будет спрос).
>>1745775 > Пиздец у тебя в голове насрано. Хорошее начало дискуссии. Сразу видно профессеанала. > Гуйных либ просто жопой жуй С 3.5 кнопочками и лабелами? Именно что нормальных либ очень мало. Многие даже для элементарных вещей не годятся в силу отсутствия простейших контролов. А для чего-то более сложного и подавно. Посчитай в скольких из твоих "жопойжуйных" либах реализована ацессибилити? Или нинужно? > Электрон настолько популярен, потому что гуёв настолько много Проффисианал даже в терминологии сумел обосраться. Каких гуев? Чего много? Или речь про системные АПИ? > Гуй пилить это именно, что уныло, а не "сложно". Любой сложный код пилить уныло. И никакие кривляния и попытки выставить себя умнее чем есть в этом не помогут.
>>1745531 >а именно здесь и нужно проводить большинство оптимизаций кода, с которыми не справляется ллвм
Такие как? В Расте многое жестко завязано на порядке выполнения операций, ничего особо умного не сделаешь. Нет лишних аллокаций, поэтому не нужен эйспейп-анализ. От замудреных оптимизаций типа автомагической замены Vec на SmallVec будет больше вреда, чем пользы.
Вот за что я люблю двощ - за ничем не ограниченную и абсолютно безнаказанную токсичность. Человек прям собирается и начинает чётко и аргументированно излагать свои позиции, если рискует оказаться тупоголовым пидарасом в случае недостаточной чёткости и аргументированности. Мне кажется, мировому раст сообществу этого очень не хватает.
>>1745782 Когда этот самый ди уже был известен даже мне (года так с 2006) не было электронов и мобилок, даже слова "приложение" не было. Программа была прежде всего окном с кнопочками, соответственно, написание гуя тогда было куда более необходимым.
Сейчас всё куда менее монолитно и менее завязано на десктопы, поэтому и стимула писать гуй на новых языках куда меньше.
>>1745780 > Такие как? Уже упомянутый мной range analysis. Пока что этим занимается llvm с переменным успехом. Что интересно, наверное около половины репортом о медленности раста идут именно из-за излишних првоерок, потому что llvm не может понять что переменная всегда будет меньше какого-то значения и повторно проверять её не нужно. Особо ебанутый пример, где таких проверок с десяток подряд: https://github.com/rust-lang/rust/issues/73512 > Нет лишних аллокаций Лишних аллокаций в куче нет, зато есть излишнее использование стека: https://github.com/rust-lang/rust/issues/53827 или https://github.com/rust-lang/rust/issues/62446 И есть одна оптимизация под названием NRVO, которая как раз избавляет от лишних аллокаций и выполняется во время dataflow-анализа. В расте как раз недавно добавили её простейший вариант: https://github.com/rust-lang/rust/pull/72205 который, правда, помогает не во всех случаях.
>>1745779 >Хорошее начало дискуссии Не ты писал, эксперд? >Ну это мне напоминает всяких додиков
>С 3.5 кнопочками и лабелами? >Именно что нормальных либ очень мало Когда не можешь пруфануть ссылайся на качество. Ну так они говно просто, да.
>Посчитай в скольких из твоих "жопойжуйных" либах реализована ацессибилити? Жду определения в студию.
>Любой сложный код пилить уныло Есть разница между унылостью и "сложностью". Когда тебе нужно написать 10kLOC и ты точно знаешь как это нужно сделать и как оно должно работать - это уныло. Тут нет никаких копротивляний. Все эти твои киллер-фичи и нескучные кнопки уже есть, уже есть архитектура и примеры реализаций, уже есть алгоритмы для оптимизации, бест практис для i18n, для сглаживания шрифтов. И поэтому это "уныло". Писать гуй в нулевых, и переписывать гуй в 2к20 это не тоже самое.
Но кто нибудь это рано или поздно всё равно сделает, особенно на расте. Потому что есть запрос, множество есть примеров где без него никуда. Но на топе веб всё равно всех вздёрнет, ибо спрос больше. Поэтому скорее стоит ждать какого нибудь убер отрисовщика html+css на расте.
>Проффисианал даже в терминологии сумел обосраться >Каких гуев? Чего много? Ты на ходу забываешь о чем говоришь?
>>1745799 > Жду определения в студию. Серьёзно? Ты споришь о гуе и не знаешь что такое accessibility? Дальше можно не читать. Таких уверенных в себе школопрафесеаналов я ещё не видел.
Хатя с другой стараны, можна видь скозать что и я траллю сабеседников, патамушта им надо выбирать капчу, чтобы напесать свае очинь важное мнение, а я магу высрать сваё, быстра запостить с посскодом и занематся другими дилами дальше. Палучаетси я тожи нимного тралл)))
>>1745792 >Пока что этим занимается llvm с переменным успехом
И что может сделать rustc, чего не может llvm? Тебе пришло 4 байта по сети, больше ты ничего о них ничего не знаешь. Количество информации в точности одинаковое.
>который, правда, помогает не во всех случаях.
Никакой вариант не будет помогать во всех случаях в условиях, когда тебе нужны детерминированное освобождение ресурсов, использование кастомных аллокаторов, паники и паники во во время детерминированного освобождения ресурсов. В какой-то момент всё-равно придётся что-то оптимайзить вручную.
>>1745838 У тебя плохие примеры. Речь про то, когда можно убрать проверку индекса массива, потому что индекс всегда меньше длины массива. Вот тебе пример. Пик 1 - функция, где y всегда меньше длины массива, но тем не менее llvm вставляет вторую излишнюю проверку - пик 2. Пик 3 - та же функция, но слегка переделана, llvm уже понимает что y всегда меньше длины массива и вторую проверку не вставляет - пик 4. На стороне компилятора подобные проверки проводить гораздо проще.
>>1745512 >Иначе после каждого сложения компилятор будет любезно проверять не переполнился ли байтик. То, что ты говоришь - называется GC. Либо ты сильно преувеличиваешь, либо в расте должен быть GC.
>>1745856 Конкретно те проверки называются integer overflow check и в расте они по-умолчанию в релизном режиме не включены, потому что раст не способен их адекватно оптимизировать: https://github.com/rust-lang/rust/issues/47739
>>1745846 Объясни на пальцах - почему это проблема? Что мешает расту в будущем это пофиксить? Есть какие-то фундаментальные проблемы? Или это просто текущее положение дел?
>>1745870 > Объясни на пальцах - почему это проблема? Потому что у компилятора гораздо больши информации и способов оптимизировать подобный код, чем у линкера. > Что мешает расту в будущем это пофиксить? Конкретно этот элементарный пример уже в llvm исправили, но более сложные возможно не исправят никогда (и как я уже сказал около половины жалоб на тормоза истекают из отсутствия этой оптимизации). Сейчас в расте над dataflow-анализом работает один человек и в приоритете у него константные и асинхронные функции (где датафлоу работает на полную мощь). Так что ждать подобных оптимизаций для простых функций мы будем ещё долго.
в пизду нахуй раст, их твиттер щас: In acknowledgement that taking a stand against police brutality is more important than sharing tech knowledge, this account will pause tweeting until further notice.
>>1745877 > А это проблема llvm или rust? Конкретно тот пример - проблема llvm (потому что раст подобного анализа вообще не проводит). ЛЛВМ преобразовывал x > 7 || y > 7 в (x | y) <= 7, но при этом забывал о том что при выполнении этого условия обе переменные будут меньше или равны семи. > Т.е. я попробую сделать что-нибудь на си или плюсах у меня будет иной результат? Проверил в clang/gcc/icc. gcc и icc убирают дополнительную проверку (пик 1), но не преобразуют x > 7 || y > 7 в (x | y) <= 7, и в итоге получаются все те же две проверки. Стабильный сlang как и раст генерирует лишнюю проверку (пик 2), с исправлениями от раста лишней проверки нет (пик 3). Значит у них в компиляторе range analysis тоже нет. Правда мне проверку на то что y меньше длины массива пришлось писать самому.
>>1745896 И да, я в коде немножко обосрался и вместо y > board.max_size() надо писать y >= board.max_size(). Но результирующий код это почти не меняет (кроме лишней проверки во втором примере, где будет cmp rdx, 8 а не cmp rdx, 9.
>>1745875 >Потому что у компилятора гораздо больши информации и способов оптимизировать подобный код, чем у линкера.
Да нет же, не больше. LLVM IR основан на SSA, который буквально разработан ради подобного рода оптимизаций. RustC такие же фишки придётся реализовывать в присутствии мутабельных переменных и замудреных конструкций флоу-контроля вместо тупых условных переходов и Ф-функций. Это сложнее в реализации и абсолютно не факт, что эффективнее.
>>1745921 Есть миниатюрный smol, который на линуксе и маке использует системные функции, а на винде довольно неплохую сишную библиотеку: https://github.com/stjepang/smol
Или асунк-стд, который ныне представляет из себя смол (там был прикол в том, что автор смола считал подход асунк-стд мертворождённым из-за странного взаимодействия синхронного и асинхронного кода, пытался несколько раз неудачно исправить, но потом написал свою библиотеку с нуля и в асунк-стд заменили весь реактор на его вариант) + удобные фичи. https://github.com/async-rs/async-std
>>1745921 И да проблема в том, что либы очень сильно привязаны к конкретным библиотекам. Если крейт поддерживает только токио, то на другой реактор его придётся переводить самому заменяя вызовы элементарных функций (например таймеров, создания новых потоков и т.п.) с одного реактора на другой. В теории стандартизация реактора в стандартной либе (причём можно стандартизировать только трейты, а реализацию не делать) должна решить эту проблему - ты просто подключаешь нужный реактор и всё автоматически работает. Но для этого как минимум нужны асинхронные функции в трейтах и возможно что-то ещё.
>>1745846 Для этого надо вводить специальные типы, возможно зависимые, может и без них можно, концептами какими то. Т.е. тип должен быть не абстрактно uint8, а конкретно от min_y до max_y, а если в него конвертируют из обычного инта, то там программист должен явно чекнуть что инт в диапазоне. Но он не чекнет, так же как не чекает исключения в яве, как не чекает еррно в си, и так далее. А виноват язык, да.
>>1746365 > Для этого надо вводить специальные типы Для этого всего лишь надо читать посты не жопой и понять, что речь о том когда компилятор сам сможет понять, когда можно убрать проверку индекса. Например пик 1. Раст проводит проверки для каждого индекса - 0, 1, 2, 3. Хотя очевидно, что можно провести всего одну проверку - того что длина массива больше или равна 4. И если такую проверку провести принудительно, все остальные убираются - пик 2. Раст должен делать это автоматически.
>>1746405 Здесь может понять, а в другом случае не сможет, а в третьем чтобы не ждать тепловой смерти вселенной все равно придется ему указать тип. Смекаешь?
>>1746472 Раст никаких гарантий о расположении паник не даёт. До того как сделали #[track_caller] большинство паник вообще были из глубин стандартной библиотеки. >>1746473 Во-во. Так и живём. Сумеет ли ллвм соптимизировать, или нет? И зачастую ллвм обсирается, ведь в С/С++ таких повсеместных проверок нет и там такие крутые анализаторы нинужны.
>>1746485 Один хуй в реальном коде это мало чего тебе скажет. Да и сейчас раст может вставлять проверки куда захочет. Пикрил - проверка проводится на шестой строке, а не восьмой или девятой.
Помню хотел вкатиться в язык еще лет 5 назад. Тогда некоторые моменты мне показались странными и вообще общее впечатление предвзятое. Начиная от хипстерского названия, которое указывала на сквотинг или как его там (тягу полуразрушенным домам/заводам и киберпанку). Заканчивая некоторыми моментами, которые уже и не вспомню.
В целом, я тут повеселил анона и потрепал нервы (да простит меня те кто помнят :) ). Но ушел я с мыслю, что технология еще сыроватая, да и я верил, что мозила наведет порядок и все будет хорошо. все таки на их средства, этот праздник жизни.
Но что я увидел когда вернулся в тред. А то что, уже другой анон, более технический подготовленный чем я, тоже оговаривает некоторые моменты и высказывает похожее разочарование. В общем, сталкивается с мыслью что его где-то наебали фрустрация.
Сама идея языка может быть и не плоха, но кадры и организация решает. И мне показалось язык окончательно забуксовал. Все это больше похоже на тестовый полигон, а не на разработку языка. Не удивлюсь, если мелкомягкие посмотрят на это все и запилят какой-нибудь свой хруст-шарп, который окажется успешнее на фоне труда раста.
>>1746821 >>1746812 Ну, хуй знает. Как по мне, так раст, это язык, который разрабатывается в наиболее тесном контакте с сообществом и который успешен именно поэтому. Надеяться, что сейчас некая корпорация возьмёт под своё крылышко и всё правильно сделает, ну это как в 1917 надеяться, что ща доброе комми-государство (сверхкорпорация, по сути) как отберёт у капиталистов средства производства и тоже всё сделает правильно. Если бы m$ могла родить что-то подобное, давно бы уже родила - кому, как не им с их экранами смерти испытывать в нём потребность. Родить не смогла (как комми не могут создать "красную залупу") - а форкнуть и довести до ума сможет? Наивные вы, пиздос.
>>1746835 > в наиболее тесном контакте с сообществом и который успешен именно поэтому. Как я понял под тесным контактом ты понимаешь, когда всем несогласным с мировоззрением "главных разрабов" затыкают рты и запрещают участвовать в обсуждении [1], оправдывая это парадоксом толерантности - что единственный способ остаться толерантным это забанить всех несогласных чтобы среди оставшихся царила понимание и толератность [2]?
>>1746839 Да, это плохо. Это, как раз, уход от контакта с сообществом. В идеале я даже не против корпораций, но чтобы их было несколько - как с linux.
>>1746841 >ансейф я аж под себя сходил, нельзя такие страшные слова вот так без спойлера открыто писать. Сообщество, это прежде всего RFC и пулл-реквесты от кого угодно и их адекватное рассмотрение. Я против sjw/blm-шизы, но не уверен, что ms будет приветствовать участие сторонних разработчиков.
И как минимум в процессе разработки они уже сделали очень неплохой аллокатор, который можно использовать в С/С++ и расте: https://github.com/microsoft/snmalloc
Примечательно, что в многопоточных приложениях он один из лучших аллокаторов наравне c другим аллокатором от той же микрософт: https://github.com/microsoft/mimalloc
>>1746856 Если отрытая разработка позволила сделать что-то более успешное, чем до сих пор это делали корпорации, значит в этом конкретно вопросе не так уж они и успешны. Пример из HW: Маск сделал Теслу, но есть некоторые проблемы. "Ох, ну хоть бы GM купила теслу, ужо они-то имеют опыт и сделают всё как надо". Могли бы - сделали бы с 0.
>>1746866 Как показывает история линукса, не всегда сообщество может хоть что-то сделать без корпораций. Вот один занимательный примет: LTO - link time optimisation. Очень крутая оптимизация, при которой инлайнятся функции написанные даже на разных языках и удаляются лишние во время компоновки. Т.е. оптимизация которая как уменьшает размер программы, так зачастую и ускоряет её. И есть один дистрибутив, поддерживаемый сообществом, - генту, где такая оптимизация была бы очень кстати. И что мы видим? Эту оптимизацию искаробки там не сделали до сих пор. Оказывается это очень сложно. Многие пакеты ломаются при этой оптимизации, либо потому что сам линкер срёт под себя и генерирует неправильный код, либо потому что в коде есть UB (а для С/С++ юб - норма, сам линус так сказал), и при LTO из-за него начинают нарушаться инварианты.
Но вот пришла корпорация делающая дистрибудив SUSE Linux и что случилось? А они сделали кучу патчей для ГЦЦ, которые исправляют мискомпиляции с ЛТО и смогли скомпилировать с ним большинство приложений (ядро до сих пор не компилируется, лол, линус слишком сильно любит UB). И теперь ред хат тоже добавляет поддержку ЛТО - https://fedoraproject.org/wiki/LTOByDefault Не удивлюсь если и ядро начнёт нормально компилироваться с ЛТО, поскольку у них там работает дохуя людей.
Вот так корпорации смогли сделать то, что не смогло сообщество. И на самом деле таких примеров куча.
>>1746889 Пришла и сделала != возглавила. Сюзя сделала что-то одно, что вот ей было не лень, РХ сделал другое, все вместе что-то сделали. Пусть m$ подправит кишки в async, я не против. Я против форка, который будет "лучше" и на который "вся надежда".
>>1746901 Только вот захотят ли корморации сотрудничать с сообществом, возглавляемыми неадекватами у которых политика превыше всего. Некоторые там хотят уже чуть ли не линчевать некоторых активных членов сообщества, потому что они работают в компаниях, сотрудничающих с миграционным агентством (которые депортируют несчастных нелегалов в трусиках, что против повесточки).
>>1746875 Идея сделать "нормальный" С++ язык низкого уровня у всех давно греет душу. Но не каждый хочет вливать зеленные. Я думаю, для гугла это небольшой тестовый полигон. Щупают, надкусывают, трутся об него, примеряют.
>>1746909 Думаю тут им срать на убеждение, просто все сообщество выглядит не профессионально. И показывает себя скорее как тусовка чем группа инженеров. Поэтому я и сказал что серьезные игроки не будут сотрудничать. Та же судьба D, только с финансовой поддержкой.
>>1746405 > И если такую проверку провести принудительно, все остальные убираются - пик 2. Раст должен делать это автоматически.
Это неэквивалентное преобразование, которое меняет дебажный вывод программы (строку с началом паники). Ни один язык, включая Хашкелль, такого делать никогда не будет . Додумывать за программиста - это не работа компилятора.
Ну или напиши RFC, которое четко прописывает, в каких условиях компилятор может менять паники местами или выкидывать их или еще чего. Докажи, что это ничего не сломает и даст профит в реальных примерах.
Причем учти, что в этом месте компилятор не "проверяет границу массива", а сравнивает одно целое число с другим целым число, ибо без необходимости добавлять магические типы, которые нельзя описать через стандартный синтаксис тебе точно никто не даст.
>>1746971 > Это неэквивалентное преобразование, которое меняет дебажный вывод программы (строку с началом паники). Раст не гарантирует что локация паники будет в конкретном месте и уже может запихнуть её в ебеня в рамках оптимизаций: >>1746492
>>1746951 Забавно, что термин у них уже в одно слово, то есть, уже не важно из каких слов он состоит. Это если бы негров называли ушками, и пришел чел, который бы переименовал подушку на подголовку.
>>1746980 И что? Паника тебе скажет, что ошибка случилась на строке 8. Где это находится в ASM на поведение не влияет. В первом примере всё может сломаться на 2, 3, 4 и 5 строчке. Максимум, что тут можно сделать - это заменить ифы на свитч-кейс, но это как-то дохрена работы для супер частного случая, который можно исправить руками в один ассерт. Замени паники на аборт, может станет по твоему.
То, что у нас тут убийца плюсов, не означает, что программисту можно уже не изучать, как работают компы и компиляторы.
>>1747083 > Interesting idea, but seems a bit difficult to generalize this even a little bit (if you want to avoid regressions). While each of the branches is unlikely individually, they might be statistically independent for all LLVM knows Лол, как я и говорил. На стороне компилятора элементарно можно сделать одну проверку на happy path (то что не будет ни одной паники) и сразу возвратить результат по пути векторизовав его (а во всех примерах выше ллвм не векторизовывал код если не мог убрать паники, лол), а в случае возможной паники уже кучей ветвлений выбрать нужное сообщение. Но слишком сложна для ллвм, а для раста слишком зашкварно - не барское это дело код оптимизировать.
Что не так с командой Rust? Почему они все поголовно зумерки-блмщики? Может кто-то мне объяснить?
Яркие примеры: Nell Shamrell-Harrington - комьюнити менеджер, лесбуха (1 пик) Steve Klabnik - один из главных, блмщик, defund the police и вся херня в твиттере Saoirse Shipwreckt (@withoutboats) - (2, 3 пик)
У почти всех подписи she/her, they/them, he/him в твиттере. Половина или больше половины команды - женщины. Я с уважением отношусь к женщинам в ИТ, но чтобы набрать половину команды женщин (при условии, что в индустрии их <10%) - нужно искать их специально.
Почему просто не набрать нормальных, взрослых, опытных людей? Зачем весь этот цирк с конями?
И к чему все эти политические лозунги в твиттере о языке программирования. Я не против, но это дико меня бесит когда политическую повестку суют куда не попадя:
>>1747198 > Половина или больше половины команды - женщины. ЧСХ большая часть мейнтейнеров и вообще тех кто создаёт и ревьювит пулл-реквесты - мужики. Что там эта половина женщин делает - непонятно.
>>1746812 >Не удивлюсь, если мелкомягкие посмотрят на это все и запилят какой-нибудь свой хруст-шарп, который окажется успешнее на фоне труда раста. Уже делают. Называется Project Verona, но возможно это только кодовое название. Юзает идеи раста в том числе.
>>1747198 > Steve Klabnik - один из главных Был. Причём главным он был по документации и пиару, а в разработке самого языка не участвовал. Ушёл вроде по собственному, со СКАНДАЛом, мол, тех кто пишет документацию недостаточно уважают и зарплаты слишком маленькие.
>>1747198 Ушлы, но ленивые люди, присосались с спонсорству, собрали вокруг себя такую же команду, чтобы усилить свое влияние и по хорошему доят корову.
Это очень старая тема, тысячи стартапов лопались как пузыри, а кабанчики даже не успевали понять что происходит. Тут просто очень крупный проект и паразитировать можно бесконечно долго. А не нравится, твою компанию сольют вмиг, ибо зло укрепилось в корню, попробуй, тронь их сейчас.
>>1747214 > а почему там белые одни? Потому что это тебе не жс-фреймворки писать. Там для того чтобы писать код для компилятора на уровне сложнее чем исправление опечаток нужно кучу теории знать. Алсо, азиатов там доже дохуя коммитят и немного индусов.
>>1747214 > присосались с спонсорству Ну мозилла сама уже давно занимается различными диверсити, странно было от неё другого ожидать.
https://news.ycombinator.com/item?id=22057737 > Mozilla lays off 70 > I'm one of the 70 > I was working on Cranelift, the WebAssembly compiler that is also a plausible future backend for Rust debug mode. Before that, I worked on the SpiderMonkey JITs for 9 years.
>>1747227 > I'm one of the 70. I was working on Cranelift, the WebAssembly compiler that is also a plausible future backend for Rust debug mode. Before that, I worked on the SpiderMonkey JITs for 9 years. Лучше б его в раст кор тим перевели. Там и так людей настолько мало, что они фичи годами пилят (в свободное от раздумий о будущем мира время). > All the leads in QA got let go. Что-то все корпорации резко разлюбили тестировщиков. Видимо телеметрии им хватает. Некоторые компиляторы ЯП тоже телеметрию собирают (почти все компиляторы от микрософт, лол).
Ну зато там топ-менеджеры себе каждый год зарплаты поднимают. Хороши жить не запретишь. А мозилла фоундэйшн (которая является материнской компанией мозилла корпорейшн и занимается в основном интернет-активизмом) вообще стали королями повесточки в интернете.
>>1747214 > а почему там белые одни? Один, эммм, швед любитель функциональщины и хаскеля у них таки был. Наверное был самым активным контрибьютором что я видел. Комментировал чуть ди не каждый issue и pull request. Ратовал за "чистоту" языка и срался со всеми несогласными, зачастую чуть ли не унижая их своими познаниями в теории. Не так давно ушёл вместе с ещё несколькими активными контрибьюторами.
>>1747311 Судя по активности он умер, даже в твиторе не срёт. Видимо не пережил проёба Сандерса на выборах в дем.партию. Команда Rust такая команда Rust.
>>1747311 >не сидит Внатуре и из дискорда похоже удалился Пиздец как время летит уже сколько месяцев прошло я успел загнаться проебать галеру совсем выкатиться и никуда не вкатиться а раст так и не осилил
>>1747306 Да заебался с мудаками в комьюнити жить, какая ещё причина нужна-то? Или вообще возможно? Вот лез чувак из кожи вон, наращивал геморрой и простатит чтобы развить технологию, а в руководят всем пидорасы, банящие за неправильное мнение — я бы тоже ушёл.
Алсо, мозилла активно топит нахуйоптимизирует всю свою технологичную часть https://news.ycombinator.com/item?id=22057737 что, возможно, ещё один повод почему бы самому не съебаться с тонущего корабля.
>>1747198 > Saoirse Shipwreckt (@withoutboats) - (2, 3 пик) Посмотрел его твиттер и с первого же поста проиграл. Ещё один убегает с тонущего растокорабля?
>>1747319 Та как раз он то там и не особо нужен. Может его поэтому и решили турнуть. Где кооперируются аноны недовольные той хуйнёй что происходит в комьюнити? Может кто прошаренный знает
>>1747326 Ну хоть он тот ещё фрик, для раста сделал более чем дохуя. В частности именно он сделал фьючерсы безопасными придумав абстракцию в виде Pin'ов и в целом активно их запиливал, вместе с ещё большим фриком (причём со справкой) Аароном Тюроном (один пост в его блоге скажет больше, чем смогу я: http://aturon.github.io/personal/2019/06/24/survivor-skills/ ).
>>1747335 >Буква >Аббревиатура-неназвание >Пропихнутая толерастнёй фамилия рандомной пизды из 19 века >Фамилия хуя спиздевшего концепт у великого русского математика из одессы >Аббревиатура еще тупее >Губа-имеющая_какой-то_смысл_аббревиатура >Питон >Другая буква >Название рандомного острова >Быстрота >Объективная буква >Симпотичная домашняя страница >Буква++ >Буква-решотка >Сокращенное имя бабы создателя
>>1747389 Вот тут я могу наврать, но насколько помню там есть несколько вариантов, от обычных поинтеров С, до пула который будешь сам ручками дергать (и вроде автоматического подсчета ссылок, но вроде ложить в него ручками).
>>1747401 Разве что новый стандарт плюсов с модулями и асинхронщиной аля C++23.
Rust появился в 2006 году. Go появился в 2007. Первые 1.0+ релизы 2015 и 2012 соответственно. Это "новые" языки. Большинство языков, что мы юзаем сейчас уходят корнями в 90е, глубокое начало нулевых. Самые новые, аля Swift и Kotlin это начало десятых-конец нулевых.
Это не разработки, которые можно сделать за день. Если кто-нибудь возьмётся за это серьёзно сегодня, то результат мы увидим лет, эдак так, через 5-10.
Си и плюсы уже существуют ~40 лет. Что помешает им просуществовать ещё 10? 15? А если завезут новые стандарты с поддержкой сети, с пакетными менеджерами, быстрой сборкой и прочей чепухой? И конечно любой камень в огород этих "новых" языков это повод ещё раз подумать, а стоит ли на эту фигню тратить своё время и силы?
>>1747436 >Rust появился в 2006 году. Go появился в 2007. Нет, чел, не появились. Они появились когда вышли первые релизы. До этого это были другие языки. Разве что годик за глаза до релиза вписать можно из-за полноценной работы над языком.
Я вот писал где-то 2 года назад язычок и компилятор к нему на диплом, возможно допилю за пару-тройку месяцев до 1.0 ещё через 2 года. Ему будет 4 года если я над ним целенаправленно работал меньше года? Не, нихуя. Не надо считать года когда эти языки лежали у кого-то в виде лабы1 или в виде идей в голове.
>>1747443 >Не надо считать года когда эти языки лежали у кого-то в виде лабы1 или в виде идей в голове. С чего бы это вдруг не надо? Вопрос не в том когда ты эти языки выпустишь, а сколько ты будешь над ними работать. Мы говорим о том насколько вероятно что сейчас или ближайщем будущем появится ещё что-то аля плюсы или раст. И вероятность этого - крайне мала.
Если ты 4 года будешь ебаться с языком и выпустишь его через 4 года, то оно выйдет через 4 года. Мне похуй сколько оно будет у тебя где лежать, когда у него выйдет первая версия или за сколько ты это напишешь.
Ну и обычные сроки производства языков в индустрии я тебе назвал.
>>1747447 Котлин может быть и нет, а кресты очень даже да. Даже если ты в раст собрался, кресты тебе там понадобятся. Ведь ты будешь ебать и оборачивать крестовые библиотеки, написанные для тебя крестовыми программистами. Потому что нормальных библиотек без дырок за 5 лет в раст не завезли толком. Ну и си, само собой разумеется. Ведь тебе и си библиотеки тоже придётся оборачивать, лол.
>>1747326 Эта активность на самом деле не показатель. Центрил делал дохуя rollup merges - это когда несколько пулл-реквестов объединяются в один после чего разом мерджатся в основную ветку, как например здесь: https://github.com/rust-lang/rust/pull/74208
Подобная хуйня у них до сих пор полу-автоматизирована и требует ручной работы. Отсюда и ебанутая активность, поскольку таких пулл-реквестов может быть десяток за день.
>>1747436 Область неуправляемых языков сужается. Совсем они никуда не денутся, но и видеть мы будем их все реже.
Лично мое мнение, отсутствия успеха у раста в том, что он не дает особых преимуществ перед си++, либо раст безопасен, но проседает по производительности. Либо он не безопасен и быстр, но тогда смысла и нет. При всем при этом, раст вводит сложную парадигму для разработчика. Можно конечно гордится что ты осилил и молодец, но речь не об этом. Новый язык должен разгружать разработчика, а не делать из него часть компилятора.
Мы видим, что у людей есть потребность в быстрых языках, они хотят быстрый веб и какой-то го им вроде как дает на самом деле не очень, но они верят что он быстрее джавы. Но есть и другой фронт, где люди хотят контролировать узкие небезопасные места и делать быстрый софт. И что мы имеем? Потребность в расте то и нет.
>>1747462 Не так подал мысль. У нас есть два стула неуправляемые языки и управляемые. Сделать какой-то третий стул по середине не получится. Как только будешь делать третий стул, безопасный, он просядет до уровня джавы. И толку на таком писать?
>>1747469 На самом деле помимо безопасности у с/с++ есть куча других проблем. Взять хотя бы очень хуёвую систему типов с кучей неявных преобразований и заканчивая кучей UB на ровном месте, исправление которых на производительность не повлияет.
>>1747472 Потому что сидеть на стуле неуправляемых языков никто не хочет. Те люди который хромиум пишут, не думаю что им надо конкретно работать с памятью все время. Я уверен что там только малая часть требует прямого байтоебство, а все остальное галимая логика уровня диалекта жабы или питона (если туда типы завести)
Программы становится сложнее, то что писали во времена Си, можно назвать больше скриптами чем приложениями и натягивая эту сову на глобус 2020, мы видим 70% боли (не совы, а разработчиков).
Причем мало кто думал решить проблему с память на стороне железа или операционной системы.
>>1747481 Ты по сути нихуя не ответил. Почему невозможен третий стул и почему он должен скатываться в джаву? На примере раста мы видим, что это не так - он работает на уровне C/C++ и при этом даёт надёжность памяти.
Хромиум, кста, уже вводит раст в систему - такой себе аргумент.
>>1747481 > проблему с память на стороне железа Проблема памяти со стороны железа - это ей медлительность во всех смыслах (особенно в плане задержек). И "решают" её в основном за счёт кэша. И каждый байтоёб знает что основная оптимизация софта в плане памяти - это сделать так, чтоб как можно большее количество одновременно используемого кода и данных поместилось в кэш до того как произойдёт переключение контекста и/или другие потоки сметут всё это нахуй. Например хэш-карта под названием SwissTable (хоть и придумана в гугле, раст единственный язык, где вариант используется в стандартной либе) и она мегабычтрая. И быстрая только потому что заточена под активное кэширование процессором своих данных.
>>1747487 Ты писал? >Как только будешь делать третий стул, безопасный, он просядет до уровня джавы Но за базар отвечать не хочешь.
>>1747487 >Потому что и первый стул ненужен Прямо сейчас огромное количество нового софта пишется на плюсах именно ради первого стула. Игры, 3Д редакторы, браузеры, операционки, производительные неблокирующие сервера, базы данных - это всё первый стул. Доля плюсов уже несколько лет к ряду нихера не падает. К чему вдруг она должна снизится через 5 лет, к примеру?
>>1747485 Ну например мы пишем браузер или базу данных или игру. В согласитесь со мной, что во всех этих программах, есть только узкая часть где требуется перепихнуться с байтами. Далее абстракция которая уже дергает перепих.
То есть, потребности писать весь софт на плюсах (как когда-то в ассемблере) уже нет. Нужны только вставки.
Но раст пошел по другому пути. Он говорит либо так либо никак. А это вообще никак уже не нужно. в этом мой месседж
>>1747473 И вообще очень нелогичный язык с кучей исключений из правил. Неединообразный. Не знаю как раст в этом плане, но в крестах все время на такое натыкаюсь.
>>1747489 >Прямо сейчас огромное количество нового софта пишется на плюсах именно ради первого стула По большей части из-за GC, уже писали и на юните и на джаве, хватает, просто проблема в гц.
>>1747491 Не. У тебя сразу будут протекать абстракции. Ну вот ты написал какую то аллокацию памяти. А пользователь скриптами дергает все подряд, выбивая все из кеша. Да и в расте можно на макросах же dsl делать, не?
>>1747497 > Да и в расте можно на макросах же dsl делать, не? Можно. Можно даже на С++ внутри макросов писать и код будет автоматически компилироваться. https://github.com/mystor/rust-cpp
Основное ограничение - код внутри макросов должен быть валидным растокодом с точки зрения парсера, чтобы тот мог построить ast-дерево для передачи его функции макроса (и почти весь с++ этому условию удовлетворяет, лол).
>>1747491 >В согласитесь со мной, что во всех этих программах, есть только узкая часть где требуется перепихнуться с байтами. Далее абстракция которая уже дергает перепих. Это наивняк. Посмотри на какой-нибудь анрил, к примеру. Нельзя один раз попихать биты и пойти чилить, ты потом эти биты будешь всю жизнь пихать. Это не так работает. Посмотри на тот же хромиум, они же свой рендер сколько уже ебут. И он на плюсах в основном.
>>1747494 >По большей части из-за GC Рофлишь? В расте нет GC.
>>1747497 Узкие места типа с графикой, обсчетом физики и прочее, делается на вставке, из С++. А бизнес-логика пишется на компилируемом языке с каким-нибудь циклическим сбором ссылок (чтобы тупо не дергало, а периодично накладывала ровно оверхед)
Да, мы может потеряем 10-20% производительности, но разве не похер, во времена когда делают двустопные приложения на джаваскрипте.
>>1747502 >Рофлишь? В расте нет GC. Ты другим местом читаешь, я к тому почему не пишут сейчас игры на джаве, из-за ГЦ. А не из-за его оверхеда производительности.
>>1747507 > А не из-за его оверхеда производительности. Вообще у жавы оверхед есть. Как минимум из-за отсутствия value types, генериков со стиранием типов (обе эти проблемы сейчас исправляются [1]) и тем что там все функции виртуальные. В C# этих проблем нет и он зачастую быстрее жавки (плюс в C# особенно с 8-ой версии есть куча байтоёбских конструкций для низкоуровневых оптимизаций).
>>1747509 Что-то мы всю нить переколбасили >Прямо сейчас огромное количество нового софта пишется на плюсах именно ради первого стула
Почему пишется на С++, потому что каждый бизнес знает что это быстрый язык, потому что есть специалисты. И почему не пишут на других? Потому что там есть ГЦ.
Игры пишутся по принципу хуяк-хуяк и забыли, больше по инерции. Потому что С++ макака пишуших игры будет больше чем Java макак.
Браузеры - потому что конкуренция, 20% уступки конкурентам - много. По той же причине не возьму они никогда ни раст, ни Д, ни дубль W
>Игры пишутся по принципу хуяк-хуяк и забыли, больше по инерции. Это просто дикий наивняк. Чтоб выдавать тебе тонны мыла, нужно чтоб куча PhD сначала придумали алгоритмы, а потом их куча программистов их реализовали в движках. И это не фига не две строчки кода. Это огромная работа.
>>1747522 >Это конечно пыль по сравнению с долей плюсов, но тем не менее караван идёт, собаки лают. Ой, да постоянно дают кому-то с чем-то поиграться. Это вопрос текучки кадров, людям дают освежиться в новых технологиях. Никто там на серьезных шах, не будет тащить язык с мутным управлением и не замороженной кодовой базой.
>>1747524 >Он доказал, что это возможно. Нет, он говорит что он безопасный в первую очередь. Помнишь как кушали actix с его UB. Парень просто хотел попасть в топ и пересел на первый стул.
>>1747546 >НУ КОНЕЧНО, ЧТОБ УВЕЛИЧИТЬ СКОРОСТЬ. ВЕДЬ ИЗВЕСТНО, ЧТО ЕСЛИ ПОСТАВИТЬ UNSAFE {}; КОД РАБОТАЕТ В ТРИ, А ТО И В ЧЕТЫРЕ РАЗА БЫСТРЕЕ. Проверил уже все выходы за массивы?
>>1747549 В целом ансейф позволяет пердолиться с указателями (точнее пердолиться ты с ними можешь и в безопасном коде, а вот разыменовать только в ансейве), плюс вызывать ffi-функции. Ну и в стандартной библиотеке есть ансейф-функции которые отличаются от безопасных аналогов тем, что не проверяют все инварианты и это должен делать сам программист.
Ну может ему где-то и зудел раст в коде, но поинт все равно на производительность был. Иначе бы он тупо пошел бы и сделал на сях. А может быть код на расте вообще не достижим до каких-то операций. Срочно нужно исследование.
>>1747561 Она из претензий к нему была за не "идиоматический" код. Я не рылся в коде actix, но именно такие можно найти отзывы. Т.е. можно предположить, что человек сидя на расте писал как на сях. Растовский подход сложный.
>>1747555 Вот пулл реквест, который удаляет печально знаменитый ансейф и заменяет его на полностью безопасный стандартный аналог: https://github.com/actix/actix-net/pull/113 > AndThen with UnsafeCell #2 time: [54.157 ns 54.850 ns 55.605 ns] > AndThen with RefCell #2 time: [54.976 ns 55.624 ns 56.353 ns] Разница в том, что ансейф-версия выполняет при каждом использовании один счётчик, а безопасный аналог - два. Как видим перформанс упал почти в два раза с 54.157нс до 54.976нс.
На самом деле медлительность безопасного раста сильно перувеличена. Просто байтоёбы гонятся за десятыми долями наносекунд и рыдают в подушку когда инкрементируется лишний байтик.
>>1747565 -> >>1747567 Там автор актикса со скандалом ушёл и теперь его пилят другие разрабы. Пулл-реквесту уже 4 месяца, просто там автор пулл-реквеста немного занят был.
>>1747571 Проблема в том что ты никогда нихуя не писавшее малолетнее мудило пытающиеся сопаставить чужие мнения в интернете не имея представления даже о сути вопроса
>>1747573 Я писал, мне говорили будет поначалу больно сложно, а потом пойдет хорошо. На что я начал сопротивляться и мне сказали что я не осилил. А тут я впервые услышал фразу, как сам растаман признается в том, что язык накладывает некий оверхед на программиста. Понятное дело я зацепился.
>>1747577 Ты тупой. Любой язык накладывает на программиста оверхед хотя бы своим синтаксисом. Если ты хочешь на любом языке писать, как на своем первом утином, то тебе любой язык будет плевать в морду.
>>1747575 Там прикол был в том, что сначала был Rc<RefCell<T>>. Но коляну (а написал актикс наш парень, аж на хабре хвастался) эта конструкция не нравилась - для доступа к T нужен инкремент и ветвление (у RefCell), которые гарантируют соблюдение правил борроу чекера в рантайме. Слишком скучно и медленно. И в итоге колян подумав задним мозгов ни с того ни с сего заменил эту конструкцию на своё лично созданное детище - КоляноCell [1], где вместо RefCell использовался UnsafeCell у которого этой проверки нет. При аккуратном использовании и ручном соблюдении правил как бы проблем не будет, но колян (как это всегда бывает) обосрался.
Вот так ради экономии одного инкремента и ветвления, николаеч ким сделал свою библиотеку печально знаменитой.
>>1747577 > поначалу больно сложно, а потом пойдет хорошо Когда начинаешь понимать почему так делать не надо и почему что-то может пойти не так, то тут и начинается хорошо. И начинаешь компилятору вместо "как же ты заебал" говорить "ой блядь, действительно проебался".
>>1747605 Как минимум наличие ревьюверов, которые зададут несколько хороших вопросов: "А оно точно быстрее?", "А у нас точно все инварианты выполняются?" и "А точно стоит ли оборачивать вызов небезопасной функции в безопасную словно её можно использовать как раньше без соблюдения определённых правил?"
>>1747594 Что конкретно ты имеешь ввиду? Я слышу этот баззворд часто, но что имеют в виду не пойму. Просто когда я учил си, мне объясняли что си это бритва и у нее есть правила использования.
Сам язык тебе не даёт никаких гарантий, что твой код, написанный синтаксически и логически верно будет работать правильно. Тебе нужно это пердолить вручную. Проблема в том, что UB могут возникать в самых удивительных, порой, местах.
Тебе нужно понимать и помнить основные запрещённые подходы, их комбинации и обходить их. Но в итоге это проскакивает почти везде, в любом софте.
И те дурики, что пишут мол компилер растовский их слишком щемит просто не понимают, что сишный компилер бы их тоже щемил во всех этих местах (если бы умел).
>>1747608 > наличие ревьюверов Их уволили. > зададут несколько хороших вопросов Всем поебать.
> А оно точно быстрее? Да > А у нас точно все инварианты выполняются? Да > А точно стоит ли оборачивать вызов небезопасной функции в безопасную словно её можно использовать как раньше без соблюдения определённых правил? Да
>>1747622 Если говорить конкретно про дотнет, то иногда просматриваю их гитхаб и дядьки там очень профессиональные. Подобное колянство там не пройдёт. https://github.com/dotnet/runtime
А вообще тесты все равно писать, как юнит, так и регресс. Но в тоже время сам си меня никак не сковывает и не навязывает. Мне нравится ощущение когда тискаешь каждый байт, когда указателями щекочешь данные. Это круто.
Был бы может синтаксис чуть по современнее и с типами получше, может быть я и перекатился. А то мне просто какой-то пласт проблем решили, но головняка положили, а тесты..., что тесты, их все равно писать.
>>1747645 >>1747644 >кококо, наш хруст помогает от UB, правда вставляет в жопу палку >но я пишу тесты на сях и ловлю часть этих проблем, о каком UB вы говорите >кококо, не знает что такое UB иди гугли, на тебе боевую картинку.
Понятно, поговорили. Вы ничем от основного комьюнити и не отличаетесь, как только неудобная тема начинается.
>>1747609 >Да, дебажил, но чем реально там под UB пугают? >>1747630 >Слишком абстрактно. >>1747643 >Да что за ub, звучит как маркетинговый буллшит >>1747647 >да и я знаю что это такое, просто я чувствую маркетинговый запашок
>>1747648 У меня в ардуинке была проблема, от нагрева при считывание из буфера, начинались крашиться данные. Лучилось это все паузой в несколько миллисекунд. Мне интересно, как бы тут раст меня спас? Ведь это UB.
>>1747648 >о каком UB вы говорите >Ты undefined behavior в гугле вбить не можешь? >Понятно, поговорили. Вы ничем от основного комьюнити и не отличаетесь, как только неудобная тема начинается.
>>1747656 Конечно, слились. Ведь ты самый умный, самый компетентный. У тебя никогда никаких UB не будет (тем более, что это маркетинговый булшит тащемта). Это мы тут дураки собрались, хуйней страдаем.
>>1747654 >Мне интересно, как бы тут раст меня спас? Что за тупой вопрос? Раст это софтвара. Если ты по процессору ебанёшь кувалдой - никакой раст, ни плюсы, ни даже, прости господи, джаваскрипт тебя не спасёт.
>>1747661 >Конечно, слились. Ведь ты самый умный, самый компетентный. У тебя никогда никаких UB не будет (тем более, что это маркетинговый булшит тащемта). Это мы тут дураки собрались, хуйней страдаем. Но так это и выглядит, лол. Как только я попросил прояснить что конкретно под этим подразумеваете или пример, то начался зумерский ор с картинками и маневрами. Я даже UB железки из ардуины привел. Я хз как мне там раст помог бы, чистая магия.
>>1747661 >Что за тупой вопрос? Раст это софтвара. Если ты по процессору ебанёшь кувалдой - никакой раст, ни плюсы, ни даже, прости господи, джаваскрипт тебя не спасёт.
Значит, все таки, тесты эффективны, да? И этот клоунский ор был просто показателем некомпетентности?
>>1747666 Ну, если предусмотрено что программа должно работать при разбитии чипа кувалдой, то тест при котором чип разбивается кувалдой будет необходим. Только причём тут раст, с++ и юб? Или мне нужно ещё принести ссылку из гугла на определение слова "аналогия"? А то я вижу с аналогиями тут всё очень плохо.
>>1747669 >Только причём тут раст, с++ и юб? И правда, причем он тут, когда это и есть самый настоящий UB.
Опять вчерашние питонисты начитались про раст и его победы над UB и теперь боевые картинки кидают. Хотя бы сегодня узнали про регресс тесты. И то хорошо.
>>1747672 > есть самый настоящий UB Ну хоть понятно почему ты просил дать тебе ссылку на определение юб. Ведь ты сам абсолютно не понимаешь. Юб - это часть языка, конструкция или вызов функции с несоблюдаемым инвариантом при котором компилятор может натворить хуйни (а может и не натворить). К багам процессоров это не имеет никакого отношения. Охуеть тут мамины профессора ардуины и неопределённого поведения сидят.
>>1747673 Кому-то надо погуглить самому. ЮБ начинается за чтением границы массива или с неточностей стандарта, или кривого компилятора и заканчивается железным фактором.
Даже переполнение ебучего маленького инта в 16 бит, это UB, который вместо двух лярдов, неожиданно превращается в 32кбайт.
Я ожидал услышать пасту, про то как больно писать под разные компиляторы или платформы, месячные дебаги плавающих ошибок. Но нет, питонисты же такого никогда не писали, они лишь знают что есть страшный UB, но раст их спасет.
Да конечно хер. Помима штопора в заднице, придется так же писать регресс тесты, ведь у растаманов UB - являются только косяки Си.
>>1747677 > заканчивается железным фактором Только вот баги железа, если они не описаны в errata в юб никак входить не могут. > писать регресс тесты От рандомных багов, тебя никакие тесты не защитят.
А вообще ты просто какой-то агрессивный шиз с ебанутым примерой с ардуиной. Серьёзно считаешь перегрев чипа - UB языка программирования и безопасный яп должен иметь какой-то встроенный термодатчик, который с инфополя будет считывать температуру чипа?
>>1747679 Я тебе говорю, перечитай термин. У тебя восприятия UB как восприятие софтварной баги си. Тут прям чувствуется влив раста евангелистов. Вы прям как выдрессированные собачки, даже одновременно триггеритесь, хотя я просто спросил конкретный пример (ну например чтение за массивом может прочитать, а может упасть, так тут прям и пишут, это неопределенное поведение)
Регресс тесты как раз и создаются чтобы проверить статус-кво. Плавающая (рандомная) бага, может быть и логической, даже в расте. То есть, тесты писать все равно придется.
Вопрос только, насколько надо будет меньше писать тестов и соизмеримо ли это с анальным валуном в виде компилятора раста (этого б.чекера) или статический анализатор кода, был бы менее болезненный тут?!
>>1747682 Зачем мне читать шиза у которого перегрев чипа приравнивается к UB языка?
Напомню, что писать на чистом железе без unsafe принципиально в расте невозможно и все баги процессора ты должен отлавливать именно во всех этих unsafe-абстракциях для железа, а сейф код уже будет считать что всё нормально и никаких проблем не будет. Есть только один случай, когда ты сможешь написать сейф-код с нуля - если ты используешь библиотеку. И тогда вина за то, что конкретный баг ломает программу лежит на плечах именно этой библиотеки, потому что она не гарантирует все правила растовской безопасности в своих безопасных абстракциях над железом.
>>1747683 >UB языка? Я смотрю уже что-то успел прочитать про ub, маневрирующий раста-питонщик. Ты же в курсе что все ub в си детерминируются в стандарте? Что это не такая уж йоба магия, как тебе хотелось бы?
>>1747693 Вот те самые issue: https://gist.github.com/bb010g/705c8ffe4b9db9550a7782d25e5a53be Сначала он кричал урёёти, нет там UB. Принесите пруфы и код и тогда поверю. Но суть в том, что расторазрабы к тому времени успели разработать интерпретатор раста [1], который может проверять ансейф код и находить там часть возможных UB. Ему принесли пруфы кода, он всё таки сделал исправление, но исправил не до конца.
Вся суета началась после того как он "исправил" баг, но при помощи мири нашли ещё один такой же, который без поломки обратной совместимости уже не исправить. Кто-то написал патч, чтобы вернуть Rc<RefCell<T>> вместо его КоляноCell'а, на что колян обиделся и высрал эпический ревью: > this patch is boring
Всё бы ничего но ещё до этого случая у него в коде находили более сотни unsafe-блоков и несколько UB. Тут все настолько охуели, что началась ДРАМА в реддите и колян не выдержал и УДОЛИЛ репы с актиксом. Потом восстановил и заявил что завязывает с опенсорсом и вообще виноваты все кроме него.
>>1747698 Я иногда поражаюсь, насколько некоторые люди истерички. Вместо того чтобы сказать "не ебите мне мозг, я пишу код как хочу, не нравится - не юзайте", человек взял и выпилился из своего же проекта.
Ник Десанье (Nick Desaulniers), занимающийся в Google обеспечением поддержки сборки ядра Linux с использованием компилятора Clang и также помогающий исправлять ошибки в компиляторе Rust, предложил провести на конференции Linux Plumbers Conference 2020 сессию для обсуждения предоставления возможности разработки компонентов ядра на языке Rust. Ник занимается проведением микро-конференции, посвящённой LLVM, и считает, что было бы неплохо обсудить технические аспекты возможной интеграции поддержки Rust в ядро (им уже подготовлен рабочий прототип для KBuild) и понять нужно ли вообще добавлять такую поддержку и какие ограничения по использованию Rust следует принять.
Напомним, что в недавней дискуссии на конференции "Open Source Summit and Embedded Linux" Линус Торвальдс не исключил появление привязок для разработки неосновных подсистем ядра (например, драйверов) на таких языках как Rust. Возможность разработки драйверов на языке Rust позволила бы с минимальными усилиями создавать безопасные и более качественные драйверы, избавленные от таких проблем, как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера. Уже существует несколько сторонних проектов по реализации такой возможности:
- Разработчики из компании "Fish in a Barrel" подготовили инструментарий для написания загружаемых модулей для ядра Linux на языке Rust, используя для повышения защиты набор абстрактных прослоек над интерфейсами и структурами ядра. Прослойки автоматически генерируются на базе имеющихся заголовочных файлов ядра при помощи утилиты bindgen. Для сборки прослоек используется Clang. Собираемые модули помимо прослоек используют пакет staticlib. - Исследователи из Китайского университета в Гонконге развивают проект для разработки на Rust драйверов для встраиваемых систем и устройств интернета вещей, который также использует bindgen для генерации прослоек на основе заголовочных файлов ядра. Фреймворк позволяет добиться повышения безопасности драйверов без внесения изменений в ядро - вместо создания в ядре дополнительных уровней изоляции для драйверов, предлагается блокировать проблемы на этапе компиляции, применяя более безопасный язык Rust. Предполагается, что подобный подход может оказаться востребован производителями оборудования, разрабатывающими проприетарные драйверы на скорую руку без проведения должного аудита. - Разработчики фреймворка C2Rust для трансляции Си-кода на Rust, проводят эксперименты по преобразованию модулей ядра с минимальными ручными правками. Из проблем отмечается применение во многих частях ядра кода, в котором используются расширения GCC, пока не поддерживаемые в C2Rust. Для решения данной проблемы в C2Rust планируется добавить поддержку GCC атрибутов inline, cold, alias, used и section, а также расширить возможности inline-ассемблера и решить проблемы со структурами, которые одновременно выровнены и упакованы (например, xregs_state). Из существенных проблем, требующих ручной работы, отмечается невозможность транслировать нетривиальные Си-макросы в макросы Rust и необходимость переопределения типов, так как C2Rust транслирует Си-типы в определения в пакете libc, но этот пакет нельзя использовать в модулях ядра.
>>1747698 >но ещё до этого случая у него в коде находили более сотни Я сейчас просто тупо вбил в поиск unsafe по расту и там мне высрало около полумиллиона результатов. Конечно, так себе статистический подход, но все равно, что-то растаманы тут лицемерят.
Я так понимаю, когда actix стал очень популярен, у него случился фатальный недостаток, его написали не они? Не получилось ли так, что вся это компания связанна с тем, чтобы умело увести форк у Коли?
>>1747839 >Я сейчас просто тупо вбил в поиск unsafe по расту и там мне высрало около полумиллиона результатов. И что это доказывает, окатыш? Долбоёбы хуже любых растосектантов.
> This is internal code. There is no repeated call to get_mut() anywhere in code
> The unsoundness of the Cell API is publicly exposed through AndThenService::{clone, call}. > UB from multiple unrelated &mut First borrows existing simultaneously while using only the safe public API of actix-service
> умело увести форк у Коли Он сам раньше предлагал передать кому нибудь проект.
>>1747847 Это я говорил не про программистов, а про тебя. Ты не понимаешь зачем нужен unsafe и зачем его нужно использовать, вся твоя позиция это где-то, кем-то сказанная чушь про раст и мышление построенное на каких-то детских ассоциациях (как у анона, который про стулья писал). И при этом что-то там ещё ищешь, находишь какое-то "лицемерие".
Никто тебя ни в чём убеждать не будет, и питчить тебе раст тоже. Ты просто мимохуй, которые ни в чём не разбирается. Гуляй дальше.
>>1747853 Ты же понимаешь что твой пост смысловой нагрузки не несет? Тупо какая-то истерика не о чем.
>Ты не понимаешь зачем нужен unsafe Откуда ты знаешь вообще?? Тут вообще был поинт, что говнопроектов куча, он доебались к Коле.
>>1747850 >Он сам раньше предлагал передать кому нибудь проект. Но никто не взял или он передавал не "тем" и не "те" взъелись? Ну как бы Коля говнил в коде не один день, почему так резко решили его доебать?
>>1747854 Даже коммент по теме нашел. Мнение не мое, скорее ответ, почему за столько лет на расте нет ничего крупного. Одни только переписи grep, да вставки в код.
>>1747860 > никто не взял Большой активный опенсорс проект не только лишь ачивка и ЧСВ, но и куча геморроя.
> говнил в коде не один день Он не то чтобы говнил, просто это расходилось с повесточкой. Сам раст позиционирует себя как безопасный, а самая популярная и быстрая его "веб"-либа с этим проёбывалась. Плюс он сам пытался в Торвальдса, но не потянул. > резко решили его доебать Случайно получилось.
>>1747630 >Слишком абстрактно. > В одном парсере TIFF компилятор удалял проверку на целочисленное переполнение, потому что целочисленное переполнение - UB и следовательно никогда не может случиться.
>>1747866 >за столько лет За сколько? 5 лет? Причём 5 лет назад это был совсем не тот язык и окружение, что и сейчас. Нормальный Rust сформировался только пару лет назад и продолжает это делать. https://habr.com/ru/post/502046/
Redox - жив, но это экспериментальный проект. Понятно, что долбоёбы из интернета ждут, что кто-нибудь сделат второй linux и поставит всех раком, но такого не бывает. Servo - от мозиллы закончилось финансирование, хотя контрибы всё равно контрибят.
>Даже коммент по теме нашел. Это такие же набросы от неразбирающихся ни в чём линуксоидов как и unsafe-долбоёбов в этом треде. Не стройте своё мнение на мимохуях из интернета.
>>1747869 В общем, растаманы сами нехера не пишут, только переименовывают белые списки и переписывают grep, тут естественно в таком глухом лесу (околонулевой конкуренции) с легкостью выстреливает веб-либа сомнительного качество, сомнительного анона. Но виноват, конечно, Коля.
Кстати, львиная доля UB в си, о которой вчера спорили питонщики, связанна именно с компромиссом в стандарте для поддержки всего зоопарка платформ. Как интересно раст будет это все поддерживать?
>>1747901 > Servo project is not a complete browser. It is an experimental project that delivers components that can load, run, and display web sites and applications. These components include: > > A parallelized CSS Style engine that can speed page load times and improve stability Уже в лисе и включено по дефолту везде. > A Paint engine, called WebRender, that moves drawing almost entirely to GPUs, ensuring high frame rates and freeing up the CPU to do other work Уже в лисе, но пока только частично выкатывают (только на некоторых конфигурациях железа)
>>1747903 Какие же вы тупые. Закончилось финансирование - они же не с кубышки деньги брали и они закончились. Это следствие закрытие или заморозки проекта. В чем причина заморозки проекта та? Не оправдал ожидания или что?
>>1747907 >Какие же вы тупые. Угораю с идиота. Мейнтейнеров просто перевели работать над другими проектами, а кого-то поувольняли. Проект не закрывали и не замораживали, просто перестали над ним работать на время. Что тут непонятного-то, дебил?
>>1747899 >Как интересно раст будет это все поддерживать? > Всё, что UB в Си точно такое же UB в Расте, смысл только в том, чтобы запрятать его поглубже. Сложности в реализации будут проблемы только на ебанутых платформах, где трёхбайтовые инты, сложение saturating и тому подобное. Но так там до сих пор пишут на фортранах и коболах, а про C новее С89 никто и не думает.
>>1747917 Ну долбоёб-же, о чём и говорю. Понимаешь разницу между ЗАКРЫТИЕМ проекта, ЗАМОРОЗКОЙ и между снижением активности по его разработке? Слишком, сложно, да? Слишком небинарно.
Смешно. Тред уже в бамплимит уходит, а постеров всего 27 человек. 18 постов на человека. Т.е. тут всего несколько анонов базарит. Для сравнения в каком нибудь асм треде под 200 постеров к бамплимиту.
Причём большинство этих постов в духе: "Зачем нужен Rust?", "У вас же unsafe", "Докажите мне что Rust нормальный тогда я буду его учить", "А команда раста педики". Это всё одни и те же зумеры-долбоёбы.
Я предлагаю в следующем треде просто нахуй слать всех этих говноедов. Не хочешь - не надо, не твоего ума дела, не для тебя это было сделано, иди дальше страдай.
>слать всех этих говноедов По стопам основного комьюнити - окуклиться в своем маня мирке и тонуть дальше. Не будет хейта, тред утонет. Это же не жопаскрипт и не петухон.
>>1747956 >>1747958 Не нравится? Пошел нахер отсюда. Это не для тебя сделано и не для таких как ты. Не ходи, не засирай комменты. Ты тут никому не нужен. Тебя не звали сюда. Тебе тут не рады. Уйди отсюда. И больше никогда не приходи. Так понятно?
Го раньше агрессивно продвигали, от чего в комьюнити собирали больше не разработчиков, а новичков и фанатиков. С растом сейчас такая же фигня, уже вижу как иногда называют сектантами.
Раст тут не виноват, просто агрессивный маркетинг зло. И го, походу, уже вышел на свое плато.
>>1747980 >>1747992 Тебе на хабр. Там отдельные крестоёбы уже придумали теорию о том, что раст агрессивно продвигают маркетолухи направляемые массонами из гугла (вау). Пишут они это, конечно, под всеми постами про Rust. Никто конечно так и не объяснил в чём заключается эта "агрессивная" пропаганда? В том, что комьюнити пишет посты о мифах про Rust? Или в том, что они пишут на нём что-то?
Факт в том, что Rust один из немногих языков, который встречает такое яркое и живое сопротивление в комьюнити. Хорошо заметил один комментатор, что в принятии неизбежного у вас сейчас стадия Отрицания. Скоро будет Гнев и Торг.
Я не знаю почему. Луддиты они и в 21 веке луддиты, наверное.
Думаю растокомьюнити нужно реагировать просто: Не нравится? Пошел нахер отсюда. Это не для тебя сделано и не для таких как ты. Не ходи, не засирай комменты. Ты тут никому не нужен. Тебя не звали сюда. Тебе тут не рады. Уйди отсюда. И больше никогда не приходи. Так понятно? шутка
>>1748001 >Тред с opennet.ru тоже очень показателен. Показателен. Узнал оттуда что борроу чекер не работал. Отличное дополнение инфе про unsafe везде, даже в стандартной либе. Почему то при знакомстве с языком это не говорят. А говорят что такой растакой безопасный язык. Про бутстрап сборку тоже порадовало. Даже не то что 100 раз пересобирать раст растом, а то, что это каждый раз разный диалект.
>>1748015 Ты просто ищешь оправдания. Зачем? Если для тебя очевидно что Rust это маркетинговый булщит (как и ub, да) - ну так и забей на это говно, иди дальше, наслаждайся жизнью. Но ты конечно должен спасти нас всех, ведь мимохуй с opennet написал:
>лол! буквально в этом году был баг пофикшен (уж не помню во фронтенде или в llvm), из-за которого borrow checker не работал как положено. т.е. никто за ним не проверял (зачем?)) а тот не работал xD Это твои авторитеты?
>>1748021 Нет, его фрустрации понятны. Если за углом стоит мошенник, у тебя появляется совсем нормальное желание сообщить об этой беде всем. Это правильно и правильно требовать чтобы делали качественный продукт.
Была бы альфа, можно было на это глаза еще закрыть.
>>1748024 Согласен. Просто это выглядит по другому. Если даже посмотреть на этот тред, куча анонов после того как узнали о каком-то баге или проблеме в раст пишут, что то вроде
Эти люди сюда пришли для чего? Это как маленькие дети, которые хотят чтоб их убедили, чтоб им доказали, чтоб их опровергли или просто защищающие свои позиции, которые требуют внимания. Толку с ними разговаривать? Зачем на них тратить своё время? У них уже всё в голове построилось, ведь аноны с opennet им всё уже объяснили своё отношение к языку (который большинство из них не знает). Это их авторитеты.
Эти споры никуда кроме как к бамплимиту не приведут.
> Была бы альфа, можно было на это глаза еще закрыть. Баги были, есть и будут всегда. И проблемы были, есть и будут всегда. Большинство багов может быть пофикшено как только в раст войдут большие мейнтейнеры. Но и появятся новые (при вводе новых фич) и что тогда? Опять визжать и кричать: "ну всё, нахуй этот раст"? Это не конструктивно.
Но я боюсь мои слова не будут поняты, я тут уже несколько раз объяснял свою позицию. В итоге это опять скатывалось к спору про unsafe и баги в каких-то либах или о том, что в команде раста есть инкзлюзивно повернутые. Поэтому просто легче пройти мимо и не реагировать на такое. Собака лает, караван идёт.
>>1748015 > unsafe везде, даже в стандартной либе > такой растакой безопасный язык Суть в том, что при написании конкретно твоей программы, ты без ансейфа не сможешь сделать сегфолт. Если же всё таки сможешь, то это или КоляноCell в какой-то библиотеке, или растобаг и хорошо бы его зарепортить.
А если используешь всё таки ансейф, то уже ты сам ответственен за то, что происходит в этом блоке.
>>1748040 Умение говорить о недостатках инструмента - признак профессионализма.
Индустрия и так глупа и жрет одни только буллшиты. И вот и раст в буллшитах. И никто не парятся, белые списки переименовывают. У всех, манямир, всех все устраивает.
Нахер таких ваннаби-технарей.
Весь остальной твой текст, глупая демагогия. Таким как ты, видимо нравятся эти манямиры.
>>1748053 >Умение говорить о недостатках инструмента - признак профессионализма. Я и говорю. Я принёс очень многие баги раста в тред и я перечислял в чем раст хуев.
>Индустрия и так глупа и жрет одни только буллшиты. И вот и раст в буллшитах. И никто не парятся, белые списки переименовывают. У всех, манямир, всех все устраивает. >Весь остальной твой текст, глупая демагогия. Таким как ты, видимо нравятся эти манямиры. >Нахер таких ваннаби-технарей. Что я должен ответить на эти высеры? Это именно то о чем я и говорил выше. Ну не нравится - не юзай. Вот беда.
>>1748056 > Но Коляну ансейф точно нельзя Можно если при использовании его либ > без ансейфа не сможешь сделать сегфолт Хотя там немного сложнее случай, но суть та же.
В актиксе всё еще есть ансейфы. И в стд тоже. Но почему-то до них никто не доёбывается.
>>1748070 >не сможешь сделать сегфолт Офигеть, если ты можешь писать такой код, в котором ты уверен что нет сегфолта. Нахер тебе вообще раст? Может Коля был уверен в этом?
>В актиксе всё еще есть ансейфы Так теперь у актрикса нет фатального недостатка и он принадлежит тем кто и устроил эту показательную порку? Теперь все ансейфы правильные.
>>1748076 > Коля был уверен в этом? Был. Ему указали на ошибку и он включил истерику.
> и он принадлежит тем кто и устроил эту показательную порку Ещё раз. Он сам предлагал раньше (ещё до этого случая) передать кому-нибудь управление, но желающих не было.
Ого вы тут за ночь насрали постов. Я тут смотрю многие считаю ансейф - злом, которое никогда и низачто нельзя использовать. На самом деле ансейф зло только в одном случае - если ты оборачиваешь ансейф-блок в безопасную функцию, но система типов раста не может обеспечить все необходимые инварианты, чтобы функция была безопасной. Приведу пример, например есть безопасная функция pub fn do_shit(data: u32) и ты при помощи анcейфа сделал её мегабыстрой, но теперь она вызывает UB при data равном 0 (потому что делать проверку - слишком медленно лишнее ветвление замедлит код на сотую долю наносекунды, что недопустимо). В данном случае система типов не может гарантировать что дата не будет равен нулю, а значит есть шанс что юзер (а ведь функция публичная) таки случайно отправить туда нолик и получит неопределённое поведение. Вот такое использование ансейфа и не любят, когда ты не можешь гарантировать что при любых входных дынных в публиынх функциях твой ансейф код не будет вызывать UB.
В случае выше можно либо пометить функцию как небезопасную и указать, что проверять дату надо юзеру самому перед вызовом, если он не уверен, чито она не будет равна нулю, либо использовать систему типов и заменить входной параметр функции на pub fn do_shit(data: NonZeroU32) и всё станет безопасно, идиоматично и беспроблемно, однако сломается обратная совместимость, да.
>>1748085 И добавлю, конкретно коляноцелл был похож на эту функцию: при определённых входных параметрах в публичных апи его код генерировал UB. Ему предложили временно убрать ансейф-код, пока не будет исправлен публичный апи, чтоб не допускать нарушения инвариантов для той ансейф оптимизации. Но колян запустил истерику и в итоге случилось то, что случилось.
>>1748081 >Он сам предлагал раньше (ещё до этого случая) передать кому-нибудь управление, но желающих не было Ну хз, просто похоже на классический увод проекта.
>>1748101 Любой проект, у которого неожиданно находится фатальный недостаток. Пишутся большие тексты и посты, чтобы перенять ходя бы часть контрибуторов. Создается новый проект с правильными фатальными ошибками и новым названием.
>>1748052 Суть в том, что когда ты будешь писать программу, тебе придется пользоваться стандартной либой, библиотекой коляна, или другой, где есть ансейф. И не один, а соти. И тебе придется поверить на слово Коляна что он честно честно учел все пути кода. А мы уже видели что Колян не учел. Это не совсем то, что постулируется евангелистами языка.
>>1748021 Да, это мои авторитеты. Я рассматриваю язык не как какой то бренд которому надо поклоняться, а как набор грамматик и инструментов. И если в нем не работа(л) борроу чекер, то это объективный факт о свойствах языка, ну, с точки зрения комьютер саенс.
>>1748181 Двачую. Что особенно весело, когда видишь зависимость с почти 2500 ансейф-блоков в своей простенькой программе. Эта зависимость - стандартная либа для регексов.
Предлагаю сделать Коляна "UnsafeMan" Кима маскотом этого треда. Отдать дань оптимизатору 90 уровня, который был затравлен растопидорами за своё мировоззрение.
>>1748327 Никто еще так пассивно не унижал сообщество фанатиков растафилов. Если на раст было более менее всем насрать, то Коля просто вскрыл загон шизиков и показал всему миру его истинное лицо.
Если до того дня мои знакомые макаки воспринимали раст как сетевую игру и где-то может краем уха слышали про затухший проект. То после этого события, раст стал воплощением всего упоротого зла попенсорса.
>>1748327 Стёб над unsafe рождает предубеждение о том, что это что-то плохое. Но если после этого человек погрузиться в потроха раста, он увидит тучу этого unsafe в стандартной либе и во всяких токио. Это, конечно, порвет его шаблон.
Так что, расташизики, лучше об этом просто молчать, не все у вас там гладко.
>>1748021 >забей на это говно, иди дальше, наслаждайся жизнью. А раст может проходить мимо? Или он все таки собирается приходить в чужие ядра чужих ос?
Пиздец, тут какие-то писатели лаба1, лаба2,... собрались. Какое мне дело до unsafe в коде Коляна? Это опенсорс, сучка, я отвечаю только за свой код, и только если мы подписали контракт.