В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.
>>3283990 (OP) Жаль что раст так и не стал заменой С++, а стал уделом каких-то вообще хуй знает кого, каких-то неформалов, тяночек и пидоров чулочников. По факту, нахуй надо изъебоваться ублажая компилятор с ебучими ссылками, толку от этого нет. Проще на С++ как писали все так и писать, по скорости нету выигрыша, а гемороя приносит очень ощутимо. Это даже не считая всех минусов типа очень медленной компиляции, большинство либо это биндинги от васяна на сишные либы, если че-то нет придется еще и заебоваться биндинги писать. Короче хуйня ваш раст, я раньше думал перекатиться, но во время понял, что это мертвый язык с кучей гемороя и околонулевым профитом, к тому же и вакансий хуй. Так что проще как писали на С++ так и писать.
>>3283999 → > Ни хуя не понятно, что происходит Ты траллишь? Это у тебя гора unwrap, неизвестно что делающих и мгновенно роняющие рантайм при некорректном вводе. А нахуя первые два unwrap, если ввода нет? И некорректный ввод - это не ошибка, оно не должно ничего ронять. В крестовом варианте всё логично и понятно - читаем в цикле консоль пока не получим число, при некорректной строке игнорим ввод и сбрасываем статус stdin.
>>3284035 >Это у тебя гора unwrap, Это ты долбоеб, не понимающий что в продакшене там обработка ошибок или проброс наверх при помощи знака вопроса. Вообще советую кого-то жизни учить когда хотя бы свою шарагу закончишь и найдешь первую работу, так будешь меньше позорится
>>3283999 → 20 строчек - это мой микро-сканф, который можно скопипастить и не думать об этом до конца жизни. >>3283688 →
>>3284035 >Ты траллишь? Это у тебя гора unwrap, неизвестно что делающих и мгновенно роняющие рантайм при некорректном вводе.
Ввод с клавиатуры используется только в laba1, laba2 и иногда вплоть до laba7. В реальном коде ты парсишь ссаный ямл или джсон, а на любую ошибку просто посылаешь нахуй.
>>3284024 >стал уделом каких-то вообще хуй знает кого, каких-то неформалов, тяночек и пидоров чулочников. Тяночек с хуем? Просто в первый раз слышу, чтобы на Rust тяночки писали. >но во время понял, что это мертвый язык Ага, настолько мертвый, что правительство США требует рекомендует на него переходить и весь FAANG его поддерживает.
>>3284067 > комментариями Заебись язык, когда без комментариев непонятно что он делает. И ты так и не ответил почему ввод пользователя у тебя стал ошибкой, вызывающей панику.
>>3284093 >Заебись язык, когда без комментариев непонятно что он делает В твоей олигофрении язык не виноват, там расписали не потому что непонятно, а потому что ты долбоеб и тот анон судя по всему зря старался. Открою секрет что в других языках такие же конструкции встречаются
>>3284051 >Ввод с клавиатуры используется только в laba1, laba2 и иногда вплоть до laba7. Вот кстати да, даже не знаю где применять на практике ввод с клавиатуры, всегда либо cli аргументы для этого есть удобный парсер https://docs.rs/clap/latest/clap/ либо конфиг какой-нибудь, либо gui, либо бекенд куда клиент обращается. Для консольных утили в крайнем случае какой-то вим открывается. Не могу вспомнить ни одну программу которую я запускал в терминале в линуксах чтобы мне пришлось как-то вводить текст через stdin везде либо аргументы 99.9% случаев, либо открывается vim куда нужно что-то писать, остального не припомню. Вообще представил как на продакшене нужно было бы залазить куда-то по ssh, заходить в контейнер и чего-то там ручками колотить лол
>>3284035 >В крестовом варианте всё логично и понятно В крестовом варианте у тебя блэкбокс в реализации оператора ">>". Ты ни хуя не знаешь, что именно пошло не так, что там такое ввёл юзер, в чём его можно поправить. На расте можно также заблэкбоксить в либе или взять сторонний лефтпад. Кресты как будто специально делали для тупых студентов-первачей, которым надо чтоб сразу - хуяк, и зачитал с клавиатуры. Проще, чем даже на питоне, где ты сперва получаешь таки строку, а уж потом её парсишь или не парсишь.
>>3284815 > блэкбокс Для растанов это слово может быть незнакомым, но всё же - документация. И вся std в крестах жестко прописана в стандарте, там не может быть какой-то не такой реализации. > Ты ни хуя не знаешь, что именно пошло не так, что там такое ввёл юзер С чего бы вдруг. Есть флаги, есть результат операции парсинга, есть сама строка в буфере. Никто ничего не прячет.
>>3284909 Ну и сравни. На расте всё единообразно: поставил точку, из автодополнения набрал методов и вперёд. По возвращаемым типам ориентируешься в пространстве. Или на крестах - прочитай пару талмудов, да третий не забудь. И перечитывай каждый день на ночь.
>>3284961 > поставил точку, из автодополнения набрал методов и вперёд А потом ещё удивляются почему код на расте годится только для полного переписывания заново.
>>3284059 >рекомендует на него переходить Там вроде говорили про мемори-безопасные языки, неожиданно, это все языки с ГЦ.
У раста есть реальный оверхед в асинхронной разработке, с подводными камнями. А с учетом того что в каждом утюге теперь множество ядер и молчу про веб, то будущее за языками с зелеными потоками, которые не красят функции а в случае раста еще и красят типы
раст - это экзамен по сишке с недофункциями и адом зависимостей. то есть если чел может писать на расте, и ему похуй, то он может писать на сишке, и всем похуй
только зачем делать из экзамена целый язык непонятно
ну, для развлечения наверное, на западе просто с мозгами переизбыток
>>3284961 >поставил точку, из автодополнения набрал методов и вперёд >>3284966 >гы гы ни как ф плюсах, а значет плоха Лол ты такой забавный первокурсничек, кроме плюслов нихуя не видел и словил синдром утенка. Тоже самое в других языках, например в той же жабе вот тебе пример билдера запросов на пике. Точно также ставишь точку, а уже потом автокомплит ide тебе высыпает методы. Все просто и прозрачно ты знаешь у какого метода вызвал метод, ты знаешь что вернется, даже зажав ctrl и кликнув на метод ты в любой ide провалишься в метод и посмотришь что он делает и этот подход придумали еще в 90е. Тоже самое в пыхе, жс при всех его особенностях, питоне, шарпах и тд
>>3285040 >и адом зависимостей У сишки ад зависимостей ложится на плечи пользователя, возьми линукс, например Arch который трудится год и набери pacman -Q там охуеешь от количества однотипных библиотек в зависимостях, а в винде каждая программа чуть сложнее калькулятора это своя отдельная помойка на гиг говна
>>3285055 а может это всё-таки плохое апи, если для эффективного командования человеком тебе надо знать, как бутерброд превращается в какашку? если ты понимаешь, что я хочу сказать
>>3285014 >асинхронной разработке >множество ядер Никакой связи. Асинхронщина нужна там, где нужно в одно ядро впихнуть как можно больше потоков - всякие сплёвывалки джейсонов и мультимедии. А утилизация много ядер, это тяжёлые числодробилки - там у раста вообще никаких проблем.
Ну и чтобы ты сдал таки сессию и шокировал доцента познаниями. Асинхрон, это про использование мощностей процессора при тормозном io - сетевом, дисковом или ещё каком. Условно, проц сплюнул пакет данных в буфер сетевухи и, пока клиент их подсасывает, поставил поток на паузу и пошёл обрабатывать следующий. Вот чтобы тебе как программисту этим вручную не маяться, всё это обернули в сахарную оболочку асинхрона.
>>3285098 Это пример из интернетов, взял sql билдер чтобы долго не искать. Слишком запутанно для новичка согласен, там в метод передается еще один билдер и делается подзапрос, ты похоже с sql не знаком. Вот попроще примеры на разных языках. Такой подход используется везде, вообще советую в учебных целях попробовать java или C# тогда некоторые вопросы отпадут
>>3285915 Какое это имеет отношение к сложности языка? Ты поехавший или что? В си буквально из семантик необходимо знать ветвление, циклы, функции структуры и указатели и все
Этоь язык буквально может студент 3-4 курса реализовать как курсовую/диплом
>>3285964 Ебанутый зверёк, плез. Язык - это всё от стандарта до тулинга и до горящей жопы от охуительных приколов конпелятора. Писатель лаб на Си судит о всей отрасли, спешите видеть. Раст тем и хорош, что решает 89% проблем, которые есть в Си, но плох тем, что добавляет новые.
>>3285991 Ну в твоём манямирке можешь хоть какие определения языка придумывать
>>3285978 Поздравляю тебя, так и продолжай писать Только от этого количество семантик и сложность языка не уменьшится
>>3285998 Каки е подводные камни в си тебе надо заучивать? Что ты там себе в ногу выстреливает? Поинтер разыменвываешь? Или что массив это указатель? Ты с плюсами не перепутал ничего?
>>3286043 Раст любит тебя и без знания всех семантик. Сириусли, чтобы кодить на расте тебе не нужно вот прям знать его досконально. Единственная семантика, даже скорее принцип - концепция владения и одалживания.
>>3285412 >>3285915 >>3285991 Дополню что в более сложных проектах есть взаимодействие разных людей, управление зависимостями, CI/CD, линтеры и прочие такие штуки которых нет в хэлоувордах и программах чтобы показать как я у мамы хакер.
В сишке и плюсах нет нихуя, вот например на собирай в голове makefile чтобы понять чего там и как собирается https://github.com/ImageMagick/ImageMagick/blob/main/Makefile.am или попытайся прочитать 14 тыс. строк уже сгенерированного говна https://github.com/ImageMagick/ImageMagick/blob/main/Makefile.in В убунте 6 версия последняя на тот момент, а нам нужна была 7 из-за чего решили из исходников собрать. У нас эта хуйня как-то в докере то ли ставилась хуй пойми куда, то ли зависимостей не хватало уже не помню чего там надо было посмотреть, девопсы ебались и в итоге выкинули на хуй заменив https://crates.io/crates/image И так с любой сишной программой и библиотекой, если нужно собирать бинарник, то сука каждый проект ебучее приключение. А еще ебучие зависимости, которые нужно дополнительно ставить через пакетный менеджер в систему, а не при сборке. А еще там любят писать свои велосипеды разной степени встратости вместо уже 1000 раз написанных решений.
>>3285998 >знать хуилон подводных камней А ты как хотел, чем сложнее инструмент тем больше он требует от тебя квалификации, но с более сложным инструментом тебе проще делать сложные вещи. Да и кроме лайфтаймов и владения все остальное тоже самое как и в остальных языка, именно поэтому питонисты могут на нем легко писать. С другой стороны чтобы писать на си тебе нужно знать дохулион подводных камней в проекте, а чтобы знать что в расте достаточно прочитать растбук и поработать пару месяцев
На си в конечном итоге каждый файл с кодом в тысячи строк кода, большая часть решение примитивных задач, которые уже решили. Всякие вот такие штуки типа руками скопированная реализация алгоритмов со ссылкой на оригинал, вместо вменяемых управлений зависимостями https://github.com/nginx/nginx/blob/master/src/core/ngx_md5.c#L3 Архитектура хуй пойми какая от проекта к проекту разная. Сборка представляет собой кучу баш скриптов. Где и скать тесты, где бенчмарки, какие зависимости, какие бинарники собираются это нужно знать конкретно в этом поекте, одного места где это было бы написано и где бы это лежало нет
На расте все в одном воркспейсе, разбито по крейтам, крейты по модулям, модули по файлам больше 500 строк кода в файле редко где встретишь. Все расписано в Cargo.toml https://github.com/cloudflare/pingora/blob/main/Cargo.toml Тесты, бенчмарки и во всех проектах будут в одном месте
>>3286113 > В сишке и плюсах В крестах никто не генерирует makefile, даже на сишке уже все свежие проекты на ninja. А в симейке всё что ты перечислил есть. > ImageMagick Специально откопал 20-летнию либу? > И так с любой сишной программой и библиотекой Сейчас для любой либы база это симейк, любая либа подрубается двумя строчками билд-скрипта. Хоть прям из гита нужную ветку подрубай, само соберётся. Пикрилейтед как подрубается крупная либа вместе с CUDA и всеми зависимостями, на любой ОС, и так литералли во всех либах. На расте чтоб собрать CUDA-код надо знатно выебнуться, а за пределами линукса вообще скорее всего нихуя не выйдет. >>3286147 > nginx > схожего софта Давай ещё ffmpeg откопаем какой-нибудь.
>>3286163 >Специально откопал 20-летнию либу? >Давай ещё ffmpeg откопаем какой-нибудь Давай принеси сюда крупный проект на C который вышел за последние пару лет
>>3286163 >ninja От одного сайта дедами из GNU воняет, но я подожду когда ты принесешь правильно написанный крупный проект на C который стартанули не так давно
>>3285100 Теже г/корутины позволяют хорошо утилизировать процессор, чем ос-потоки. Сейчас основной бизнес это веб, а он асинхронный. Кстати изначально раст был с гринтредами, но теперь с асинхронной частью у раста большие проблемы.
А дробилку можно даже на сях написать, там в алгоритме обосраться с памятью будет трудно я уверен что и раст-дробилки пишут на ансейвах ибо не такой он уж зеро-кост в некоторых моментах.
>>3285142 Зумеры придумали sql-билдеры @ Пишет ровно такой же Sql-запрос, но через оператор-точка. @ Теперь мы ограничены возможностями билдера и его корректностью работы. @ Зумер доволен.
>>3286197 Суть была показать синтаксис для студента сишника, чтобы долго не гуглить и не писать самому взял билдеры из разных языков. А в целом да в них смысла нет, если ORM при помощи классов/структур помогает быстро крудошлепить, то билдеры абсолютно нихуя полезного не делают, идея якобы можно сменить одну БД на другую и типа пройдет бесшовно, но на практике при смене БД по пизде идет половина софта, поскольку оптимальные таблицы и связи будут для каждой БД свои, что придет к переписыванию моделей
>>3286073 >Раст любит тебя и без знания всех семантик. Ваш манямир треснул об макросы, несите новый
>Сириусли, чтобы кодить на расте тебе не нужно вот прям знать его досконально. Чтобы кодить, надо уметь сорцы читать, а чтобы читать чужие сорцы надо знать все об языке.
> си проще раста > Аряяяя это не так > Ну то есть да, раст сложнее, но ты сложное не используй)) Ну дегенерат, это ещё даже не учитывая что даже при минимальном расте семантик раза в 3 больше и сложнее
> А вот сиай сиди, взаимодействие с другими, билд система Буквально какое отношение к языку имеет??
> А вот в си надо знать много подводных чтобы себе ногу не выстрелить!!! Список подводных камней си в студию сравним со списком раста
>>3286207 >макросы А ты игнорируй макросы. Пиши как на сях, кто не даёт?
>Чтобы кодить, надо уметь сорцы читать Это, чтобы понять, как на плюсах cin/cout работают, надо в талмуд одним глазом глядеть. А на расте тебе одних хинтов в IDE хватит.
>>3286113 >Makefile.am Пчелик, это не make, это плагин для автотулзов. Мэйк как раз прост (если не лезть в дебри совместимости), буквально удобный молоток.
>>3286238 а, тебе даже такое надо заучивать? голова то не лопнет?
>>3286237 >а ты игнорируй макросы > а ты игнорируй референсы, используй поинтеры > ой блин ну тут надо тебе почитать что такое ансейф... > а ты игнорируй лайфтайми > ой блин ну а тут тебе придется почитать что такое бороу чекер и еще множество структур из стандартной либы > ой блин у нас структуры по дефолту перемещать нельзя, но ты почитай про парочку волшебный трэйтов > кто не дает?
>А на расте тебе одних хинтов в IDE хватит Не язык, а сказка, первый язык программирования где не надо читать чужой код Почему этот пункт все еще не в килерфичах раста?
>>3286267 >Не язык, а сказка, первый язык программирования где не надо читать чужой код
Для написания своей имиджборды тебе достаточно собственного кода и спизженных семплов из дока. К моменту, когда тебя пустят к совместной разработке, самые нужные концепты ты уже освоишь.
А при работе с чужим кодом на Си просто уметь прочитать конкретную функцию бывает недостаточно.
>>3286611 чел, ты на ответ что не зная языка хуй ты нормально чужой код будешь читать, начал заливать какие то истории о том что НЕ НУЖНО сьебись уже с позором
Сап растеры, только начал раст почитывать. Прочитал, что, дескать, нельзя больше двух изменяемых ссылок создать. А как же тогда из разных потоков над разделяемым ресурсом действия осуществлять? Взять хоть базу данных какую-нибудь, а точнее ссылки на объекты обвязки над базой или колбэки, которые работают с ссылкой на обвязку над базой.
>>3286825 Читай дальше. > А как же тогда из разных потоков над разделяемым ресурсом действия осуществлять? Обычно ты не хочешь этого, серьёзно. А когда реально хочешь - будь добр изъебнуться чтобы захватить владение ресурсом, взять изменяемую ссылку, поменять объект и отпустить его так чтобы остальные потоки не получили промежуточное значение. Наприме, через https://doc.rust-lang.org/std/sync/struct.Arc.html
>>3286825 Гугли Mutex, обычно используется совместно с Arc Arc<Mutex<T>>, если просто потоки, то бери из std. Если асинхронно работаешь, то рекомендую крейт tokio там все есть
>>3287285 Ничего не перепутал, LLVM на крестах написан и он используется растом для компиляции в нативный код, вот через неделю на LLVM 19 перейдут с 18 версии.
>>3287619 Только осталось продать меморисейфити джавашарпам. Там точно это купят, парни не знают о последних достижениях в борьбе с сигфолтами и UB, эти плебеи до сих пор небезопасно пишут. Думаете забавно? А мне фанатик раста на полном серьезе предъявлял, что раст безопаснее жабошарфов.
Эксперимент раста затянулся, я думаю, еще потыкают его какое-то время, а потом на базе работы над ошибками высрут что-то среднее между растом и сями. Ну или зиг получить крупную поддержку.
>>3287627 > потом на базе работы над ошибками высрут что-то среднее между растом и сями Уже. В следующем году Карбону планируют выпустить рабочий компилятор, в 2026 стабилизируют дизайн языка и дальше будут идти к стабильному релизу. Вместо "перепишем весь существующий софт" упор на полную совместимость с крестовым кодом, как это у котлина-джавы. Синтаксис почти как в расте. Безопасность тоже будут реализовывать, но пока все силы брошены на компилятор. https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/principles/safety_strategy.md
>>3287758 >Проиграл Начинай уже выигрывать, речь про Arc, и ты это знаешь, что это сборка через подсчет ссылок. В питоне нечто такое, только в глобальном масштабе.
А вот refcell это местный инцел костыль, который превращает статическую проверку во время компиляции в тыкву. Вообще рекомендую пописать больше чем утилиты grep, чтобы проникнуться во всю красу раста и прочувствовать все эти костыли во время рефакторинга с погружением в удивительный мир лайфтаймов.
>>3288144 >нет защиты >ConcurrentModificationException Вот непонятно, вы тупые или промытые? Когда начнет сегфолить вместо управляемого исключения, тогда и приходи.
>>3288163 > речь про Arc > В питоне нечто такое, только в глобальном масштабе. ну да, плюс минус одно и тоже, хуяк подсчет ссылок, хуяк глобально это делаешь и сборщик мусора готов
и не надо никакие деревья строить, не надо проходить по нему чтобы мертвые ссылки собрать, не надо stop the world делать, просто хуяк подсчёт ссылок и готово
>>3288175 Когда говорят о сборщике мусора, подразумевают рантайм, который управляет всей памятью и отслеживает все создаваемые объекты. А подсчет ссылок - это, блять, подсчет ссылок. Просто еще один контейнер из std, которым даже пользоваться не заставляют.
>>3288191 Похуй что ты там подразумеваешь. Подсчёт ссылок - это тоже сборка мусора. > Although many languages integrate GC into their compiler and runtime system, post-hoc GC systems also exist, such as Automatic Reference Counting (ARC) > Reference counting garbage collection is where each object has a count of the number of references to it. Garbage is identified by having a reference count of zero. An object's reference count is incremented when a reference to it is created and decremented when a reference is destroyed. When the count reaches zero, the object's memory is reclaimed. Если тебе не надо вручную убирать мусор - значит есть сборщик мусора, а циклы сборки мусора или ARC там - это детали реализации. Просто циклы быстрее чем ARC, потому что не требуют затрат на очистку сразу же, а рантайм может когда надо асинхронно почистить. В вебе раст на сколько быстрее джавы? На 20%? При этом actix даже медленнее джавы, на одном уровнем с ASP.NET. C ARC раст совсем бы отсасывал джаве. Вот у думойте с кем там может раст конкурировать.
>>3287613 > сборщик мусора >>3287627 >продать меморисейфити Ну ведь из треда в тред одно и тоже, даже уже как-то не смешно, давай чего-нибудь новенького
>>3288239 А где сишка с крестами в бенчмарке, они должны быть где-то в первых рядах и вообще что там делалось, смотрю чего-то там с постгресом, где-то нет. К постгресу можно разными способами подключатся и разные запросы делать. Хотя брать чего-то где-то из контекста приносить сюда рассказывать такой раст хуевый это в стиле шиза фанбоя этого треда. Покормил
>>3287645 >В следующем году Карбону планируют выпустить рабочий компилятор, в 2026 стабилизируют дизайн языка и дальше будут идти к стабильному релизу. Если гугл не закроет, то возможно
>>3288255 > где сишка с крестами в бенчмарке, они должны быть где-то в первых рядах и вообще что там делал Это бенч запросов через фреймворк с получением данных из базы. Сишка с h2o наверху, да, но кресты сосут у джавы, убрал их из фильтра. Пикрил без базы, просто HTTP-запросы голой страницы. В этом тесте, например, PHP далеко внизу с лучшим результатом в 18%. Я это притащил просто чтоб показать что цикличный GC в вебе не мешает производительности, а иногда даже наоборот. Есть ситуации когда RAII хуже чем просто оставить валяться память неосвобождённой для последующей сборки GC.
>>3288275 >Есть ситуации когда RAII хуже чем просто оставить валяться память неосвобождённой для последующей сборки GC.
Повезло, что Раст не заставляет использовать ни RAII, ни ООП, ни любой другой баззворд, ведь это не какая-то скриптуха с гвоздями прибитым рантаймом как Го.
>>3288275 >Я это притащил просто чтоб показать что цикличный GC в вебе не мешает производительности Это да, большинству должно быть похуй на наличие ГЦ. С подобными проблемами в гошке сталкивались пожалуй только в дискорде, но там у них стримы, чаты на вебсокетах и прочая специфичная залупа, которая крутится 24/7, большинство веба работает реквест-репонс по http, там несколько милисекунд лагов никто даже не заметит. PS actix отсосал из-за того что там diesel, а он не асинхронный https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/Rust/actix/Cargo.toml#L30
>>3287645 Все эти синтаксисы, ну срать же, какие там технологические плюхи будут? Что решили с памятью делать? Анально прибить баран чекером или же просто поинтеров раздать?
И скажите уже, почему нельзя сделать дебаг аллокатор, который бы в режиме разработке ловил утечки и выходы за границы? Ну можно же анализаторов накатить, не обязательно же дрессировать кодеров?
>>3288179 Ну будет это в цикле долбится и будет дергать каждый раз подсчет. У питона вроде такая же модель и стоп-зе-ворда нет же? Котлин-нейтив вроде тоже, но могу ошибаться. Это самая быстрая модель, ее минус только в циклических ссылках.
>>3288388 Как минимум удивляет и заставляет задуматься, зачем мне раст, когда гошка не приносит оверхеда в разработку и долгой компиляции. а еще не надо красить асинками все функции, но проблему покраса понимают единицы. так что опустим
>>3288383 > Анально прибить баран чекером или же просто поинтеров раздать? Борова точно не будет, у Карбона будет обратная совместимость с крестами, анально ограничивать ничего не станут. Будут ужесточать использование сырых указателей, добавят больше компайл-тайм проверок, добавят лайфтаймы, запилят встроенный в дебаг-билд безопасный аллокатор по типу санитайзеров, будет дополнительно релизный билд с быстрыми рантайм-проверками памяти/многопоточности для тех кто готов пожертвовать немного скорости ради безопасности. > И скажите уже, почему нельзя сделать дебаг аллокатор, который бы в режиме разработке ловил утечки и выходы за границы? Вот это и сделают, вместе с проверками дата-рейса.
>>3288173 >управляемого исключения ConcurrentModificationException , это такая ебола, которая если и управляемая, то весьма условно. Во всяком случае, конпелятор жабы тут тебе не подскажет, где его ждать, а где нет. Данные целые, но прога вылетела - какая мне-то разница?
>>3288589 На вершине промышленной программы стоит дедовский catch (Exception e), который залогирует место, время и запах твоих ног и потом еще восстановится, сказав юзеру о временном сбое (а если ошибка была плавающая, юзер даже не расстроится и продолжит работать). Но благодаря этому логу, дядя сеньор уже сидит и фиксит багу.
Это для тебя, ребенка, эксепшен что-то страшное и ужасное, как паническая атака в расте. Для кодера на нормальном языке, это средство диагностики. А теперь иди выведи стектрейс хеллоуворда своего сраста и поешь говна.
>>3288693 Лол, а ты думаешь на расте софт сразу пишется без ошибок и уязвимостей? Фанбоев надрессировали на фразу "безопасность" с доступом к памяти и они реально думают что у них вдруг самый безопасный язык встал.
тут должна быть ссылка на ишью с уязвимостью раста нерешенная с 2015 года, но мне лень.
>>3289328 >>3289363 А можно мне лицо того ученого, который доказал что формальный раст безопасен? Или у него там был свой, формально правильный раст, а этот ненастоящий?
>>3289363 Да и манёвры с realistic subset тоже смешные. Та часть раста где нет багов и она безопасная - реалистик, а остальное нереалистик, оно и должно быть дырявым говном. И в чём тогда отличие от UB? UB хоть с стандарте зафиксировано, а как я должен реалистичность раста почувствовать?
Чем дальше копаешь тему, тем больше ржавого дерьма находишь. Молниеносно 🔥 быстрые 🚀 уязвимости памяти, написанные на 100% безопасном Rust. https://github.com/Speykious/cve-rs/tree/main
>>3289412 Там достаточно зайти в ишью и можно найти кучу багов с лайфтаймами и типами. Или вот такую хуйню, когда раст позволяет безопасно проверить адрес указателя, но оптимизатор выкидывает проверку и возвращает false. Буквально как UB в сишке, когда дебаг и релизные билды ведут себя по разному. https://github.com/rust-lang/rust/issues/130388
>>3288630 Ну или у юзера полетели в пизду все данные, которые хранились в памяти, какие-нибудь финансовые транзакции и тому подобная энтерпрайзная чепуха - кого это ебёт, правда?
И, тем не менее, этого сорта паники в расте нет. А всё остальное, что есть из паники в расте - деление на 0 и выход за границы, есть и в жабе тоже. Так что, раст безопаснее, соси, короч.
>>3289543 > баги Если баг не фиксится достаточно долго, то он становится фичей, потому что на него полагается уже существующий код и его тоже теперь не выкинешь, не сломав всем рабочий код. Дыры в системе типов раста тоже by design так-то, о чём тебе и пишут растаны-компиляторописатели что в текущем солвере это не пофиксить. > fixing it relies on where-bounds on binders which are blocked on the next-generation trait solver. we are actively working on this and cannot fix the unsoundness before it's done
>>3289710 >>3289715 Этот чел у АйТиДудя с горящими глазами рассказывал про htmx и что за ним пиздец какое будущее, а фронтенд ВСЁ. У себя на канале на эту тему несколько видео снял. А его канал чуть более чем полностью состоит из кликбетных видео
>>3289722 Ваще похую, вся это повесточка в языке тупо из-за того что основная часть разработчиков как и фонд находятся в Калифорнии. А в остальных интернетах можно и пиздаюлей получить за кривые глаза
>>3289746 >полностью состоит из кликбетных видео Ты сейчас описал чуть ли не весь топ айти-ютуба. Просто он не знает что его могут отменить, ошибся, бывает.
>>3289748 > вся это повесточка в языке тупо из-за того что основная часть разработчиков как и фонд находятся в Калифорнии
Лол, царь хороший -- бояре плохие. Классика. А ничего, что хуесос, которые изначально придумал Раст прямо говорил, что программирование должно быть с политикой и нужно в первую очередь смотреть на твои взгляды, а потом уже на код?
Нет никаких злобных жиролесбух, которые захватили педеРАСТ, он всегда таким был.
>>3289834 Какая тебе разница чего там у них в Калифорнии творится? На политику смотрят те кто это дело спонсирует, а те кто им пользуется смотрят в первую очередь на код, благо эти 2 мира почти не пересекаются
>>3288144 В джаве безопасность на уровне стека, там в рантайме нельзя границы никак нарушить, это обеспечивает архитектура машины (виртуальной). Раст это тупо анализатор при сборке ну и (опциональный) рантайм который границы массивов проверяет, а уже вызовы возвраты перехват управления - нихуя.
>>3290302 Вроде же был момент, что кого-то отменяли и что там по лицензии ты даже не можешь свой крейт удалить и он вообще уже не твой.
Мутная фигня, это ты сейчас такой веселой, а с последней драмой где они гайки закрутили на все кроме маскота, и то потому что он им не принадлежит - все это играет новыми красками и не стоит игнорить их поведение если решаешь бизнес строить смешно, конечно, бизнес и двачер, но все же
>>3290339 Прошло 10 лет, такими темпами и линукс перепишем. Даже не игра, а визуал редактор. Представляю как больно писать на расте игровые скрипты, что осилили только редактор.
>>3290345 >и за год до тебя не дошло Это стало просто мега звоночком для многих и до сих пор этим является. Это для тебя малолетние забавы, ты кроме выпука не напишешь ничего, а серьезные дяди эту политику всеми фибрами ощущают.
Мимо дропнули го, когда они по своим хотелками поменяли гц и у нас в новой версии производительность упала в 10-30% а потом еще вопреки сообщества алиасы пропихнули, потому как в тот момент нужно было крупной компании на букву Г. и было срать на мнение всех.
Там где не переживают за своего потребителя, серьезный бизнес в ответ водит по губам и такие технологии протухают на дне индустрии. Между прочем релизному раста уже 10 лет.
>>3289834 >А ничего, что хуесос, которые изначально придумал Раст прямо говорил, что программирование должно быть с политикой и нужно в первую очередь смотреть на твои взгляды, а потом уже на код? Есть пруф?
>>3290467 Ещё один аутяга с отрицательной риторикой Ты если хочешь рандомную хуету высрать не отвечай на чужие посты, люди думают что это должно как то на их пост отвечать, а не то что шизойд опять сам себе пишет
>>3292429 >Он же не С++ тебе предлагает Я о том и говорю, всегда протираю монитор и клавиатуру салфеткой и мою руки с мылом после того как довелось в эти кресты окунутся
Я еще раз повторяю, это не жиролесбухи набежали и принудили белых консервативных базовых гигачадов что-то сказать и повесить пидорский/ниггерский флаг. РАСТ ВСЕГДА ТАКИМ БЫЛ, таким он задумывался его создателем, все его разработчики и тогда, и сейчас разделяют эти "ценности". Нет никакого принуждения или давления, они конченные сами по себе.
Если вас это устраивает -- Бог в помощь, только не надо маняфантазировать о том, что НА САМОМ ДЕЛЕ Раст не такой.
>>3293227 Это вообще везде цивилизованом миретм повесточку буквально пропихивают везде и без вазилина, даже в научные работы. В устоявшиеся языки и фреймворки пропихнуть сложнее, а в новые где не сформировалось сообщество, где нет отцов основателе это влазит как нехуй делать.
>Нет никакого принуждения или давления, они конченные сами по себе. Есть финансирование, требующее инклюзивность. Например те же рельсы в 5 версии при запуске хэлоуворда показывали на странице людей, а в 6 версии люди поменяли цвет и стали инвалидами, разработка и релиз которой были как раз во времена BLM, в 2019 разгоняли повесточку перед массовыми погромами 2020. В 7 версии убрали вообще всех людей лол. Если уже в руби эта хуйня лезет, то что говорить о новом языке из Калифорнии.
>>3293227 Ладно, ты победил. Назови другой компилируемый язык без сборки мусора, с системой сборки для людей, выводом типов, который, блять, работает и живой экосистемой. inb4 Swift
>>3293227 Два чая, раст всегда был для пидоров, не то что рассово-верный, православный С++ созданный белыми, гетеросексуальными, крепкими мужчинами с традиционными ценностями.
>>3293268 > Если уже в руби эта хуйня лезет, то что говорить о новом языке из Калифорнии.
В смылсле ЕСЛИ УЖЕ В РУБИ? Нас пронесло, а RoR в конце нулевых начале десятых -- был любимым языком американской сои, до сих пор разгребают это легаси говно. Непонятно твое удивление, как будто рельсы были каким-то оплотом БАЗЫ, там целевая аудитория не сильно отличается от Раста.
>>3293296 Похоже идеи корректности и чистоты в программировании изначально пидорские. Нигде больше такого количества чулочников не видел, чем в функциональщине, пруверах и всяких языках не для смердов.
>>3293298 >был любимым языком американской сои Буквально был как пыха у нас, на рельсах удобно фулстек крудошлепить и его буквально везде использовали во всяких е-комерс проектах. Все начало загибаться когда начали фронт и бек отдельно писать, потерялись преймущества рельс, но вылезли минусы самого руби медленный, GIL, отсутствие асинхронности, возможность насрать нечитабельное и тп, потому и одно легаси осталось. А так базы много навалил для фронтенда, даже coffescript на синтаксис js повлиял. У нас же для этих целей везде злоебучий битрикс, если руби гейские, то это для мазохистов копрофилов бассейна говна, остальное лара с yii которые +/- по сути те же рельсы
>>3293290 Я тебе скажу даже лучше, есть языки с ГЦ, которые могут если надо можно в указатели подолбиться (и собраться в aot).
А знаешь почему ты не слышал про ансейвы в управляемых языках (в жабе тоже есть нейтив)? Потому что это нужно в 1 случае из 10000 и порой кэш и упорядоченная память в поколениях, да даже просто зарезервирована память работает быстрее чем всякие маллоки, фрагментирующие память.
>>3293525 Все кому не лень пиаряться об новые языки. До этого был го, до него руби. К сожалению, беда все новых языков - это отсутствие качественных долгосрочных либ и от того, что все эти компании запускают свои микро-пуки на растах - больше качественных либ не становится. раньше поюзают, раньше выгорят
>>3293227 >>3293296 Так все IT-сообщество сейчас Wokeнутое. Соответственно, все новые языки программирования носят на своем челе клеймо SJW изначально. Так что, в нигропидорские языки можно записывать и Dart и Go и Swift.
>>3293780 >Swift Это вообще отдельная секта, странно што местный педошизик у них в треде не пасется, рассказывая там какие они фанбои. Там мало того что устройства эпл это ебучее говно где все прибито гвоздями вплоть до того что даже нельзя запускать свой брауезр все что есть это нескучные обои над сафари и хуй чего поставишь не из эпп стора. Так и еще чтобы под эти гейфоны писать нужно иметь макбук за оверпрайс, некоторые чтобы вкатиться берут все это барахло в кредиты. И при каждом удобном случае с горящими глазами боготворят всю эту технику. Вот где сука фанбои. Про ЛГБТ повесточку там уже говорить нехуй там весь топ состав во главе с директором геи
>>3293786 И что в этом плохого? Зато работает все хорошо. У меня айфон купленный в 2018 году работает как новый до сих пор, не смотря на то что весь уже разбитый перебитый ( да я ношу без чехла и стекла ) У них огромный рынок потребителей, они создали свою экосистему которую они развивают и это упрощает им жизнь, потому что не нужно согласовывать тысячи хуевин с другими производителями оборудования\софта.
По такой же логике тебе надо и Sony с их PS и Microsoft c XBox хейтить, там тоже все закрытое и гвоздями прибитое.
А вообще положняк такой: Tier 1: GNU/Linux Tier 2: Apple/MacOS Tier 3: Microsoft/Windows
Если бы у меня не было выбора пользоваться линуксом, я бы лучше эпловской закрытой экосистемой пользоваться, чем индийским spyware дерьмом от мелкомягких.
>>3293773 >Потому что это нужно в 1 случае из 10000
Ну да, если ты занимаешься строго перекладыванием джсонов и круд-запросами, то вовсю будет работать эскейп-анализ и полноценный ГЦ может вообще никогда не сработать. Но в таких случаях и самый тупорылый RAII даже у тебя проблем не вызовет.
А если ты займешься чем-то сложнее сиквел запросов, то окажется, что с GC тоже нужно занулять ссылки, чтобы трейсинг шел быстрее, что GC нужно настраивать, что Джава файлы сама не закрывает, что в Юнити нужно делать свой маллок в виде обжект пулов, чтобы это говно не развалилось. В общем, все проблемы, которые GC якобы должен решать на самом деле остались, полноценно их решить ты теперь не можешь, потому что всё пятью слоями абстракций.
И вот в этот момент ты ощутишь на губах солоноватый привкус. Или уже ощущаешь, но тебе нравится, хер тебя знает.
>порой кэш и упорядоченная память в поколениях, да даже просто зарезервирована память работает быстрее чем всякие маллоки, фрагментирующие память.
Тебе уплотнять и резервировать память юристы Оракла запрещают?
>>3293844 >И вот в этот момент ты ощутишь на губах солоноватый привкус Растеру виднее. Понимаешь, раст тоже не дает ничего, ты так же можешь держать вечноживущий объект в верхней функции, гоняя ссылки или в случае раста, куда хуже, гоняя клоны.
Файлы, ну сахар есть using () {}, еще было локом напугал. Да, раст решает гонку, но какой ценой, столько костылей вокруг мутабельности, тот же Rc<inCell Юнити, в анриле свой молодежный ГЦ есть. Главное что возможность есть сделать, в случае юнити шарпы там на правах скрипта.
>В общем, все проблемы, которые GC якобы должен решать на самом деле остались Ламерская мысль - что вот я возьму си, ассемблер или машиный код и буду писать супер быстрый код. Писать оптимизированный код это отдельный скилл и отдельны труд, тот же techempower показывают, что даже написав на-супер-пупер языке можно оказаться на дне. у каждого был такой знакомы, максималист, который хотел писать на ассемблере или даже машинном коде (у меня оба был), или веб на с++, вот вы мне этих знакомых и напоминаете, когда после питона в раст долбится начинаете.
>>3293844 >Тебе уплотнять и резервировать память юристы Оракла запрещают? Даже не знаю как это делать, это долбится в свой массив байтов, это практически пол GC руками написать? Ну офигеть - типа а че ты в космос не летаешь, вон смотри какая ракета у наса, сделай себе такую, че лицо скрючил, возьми и сделай
>>3293878 > это практически пол GC руками написать? GC в JVM ничего не знает о программе, кроме графа объектов, и от него требуется нормально работать с любым валидным байткодом. Ты, я уж надеюсь, знаешь, что делает программа, которую сам же написал, и у тебя это даже тысячной доли усилий не займет. И заниматься этим нужно даже реже, чем настраивать GC.
>>3293902 Опять какая-то абстрактная фигня. Как уплотнять? Это же лютый менеджмент, а ты сказал это как будто вот сел и напиши. По сути тебе придется писать GC.
>>3293940 У тебя есть твоя модель данных, которая лежит в куче. Это или какие-то массивы или деревья или графы. Ты её обходишь и копируешь актуальные данные в другую кучу, старую грохаешь. Не знаю как конкретнее. Если у тебя веб-сервер, то на каждый запрос своя куча. Если хешмапа, то пересобираешь её, когда накапливается слишком много удаленных ключей.
>По сути тебе придется писать GC. Тебе в ЛЮБОМ случае придётся писать GС. Но в случае управляемых языков это придётся делать поверх другого GC, который слишком консервативный и всегда будет делать много лишней работы. В этом был посыл >>3293844
>>3293780 > Так все IT-сообщество сейчас Wokeнутое.
Кроме плюсов, конечно же.
Но все же есть разница, когда поставили пидор/ниггер флаг просто на отъебись, чтобы им мозги не ебали, и когда явные шизики на полном серьезе топят за все это говно. Второе -- это случай Раста.
>>3294034 >Кроме плюсов, конечно же. Аутистам тяжело продвигать повесточку, они живут в своем мирке и игнорируют все окружающее, поэтому туда бюджеты не выделяют
>>3293468 → >На заводе переписал аппбар, которій используется работягами на рабочих местах для запуска нужного софта и много другого, с js/electron на tauri/rust/typescript. А Zed'ом пользуешься?
>>3294455 Если ты маслишь такими категориями, то с такими взглядами на жизнь ты в любом случае обречен сосать хуи, даже если выкатишься из программирования на завод
>>3294617 Я хотел изучить раст для себя. Программирование для меня хобби. С++ сейчас превратился в монстра и хотелось, что-то более цельное с приятным инструментарием.
>>3293778 >го >отсутствие качественных долгосрочных либ Ладно хуй с ним в мозгах фанбоев хейта раста тут нихуя либ нет и все говно, написали и убежали на новый язык. Но с гошкой то что, тоже маркетологи фанбои и нухя нет?
>>3294757 Поработал с недельку, простой тестовый редактор в котором нихуя нет кроме примитивной работы с lsp, типичный блокнот. Смотрел как расширения писать, так у них там нихуя нет либо темы пили, либо поддержку языков по сути прокладку для lsp сервера, все. По сути написать нормальные расширения как в VSCode и жыдбрейнсе не выйдет. Там уже несколько ишью есть с вопросом о расширения, но пока ничего не говорят. Вот зато всяких Искуственных Идиотов добавляют один за другим, какую-то совместную работу, авторизацию через гитахаб и прочую хуйню, короче в приоритете монетизировать здесь и сейчас похоже.
Судя по всему история будет как с Atom та же команда пилили свой фреймворк для гуёв, сам продукт какой-то полуготовый так и загнулся, зато Electron теперь везде и всюду. Так и тут запилили свой гуи фреймворк https://github.com/zed-industries/zed/tree/main/crates/gpui
>>3294805 Это так же как с игровыми движками - тот кто пишет игровые движки игр не делает. И тут будет так же, решили что у них будет всё своё с растом и шлюхами, но получится просто нагромождение кода. У майков полно и своих фреймворков гуя, но тем не менее вс-код сделали на электроне, потому что думали башкой как это потом развивать дальше и чтоб проще людям было.
>>3293786 Самое смешное, когда программисты сортировались по операционным системам, были Windows-программисты и Linux-программисты. А MacOS-программисты, были как внеземные цивилизации - в принципе должны быть, но в глаза их никто не видел. Сейчас ситуация не изменилась - разработчики под iOS есть, а под Mac OS X не наблюдаются.
>>3293825 >И что в этом плохого? Он обдвачеванный шиз, который умеет только пукать и копипастить фразочки с википедии, че поделать
Это как VIM\emacs индивидуумы пытаются доказать что они продуктивные без IDE) К слову, люблю иногда позалипать на ютубе в таких видосиках и покекать
>>3294912 >разработчики под iOS есть, а под Mac OS X не наблюдаются. Согласен, но не знаю, иос и свифт единственное что меня останавливает, ибо платформа\язык оч хороши
>>3293780 >Соответственно, все новые языки программирования носят на своем челе клеймо SJW изначально. Тоже +, но смотрел сурвей 2023 раста, там 50% лебсух геев и прочего, кекнул с этого. Но на свифте такого нет, максимум на WWDC всплывет клоун транс за 1 сезон, и все. Да и то, в 2024 он не появлялся
>>3294918 Я про электрон, его пилила команда из гитхаба для атома, теперь тоже самое делают на расте, пилят гуи для иде. Скорее всего исполнители разные, но вот эффективные менеджеры одни и те же. Вскод появился спустя 2 года после релиза электрона
>>3294983 >Он обдвачеванный шиз, который умеет только пукать и копипастить фразочки с википедии, че поделать Я счастливый владелец Айфона, по сравнению с андроидом тут реально всё гвоздями прибито, а сафари это ебучее говно. Но да, анимация красивая, плавная, за 2 года не тормозит, обои нескучные. С банковскими приложениями отдельная история тоже нескучная
>Это как VIM\emacs индивидуумы Тут тоже самое, у фанатиков эпл такие же разговоры лол, всё вокруг говно, а они в белом пальто
>>3295077 Это сишники ненавидят их, и линуксоиды, потому что у них нет компиляторов с поддержкой новых фич. У крестовиков всё норм с новыми стандартами.
>>3295204 >и линуксоиды, потому что у них нет компиляторов с поддержкой новых фич Лол, обычно наоборот сначала в линуксах и маках что-то появляется, потом это допиливают под винду, а тут как-то наоборот
>>3295233 >А что ты хочешь?) Выделять текст в браузере на двощах нажимать на номер поста и чтобы попало в цитату. Сафари не умеет, хром в андроиде умеет. Это и еще тысячу мелочей, от установки сторонних приложений до того чтобы ебучие иконки на рабочем столе не сортировались сами по себе когда удаляешь приложение
>Пердолинг? Для пердолинга у меня арч на компе есть, телефон использую как бытовой прибор
>Так пердолься(без негатива) в андроиде Следующий телефон будет именно андроид, а яблофон переоцененное говно для фанатиков эпл
>>3295221 > а тут как-то наоборот Лол. В плане стандартов крестов у майков всё сильно лучше. А ещё у линуксоидов часто устаревший gcc в системе, потому что на свежем может какой-то старый сишный код не собираться как надо, какие-нибудь ошибки сборки и подобное, а собирать им приходится каждый день что-то. Когда сидишь с двухлетним компилятором, то о каких свежих стандартах речь? Поэтому они и не переваривают ничего выше С++17, потому что компилятора нет. Шланг вообще сосёт по стандартам даже на свежем компиляторе.
>>3295077 Так новые стандарты наоборот позволяют хоть как-то терпеть унижения и боль языка. в С++20+ многое улучшили в плане шаблонов, появились концепты которые сильно упрощают жизнь. Наконец-то завезли нормальный формат. Корутины, хоть и недопиленные ( отсутствующие асинхронных деструкторов сводят на нет их адекватную применимость ), но в целом можно юзать если очень захотеть. std expected, string_view, jthread, heterogeneous lookup и т.д. куча всяких удобностей и полезностей. Это я говорю как плюсовик с 15 летнем стажем.
>>3295263 Ты бредишь, msvs вообще слабо поддерживает новый стандарт. Глянь табличку. Даже обоссаный интеловкий компилятор в который лет 5 не могли завести нормальную поддержку С++11 уже даже 23-й поддерживает, а msvc сосет.
Но имея опыт работы и на том и на том, могу с уверенностью сказать msvc говнище а не компилятор. Впрочем как и сама винда.
>>3295494 >std expected, string_view, jthread, heterogeneous lookup и т.д. куча всяких удобностей и полезностей. Звучит, как очередной ненужный набор свистелок и перделок.
>>3295494 >Наконец-то завезли нормальный формат. Майки какую то смузи хлебную хрень завезли для тех кто принтфы cout, string stream не осилил >>3295494 >Корутины, хоть и недопиленные Нежопиленное говно которое заставляет подключать какие то васянские библиотеки
Не мое мнение, буквально на работе это слышу 24/7 Плюсовики это известные ретрограды глобального масштаба, вот собственно и пример этого >>3295517
>>3295527 >кто принтфы cout, string stream не осилил Так тут концепция другая совсем, тут именно формат, а стримы это просто печать в стрим а если тебе надо отформатировать как-то по своему через стримы, то только костыльные модификаторы которыми ужасно неудобно пользоваться и которые далеко не все могут.
>заставляет подключать какие то васянские библиотеки Нахуя? Тебе нужно лишь обозначить класс корутины своей можно прям шаблонный взять какой-нибудь да и все реализация эвейтеров тут уже на тебе, это функционал приложения. Я лично запилил для себя либу на liburing с корутинами, норм тема только отлаживать бывает сложновато, но главное побольше трейсов запилить в код и запускать под санитайзером.
>Плюсовики это известные ретрограды глобального масштаба, вот собственно и пример этого Так он сишный скуф, он никакого отношения к плюсам не имеет. С++ абсолютно другой язык с другими концепциями и методами разработки, чем си. Умение писать на си != умение писать на С++. Зачастую код на С++ написанный сишником будет являться просто кривой реализацией си с классами, такое ниодин апрув в комите не пройдет. На счет ретроградов, наоборот все плюсовики с моих работ старались как можно быстрее на новый стандарт перепрыгнуть для облегчения себе жизни.
>>3295494 >>3295496 > табличку Чел, эта табличка говно, потому что релизные фичи надо по репе STL смотреть, а preview вообще без списка изменений. Эта табличка основана на вики майков, которая обновляется раз в два года. MSVC единственный компилятор, в котором полностью реализовано С++23 вместе со стандартной либой. И это единственный компилятор, в котором полная реализация С++20, в том числе модулей.
>>3295015 А там что, реально нельзя поставить сторонний браузер помимо Safari? >>3295249 >Следующий телефон будет именно андроид, а яблофон переоцененное говно для фанатиков эпл Так техника Apple это D & G от мира IT.
>>3295670 >А там что, реально нельзя поставить сторонний браузер помимо Safari? Браузер поставить можно, только разработчикам кроме движка webkit от сафари там ничего нельзя использовать, то есть по сути фаерфокс тупо нескучные обои поверх сафари как какой-нибудь амиго от маилсру обычный хром. Ну может там какие-то фичи типа закладок, синхронизации и прочего у других браузеров свои, но вот рендеринг и прочее поведение на странице это тупо сафари
>>3295942 Компелятор нет, а вот отвалится creates.io может легко, придется в настройках cargo прописывать зеркала. С докером такая ситуация была, но там обратно вернули
>>3296504 Лол, это у тебя бред. Сейчас фронтендеры занимаются такой же хуйней для поддержки сафари как и занимались раньше для ИЕ, либо забивают хуй на все. Тут на двощах с айфона нельзя выделить текст и нажать на номер поста для цитаты текст в цитату не вставляется, в webm тредах я вместо половины видео вижу хуй обновлялся не помогло. Собственно и так по всему интернету во всяких мелочах проявляется. У нас фронтендер ебался неделю с анимациями webp или как они там хз специально под сафари, когда был редизайн, чего-то там куда-то переконвертировал чтобы заработало как надо. Webkit сейчас эпл тянет в одно ебало, для хрома сделали форк blink собственно все туда и перехали от гугла с мелкософт до qt с оперой. Они до кучи еще и свой движок для js используют. Домохозяйкам может и не видно этого всего, но мне это очень сильно в глаза бросается.
>>3296658 >Сейчас фронтендеры занимаются такой же хуйней для поддержки сафари как и занимались раньше для ИЕ, либо забивают хуй на все. У тебя точно бред, чел, прими уже свой галлоперидол. Сафари 2й по популярности браузер. Что значит "занимаются хуйнуй для поддержки" поддерживать браузер с 20% market share - это заниматься хуйней по твоему?
> Тут на двощах с айфона нельзя выделить текст и нажать на номер поста для цитаты текст в цитату не вставляется, в webm тредах я вместо половины видео вижу хуй обновлялся не помогло Ой бедненький, наверное Apple должна была отдельно для твоего говна запилить поддержку чтоб ты на дваче срал своими шизомыслями? А то что макака хуй забил на поддержку чего либо ты не подумал. >webm Поддержка вебм уже давно есть. Все отлично работает.
> У нас фронтендер Ну видимо у вас кривая обезьяна вместо фронтэндера, хотя в общем-то фронтендер - синоним этого...
>Домохозяйкам может и не видно этого всего, но мне это очень сильно в глаза бросается. Да нет, у вас просто комманда криворуких фронтэндовых обезъян. Сразу бы сказал что ты фронтэндер и тогда было бы все понятно про тебя.
>>3296774 >Криворукие не могут под IE6 верстать Какой подрыв фанатика эпл, он на втором месте из-за того что гвоздями прибит в ios, вот тебе скриншот из Firefox, он сафари под капотом и определяют его как сафари. Были бы там настоящие хром и фф, то статистика была бы другая. К тому же если статистику отфильтровать по десктопу и мобилкам, то вся популярность сафари именно на мобилках, на десктопе график стремительно идёт вниз
>>3296774 > Сафари 2й по популярности браузер. Что значит "занимаются хуйнуй для поддержки" поддерживать браузер с 20% market share - это заниматься хуйней по твоему?
Ты долбоеб? Это точно такой же тейк, какой был у спермоебов во времена Осла и держал всю индустрию в очке, пока Гугл не начал продвигать Хромога. Нет, серьезно, ты же не можешь в базовую логику, возможно ты умственно-отсталый.
>>3296868 > гвоздями прибит в ios, вот тебе скриншот из Firefox, Это я и без тебя знал, дальше то что?
Сафари чем плох-то? В чем причина твоего горения? В том, что твои криворукие дауны с фронта не могут верстать под сафари?
Короче всё с тобой ясно криворукая фронт макака, что ты забыл в этом треде вообще? Хотя это же раст.... Я думаю ты найдешь себе много друзей по разуму в комьюнити раста, лол.
>>3296878 Ты блять сравни говно на палке в виде IE который вообще нихуя не поддерживал, и сафари который отлично работает.
Ебать пидоРастеры тупорые я в ахуе, хорошо в моём языке лоу айкью лгбт фемокуколдо гной не задерживается из-за его сложности.
>>3296981 Так я не фанбой эпла, чек пикрил, просто здраво рассуждаю в отличии от тупорылых макак которые горят от того, что им кросбраузерно приходится что-то делать. Тред даунов тут >>>>>> https://2ch.hk/pr/res/3294005.html
>>3297780 А никак, тут как бы нормальное поведение, один лок блокирует, другой ожидает когда разблокируется потому что ты сам его заставил ждать, это как змея пытающаяся сожрать свой хвост. Я вообще пришел к тому чтобы локи имели минимальное время жизни, если метод длинный, то места с локами оборачиваю в {}, ну и в целом их минимум
>>3297806 Я хочу использовать Arc<Mutex<bool>>, а сейчас тестирую через lazy_static! static ref Mutex<bool>. Внутри функции, которая делает всю операцию, локая перед этим мой глобальный мьютекс, есть еще вызовы локов на стейт приложения, что-то вроде data.lock().await Я стараюсь локать только когда надо получить что-то, и сразу же дропать лок.
>>3298136 Мне так и нужно, чтобы один ждал завершение другого, а потом начал свою работу. Проблема в том, что в какой-то момент что-то блочится намертво и не продвигается дальше. Мне нужен глобал лок, чтобы эта же функция рандомно не запускалась внешним ивентом и не начала параллельно изменять расшаренные данные, иначе алгоритм ломается. При этом локи на другие данные, необходимые для алгоритма, внутри функции я тоже оборачиваю в {}, либо сразу дропаю, как только лок становится не нужен.
>>3296795 Был такой экспириенс, нужно было быстро написать прототип одной идеи, писал на ts, дрочился, переписывал, в итоге дропнул (пересел на чистый js), ибо понял что большую часть времени рисую типы и подгоняю типы, вместо написания алгоритма. В общем, перепробовал шустро разные идеи, нашел лучше и уже потом навернул на все это типы.
Так вот, к вопросу что мешает. Порой мешает даже просто статическая типизация, вместо полета мысли занимаешься микроменеджментом и это обычная статик типизация. Так вот что творится в расте я просто боюсь представить с этими гига вложенными типами. Насколько разработка на расте медленная?
>>3298638 Привыкаешь сразу писать в 75% времени так, чтобы компилятору нравилось. Остальное окупается за счет того, что если скомпилировалось - будет нормально работать в 95% случаев, и не придется долго сношаться с багами из-за UB или непродуманной архитектуры. Но в сравнении с js или python - будет медленней там, где хочется по-быстрому набросать решение, а рефакторить потом. Некоторый опыт и High Level конструкции языка сглаживают эти моменты. Если у тебя часто возникают подобные ситуации, то будешь страдать. Алсо, дженерики и типы на это не влияют. Влияет только то, насколько ты хорошо понимаешь на практике работу борроу чекера и отдельные приколы раста.
>>3298638 > часть времени рисую типы и подгоняю типы Скилл ишью (без негатива). Тебе в любом случае писать валидацию входных запросов. А потом такую же такую же на каждом потребителе. >вместо написания алгоритма Псевдокод никто не отменял. Сначала понимаешь, что тебе надо, потом добавляешь поля, которые забыл. >я просто боюсь представить с этими гига вложенными типами. Борроу чекер приучает не делать гигавложенных типов. Чем площе структуры, тем проще с ними работать и проще рефакторить.
>>3298708 >Скилл ишью (без негатива). 18 лет проф. программирования на статик языках. О чем ты?
Ты в курсе вообще что такое прототипирование? Сначала ты пишешь одну сигнатуру, потом кардинально меняешь идею и бежишь переписывать под сотню сигнатур. Или ты думал от простой жизни прототипы на питоне пишут.
>>3298801 Давай расскажи, как на питоне пишут прототипы и где. Все залетные крокодилы почему-то про питон так говорят, но нигде не вижу, чтобы его использовали для написания каких-то мифических прототипов.
>>3298801 А зачем эта дилемма: либо так обмазываться типами, что типов становится больше чем кода, либо не писать типы вообще и потерять возможность навигации по коду и рефакторинга? Я просто пишу обычный "жс" с ненавязчивой типизацией. Интерфейсы для сервисов с парой методов, интерфейсы или Record для POJO. Если речь про переход на жсдок, то основная проблема жсдоков, как раз в том, что они не рефакторятся автоматически. Если изменил интерфейс, до придется обновлять все ссылки в жсдоках вручную.
>>3298795 Кто обзывается, тот так сам называется. >>3298801 >Сначала ты пишешь одну сигнатуру, потом кардинально меняешь идею и бежишь переписывать под сотню сигнатур Прототип должен быть простынёй почти без абстракций и модулей. Когда будет что-то рабочее, то можно уже выносить повторяющийся код, добавлять обработку ошибок и так далее. >Или ты думал от простой жизни прототипы на питоне пишут В Питоне куча батареек и есть Пип. Можно за 15 секунд поднять HTTP-сервак который будет отдавать хелло ворлд. В Расте разве что экосистема менее развитая, но что-то похожее тоже можно делать. А вот динамические типы в лучшем случае вкусовщина.
>>3298827 Алсо, в питоне уже давно пишут код с типизацией, обмазываются линтерами и тайпчекерами. А динамическую магию стараются юзать поменьше. Кто-нибудь объяснит, что такое "писать прототипы на питоне"? И почему его нельзя писать на других языках.
>>3298820 К js можно поставить ts чтобы он проверял js код, по необходимости отключать его если нужно (или частично отключать, например по файлам или строгости), а потом либо jsDoc привязать или d.ts. Чем я и воспользовался в том случае. Не то чтобы я хорошо знаю js, я его не очень люблю, но в тот момент возможность подключать/отключать проверку типов оказалась очень удобной.
>>3298638 Первое время мешает, потом пишешь уже нормально и что самое любопытное на других языках начинаешь писать как будто бы тебя ждёт бороу чекер, даже на js смотрю свой старый код там везде let и переменные дальше мутируются, а теперь когда пишу везде const, это прям сильно в глаза бросилось
>>3298827 Ты из какого года пишешь? Питонисты во всю используют тайпхинтинг и уже даже @override пишут. А говнякать на коленке удобнее на js, взял экспресс и хуяк хуяк набросал прототип
>>3298844 >Алсо, в питоне уже давно пишут код с типизацией, обмазываются линтерами и тайпчекерами. если код на выброс, то нет.
>Кто-нибудь объяснит, что такое "писать прототипы на питоне"? И почему его нельзя писать на других языках. минимально рабочий вариант для демонстрации работоспособности алгоритма / идеи. почему нельзя писать на других языках - внезапно разный complexity и наличие библиотек. >>3298708 >Скилл ишью (без негатива). а у тебя снобизм и максимализм. без негатива. >Псевдокод никто не отменял лол зачем? быстрее написать его на js/python. >>3298801 >Ты в курсе вообще что такое прототипирование? lдумаю что челик либо в универе еще, либо сразу после. иначе бы не задавал таких вопросов зачем нужно прототипирование.
>>3299027 Если работать полноценно, то только rustrover жыдбрейнс и тормознутая жаба или vscode + расширение rust analyzer помимо поддержки lsp сервера там более менее нормальный автокомплит и всякие переименования методов и полей структур умеет, плюс всякого по мелочи но электрон жрет всю память. А так есть просто текстовые редакторы к которым подключаешь lsp сервер и вперёд там от nvim и zed до всяких ноунеймов типа гномовского builder. Если работаешь не в rustrover, то у тебя будет работа через lsp сервер, который тупо вызывает cargo check с выхлопом в формате json, а cargo check выполняет всю компиляцию кроме создания бинарника, то есть потребляет много ресурсов, если работаешь с большим проектом на слабом компе или у тебя ноут быстро садится, то отключи проверку кода при автосохранении и повесь запуск lsp на какую нибудь комбинацию клавиш, должно помочь. Сейчас тоже в поисках чего-то легковесного в силу обстоятельств работаю с 8Гб оперативы на amd говне и так до конца года придется, но так и не нашел ничего подходящего кроме vscode
>>3299302 >лол зачем? быстрее написать его на js/python. То, что интерпретируемый язык с кучей батареек быстрее в разработке я не оспаривал, но речь-то о типизации. Что там в ста местах нужно править я вообще не представляю.
>>3299296 Открыл два последних коммита, подергали какую-то директиву, комментарий поменяли, и это за 4-7 дня. А я сегодня 9 часов код писал. Разные миры.
>>3299295 >дажена js смотрю свой старый код там везде let и переменные дальше мутируются, а теперь когда пишу везде const Что нужно знать об уровне местных фанбоев. Открыл для себя const. А после раста в жопоскрипте тоже данные везде клонируешь?
>>3299483 >Разные миры. Все правильно разные. Опенсорс проект куда вносить изменения крайне сложно, плюс отсутствие кабанчика с ПМ которые организуют процесс. Обычно там еще архитектура не очень вменяемая, поскольку разные люди, которые не всегда в контексте проекта начинают добавлять свои фичи, что усложняет поддержку.
>А я сегодня 9 часов код писал. И этот мир, где тебя погоняют хлыстом и говорят что делать
>>3299577 >местных фанбоев Самый главный фанбой здесь это ты, не нравиться язык, но один хуй приходишь. Вот это преданность, такая поддержка дорого стоит
>>3299433 >>3299304 >То, что интерпретируемый язык с кучей батареек быстрее в разработке я не оспаривал, но речь-то о типизации. Что там в ста местах нужно править я вообще не представляю тут я хз, может быть речь была про раст - что там в случае рефакторинга надо менять в 100 местах. я в свободное время тоже раст ковыряю. дофаминовый язык, получаешь кайф от преодоления выебонов компилятора. некоторые задачи заходят прикольно с литкода, но списки это хоть помирай. писать на нем какие-то свои проекты(только если не нужно экономить память) не решился бы. дата рейсы тоже не актуально, с опытом уже знаешь где ставить мьютексы, а где вообще лучше не шарить память. плюсы тоже нахуй, в 2024 году до сих пор нет нормальной поддержки utf-8 в std, зато тоннами завозят перделки из других языков.
Местные хейтеры были правы: менеджеры раста настолько всех заебали, что китайцы начали переписывать ядро linux на раст. Нефритовый стержень Си стал вялый бамбук!
>>3299668 Китайцы что только не пишут. https://2ch.hk/pr/res/3242329.html Умудрились компилятор для тайпскрипта в aot написать, причем у жопо-тайп-скриптов, нет поддержки нативно интов, лол.
>>3299679 > нет поддержки нативно интов Там скорее всего может быть проблема с совместимостью ts тип number у js под капотом это f64. Вообще я бы дождался полноценного релиза, они там еще во всю пилят его
>>3299824 Да, с auto костыли ебучие. Вывод типов одна из лучших фич крестов, а они заменяют её на такое. И ещё пикрил, что это нахуй, в крестах так можно.
>>3299824 Когда уже сделают нормальный возврат, fn getStr() 8====D String ведь весело когда тебе делать нечего и ты сидишь рисуешь стрелочки, хлебом не корми, хочу расставлять двоеточия, стрелочки, точки запятые.
>>3299871 Ну вариантов немного. Либо обосраться, либо поддержать в каком-то виде. Вот что они пишут: "Yes, Carbon will support move semantics; see p0257. In particular, we are experimenting with a hybrid of destructive and non-destructive semantics that we are hoping will combine the advantages of both." https://github.com/carbon-language/carbon-lang/issues/1685
>>3299871 У гугла не хватает спецов чтоб нормальные языки делать. Проект еле двигается, а системный язык требует ппц вложений, сам он не выстрелит. Никто не будет вендерложиться с свободных независимых плюсов на гугл кукан.
>>3299835 Автовыведение возвращаемого типа вроде не сразу в плюсах сделали, даже после auto. Я думаю за пару лет тут все ещё переколбасят. Пока надо ждать. Кому не терпится - писать на расте, правда когда карбон выпустят уже как Ватсон не сможешь без БЧ.
>>3299907 > правда когда карбон выпустят уже как Ватсон не сможешь без БЧ БЧ - это литералли худшая вещь в расте, его выпил самое первое что хочется получить.
>>3299911 Единственная вещь, из-за которой можно как-то продать это раст. >БЧ - это литералли худшая вещь в расте Кстати потомки как там в асинке дела, решили проблему с пинами?
>>3300009 Лол, го как раз показал какой технологии не хватало, но при этом показал как не надо дезайнить язык. Знаю людей, которые ждали что поверх рантайма натянут что-то годное (на фоне появление тогда котлина с его интеропом к джаве)
Дали оффер в финбигтех на миддла/сеньора хз, че там, сегодня оффер презентуют на +-к с перекатом из питхона в гошку. Там у них есть какое-то обучение, но хотел у бывалых спросить, есть ли что-то, что для такого переката было б классно почитать или изучить? Или можно просто доку прочитать и идти пили
>>3300032 >что почитать ВСЁ Блять, все смотреть и читать! Чем больше ты читаешь, тем более ценным сотрудником становишься. Никого в мире не ебет, что ты чего-то не знаешь или не выучил, это твоя проблема. Тебе дадут задание, сделать до такого-то числа, сам и ебись с этим. Думаешь за тобой будут бегать, Сычееев, ну почитай книжечку, ну пожалуйста! Да кому ты нахуй обосрался. Не знаешь тему - тебе же хуже. Тебе бабки платят? Сроки ставят? Не выполняешь - придет другой чел и выполнит за тебя работу. Не бывает слишком много знаний, и вопрос "че почитать" не имеет смысла.
>>3300032 Очевидный тур го, еще почитай про работу со слайсами там могут быть сюрпризы и многопоточка как там работают горутины waitGroup, каналы, мьютексы. Остальное на каждом проекте будет индивидуальным
>>3300069 >кукарек с дивана Этого не слушай, если берут на перекат с других языков, то скорее всего есть онбординг и все в курсе что ты можешь тупить первое время и они сами перекатывались с других языков
>>3300069 >ВСЁ Блять, все смотреть и читать! Двачую, и начать надо с чтение двача, с перечитывания всех тредов javascript, потом питон тредов, потом руста.
>>3300088 Так писать может только мудень var i I i.M() type I interface { M() }
Это вообще не читается. Не рекомендую го тур, его писали люди далекие от промышленного программирования. Как-будто в 70е годы старый болван сел за компуктер
>>3300461 Ты не прав. Зиг это моча, обосранная говном. Я глянул примеры, аллокаторы каждый раз при создании объекта или массива в куче? Жёстко конечно. И там ещё нет динамик контейнера типа вектор.
Кто-нибудь вообще понял систему владения? Я вот вообще ни чего не понимаю. Как вообще программировать с этой системой, она же ничего не позволяет делать нормально? Это как вилкой чистить говно.
>>3300618 базово там все просто: в один момент времени либо 1 пишущая ссылка, либо множество читающих. это чтобы предотвратить рейс. проблема в том, что это все сопровождается кучей аннотаций компилятору, чтобы он тебе поверил что ты его не наебал где-то. и если вдруг, потом ты решишь это все засунуть по нескольким потокам - то сходу охуеешь. в противовес например го, где просто добавишь rwmutex и горутины.
>>3300618 Система владения была бы нормальной, если бы не было тупого запрета на число мутированных ссылок. Они победили какой-то тупой момент гонок, но поставили всех раком во всем языке.
>>3300639 Чего ты орешь? Vec это типичный динамический массив по типу ArrayList в других языках, с ним гораздо удобнее работать когда он есть в стандартной библиотеке и у всех в коде будет работать одинаково, чем с непонятной самописной недохуйней, которая везде разная и у уважающего себя криворукого Васяна обязательно наебнется в рантайме
>>3300639 Причем тут системный язык? В плюсах и расте он есть. Не вижу смысла в 24 году ебаться с изобретением велосипедов типа вектора или словаря. Концепция аллокаторов конечно потрясает своей "новизной", но можно было ее сделать не такой нарочитой. Короче вердикт - как показал го - победит язык с нормальным синтаксисом, богатой стандартной библиотекой, зелёными потоками из коробки и адекватной концепцией владения памятью(хотя бы не ебать мозг количеством пишущих ссылок).
>>3300775 >>3300777 Тут даже не столько ебля с написанием коллекций типа вектора и всяких хэшмап, сколько универсальность решений, которые используются можно сказать всегда и любой человек работающий с этим языком их знает и не будет тратить время на понимания принципа работы. Ну и само собой эти коллекции уже опробовали множества людей, что уменьшает риск ошибок
>>3300835 Наличие стандартной имплементации контейнера в стдлибе вообще ничего не решает, если ты не обоссаный вкатун. >>3300838 >IoC и DI Нахуй ты в треде про системный язык, джавапидор?
>>3300839 >Наличие стандартной имплементации контейнера в стдлибе вообще ничего не решает, если ты не обоссаный вкатун. Ну если в соло писать крутые проекты хэлоуворды для того чтобы заполнить гитхаб перед собесом, то да ничего не влияет. Если разработка ведется командой, то использование стандартного решения, которое все знают будет в приоритете
>>IoC и DI >Нахуй ты в треде про системный язык, джавапидор? Как же ты весело позоришься
как же дохуя крейтов для вещей, которые должны быть в стандартной либе, из-за чего большинство крейтов это однострочники-обёртки над ансейфом. ещё много крейтов который уже не нужны из-за наличия аналогов в стандартной либе, но которые до сих пор юзаются в новых проектах из-за популярности.
ПлюсовикиМогу если хочешь даже сказать шаблонные упрёки в новых стандартах Этот крестовик не крестовик Так или иначе таких либо большинство, либо около половины
>>3301232 >Стандартное решение = хуйня из стдлиб Все правильно это хуйня с поведением которой все знакомы, а нестандартное решение хуйня от васяна, который уволился полгода назад и никто в душе не ебет что его словестный понос в 5к строк делает. Первое решение подойдет для работы, второе для васяна наполнить свой гитхаб.
>джавапидорас Ты вместо того чтобы пугаться кода на жабе, почитал бы эту статью с хабра, которая в первой строчке выдачи гугла. Вот кстати примитивный пример DI на пике, когда AppState внедряется сверху и ты можешь замокать (например вместо настоящих моделей которые у тебя в стейте заглушки, которые отдают тебе нужный результат вместо запроса к БД) и покрыть тестами свой код не зная что делает весь остальной код. Даже если ты не будешь писать на расте ты все осознанно или нет равно придешь к тому чтобы использовать DI в том или ином виде, так что лучше почитай чего умные дяди пишут
>>3301426 У них как использовался так и используются движок gecko https://firefox-source-docs.mozilla.org/overview/gecko.html они пилили новый движок в качестве эксперимента, но не потянули финансово, теперь этим занимается Linux Foundation, а там его пилят 3,5 человека чего-то выпускают, но пока стабильной версии нет еще. Оно и не удивительно за последние 15 лет постоянно добавляют новые фичи в html и css там одно только прочтение всех стандартов https://www.w3.org/TR/ займет месяцы
>>3301439 >с поведением которой все знакомы Напомнило как вроде в 2016-2017 году в гну либс чёто там поменяли, у пидорax пригорело, хотя в стандарте никто это поведение не обещал. >а нестандартное решение хуйня от васяна >бyст Ебаный ты джавапидарас, ты вообще не понимаешь, о чём ты пишешь.
>>3301465 >ты вообще не понимаешь, о чём ты пишешь. Это ты не понимаешь о чем говоришь, а про DI прочитай умные статьи лучше, как-то ты ловко проигнорировал лол
>>3301426 Успешные менеджеры превратили язык в продукт и стали разводить хайп и доить. Лиса терпела, получила болт, вместо серво и дропнула паразитов, паразиты создали фонд, и стали разводить дальше.
>>3301609 Ты не разговариваешь, а чего-то кукарекаешь, сам не понимаешь чего сказать хочешь, но надо поогрызаться словно тебя раскаленной кочергой ебут если не ответишь. Речь же выше шла что ты протестировать свой код не в состоянии, тебе предложили подробнее узнать про DI, ты давай чего-то про жабу ныть, хотя о ней тут ни слова не сказано лол и теперь чего-то обижаешься как баба в месячные
так кто-нибудь делает? крейты сами по себе довольно независимы и могли бы применяться отдельно, но всё же хочется запихать их в один воркспейс, а также что бы у них была отдельная история коммитов, как быть?
Есть структура с полями или просто vec. Мы его дампим на диск с помощь bincode (трейты Encode, Decode и т.д.)
Файл получается большой и долго потом считывается. Есть какие-нибудь способы "из коробки" фрагментировать его на множество файлов, типа каждый элемент в отдельном файле и читается только нужный файл? И, главное, чтобы это было все прозрачно при декодировании, т.е. мне не пришлось бы прописывать "если нужен этот элемент, то читать этот файл". Типа указал, вот струкрура, разбить так-то, а дальше оно само все выводит. И при считывании считывает не все структуру, а нужные файлы в зависимости от того, какой элемент или поле читают?
>>3303224 А что вообще хранится в структуре? Может имеет смысл использовать какие-нибудь специальные решения именно для хранилищ. Например блохчейны работают на leveldb https://github.com/google/leveldb на расте есть библиотеки для нее например https://crates.io/crates/leveldb-rs-bindingтам есть заброшенные ищи что посвежее она переваривает сотни гигабайт блоков и транзакций в эфире. Как раз похоже на твою задачу, там принцип как у хэшмапы и все раскидано по файлам, правда я с ней работал только в гошке когда ковыряли эфировскую ноду, на расте не знаю как. Может и на расте есть какие-то реализации чего-то похожего, смотри в эту сторону.
>>3303240 Ковыряю крейт (работающий) и отталкиваюсь от того, что есть там, а не пишу что-то from scratch.
Посмотрел повнимательнее, там Vec<u8> на очень дохуя гигов, а все остальные читают с него через сырые указатели (в unsafe): slice::from_raw_parts slice::from_raw_parts_mut
>раст хуйня стд либа говно почему так? >>мы специально держим её наиболее минимальной, чтобы дать юзерам самостоятельно выбирать, подходящие под задачи крейты, что довольно легко с наличием хорошего пакетного менеджера нахуй тогда вообще нужны std, core, alloc, proc_macro, test крейты, идущие вместе с компилятором, можно было их также сделать доступными только через менеджер пакетов и выкинуть нахуй prelude, тогда бы точно ни у кого не было вопросов, почему стандартная либа такая маленькая, т.к. без крейтов искаропки и неявного импорта (основной фактор) не было бы установки, что стандартная либа есть и всем бы было ясно, что надо либо пилить самому, либо брать готовые и явно их импортировать. подводный? почему так не сделали? есть no_implicit_prelude. no_std, no_core, но имхо они должны были быть дефолтными атрибутами.
Есть оператор let a = b; В одном случае он выполняет копирование, а в другом перемещение. Это две разные операции, но синтаксически они ни как не разделяются, в итоге совершенно не понятна семантика программы, потому что она сплошь состоит из этих неявных операций. Rust вроде как собирался бороться с неопределенным поведением, но сам порождает неопределенное поведение своим кривым синтаксисом и скрытой семантикой.
>>3304986 Потому что писать "батарейки" надо качественно и долго так как нужен реальный фидбэк по реальному коду, а не маня api, потому как потом это все не выкинуть. Понятно что ресурсов на все это нет и надо "продавать продукт", а не заниматься чепухой с разработкой, поэтому и добавили затычек, глядишь попенсорщики нахаляву допилят.
>>3305120 Это ты еще операторов << и >> в плюсах не видел, вот там действительно нихуя не понятно что они делают, уже начиная с хэлоуворда какой-то шифт оператор со строкой, хуй пойми чего делает, в итоге совершенно не понятна семантика программы, потому что она сплошь состоит из этих неявных операций.
>>3305224 >Это ты еще операторов << и >> в плюсах не видел, вот там действительно нихуя не понятно что они делают Не пизди, все там понятно, это битовый сдвиг, но как любой оператор его можно перегрузить и делать что угодно в зависимости от твоей фантазии
>>3305471 Почему тогда в случае: let b = String::from("hello"); let a = b; переменную b мы не можем использовать, а в случае: let b = 5; let a = b; доступны обе переменные a и b? Значит всё-таки это разные операции и делают они не одно и то же.
>>3305592 Лол растеры сами не знаю почему происходит двойное поведение. Там на примитивы реализован трейт Сopy, поэтому передачи владения не происходит. Но это неявная магическая херня, поэтому раст сосет, а зиг рулит.
У тебя еще побомбит от затенения переменных. Атовыведение типов и затенение просто дарят пласт плавающих ошибок. Очень безопасненько, по питоновски просто.
>>3305651 Нафиг мне учить магическую анально-ограниченную говнину? Если есть мув-семантика, так пусть она будет всегда, а не под капотом спрятана за трейты, которые ты либо подключил либо нет.
мы 90% времени читаем код, а не пишем и любое подводное руби-поведение превращает язык в тыкву.
>>3305637 >Но это неявная магическая херня, поэтому раст сосет, а зиг рулит. Это явная херня поскольку тип имплементирует трейт, тут нет никакой магии. Если ты откроешь доку и прочитаешь про маркер трейты, то у тебя вообе никаких тупых вопросов не будет. Маркер трейты собственно для этого и нужны
>затенение Если пишешь бред сумасшедшего на 1000 строк в одном методе, то земля тебе пухом тут встрянешь, а если пишешь нормальный код, то у тебя таких проблем не возникнет Снова покормил
>>3305866 >Это явная херня поскольку тип имплементирует трейт Где? Быть может строкой ниже? Или быть может строкой выше?, Или может мы импортировали трейт? Или хотя бы макрос повесили? Или аннотацию? А может это тупо магический неочевидны кусок говна?
>а если пишешь нормальный код, И снова плохие программисты. Ты плохо не пиши, пиши хорошо. Для тоталитарного языка, с кучей ограничений, такая дрисня смотрится издевкой.
>>3305881 Спасибо что предупредил. Правда, я не хотел его использовать и вообще не понимаю зачем он нужен. Лучше бы к расту делали сноску, чтобы люди не тратили свое время на сие подделие.
>>3305874 >Где? В крейте где ты используешь, никто в другом месте к строке Copy не добавит. Ты можешь имлементировать трейты из других крейтов, только к типам которые в твоем крейте. Ты можешь импелементировать только свои трейты к чужим типам. Ты можешь имплементировать свои трейты к своим типам. Всё.
>Быть может строкой ниже? Или быть может строкой выше?, Есть правила хорошего тона, которые судя по всему к таким как ты не относятся, делать имплементации непосредственно рядом с типом или трейтом, который ты сам же и написал. Но ты, я погляжу, человек творческий найдешь где спрятать.
> Или хотя бы макрос повесили? Ты явно в коде будешь использовать этот макрос своими руками
>Или аннотацию? Ты это увидишь это в #[drive] над твоим типом
>Или может мы импортировали трейт? От импорта трейта не происходит имплементации
>И снова плохие программисты. Ты плохо не пиши, пиши хорошо. Речь идет о базовых вещах, как KISS, SOLID, DRY. Если ты объявил в одном методе 2 переменных с одинаковым именем, да к тому же это может привести к какой-то путанице, то наверное тут что-то не так с кодом. Хотя куда уж нам, бородатым дядям, до таких особенных творческих мальчиков как ты.
есть шарящие за бинкод? есть структура есть ручная имплементация трейтов Encode и Decode для этой структуры с encode понятно: self.имя_поля.encode(encoder)?;
в decode аналогично: Self { имя_поля: Decode::decode(decoder)?, };
так вот блядь вижу конструкцию вида isize::decode(decoder)? что она блядь возвращает? понятно, что isize, но откуда она его берет, если в encode ничего такого нет? мне казалось, что кодируем, то и можем декодировать
>>3306075 короче, понял как это гавно работает там нет привязки к полям структуры она видимо тупо побитово считывает, а isize::decode(decoder) это просто следующие биты после предыдущего decode(decoder)
>>3306615 Какой-то буллшит с разноцветными функциями, я так и не понял. На мой взгляд есть чисто философские проблемы с фреймворками типа tokio, которые вхуяривают универсальный комбайн в мою системщину. Ты берёшь системный язык, нужный чтобы четко управлять потоком данных, а потом делегируешь всё это громадной либе размером с нод.жс.
>>3306615 Как и в любой асинхронщине - тебе надо покрасить весь код или костылить синхронные костыли повсюду. А ещё это по производительности всегда хуже нормальной многопоточности.
>>3306680 >что все что трогает асинк, сам становится асинком
Если ты подключаешь какую-то либу для логгирования, тебе нужно использовать эту либу везде. В ООП ты либо пишешь всё приложение вокруг гигаобъекта, либо передаёшь в функциях по 20 параметров. Так, сука, программирование работаёт.
>А по самому токио какие проблемы? Да я уже сказал. У тебя есть огромный рантайм, который должен делать тебе хорошо. А если он вдруг не делает тебе хорошо, то тебе бог тебе в помощь. Нужно что-то менее универсальное, зато гибкое.
>>3306687 > В ООП > либо передаёшь в функциях по 20 параметров. Не понимаю о чем ты, но вот фишка процедурного программирования, это как раз в функциях овер 5-10 аргументов. Где ты увидел 20 в методах, я хз.
>>3306675 Помнится я срался с одним чуваком, который меня убеждал что это вообще не проблема. Но выглядит на грани фанатизма, типа как некоторые гошники усирались что дженерики не нужны.
>>3306719 >Где ты увидел 20 в методах, я хз. Вменяемые люди так не делают, поэтому есть один убер-объект, который управляет. Получается, что методы этого объекта имеют свой цвет, и если ты хочешь добавить новый функционал, то тебе нужно расширять этот класс. Прямо как с асинком.
>>3306777 Ты не понимаешь концепт цветных функций, прочитай уже статью (она там гуглится, автор и ввел это понятие) В случае синхронного апи - они всегда синии, причем тут ООП. (т.е. могут вызывать друг друга, как и зеленые из го, а вот про красные ты прочитаешь уже сам)
>>3306801 >причем тут ООП Есть глобальная функция ToLowerCase, есть метод класса CountLetters. Первую из второй ты вызвать можешь, а вторую из первой только если ты создашь объект этого класса. Не щелкает?
>т.е. могут вызывать друг друга, как и зеленые из го, В го есть рантайм, который для каждого потока\корутины поддерживает свой стекфрейм и пересобирает его по мере надобности. Там все функции красные. А вот если ты хочешь позвать нативную функцию, которая ничего не знает о Го неожиданно нужно делать кучу приседаний.
>>3306949 Сейчас бы с ГОвном сравнивать и говорить что если у них так сделано, то значит и у нас норм. Хотя например в крестах корутины имеют обратную ABI-совместимость с прошлыми стандартами и корутину можно вызвать даже если твой компилятор их не поддерживает.
>>3306970 Сами слушают голоса в голове про шизоцветные функции, а обострение у меня. >>3306987 >Чего куда пересобирает? Восстановление контекста исполнения? Стек корутины где хранится и как устроен? >Ты про вызов из нативного кода гошной функции? И наоборот. Точно также ты не можешь из корутины на Го сделать DLL'ку, которую можно вызвать из Си, не запихав в неё весь гошный рантайм. И это даже вообще не проблема, но именно в Расте из этого раздувают драму. >>3306972 Корутины не вызываются, это просто стейтмашины. Токио тоже был до асинка.
>>3307010 >Стек корутины где хранится и как устроен? ты на вопрос ответишь прямо или так и будешь туманно попукивать с умным видом?
> И наоборот. Точно также ты не можешь из корутины на Го сделать DLL'ку, которую можно вызвать из Си чего наоборот? из го вызывать сишные либы не проблема, если следить за памятью. вызывать из си гошные функции это никому не унужная хуйня.
>>3306687 Не понял проблемы, tokio - опицональный рантайм, если не нравится замени его другим/своим. Вполне нормальная идея для системного языка как по мне.
Не юзал асинк раст для микроконтроллеров или подобных мест где важен размер рантайма, но полагаю примеры таких рантаймов есть: https://github.com/embassy-rs/embassy
>>3307064 >>3307077 У вас длина контекста как у нейросетки. Был вопрос, что за хейт в сторону асинков. Я вспомнил про цветные функции, и полтреда пытаюсь объяснить, что так всё программирование работает, блять.
>>3307077 >Не понял проблемы, tokio - опицональный рантайм Кстати выше джавапидарас говорил, что надо всё тащить в стандартную библиотеку, ваше ебало если бы токи был в ней?
>>3307247 Нормальную реализацию как в каком-нибудь шарпе можно было бы и притащить. Но кроме дотнета никто не пилит стд, у всех всё в стиле Тодда "Сами допилят" Говарда.
>>3307247 >джавапидарас Это какой-то залетный студент услышал про DI когда обосрался с тестированием и начал искать джавистов под кроватью после первых ссылок в гугле. Речь же выше шла про всякие коллекции типа вектора и хэшмапы, что для разработки в команде стандартные решения гораздо лучше самописных костылей васянов которые уволились год назад. А для всяких специфичных штук можно использовать no_std и запускать свой DOOM на тесте для беременности
>ваше ебало если бы токи был в ней Не нужно его в стд, токио по сути нужен только для бекенда
>>3307088 так ты свой пост перечитай что ты там утверждал. и хейт в сторону асинка обоснован. но не конкретного языка, а концепции в целом. потому что на го такой код пишется проще и не выглядит как кусок костыльного говна. но некоторые насктолько фанатично преданы своему любимому $language_name что будут даже костыли выставлять как достоинства.
>>3307275 кто-то евреев ищет, а кто-то джавистов на дваче в треде про раст. лол >>3307247 >ваше ебало если бы токи был в ней? охуенно, чем больше бы ныло, тем быстрее сделали бы ее адекатной. либо ушли бы писать другую, а растовцы потом бы спиздили себе.
Реализуются ли вообще на rust алгоритмы на графах без ансейфа? Дело в том, что в таких алгоритмах ноды связываются ссылками друг на друга и тут нарушается принцип владения раста.
>>3307290 Без ансейфа реализуются, но для производительности лучше с ним
> в таких алгоритмах ноды связываются ссылками друг на друга Ты совсем зелёный? Ну подожди, в универе на первом курсе расскажут что граф можно хранить и матрицей и списком ребер и тому подобным
>>3307290 Какой конкретно? Я так понял связи произвольные, тогда каждая нода содержит Vec<Optional<Node>> ну и проблем с редактированием и обходом таких нод без использования ансейфа не вижу
Почему хеллоуворлд на расте весит 400Кб? Что там такого в бинарнике, что для того чтобы вывести два слова в консоль надо 400Кб кода!? И это релизный билд. Дебажный занимает 3,5Мбайта. На си хеллоуворлды почему-то занимают всего 15Кб.
>>3308081 Бля ну потому что си использует системную библиотеку STD для вывода текста и так далее. Он не включает её в бинарник. А раст включает. Поэтому у него размер бинарника больше. Чтобы было честно, надо компилить с флагом no_STD https://docs.rust-embedded.org/book/intro/no-std.html
>>3308081 Чел, ты на это уже жаловался. Смени методичку. >Что там такого в бинарнике, что для того чтобы вывести два слова в консоль надо 400Кб кода!? Выведи LLVM IR и посмотри. Или вообще в хекс-редакторе бинарь открой.
>>3308401 Как выше уже написали итераторы ленивые, тебе нужно вызвать next или делать collect и только тогда будет вызван метод, который ты передал. Можно в код нырнуть и глянуть как оно там работает, там довольно все просто написано .map() просто делает обертку и возвращает эту структуру https://doc.rust-lang.org/src/core/iter/adapters/map.rs.html#61 чтобы произошел вызов твоей функции, нужно вызвать next(), тогда структура Map вызовет у итератора метод next() и если там есть что вернуть то в Option вызовется метод, который ты передал https://doc.rust-lang.org/src/core/iter/adapters/map.rs.html#106
>>3308401 >вместо map надо юзать что-то другое? Если тебе нужно в цикле просто вызывать что-то другое, то лучше первый вариант. А если надо манипулировать с данными и потом их во что-то собрать, то удобнее итераторы
Есть вектор из T (примитив, не структура), есть поинтер mut T
Как корректно забить нулями кусок заданной длины (в T) начиная с поинтера? Чтобы все остальное осталось в памяти нетронутым, т.к. на этот вектор еще дохуя mut T.
Понятно, что это что-то типа from_raw_parts_mut в unsafe, но как конкретно?
>>3308658 нет, есть вектор на 100000000 элементов есть мутабельный указатель на абстрактный 10000ый элемент надо следующие 100 элементов сделать нулями при этом надо, чтобы этот вектор на 100000000 никуда не релоцировался, т.к. на него еще овердохуя указателей
>>3308371 У зига как у сишки, даже чуть меньше, потому что нет жирного libc. >>3308976 У Шарпа сейчас ровно 1 мб у хеллоуворлда с АОТ-компиляцией. Не так уж далеко от раста, меньше чем у ГОвна.
>>3309016 Принудительно выключена рефлексия. Из-за неё на этапе компиляции нельзя понять какой код используется, а какой нет. А без этого понимания нельзя тримить либы, соответственно рефлексия заставляет весь дотнет с собой таскать. Т.е. все либы без рефлексии работают. Весь не-гуевый дотнет работает. С WPF ещё были проблемы, когда последний раз год назад чекал, из-за XAML, который через рефлексию в IL компилируется. Из бонусов есть возможность вызывать дотнетовский код из сишки, делать нативные либы с FFI под другие ЯП. И потребление памяти в разы меньше чем в JIT. По скорости никаких изменений. В целом профитов мало, разве что делать портабельные утилиты или всякие службы, постоянно висящие в фоне.
>>3309022 В любом случае прикольно что они дотнет во все стороны развивают.
Я несколько лет назад писал веб-бота на селениуме, так вот там надо было цепочку действий делать (помимо авторизации) и каждый раз перезапускать и ждать все эти действие было проблемной (буквально вносишь строчку кода чтобы глянуть результат и минутами ждешь имитацию человека в браузере) и тут вижу что дотнет сделал горячую перезагрузку - ппц я тогда кайфанул с этого (и как вовремя для меня они это сделали).
Если есть какой-то объект (хуй с ним, пусть будет вектор), с которым не делают операций, которые завязаны непосредственно на него (пуши, аппенды и пр.), то насколько безопасно давать на него поинтер?
При этом этот вектор является полем структуры, которую ебут в хвост и гриву, гоняют туда-сюда, но не удаляют и сам вектор, повторюсь, не трогают. И структуру не клонируют, а ебут через ссылки. Вектору похуй или есть шанс, что он куда-нибудь переедет?
>>3309862 Если ты ничего с ним не делаешь, то ничего не произойдет, очевидно. А зачем тебе указатель на вектор, если ты будешь им пользоваться как иммутабельной ссылкой на слайс?