Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.
Ссылка на официальный сайт: https://www.rust-lang.org/
В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.
IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
GayDev для Rust: https://arewegameyet.rs/
Что еще есть для Rust?
- Посмотри сам: https://wiki.mozilla.org/Areweyet
Основная литература:
Rust Book(версия на русском языке): https://doc.rust-lang.ru/book/
Rust Book: https://doc.rust-lang.org/book/
Rustlings (упражнения чтобы привыкнуть к расту): https://github.com/rust-lang/rustlings
Rust by Example: https://doc.rust-lang.org/rust-by-example/
The Rustonomicon(для продвинутых анонов): https://doc.rust-lang.org/nomicon/
Programming Rust: https://www.oreilly.com/library/view/programming-rust/9781491927274/
Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41
Предыдущий >>3125439 (OP)
Ну рассказывайте, чем вы на расте занимаетесь, что пишите?
Rust создан быть лакеем в жс комьюнити. Сверхбыстрые парсеры, компиляторы, хешеры, вот это вот всё. Словом там, где сосала нода. За пределами JS экосистемы оно нахуй не упало.
Да, да, конечно. Давай, расскажи, много уже системных приложений написал на Расте?
> Rust создан быть лакеем в жс комьюнити.
Там разве уже не zig правит балом? Или на каком там языке новую убийцы ноды написали? bun кажется называется
> За пределами JS экосистемы оно нахуй не упало.
А как же крипта...
>>189375
> Давай, расскажи, много уже системных приложений написал на Расте?
По этой логике если мы аналогичный вопрос в плюсо треде зададим, то получится что и плюсы не системный
А у меня с литкодом вечные проблемы
Мозг выучен писать как в с/с++, так и тянет каждый раз по тупому без итераторов и с ансейф писать
Ну я так же поначалу делал. После принятого решения заходил в Submissions и смотрел чужие решения. Иногда офигевал от того, как можно по другому написать, не ленился и тут же старался написать самостоятельно в том же духе.
Всё одно и тоже. Когда в таком стиле 1000 строк кода написана хочется закрыть этот пиздец и больше никогда не открывать.
https://www.youtube.com/watch?v=TGfQu0bQTKc
>пик
Какой-то пидорский мусор если честно, и то, что раст позволяет писать так, это нихуя не круто
Надо чтоб код быстро сверху вниз читался, чтоб по началу строки было понятно что делаем в ней и переходить к следующей если не интересно что там. Без необходимости водить глазами по лесенкам и разбираться что там в лапше монад напихано. В функциональных языках специально синтаксис сделан столбиком, чтоб легко читалось беглым взглядом. А в расте всё это сразу превращается в кашу, в которую надо вчитываться. Так же как при скролинге текста можно не вчитываюсь быстро вычленить о чём там написано и начать читать с нужного места, так и в коде должно быть.
>В функциональных языках специально синтаксис сделан столбиком
да ладно, нах. Также - хочешь - в строку ебашь, а хочешь столбиком.
И ты покажи на сях или плюсах, чё мнёшься, аки целка.
Это Сшный код, просто с крестовыми плюшками.
Сейчас никто в нормальном коде не будет юзать raw pointer-ы без необходимости, юник и шареные птры во все поля.
Во вторых хуета какая-то, где классы, интерфейсы или темплейты на каждый чих и пук.
Вообщем красиво если бы так было, но любой продуктовый код совершено не похож на эту штуку.
Даже Сишный продуктовый код, так как там куча макросов обычно стоят
Мимо приходится работать с этим говном
> никто в нормальном коде не будет юзать raw pointer-ы без необходимости
Все их используют, от того что ты обернёшь их в RAII-обёртку работа с ними не поменяется, когда не владеешь объектом можно спокойно указатель на него кидать в функции.
> где классы, интерфейсы
Кресты не ООП язык, если что. А то что ты некие интерфейсы приплёл говорит о том что ты кресты не видел вообще, наверняка из джавы пришёл.
> любой продуктовый код совершено не похож на эту штуку
Лол, это код из крестового проекта, который крупнее ядра линукса, 26к cpp файлов. Держи ещё пример кода оттуда.
Не знаю что ты там проходил. В крестах даже в std нет ООП. То что в языке есть некоторые элементы ООП не значит что это теперь ООП язык. С таким же успехом раст можно им назвать.
Ты можешь использовать ооп в крестах, но не обязан это делать. Шаблоны вообще лютая функциональщина, ты там можешь монады наяривать. Мультипарадигмность!
>Кресты не ООП язык, если что.
Конечно не ООП. Этот язык — помойка, в которую тащут любой актуальный тренд. Кстати, купите ещё книжек.
> Все их используют, от того что ты обернёшь их в RAII-обёртку работа с ними не поменяется, когда не владеешь объектом можно спокойно указатель на него кидать в функции.
Когда ты не владеешь объектом то кидаешь какой-нибудь shared/weak ptr или меняешь архитектуру, но использовать raw принтеры без необходимости тебе любой адекват завернет. Но действительно, суть от того какие поинтеры использовать не меняется, но меняется то как это выглядит, а тут главный момент к тому как это выглядит.
> Кресты не ООП язык, если что.
Я очень рад что кресты поддерживают несколько парадигм, только абсолютному большинству похуй на это ибо ООП к сожалению единственный де факто стандарт корпоративного кода.
>А то что ты некие интерфейсы приплёл говорит о том что ты кресты не видел вообще, наверняка из джавы пришёл.
Извини, а что такое интерфейс? То что помечено каким-нибудь атрибутом interface? Нет блять, это то что используется как интерфейс. Даже в С спокойно их используют, как в vfs например, и то, что в С нету языковой поддержки интерфейсов абсолютно никому не мешает их использовать.
> Лол, это код из крестового проекта, который крупнее ядра линукса, 26к cpp файлов. Держи ещё пример кода оттуда.
Окей, тут ты прав, кто-то может писать на С с классами. Я слышал что даже швятой гугол также делает.
Тем не менее это не совсем то, что представляет из себя современный С++
> кидаешь какой-нибудь shared/weak ptr
Чел, ты точно крестов не видел никогда. В любом смарт-указателе ты получаешь сырой указатель из него и работаешь с ним, по другому это не работает. Они для RAII сделаны, а не для того чтобы навсегда заменить указатели.
> де факто стандарт корпоративного кода
По мнению джависта - несомненно.
> это то что используется как интерфейс
И что же ты в крестах собрался использовать как интерфейс? Виртуальные классы литералли никто не использует в реальном коде. А в современных крестах с метапрограммированием используются концепты - они ничего общего с интерфейсами не имеют.
> это не совсем то, что представляет из себя современный С++
Так ты и рассказываешь про какую-то шизу в стиле си с классами, как у гугла, где фактичекски сишка с ООП. В современных крестах ничего подобного нет, последние ООП-фичи в стандарт добавляли в начале нулевых, с тех пор от него пытаются только отодвинуться.
> Чел, ты точно крестов не видел никогда. В любом смарт-указателе ты получаешь сырой указатель из него и работаешь с ним, по другому это не работает. Они для RAII сделаны, а не для того чтобы навсегда заменить указатели.
То что они используются для RAII согласен, только тейк про то как это выглядит в коде. Раст хотя бы красиво их обходит, хотя иногда начинается Arc Box Huinya Map int
> По мнению джависта - несомненно.
Несомненно ты работаешь на С++ там где используется совершенно другой подход
> И что же ты в крестах собрался использовать как интерфейс? Виртуальные классы литералли никто не использует в реальном коде. А в современных крестах с метапрограммированием используются концепты - они ничего общего с интерфейсами не имеют.
У нас в одной зелёной компании пытаются это завозить. Только кучу С++17 кода никто никуда девать не собирается. А у многих проекты и постарше. К сожалению с нами ещё долго будут классы типа IHuyna с виртуальными методами.
> Так ты и рассказываешь про какую-то шизу в стиле си с классами, как у гугла, где фактичекски сишка с ООП. В современных крестах ничего подобного нет, последние ООП-фичи в стандарт добавляли в начале нулевых, с тех пор от него пытаются только отодвинуться.
Отодвинуться пытаются, только из того что я видел пока не отодвинулись
> только тейк про то как это выглядит в коде
Если не похуй на производительность, то unique_ptr на объект для RAII, а в функции сырые указатели. Если не сохранять эти указатели внутри функций куда-то, то ничего не случится, т.к. объект под указателем уничтожится где-то после выхода из функции, его абсолютно безопасно использовать и нет никакого смысла тут усложнять что-то. shared_ptr сделан для многопоточности, это из названия уже должно быть понятно, использовать его в однопоточном коде нет никакого смысла.
> shared_ptr сделан для многопоточности, это из названия уже должно быть понятно, использовать его в однопоточном коде нет никакого смысла.
Хуя даун
https://www.embark-studios.com/
https://embark.dev/
https://github.com/EmbarkStudios/
Конечно со слоу, но вот. Да, я в курсе, что там УЕ5, но ещё там есть уникальный серверный движок, который обсчитывает физику (да-да, на сервере) и так до них никто не делал. Вот эта самая сетевая часть с доставкой обсчёта физики там наверняка на расте.
Хуета какая-то а не идея если честно
Если чуваки планируют игру на 100 рыл то нормально, но если хотят выстрелить - ебало сервера обрабатывающего over9000 запросов на просчёт физики представили?
Ну и не забудем что не только за физику сервер должен отвечать.
Ну долбоебы они, что поделать.
> УЕ5
Какое отношение оно к UE5 имеет? То что ты притащил - очередной тестовый полигон Эмбарка, которые пишут на расте никому ненужное говно, это просто плагин. А UE5 всегда чисто крестовым был и будет.
>Если чуваки планируют игру на 100 рыл то нормально, но если хотят выстрелить - ебало сервера обрабатывающего over9000 запросов на просчёт
100 рыл - максимум 100 событий. Не так много, если затолкать обсчёт на какую-нибудь 4090. Физику и пылесосы на первом RedFaction обсчитывали.
>>196121
>Какое отношение оно к UE5 имеет?
Бля, пиздец. Тот самый Эмбарк, которые много контрибьютит в раст, слепил шутан на УЕ5 - не в курсе?
>пишут на расте никому ненужное говно
>А UE5 всегда чисто крестовым был и будет.
Да, половина команды пилит не нужное говно в опенсорс исключительно на расте, а другая половина пилит ААА-шутан исключительно на плюсах. Ты сам как себе это представляешь?
Ну епта, пока данные ещё с сервера подтянутся подожди, как они с ебейшей задержкой бороться хотят?
Ну и главное зачем? Кому это поможет? Школьниками которым мама купила комплюхтер для учёбы? Графику все равно отрисовывать придётся, не потянут.
Короче, видимо там какой-то подвох, надо посмотреть. Но если они так втупую сделали то максимально странно
Чел, у Эмбарка вон движок на расте самописный лежит на гитхабе, он официально просто экспериментальный кусок кода.
> сервер-сайд физика
Даже у картохи 10 лет назад ещё было такое. У Крыса в масштабе звёздной системы есть такое.
> Ты сам как себе это представляешь?
А ты как себе представляешь кодить на расте под UE5? Серверную часть они могли на расте написать, к движку это никакого отношения не имеет.
>Серверную часть они могли на расте написать
Мой пост изначально об этом и был. Это же гейдев, верно? Он самый.
>>196189
>Ну и главное зачем?
Затем, что разрушение меняет карту, а карта должна меняться у всех строго одинаково.
Как они это сделали - уже интереснее. Я бы сделал так: разделил разрушающийся объект на крупные и мелкие обломки. Информацию о крупных (влияющих на карту и геймплей) обсчитывает и передаёт сервер, а мелкие создаются и считаются на клиенте. Типа так: стена падает у всех одинаково согласно данным сервера, мелкие камни и пыль от неё летят уже как получится обсчитать на клиенте.
> Он самый.
Не очень улавливаю как ты веб-сервис приплёл к геймдеву. Когда используют питоныч для серверов в ММО что-то никто не кричит про то что питон в геймдеве.
В ансейфе, как он по твоему ещё их может делать.
>Здарова мужчины. Мне не дает покоя вопрос как раст делает системные вызовы? он же делает всякие open() malloc() и тд?
Линкуешь libc
?????
PROFIT
for i in 0..1000 {
for j in 0..1000 {
func(i, j)
}
}
func - числодробилка
Если i сделать 0..5, то 82 мс.
Если 0..10, то 168 мс.
Пока норм, но вот если i сделать 0..100, то уже 10 секунд, т.е. количество итераций x10, а время выполнения больше чем в 50 раз. Дальше все идет в такой же прогрессии. Почему так? Это норма?
>кодить на расте под UE5
Вселенная насчтитывает огромное множество попыток разной степени упоротости прикрутить раст к анрилу. Понятия не имею зачем, я просто мимокрок
https://github.com/MaikKlein/unreal-rust
Очень сложно сказать, не зная что именно делает функция, но очень похоже на то, что ты вылетаешь из кэша процессора.
В общем случае чем чем чаще ты читаешь один и тот же регион памяти в момент времени, вместо того чтобы прыгать взад-вперед, и чем более линейно по возрастающей ты его читаешь - тем быстрее будет выполнятся. L2 256KB to 512KB - то есть данные нужно обрабатывать пачками по такому объему.
Но это просто догадка
Только все они нерабочие.
- "Сенсей, эту программу созданную людьми поймали роботы и пытались переписать на расте. Прошу починить"
- "Ладно... ОЧИСТКА ОТ РАСТА! ПОЧИНКА!"
- вуушшшшшшш.....
- "Ух ты, вот она какая. Сколько возможностей, неплохо, можно пользоваться! :)"
Игре, написанной на каком языке программирования, ты доверишь время, которое твоя жена проводит между стиркой и готовкой: опасном или безопасном?
Вот то-то же.
Как обычно веб-параша. Раст вообще умеет во что-то кроме веба? Может системщину, раз он системный язык?
Не пизди, их тут минимум два.
Так чего еще ожидать от ракового языка? Если язык форсится и насаживается как курсы от ифноцыгана из всех щелей, то и аудитория с обсуждениями будет подобающая.
Растокал не умеет в рефакторинг, поэтому на нем невозможно ничего разрабатывать, только переписывать уже написанное на других языках, когда разработка больше не требуется. Но и такой "снапшот" естественно дальше уже не поменяешь, то есть будущего у него и так нет, за исключением самых примитивных поделок с одной функцией, в которых есть надежда что изменения не понадобятся.
А что касается игр, которые по определению постоянно переписываются, переделываются, пишут на расте только дебилы которые точно об этом пожалеют.
Так что в сухом остатке, реально применение раста это примитивные скрипты которые не проблема переписывать полностью выбрасывая старый, в очень частных случаях когда питон неприемлемо тормозит. Больше это поделие ни на что ни годно, то есть фактически ни на что вообще ни годно. Типичные повесточные помои когда форсят уродство в массы, у кого-то много денег, чтобы форсить людям всякое дерьмо назло.
В плюсо треде примерно аналогичная ситуация, только ко всему этому ещё лабы студентов
Чем то привлекает системные языки псевдо интеллектуалов шизиков
не удивлюсь если все эти персонажи даже ничего не кодят, а просто сидят холиварят какой же язык какой убьет
У раста очень хорошая поддержка вебассембли благодаря мозилле. Вот его и берут для всякого эдакого потому, что альтернативы почти нет. А с сями и плюсами конкурировать сложнее, там все ниши плотно заняты, приходится с боем выдавливать.
Я понял, почему у них пригорает: сейчас, когда тебе нужна какая-то прога или утилита, всё чаще бывает, что нашёл, заходишь на её гитхаб, а там Cargo.toml, вместо привычного CMakeLists.txt . Хотя при поиске раст ни разу не упоминал.
Имел в виду, конкурировать с с/с++ на их традиционном поле
>какая-то прога или утилита, всё чаще бывает, что нашёл, заходишь на её гитхаб, а там Cargo.toml,
Так не всем нужен очередной neofetch и клон ls
Чем wasm для раста отличается от любого другого языка, использующего llvm в качестве бекэнда для компиляции (читай C/C++).
Тулинг, поддержка всяких прослоек и т.д. Всё, как в привычном макакам npm
И фингербокс это коробочка с дыркой с 3000 летней историей. То есть ответ - да? Я так и думал.
А js можно запускать в браузере даже не компилируя и он будет даже быстрее wasm. Шах и мат, растобляди.
Ну и нахуя тогда НУЖОН этот ваш вебассембли? Тоже выпал с одной конференции, где они дрочатся и пишут веб на C++ и итог у них был, что скорость почти такая же быстрая как у ванилы жс. Ебало представили?
Быстрее будут только манипуляции с DOM на чистом жс. Если же ехал фреймворк через фреймворк, то эдакая лабуда на расте пошустрее будет.
А уж всякие системные вещи , типа распаковки архива, наложения фильтра на картинку, вычисления хэш-суммы - на расте быстрее в разы и десятки раз.
Профит в том, что ты оборачиваешь абстракцию в абстракцию, делаешь кастомный фреймворк под свою биз-логику, создаёшь ниибстись какого монстра, а он всего на пол шишечки тормознее ваниллы. ЖС-фреймворкам такое и не снилось.
> на расте быстрее в разы и десятки раз
Лол. Пикрилейтед реальные бенчи хэшей, хорошо если wasm на пару десятков процентов быстрее ноды, а некоторые даже медленнее. Абсолютно во всех тестах wasm даже +50% не показывает.
Дай-ка сцылочку. У тебя на картинках зиганутый bun быстрее и ноды и васма - подозреваю, что там нативный модуль отъюзан.
С учётом того что мы сравниваем интерпретируемую скриптопарашу с растом, то да. Вот питонычу можно накидывать х10, а в вебе, в котором раст только и развивается, такой посос.
> С учётом того что мы сравниваем интерпретируемую скриптопарашу с растом, то да.
Как этот учёт хоть что то должен поменять?
Вот смотрите как надо было сделать. В мейне пишем ОДНУ строчку импорт имя модуля. В модуле пишем ОДИН раз паб, если так хотим приватности по дефолту. Во всем вложенном также ОДИН раз пишем паб, если нам это нужно.
Я ебал этих разрабов. Почему в каждом ЯПе сочетается прекрасное с ужасным. Почему нельзя просто сделать идеальный, сверхбыстрый ЯП. Ну почему, за что.
В крестах хоть можно в export обернуть всё, а где надо приватные - писать
> module :private;
и после него всё будет приватным.
Тогда ты бы жаловался, что тебя заебало приватить внутренние функции или создавать для них отдельные модули.
> Это что за pub(crate) моды блять, паб каждое поле помечать, ебануться просто.
Идея того что все по дефолту приватно настолько сложна?
Я даже не думаю что нужно объяснять зачем это сделано
хзы, разобраться с модулями ну максимум пол дня уйдет
Что я делаю не так?
Что тебе не нравится?
скорее всего цикл выходит из кеша
Область хоть как то сузь
Ты кем по жизни хочешь быть?
Системщиком, веб мастером, крипто гением, нищим геймдевщиком?
>Ты кем по жизни хочешь быть?
Капитаном космического корабля, но так как спавн для этого у меня неудачный приходится красноглазить.
Вообще занимался бы какими-нибудь нейронками, машобом. С вебом больше дел иметь не хочу, с железом тоже.
> Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.
Исправьте уже это недоразумение.
Я просто хочу разобраться
Там fmt не позволит переносить скобки на новую строку, а так молодец хранишь скриншоты из треда в тред постишь. Слушай, а ты случайно не нейронка? Всегда так быстро отвечаешь и примерно одинаково, уже не первый тред вижу, вдруг тут эксперименты кто-то ставит, а мы кормим эту нейросеть
Это так в расте выглядит "векторизация", лол. То что ты предлагаешь будет очень медленным, потому что не умеет так просто по указателям скакать как в крестах. Поэтому им приходится брать по 64 бита и городить такую лапшу. Наслаждайся безопасностью, хули.
>>209708
Как будто сделать скрин единственной либы base64 из карго занимает больше минуты.
Ну а всё таки, тебе платят за наполнение тредов контентом? Да или нет как сложно прямо ответить
>потому что не умеет так просто по указателям скакать как в крестах
Жиз, это проход по фиксированному массиву. Даже ссаный джаваскрипт может разворачивать проход по массиву.
> Даже ссаный джаваскрипт может разворачивать проход по массиву.
Так он и быстрее васма, не вижу противоречий. Вот умел бы раст как жс, не приходилось бы городить чтение по блокам.
Через println!("{:b}", foo); он мне напечатает 110110000000.
Как его заставить печатать в более читабельном формате? Например, как в первой строчке.
Сложно сказать, что для тебя читаемый формат. Смотри опции в https://doc.rust-lang.org/std/fmt/index.html Как в первой строчки — никак по-моему.
ну ок, какое-нибудь {:#015b} подойдет - по длине выравнивает забивая нулями и норм, хоть и без _
thx
Не знаю, как там на других языках разработка, но паскаль и лазарус 2024 это такой кактус, который не всякий верблюд осилит.
Я так люблю Rust. Лучший язык программирования на нашей грешной планете.
А так как раст лучший язык для переписывания, то сам собой напрашивающийся ответ на вопрос "Что бы такого написать на расте?" - открытый движок для какой-нибудь винрарной игры конца 90-х - середины 2010-х.
Ресурсы прочитать - раз.
Воспроизвести механику той самой игры - два. На уе ты больше сил потратишь, заставляя его работать и выглядеть, как двигло 20-летней давности, чем если сам с нуля напишешь.
Но зачем в 2224 делать графику в играх как 300 лет назад когда есть все ресурсы чтобы делать её около фотореалистичной и при этом задёшево?
1. там графика, это процентов 20 от всей работы. Тот же OpenMW мог в отрисовку моделек за несколько лет до играбельного релиза. Так что, покодить всё равно придётся. Загрузка ресурсов, игровая логика и проч.
2. суть в том, чтобы сделать вариант игры, который бы не отличался от оригинала вплоть до сохранения некоторых багов, что с готовым движком будет сложнее
3. старая игра на новом движке должна также запускаться на компе не сильно новее тех, на которые изначально была рассчитана. А ещё на мобилках и китайских портативках.
Понял. Но вопрос прежний - для чего? Зачем создавать то, 1к копий чего уже существует? Зачем миру очередной дум, очередная IDE, очередной стриминговый сервис, очередной мессенджер и прочее уже существующее говнище в разных обёртках? Идиотский мир какой-то где я в космос хочу летать, а вокруг меня одни "новые" шаурмичные да барбешопы появляются.
https://www.youtube.com/watch?v=7ySVWcFHz98
Тебе нравится язык, но нечего писать. Написать свою игру, например, 3Д арканоид с элементами хоррора и одним уровнем - весело, конечно но только тебе одному и недолго. А вот сделать опенсорсный движок для старой игры гораздо полезнее. Я ничего не навязываю, просто как возможное направление мысли для тех, кто очень хочет написать игру, но не знает, какую. Ответ - перепиши старую.
> кто очень хочет написать игру
Никто не хочет, я интересовался специально, все хотят прославиться получив много денег, писать игры никто не хочет, буквально ни один. И не только игры, со всем так, даже написавшие какую-то крутую вещь используемую множеством пользователей, если она не дала популярности и бабла, тут же забивают на неё хуй, могут даже удалить без сожалений.
Я раньше всегда удивлялся, как можно быть настолько похуистичным потратив столько времени и усилий на крутую вещь? Ведь получается, та сам же обнуляешь свои траты и достижения. Но фокус в том, что им похуй, они вообще не думают что делают, они думают какие им профиты принесло, если не принесло, просто выбрасывают без задней мысли и начинают делать другое, по их мнению более профитное. Совершенно бездушные животные, если что-то и сделали полезное, это лишь случайность, побочный эффект, никакого стремления делать хорошо и сопровождать сделанное нет.
Хуя се, у тебя алчное окружение. Я чаще вижу примеры, когда пишут для удовольствия "пока пишется", а именно - пока проект маленький и не оброс костылями и архаикой.
Не окружение, все такие во всём мире. Они говорят "хочу делать игру", но если уточнить, оказывается, эта игра должна быть особенной, чтобы прям бомбануло вознеся их на олимп, а делать простую реальную игру, чтобы точно осилить и она игралась и хоть кто-то поиграл - да ну нафиг, а зачем, этих простых игр и так полно, зачем еще одна, скучно, никакой мотивации.
Или программы. Сделал крутую программу, люди пользуются, но как всегда бывают мелкие, но вредные косяки, как гвоздик торчащий в ботинке, вроде мелочь, но ходить нормально невозможно. Достаточно только раз стукнуть молотком, загнуть этот гвоздик и все счастливы, но нет, разраб упорно не желает шевелиться, ведь это мелочь, не выглядит как неебать достижение, а значит и не стоит даже свои пять минут тратить - скучное посредственное задание, ну нафиг, не буду, игнор. И даже когда пользователи говорят, ну ладно, тебе пофиг, хоть выложи исходники, мы сами исправим. В ответ хуета: не выложу, исходники неряшливые, вот когда причешу, тогда выложу (никогда). Опять, смотри, то же самое, разрабу похуй как его программа работает, какая от неё польза, вот вообще насрать, главное свой имидж, вот выложу я некрасивые исходники и про меня подумают плохой кодер, и вдруг кто-то не возьмет на работу где золотые горы. Понимаешь, эти животные все буквально думают только о себе, а не о том, что делают программу которая нужна для дела другим людям или даже самому себе, что ценность программы - хорошо делать дело. Для них не существует никакого дела, это не программа, а лишь процесс извлечения профита, если профита нет, не пошевелят ни одним пальцем, пусть она гниёт и воняет, никакой реакции, несмотря на то, что сам же потратил уйму труда на её создание, будто ничего и не делал, никакой причастности к своему же труду, будто робот генерирующий код. У робота нет души, он не человек, ему ничего не надо, никаких дел решаемых программами нет, он просто генерирует код чтобы генерировать код. И все такие, найти человека делающего что-то осмысленно, это блин надо рыть носом землю, хрен найдешь.
Не окружение, все такие во всём мире. Они говорят "хочу делать игру", но если уточнить, оказывается, эта игра должна быть особенной, чтобы прям бомбануло вознеся их на олимп, а делать простую реальную игру, чтобы точно осилить и она игралась и хоть кто-то поиграл - да ну нафиг, а зачем, этих простых игр и так полно, зачем еще одна, скучно, никакой мотивации.
Или программы. Сделал крутую программу, люди пользуются, но как всегда бывают мелкие, но вредные косяки, как гвоздик торчащий в ботинке, вроде мелочь, но ходить нормально невозможно. Достаточно только раз стукнуть молотком, загнуть этот гвоздик и все счастливы, но нет, разраб упорно не желает шевелиться, ведь это мелочь, не выглядит как неебать достижение, а значит и не стоит даже свои пять минут тратить - скучное посредственное задание, ну нафиг, не буду, игнор. И даже когда пользователи говорят, ну ладно, тебе пофиг, хоть выложи исходники, мы сами исправим. В ответ хуета: не выложу, исходники неряшливые, вот когда причешу, тогда выложу (никогда). Опять, смотри, то же самое, разрабу похуй как его программа работает, какая от неё польза, вот вообще насрать, главное свой имидж, вот выложу я некрасивые исходники и про меня подумают плохой кодер, и вдруг кто-то не возьмет на работу где золотые горы. Понимаешь, эти животные все буквально думают только о себе, а не о том, что делают программу которая нужна для дела другим людям или даже самому себе, что ценность программы - хорошо делать дело. Для них не существует никакого дела, это не программа, а лишь процесс извлечения профита, если профита нет, не пошевелят ни одним пальцем, пусть она гниёт и воняет, никакой реакции, несмотря на то, что сам же потратил уйму труда на её создание, будто ничего и не делал, никакой причастности к своему же труду, будто робот генерирующий код. У робота нет души, он не человек, ему ничего не надо, никаких дел решаемых программами нет, он просто генерирует код чтобы генерировать код. И все такие, найти человека делающего что-то осмысленно, это блин надо рыть носом землю, хрен найдешь.
Зайди на гитхаб, чел, там всякого полно.
https://github.com/radek-sprta/awesome-game-remakes
https://osgameclones.com/
ЗЗЗЗЗЕЕЕЕЕДД
Темы, рефакторинг, телеметрия, ноджс.
Хороший редактор, скочал и название хорошее. Хорошо что они Z и поддерживают спецоперацию.
Если бы мне не сказали что это какой-то зед, то я бы подумал что это какая-то альфа-версия идеи. Выглядит как говно.
>Выглядит как говно.
ДА ПАШЁЛ ТЫ НАХУЙ!!! Никто не слушайте этого чушпана! Редактор вообще блять кайф! После vs code с его электроном, который жрал невообразимое количество гигабайт памяти и вылетал при каждом чихе (потому что у моего компьютера 8 гиг озу всего, у меня не доходят руки проапгрейдить кампьютер). После этого Z это самый божеский редактор. Не нужно красноглазить, учить хоткеи всяких neovim'ов, doom emacs'ов и проч. Приятные шрифты, минималистический интерфейс, сразу подхватил проект, не пришлось даже плагины ставить. Ну чё ещё надо не пойму?
>От создателей атома
Выпустили опенсурс атом
Макрософ форкнула атом и сделала вскод
Майкософт купила гитхаб и закрыла разработку атома, а разработчиков выставила на мороз
Выпустили опенсурс зед
Колесо сансары не остановить...
Я могу твой насер одной ссылкой и одним скрином законтрить:
https://github.com/zed-industries/zed/issues/12589
Этого уже достаточно, чтобы не пользоваться поделкой соевых копроделов и пожелать им лучей поноса.
>- Спонсор, дай денех..
- На что?
>- Ну мы тут ИДЕ пилим, на Расте
- И что с того?
>- Это ж САМЫЙ БЕЗОПАСНЫЙ ЕЗЫГ В МИРЕ!!
- ВАУ, ДЕРЖИТЕ
А если серьёзно, то ориентировались они скорее на скорость, поэтому там 50% усилий пошло на велосипедостроение гуя. Что касается ноды, думаю, что токсичное раст коммьюнити вытравит эту скверну из недр зеда рано или поздно.
Пидоры, лобби создавайте и го 1х1 алгосики решать
Ты даже не пробовал, а уже пиздишь, если сравнивать с vscode, то результаты впечатляют, я думаю когда выйдет из беты то и жыдбрейносом потягается. Я давно так не открывал проекты, ты берешь открываешь и уже можешь писать, а не ждешь пока оно там пердолится чего-то делает как тот же rustrover и не лагает когда печатаешь как vscode. По скорости почти как вим, только тут для людей, а не аутистов, которые любят запоминать комбинации клавиш. Пока на этой стадии не хватает функционала, но я думаю со временем появятся все нужные плагины
Мимо тоже со слабым компом
>результаты впечатляют
>когда выйдет
>уже можешь писать
>не хватает функционала
>но я думаю со временем появятся
Нейросеть спам, удались.
Уже функциональнее вима, по крайней мере, есть навигация по коду и базовый рефакторинг. А многим и вима/емакса для всего хватает. Поэтому если какого-то функционала там и не хватает, то он далеко не всем нужен. Я, например, уже нашёл всё, что необходимо - а парой нехватающих плюшек можно и пренебречь.
И нас таких много, а есть и куда фанатичнее меня - будут грызть любой кактус, если он на расте, попутно делая пулл-реквесты. Или просто любители всего нового, лишь бы обои повеселее, чем в идее/вскоде.
Прикинь открываешь и уже можешь писать, после жыдбрейнс это достижение, открываешь в иде, а оно шустро как в виме. Разумеется с проектами laba1 и my-first-app ты не ощутишь разницу, но как только будет крупный проект, то ты поймёшь о чём я говорю. Так что вырастешь, устроишься на работу и наверное меньше будешь петросянить
>Уже функциональнее вима, по крайней мере, есть навигация по коду и базовый рефакторинг.
Какой навигации и "рефакторинга" в виме тебе не хватает?
>>219960
IDE (да zed это редактор обычный по-моему) не пользуюсь, их что, нужно часто открывать, чтобы скорость была важна? Я свой имакс в режиме сервера запускаю, перезапускаю только когда поменял базовую конфигурацию и хочу проверить, что всё работает как ожидается. Так он висит у меня открытый неделями.
>Ты даже не пробовал, а уже пиздишь
Я и не собираюсь пробовать парашу, которая закачивается через шелл скрипт, а затем еще без ведома пользователя докачивает ноду и пакеты к ней. Это дно, как и общий уровень культуры разработки в растомирке.
Уси-пуси, какой важный курица. Та мне похуй если честно, что ты будешь а что нет.
>Я и не собираюсь пробовать
Ну тогда ебальник закрой
>а затем еще без ведома пользователя докачивает ноду и пакеты к ней
В какой строчке скрипта ты это увидел шиз?
>Причина детонации
Я не знаю что ты подорвался
>Глаза от спермы ототри
Откуда у тебя зацикленность на этой теме? Ты педик?
>Асло, >>219661
Нашли в бета версии проблемы с безопасностью, кто-то написал ишью, создали ПР со списком что нужно сделать, обсуждают https://github.com/zed-industries/zed/pull/14034
Ряяя эта дно!!!111
Я тебе открою секрет наверное, но подобные косяки ещё всплывут в процессе разработки. Правильно говорят, что дуракам полработы не показывают.
> создали ПР со списком что нужно сделать
Вся суть раста. Ещё не дописали, а уже надо переписывать.
>Я не знаю что ты подорвался
>Нет ты
Понял тебя.
>Откуда у тебя зацикленность на этой теме? Ты педик?
Ты бот? Покажи где я в своих постах писал про это? Или ты просто набросил ради наброса, потому что нечего сказать?
>проблемы с безопасностью
ХАХААХАХАХАХАХХАХАХАХАХАХА.
Простительные проблемы с безопасностью это когда ты случайно обосрался в коде или в настройке тулчейна, а когда данное решение было выбрано осознанно и обкатывалось в течение нескольких лет на пользователях МакОС(ты ведь в курсе, что твое поделие было изначально закрытым и направленным онли на макось?), то это нельзя списать на ШАЛОСТЬ, это дизайн дырявый. Как оказалось, что пердолики не такие хомячки как юзеры макоси и здесь подобное не прокатывает, за что их сразу же угостили тугой струей яблочного сока и они обещали сделать все "нормально".
Но я тебя не осуждаю, если ты хаваешь установку через шелл скрипт, то и установка интерпретатора другого языка с кучей левых пакетов без твоего ведома тебя не волнует. Главное что на расте написано и много модных смузислов использовано в методичке.
Вкатун не палится, вырастешь большим, возможно пройдешь собес куда-то серьёзнее битриксостудии думаю пройдешь нынче долбоёбов любят и в любом проекте где работает команда ты столкнешься с тем что приходится в процессе переписывать уже написанное. И это касается не только раста, зайди к примеру в жабатред и задай вопрос случается ли у них такое
>>220343
Найс подрыв
Самокритично
Погугли "%some_ide% refactoring capabilities", поизучай и пойми, почему вима с емаксом хватает далеко не всем.
Ну и ещё навигация по коду там получше грепа.
>zed
Бабкин жив!
>On macOS, for example, Zed makes direct use of Metal. We have our own shaders, our own renderer, and we put a lot of effort into understanding macOS APIs to get to 120FPS. Zed on macOS is also a fully-native AppKit NSApplication and we integrated our async Rust runtime with macOS' native application runtime.
Пидopaxи же себя в грудь били со своим webgpu, что случилось то?
Кстати я ещё Zsh юзаю и вместо гита всё в Zip архивы сохраняю
Достаточно одного шизика в бан отправить
> раст аналайзер
Там это говно растанами написана, литералли самое поганый экстеншен для вскода. Там ещё с модулями ебля, он может просто отказываться подсасывать их, пока вскод/аналайзер не перезапустишь. Я такого говна в вскоде нигде больше не видел. Надо этим говноделам показать как шарп в вскоде реализован.
>Я такого говна в вскоде нигде больше не видел.
С сисярпом и петухоном стабильно такая же проблема.
Не пизди. В питоновских проектах с сотнями тысяч строчек кода никогда таких проблем не видел.
>Не пизди
Какое же у тебя высокое самомнение если ты думаешь что я могу захотеть что-то тебе доказать.
С чего ты вообще взял что мнение пиздабола может быть кому-то интересным? Напиздел раз, напиздишь и второй раз.
Ты первый начал спорить, дypачок
>Погугли
Зачем? Я у тебя лично интересовался. Какой конкретно тебе навигации и рефакторинга не хватает. Видимо, ты и сам не знаешь.
Хочу автоматически
- переименовывать функции и переменные, чтоб в одном месте переименовал, а в других само подтянулось
- менять сингатуру функции. Чтоб в одном месте поменял и оно везде поменялось во всех обращениях
- прописывать импорты при первом же испольновании внешней сущности
- создавать геттеры, сеттеры, хуеттеры для структур и их полей
- по клику делать метод в файле Х публичным при редактировании файла У , если вдруг понадобится
- и многое другое, что отличает иде от редактора
>менять сингатуру функции. Чтоб в одном месте поменял и оно везде поменялось во всех обращениях
Хочу сказать компу "сделай круто" и получить готовый готовый проект приносящий миллионы.
>геттеры, сеттеры, хуеттеры
>Rust #33 /rust/
Вот это уже более предметный разговор.
>- переименовывать функции и переменные, чтоб в одном месте переименовал, а в других само подтянулось
Спасибо майкам за LSP, это его базовый функционал. Сейчас наверное все редакторы так или иначе его поддерживают.
>- менять сингатуру функции. Чтоб в одном месте поменял и оно везде поменялось во всех обращениях
Не понял, это как? Вот я добавил новый аргумент функции, как IDE может догадаться с каким параметром её теперь нужно вызывать?
>- прописывать импорты при первом же использовании внешней сущности
Опять же базовый функционал LSP. Меня кстати это поведение заёбывает обычно. После активной работы над кодом и перед коммитом изменений смотришь на дифф и думаешь, откуда все эти импорты?
>- создавать геттеры, сеттеры, хуеттеры для структур и их полей
Для бойлерплейта существуют сниппеты и их вариации. В крайнем случае можно записать макрос, это точно работает всегда и на любой кодовой базе. Возможно LSP серверы для определённых языков предоставляет какую-нибудь поддержку, не могу знать точно, т.к. не пишу на языках, где геттеры/сеттеры активно используются.
>- по клику делать метод в файле Х публичным при редактировании файла У , если вдруг понадобится
Вот с таким не сталкивался. Опять же, полагаю code actions в LSP могут это реализовать.
Примеров навигации ты не привёл.
Хз, IDE в 2024 мне кажется это лолкек. Базового функционала LSP хватает с головой, всё остальное сильно зависит от конкретного языка. Да и не нужно по сути. Все эти рефакторинги в один клик были модными лет 15 назад. Сейчас в тренде AI-помощники, которые за тебя код пишут. Тоже не нужны, но это другой вопрос.
Половину из того что ты написал должны делать нейронки. Они отлично пишут бойлерплейт и рефакторят.
> Не понял, это как? Вот я добавил новый аргумент функции, как IDE может догадаться с каким параметром её теперь нужно вызывать?
пик 1
>Примеров навигации ты не привёл.
пик 2
Ещё можно пик 3 - подсветить переменную внутри макроса, не разворачивая.
Ещё можно пик 4 - свернуть/развернуть структуру
>1
Блять, представил как кто-нибудь с этой табличкой дрочится как тётя Зина с формочкой в 1С бухгалтерия вместо того чтобы просто в коде напечатать что нужно и чето проиграл
Если у тебя 50 вызовов этой функции в 15 различных файлов, то лучше минутку побыть тётей Зиной, чем через sed с заменой ебаться.
Это удобно когда метод вызывается во многих местах, вручную делать такое заебешься
>пик 1
Ну как я и думал — хуита. Дефолтное значение конечно оно тебе подставит, но после этого тебе всё равно придётся пройтись по всем вызовам, чтобы поменять его на нужное. Пару минут конечно сэкономит, особенно если ничего менять не нужно, спорить не стану. Для себя не вижу особой пользы. Особенно в настоящих языках, таких как раст, в которых компилятор сам тебе укажет все необходимые для исправления места.
>пик 2
Стандартная функциональность LSP
>пик 3
Такого в LSP нет, это правда. Это работает прям с любыми макросами, или только со стандартной библиотекой?
>пик 4
Не понял, что значит свернуть/развернуть структуру?
>>221327
"Это функциональность LSP.
>функциональность LSP
>функциональность LSP
Нет никакой LSP функциональности, ибо пользователь с ним не работает. Функциональность бывает у редактора кода в котором работает программист. В редакторе функциональность либо есть и это хорошо, либо функциональности нет и ты сосёшь хуй. Всё. А что там под капотом, LSP, хуеспе никого не ебёт, главное чтобы была функциональность и работала качественно. Кал где функциональности нет или кривая отправляется на помойку, хоть там трижды LSP, вообще поебать, всё равно бесполезный кал.
Он намекает, что всё, что может LSP, может и emacs
>>221454
>Не понял, что значит свернуть/развернуть структуру?
Возможно я некорректно выразился. Из туплы в нормальную структуру с полями и обратно.
>Такого в LSP нет, это правда. Это работает прям с любыми макросами, или только со стандартной библиотекой?
Только со стандартной, ессно.
А вот так твой LSP может?
пик 1,2 - автозаполнять варианты матча
пик 3 - объединять if-ы
(Допускаю, что возможно, прост интересно)
Вообще, если лень тот же растовер качать, читани чейнжлоги плагина идеи, особливо раздел "New Features"
https://web.archive.org/web/20231031042558/https://intellij-rust.github.io/thisweek/
там дохрена всяких хинтов и примочек, всех не вспомнишь
Это именно что функциональность LSP. От конкретного сервера зависит набор возможностей. Редактор только исполняет то, что ему сервер говорит.
Есть некоторый базовый набор фич, которые предоставляет наверное любой сервер, вроде переходов к определениям/объявлениям или переименования по всему проекту. Это актуально наверное для любых языков и без этого LSP не имеет смысла.
>>221547
1-2 — да
3 — не вижу что у тебя там за код, не получилось такого варианта найти
>Из туплы в нормальную структуру с полями и обратно.
да, есть такое (обратное преобразование тоже есть, не хватает места)
Вообще выглядит так, что джетбрейнс взяли rust-analyzer за основу и добавили в него несколько фич, лол.
>Он намекает, что всё, что может LSP, может и emacs
Я и говорю, что это враньё. Если бы редактор мог, бы так и говорил "редакторнейм может", но редактор не может, вот и отводит стрелки на абстрактный патенцивал который якобы есть в какой-то подкапотной хуйне. Типичный ПИЗДЕЖЬ, раз не сделано - НЕ МОЖЕТ. Абстрактные нереализованные возможности можешь в жопу засунуть, они существуют только в пиздливом воображении недоумка путающего голоса в голове с реальностью.
>3 — не вижу что у тебя там за код, не получилось такого варианта найти
if a { if b {} } -> if a && b {}
Хз, не могу добиться такого от rust-analyzer. Причем ветки в match он умеет мёрджить. Хз, нету похоже, либо у меня старая версия (2023-11-13).
https://github.com/ABckh/zed-java-eclipse-jdtls
>у зеда бинарные икстеншоны
Как что-то плохое. Плохо будет когда следуя современной повесте небинарные пойдут.
По крайней мере вот исходники https://github.com/tree-sitter/tree-sitter-java там основной большой файл на сишке автоматически сгенерированный и костыли биндинги для присобачивания в разные языки
Вот тут говорят где брать https://github.com/ABckh/zed-java-eclipse-jdtls/blob/main/extension.toml#L9
Это грамматика для tresitter, они выполняются в виде обычной библиотеки и пишутся на C. К zed грамматики прямого отношения не имеют. Их использует treesitter, который в свою очередь используется редактором, например zed.
100% есть, на него американское правительство глаз положило. Ада, к примеру, уже 40 лет спокойно себе существует.
И котлин и педераст загнутся. Абсолютно бессмысленные высеры.
Rust - это аналог молекулярной кухни в айти. Держится на энтузиастах, быдло никогда не поймёт смысла раста. Как простой люд требует шашлычок с водочкой, так и быдло будет продолжать сидеть на питоне. Да и нахуй нужны эти ваши безопасности! Я ожидаю, что раст будет чуть популярнее чем сейчас, но всё же далеко позади питона и других "правильных" языков.
Вот сейчас запретят завозить Райзены, и придётся всё вплоть до сайтов-визиток писать на компилируемых языках, потому что иное на 130 нанометровых Эльбрусах ворочаться не будет. Тогда заживём.
Пересядем на армы, как уважаемые яблокогоспода. А вы и дальше ебитесь со своей архитектурой из 90-х.
>на 130 нанометровых Эльбрусах ворочаться не будет
Ну бля, сделай лучше. Как возмущаться что всё плохо, это пожалуйста. А самому пойти намутить чип, mems/nems, запрограммировать плис, замутить печатную плату - это сразу ой не моё.
Если не злоупотреблять процедурными макросами, а еще итераторами, замыканиями и вообще дженериками, то должен. Но всё, связанное с ветвлениями будет работать как кал.
Будущее за растом и линуксом, сынки.
Потому что предсказатели ветвлений - это буржуазное излишество, а у нас базированный пролетарский компьютер, я хз. В последней ревизии вроде бы добавили, но как они его выпустят без TSMC.
Китайцы? У них этого добра навалом.
>failed to run custom build command for `openssl-sys v0.9.102
Сижу на винде, ловлю вот такую ошибку при попытке присоединить модуль fernet к проекту. Strawberry Perl установил. Советы установить линуху - сразу мимо, увы, потому что мне нужно написать софт как раз под шиндовс.
let vec_2 = vec![1, 2, 3, 4, 5, 6, 7, 8];
как проверить, что первый входит во второй? при этом, чтобы проверка была с нулевого элемента, т.е. vec![0. 1, 2, 3, 4, 5, 6, 7, 8] уже мимо?
сам написать могу, интересует есть ли уже готовое решение в std?
Не, ну предсказатель ветвлений звучит конечно красиво, но в интеле например он привязан к фронтенду и уже на этапе декодирования инструкций там вычисляется адрес, а из за того что процессор еще и оут оф ордер там еще и грузятся инструкции в конвеер заранее. При том что все интеловский фронтенд полевают говнецом и привозносят какие то там мифические риски-хуиски, ARM просто тупо взял и заебенил аналогичный фронтенд.
У эльбрусов прямое исполнение и там нельзя так же сделать. Однако vliw как концепция призван уметь все то что умеет OoO только официальным образом и там у них есть команды подготовки которые асинхронно запускают загрузку блока/функции в параллельный конвеер и переключение на него, при этом код из которого произошел переход он как бы остается на месте и мы возвращаемся в него. Это работает гораздо круче бранчпредиктора, особенно мне нравится возврат из процедуры, эльбрус именно подготавливает и выходит в любом месте процедуры как это написано в коде на плюсах. У интела же происходит изнасилование бранчпредиктора путем прыжка через весь код в конец процедуры где стоит ret.
Тем не менее оказывается хоть эта хуйня и классная, она нихуя не заменяет предсказатель полностью, когда начинается лапшекод из последоватльных вызов-возврат-вызов-возврат подготовка переходов не работает в таких случаях, нельзя подготовить десять вызовов вперед в отличии от предсказаний, плюс оказалось что предсказатель тоже не может заменить подготовки потому что у них там специальные команды для подготовки системных вызовов (не знаю что за хрень если честно и подготовка цикла который будет прям в конвеере повторятся без конца пока из него не выпрыгнут или условие не будет выполнено. И каждая такая команда строго реализована в своем дубликате конвеера. А теперь да теперь туда еще бахнули бранчпредиктор и теперь в эльбрусе две стистемы переходов/вызовов/возвратов - подготовленные и непосредственные с предсказанием/условием.
Короче, хотели сделать простой процессор, но нахуярили столько всего, что проще уже добавить out-of-order.
от вас, хуесосов, помощи не дождешься, пришлось самому разбираться:
assert!(vec_2.starts_with(&vec_1));
Так он и не задумывали простым.
Он как минимум эмулирует x86 как я понимаю умеет аппаратно поддерживать его стек + почти на все его векторные инструкции там есть аналоги (которые нигде не публикуют, видимо чтоб не прилетел иск). Бранчпредиктор теперь позволяет в режиме эмуляции интел не вот ту хуйню пытаться подстраивать вычисляя когда надо начинать подготовку перехода а просто подставлять такие же условные/безусловные джампы и реты.
Но и в нормальном режиме он тоже мертвым грузом болтаться не будет, как минимум с ним теперь не нужно в каждой процедуре обязательно готовить возврат и передавать управление на конвеер куда возврат подготовлен, теперь там просто iret в конце стоит и предиктор сам подготовит все к возврату.
Труднее ли сделать современный OoO суперскаляр я не уверен, мне кажется в современных процессорах тоже вся эта работа по большей части возложена на фирмварь которая зашита во фронтенд. Однако не думаю что результат будет сильно лучше, ведь главная то часть это не фронтенд а бакенд. Вдобавок надо будет все равно изобретать аналоги интеловых векторных команд (в консультации с юристами) префетчи-хуетчи иначе векторизацией самому придется ползать занимать как на эльбрусе.
>Так он и не задумывали простым.
Задумка была в том, чтобы как можно больше вещей делать в компиляторе, благодаря чему максимально упростить аппаратуру, потому что программисты дешевые, а искать и править баги в процессоре дорого. На самом деле оказалось, что программисты дорогие, а современные FPGA могут спокойно выдавать по 100-200 мегагерц на полноразмерном проце, так что его можно затестировать до талого. Поэтому в Эльбрусе становится меньше смысла с каждым годом.
Какие то прям испорченные слухи прошедшие через 10поколений сплетниц.
Идея vliw в общем то была в том что бы выкинуть из железа все то говно которое во время исполнения занимается анализом и планированием кода, и занять его чем то полезным. Когда делали первые оутофордеры чисто математически выяснилось что по настоящему рантайм зависимых планирований с гулькин хуй, остальное можно еще на этапе компиляции правильно расставить и не заниматься перестраиванием на ходу. Но в рамках обычного потока команд это не сделать, поэтому придумали исполнение больших блоков внутри которых те же риск команды переставленные по феншую.
Никакой программист разумеется это делать не сможет и не будет, это все делается импирически/эвристически на этапе кодогенерации. А отладка на фпга в принципе дает возможность заниматься разработкой не перезаказывая маски на заводе, внезависимости от сложности изделия.
vliw сам по себе это не серебрянная пуля и не решает проблем рантайм безопасности и информации связанной с переходами, указателями и кэш-промахами. Но он тем не менее решает вопрос с оут-оф-ордер суперскалер который в случае обычного risc надо еще придумать. Поэтому сегодня да и вообще последние лет 20 все новые архитектуры в основном делают на архитектуре vliw, в основном это конечно dsp ядра, потому что там нет проблемы с раниайм шлабудой, зато есть необходимость считать быстро и эффективно. А ничего более эффективного чем заранее подготовреный код нет, это даже интел со своими векторными награмождениями доказывает, когда программист руками алгоритмы в них руками заколотил тогда ускорение в 5-10раз, когда ничего не делал просто железо обновил получил 9,5 секунд тормозов вместо 10.
Что касается эльбруса то так как он изначально целил в большие компьютеры а не в просто ускорители, в нем рантайм вопросы пришлось разруливать. Но вместе с этим там и фичи есть которые невозможно сделать в рамках обычного потока команд (имею в виду циклы и процедурную/стековую безопасность без накладных расходов)
Какие то прям испорченные слухи прошедшие через 10поколений сплетниц.
Идея vliw в общем то была в том что бы выкинуть из железа все то говно которое во время исполнения занимается анализом и планированием кода, и занять его чем то полезным. Когда делали первые оутофордеры чисто математически выяснилось что по настоящему рантайм зависимых планирований с гулькин хуй, остальное можно еще на этапе компиляции правильно расставить и не заниматься перестраиванием на ходу. Но в рамках обычного потока команд это не сделать, поэтому придумали исполнение больших блоков внутри которых те же риск команды переставленные по феншую.
Никакой программист разумеется это делать не сможет и не будет, это все делается импирически/эвристически на этапе кодогенерации. А отладка на фпга в принципе дает возможность заниматься разработкой не перезаказывая маски на заводе, внезависимости от сложности изделия.
vliw сам по себе это не серебрянная пуля и не решает проблем рантайм безопасности и информации связанной с переходами, указателями и кэш-промахами. Но он тем не менее решает вопрос с оут-оф-ордер суперскалер который в случае обычного risc надо еще придумать. Поэтому сегодня да и вообще последние лет 20 все новые архитектуры в основном делают на архитектуре vliw, в основном это конечно dsp ядра, потому что там нет проблемы с раниайм шлабудой, зато есть необходимость считать быстро и эффективно. А ничего более эффективного чем заранее подготовреный код нет, это даже интел со своими векторными награмождениями доказывает, когда программист руками алгоритмы в них руками заколотил тогда ускорение в 5-10раз, когда ничего не делал просто железо обновил получил 9,5 секунд тормозов вместо 10.
Что касается эльбруса то так как он изначально целил в большие компьютеры а не в просто ускорители, в нем рантайм вопросы пришлось разруливать. Но вместе с этим там и фичи есть которые невозможно сделать в рамках обычного потока команд (имею в виду циклы и процедурную/стековую безопасность без накладных расходов)
> Когда делали первые оутофордеры чисто математически выяснилось что по настоящему рантайм зависимых планирований с гулькин хуй
И по чистому совпадению все они самые важные для перфоманса.
а что не так?)
от вас, хуесосов, помощи не дождешься, пришлось юзать либу chacha20poly1305 вместо fernet.
>от вас, хуесосов, помощи не дождешься, пришлось юзать либу chacha20poly1305 вместо fernet.
поэтому озон выбрал голанг, потому что коммьюнити, либы, готовые решения.
а такими нераспостраненными технологиями как раст, ты как один корабль в бескрайнем океане, ебись и решай свои проблемы сам.
Да уж, я еще 4 года назад слышал, что Rust - это убийца С, который позволяет писать на низком уровне абстракции быстрые программы, еще и не ебясь особо с памятью, а оказалось, что он совершенно не развит, и его комьюнити довольно слабое. Очень жаль, ведь сам язык мне невероятно зашел.
>>226022
Неужели тут никто не работал с криптографией?
Мимо, из всех указанных твоих постов только последний - мой. На Go я никогда ничего не писал. Передо мной сейчас стоит задача выбора технологии под свои конкретные задачи, и Rust, к сожалению, ее не помог выполнить (хотя язык мне вполне понравился, в том числе своим быстродействием).
Прекрасно понимаю, что Rust - это непопулярная технология, развитием которой особо никто не занимается.
петухоний в помощь, он сейчас на хайпе
> Что касается ноды, думаю, что токсичное раст коммьюнити вытравит эту скверну из недр зеда рано или поздно.
Ты еблан или еблан? Как он тебе LS на Typescript, например, запустит?
Именно что нет. Самое важное для перфоманса это закидывать лоады или тяжелые операции типа деления как можно выше. Причем если мы посмотрим в ассемблер интела мы увидим портянку инструкций и джамп блять в этот самый участок кода. И как это в рантайме эффективно делать? Это надо все инструкции перед этим декодироваться, а нарушать порядок тут нельзя ибо UB. Во vliw ассемблере нарушать порядок инструкций можно, поэтому там агрузка и деление будут декодированы и запущены (спекулятивно) буквально в первых же шк.
Но вот дальше может выяснится неприятное - загрузку нельзя было делать, потому что перед этим стоящие инструкции туда записывали.
Отловить это можно только в рантайме. Поэтому для влива надо или добавлять еще рантайм проверки или идти в dsp сегмент и писать что вот так не делать, вот это не использовать
В эльбрусе к слову есть.
>>226026
> слышал, что Rust - это убийца С, который позволяет писать на низком уровне абстракции быстрые программы
Тебя наебали, практически по всем пунктам.
Я за пределы этого треда не хожу да и не считаю чем-то крутым вести себя словно клоун.
>Самое важное для перфоманса это закидывать лоады или тяжелые операции типа деления как можно выше
Если лоад из L1, то не нужно. Если L2, то нужно, но на полшишечки. Удачи определить это статически, если ты собираешься не под bare metal.
>И как это в рантайме эффективно делать
Там алгоритм - аналог epoll, только с мапой статического размера. Концептуально ничего сложного. Сложности только в том, что поверх нужно добавлять переименование регистров и спекулятивное исполнение с откатом.
>Во vliw ассемблере нарушать порядок инструкций можно, поэтому там агрузка и деление будут декодированы и запущены (спекулятивно) буквально в первых же шк.
Чел, про branchless programming даже трансы с реддита знают. А нарушать порядок инструкций VLIW как раз не умеет.
>загрузку нельзя было делать, потому что перед этим стоящие инструкции туда записывали.
Store forwarding на x86 есть как минимум с Nehalem и K8, возможно раньше, из головы не вспомню.
> Если лоад из L1, то не нужно. Если L2, то нужно, но на полшишечки. Удачи определить это статически, если ты собираешься не под bare metal.
Что в компаил тайме что в рантайме на команде и ее аргументах не написано где окажутся данные (в том числе адрес может вообще указывать на ноль), поэтому лоады это пожалуй самая приоритетная команда в списке запусков.
> Там алгоритм - аналог epoll, только с мапой статического размера.
Я говорю про считывание и декодирование инструкций. Фронтенд не жрет инструкции бандлами, он их считывает максимум по три штуки ( эпл добился 6-и)
> branchless пукramming
> storage forwarding
> А нарушать порядок инструкций VLIW как раз не умеет.
А в начале так старался (ну или мне показалось). Иди трансам на редит верни, скажи не сработало.
>поэтому лоады это пожалуй самая приоритетная команда в списке запусков.
Нет. Если данные в кеше, то лоады занимают примерно столько же, сколько аримфетика. Если в памяти, то пара тактов погоды не сделает, зато если мы напоремся на пейджфолт, то всё наспекулированное придётся выкинуть, поэтому исходный код загодя их делать не должен. Передвинуть их может уже планировщик.
>А в начале так старался
Чел, я хотя бы дизлексию в узде держу.
Много ли ты модулей ядра и операционных систем написал, студентик? Мне вот уже надо как-то деньги зарабатывать и выживать.
Еще раз говорю, команды это не мантры, при ее считывании не открывается третий глаз который по потокам чакры определяет в каком кэше данные.
Ей как минимум надо пройти фронтенд (декодирование/переименование)
А как максимум общий конвеер, на эльбрусе он короткий 6 тактов, на интеле 25-30, само ожидание из l1 4-5 тактов это плюсом ко всему предыдущему.
Я понимаю что сейчас будет врети все быстро и за один такт, но обращаю внимание что в таком случае никакие внеочередные исполнения не нужны ты сам даже к этому выводу логически пришел, и бранч тогда предсказывать не нужно если он в i1 лежит. Да, до середины восьмидесятых так и было, потом все начали городить пайплан (конвеер), он позволяет зачет дробления исполнения на стадии запускать по нескольку инструкций в очередь, сама инструкция едет дольше, затоих в пайплайн набивать можно как в автобус, но вместе с этим пропорционально возросли и штрафы на переходы (поэтому изобрели предсказатель) и ожидания между зависимыми операциями, поэтому изобрели внеочередное исполнение которое вытаскивает из потока команд "независимые операции" операции которые желательно исполнять как можно более вперед чтоб зависящие от них получили как можно меньший штраф, в первую очередь к таким относятся лоады и вычисления условий.
> Чел, я хотя бы дизлексию в узде держу.
Не знаю что такое дизлексия, я больше по программированию в том числе низкоуровневому.
>Еще раз говорю, команды это не мантры, при ее считывании не открывается третий глаз который по потокам чакры определяет в каком кэше данные.
Это решается не на декодировании. И еще раз повторяю, что это не имеет значения. Проц должен вести себя адаптивно. Если сделать его пессимистичным, он заведомо не сможет работать быстро.
>А как максимум общий конвеер
Какой общий конвеер? У фронта и бека отдельные пайплайны. С момента, когда инструкцию положили в ROB, она может там сидеть сколько угодно.
>операции которые желательно исполнять как можно более вперед чтоб зависящие от них получили как можно меньший штраф, в первую очередь к таким относятся лоады и вычисления условий.
Это бессмысленное утверждение. AGU, load\store, ALU и FPU это всё независимые модули. У проца нет выбора, отрезолвить на FPU виртуальный адрес или вычислить квадратный корень. Подо что готовы аргументы, то и вычисляем. Единственное, что при прочих равных нужно отдавать приоритет в порядке отставки.
>я больше по программированию в том числе низкоуровневому.
Но не в курсе, что такое store forwarding? Верю.
Не узнал тебя без кителя
Кто-нибудь сталкивался с такой задачей? Насколько я безопасно всё сделал? Как ограничить тип T, чтобы он гарантировано не был ссылкой или Deref-типом?
>Насколько я безопасно всё сделал?
Слайс из неинициализированного файла харам. Сделай просто массив u8, а потом трансмьют. Вообще для такого есть https://docs.rs/zerocopy/0.7.35/zerocopy/
>Как ограничить тип T, чтобы он гарантировано не был ссылкой или Deref-типом?
А зачем там вообще дженерик, если ты парсишь конкретную структуру?
>>228310
>Я не понимаю этого, помогите разобраться.
Поставь на системник посуду с глазурью из оксида урана. Станет норм.
Ю
Сторонние крейты для такой простой вещи тащить не хочу. Я что, похож на веб-макаку? Могу и сам такие велосипеды писать.
Про transmute думал, но он вроде как занимается копированием данных. А я хотел сразу считанными данными заполнять структуру. Впрочем, за совет спасибо, тут производительность конечно не критична, может оно так и правильнее.
Дженерик сделал просто потому, что его было очень просто сделать. Но понял, что он очень не безопасен. И я не понимаю, как его сделать безопаснее. Интересно было бы это решить средствами языка, уверен что это возможно.
У меня на самом деле вопрос скорее про MaybeUninit, насколько грамотно я его использовал. То что нет валидации считанных данных в целом понятно. Где ещё мог наебаться?
> Слайс из неинициализированного файла харам. Сделай просто массив u8, а потом трансмьют.
А если файл 8гигабайт?
Добавь 32 гига оперативы, что такой тупой, любой питонист ответ знает.
repr(C) не забудь на структуру навешать (не помню, дефолт это или нет)
Ok() => {
...
match ... {
Ok() => ...,
Err() => Status::InternalServerError
}
},
Err() => Status::InternalServerError
}
Как подобное оформить красивее?
Так нихрена не понятно, но можешь map_err(|_| Status::InternalServerError)?
Повестка дня: Как убить С++?
- Давайте зафорсим говноязычок как замену, в котором запрещено писать код, а который можно, только через жопу.
- Принято!
- форс...
- форс...
- форс...
- Ой, не взлетело.
- Блять, какие еще идеи?
- Раз снаружи не прокатило, давайте изнутри - зафорсим правила для С++ по которым запрещено писать код, а который можно, только через жопу.
- Принято!
- фор.. пук(
- Ой, не взлетело <-- сейчас вы здесь
Ну не совсем так.
Изначально раст создавался на замену Си, но что-то пошло не так и оказалось, что раст из-за своей раздутости совсем не тянет на замену Си, поэтому пришлось бодаться с ЦПП.
Смотря в каком смысле замена,
если в качестве инструмента для людей которые говнокодят приклад на си просто потому что еще в институте так привыкли, то несомненно отличная замена.
А вот в плане ядер ос, прошивок и библиотек с архитектурно зависимыми вставками тут раст всё. Лучше всего здесь подходят плюсы, которых для современного сложного приклада не хватает в виду отсутствия асинхронности и менеджера памяти, что и сподвигло на создание ржавого, так как мозиловцы заебались воевать с утечками памяти. К сожалению замена си до сих пор не происходит из за того что у плюсов слишком жирная стандартная библиотека и слишком прикладное отношение к алокации очищению/памяти.
Не совсем так, точнее совсем не так. Проблема современного мира, ему пиздарики и всё скатилось в политиканство чтобы как-то с этим коупить.
Как отличить полезные вещи от фальшивок-инструментов продавливания политоты? Элементарно, Ватсон, первое приносит пользу, следовательно указывает само на себя, на положительные качества, а политическая фальшивка указывает и обсирает врага против которого идет политическая игра.
Заметь, когда речь идет о С++, речь идет о нём самом как инструменте создания программ. А когда речь идет к примеру о расте, всегда идет речь о том какой С/++ говно, как надо его заменить, программы переписать и так далее. Вместо самого языка идет поливание говном кого-то другого постороннего. Если раст такой хороший, люди сами должны на него бросаться программировать, форсить нет необходимости. Форсят только говно, хорошие вещи сами себя продвигают, причем положительными качествами, а вовсе не форсами негатива в сторону других.
И естественно, главным инструментом лживой пропаганды всегда является страх, опять негатив. Народ запугивают страшилками "уязвимостями", чтобы подсунуть под нос спасение "безопасности, только у нас, всего за 999.99, спеши приобрести". Типичные тактики мошенников старые как мир.
Вот только в действительности таймлайн другой немного был. MISRA появились лет на 10-15 раньше раста.
>Проблема современного мира, ему пиздарики
Возьми да сделай с этим что-то
> первое приносит пользу, следовательно указывает само на себя, на положительные качества
Много пользы принёс %язык нейм% в качестве бекэнда тиктока/порнхаба/вируса-щифровщика и другой срани?
>И естественно, главным инструментом лживой пропаганды всегда является страх, опять негатив. Народ запугивают страшилками "уязвимостями", чтобы подсунуть под нос спасение "безопасности, только у нас, всего за 999.99, спеши приобрести". Типичные тактики мошенников старые как мир.
Дешёвый доёб учитывая что все признают много большую степень безопасности раста по сравнению с с/с++
Самая жёсткая конкуренция - внутривидовая. Спроси любого русича, к кому он лучше относится - к цыганам или к бездомным собакам, собаки явно будут в фаворе. Так и тут.
У раста и плюсов общая экологическая ниша, поэтому чем лучше я обосру плюсы на рандомном форуме, тем больше в будущем будет вакансий на расте, либ на расте и так далее.
Ебать, ну и говнище.
У тебя денег не хватит на операцию по смене пола.
есть что из коробки? или так оставить: (f * 100.0).round() / 100.0;
Такие вещи лучше не пытаться оптимизировать вручную, если очень много в коде просто напиши инлайн функцию и вызывай.
Тебе строка нужна или прям число?
Если cтрока, то поизучай форматирование.
Если тебе нужна строгость, чтобы 0.03, это было прям вот 0.03, то используй Decimal из сторонних крейтов.
Ещё тут глянь https://floating-point-gui.de/languages/rust/
>>231299
Вас понял, спасибо. Мне надо, например, из f32 0.06431373 и 0.15581831 получить f32 0.06 и 0.16 соответственно.
Там речь не про шекели, поэтому на правила округления в целом насрать.
Просто думал, что в расте в стандартный либе есть вещи с пика. А тут как обычно: подключай крейт, которой потащит еще десять крейтов...
Библиотечная функция это то что надо избегать, во первых это вызов/возврат оочень далекого кода, во вторых там будут всевозможные проверки на инфинит/нан.
Судя по всему round() в расте все таки шаблонная, так как вызывается от конкретного типа. Тогда она добавляется прямо в программу либо инлайнитс, но если нет и там тупо fround(double f) тогда печально.
А потом ноете хули все так тормозит хули не оптимизируют. А как тебе человек не понимающий сколько стоит вызов и сколько машинного времени экономит инлайн всякой вот такой хуйни, сможет что то оптимизировать.
Да иди ты нахуй, у меня уже из-за спагетти из .borrow() голова болит
>хуесосики
Как понять что в треде завсегдатый шиз, да все просто он поднимет свою любимую ЛГБТ тему
>да все просто он поднимет свою любимую ЛГБТ тему
>Nora Sandler
Не знаю. Вряд ли, даже чтобы их просто почитать нужно деньги заплатить. Кровавый энтерпрайз от мира байтоёбов.
>Нет, вопрос на самом деле серьезный
Но задал ты его в своей гейской манере
>новый движок для лисы отменяется что-ли?
Да, у них бюджеты не сошлись и решили оставить все на геко, а серво теперь пилят энтузиасты и он пока сырой даже до альфы далеко
Не удобный пост
Не понимаю, почему дискордошлюхи отрицают зашкваренность своего недомессенджера, если достаточно зайти в срискорд раста, чтобы увидеть, что там одни гомики и трансухи
Не понимаю почему растохейтеры отрицают свою очевидную гомосексуальность, если достаточно зайти в растотред, чтобы увидеть, что их все их интересы вращаются только вокруг гомиков и трансух из комьюнити раста
тут выше zed обосрали, дело хорошее, мы это одобряем
но есть ли тут кто-нибудь, кто юзает helix editor как IDE?
Чем сложнее язык тем больше там чулочных пидоров. Не знаю с чем это связано
>Не знаю с чем это связано
Может, корреляция высокого интеллекта и желания носить чулки? Тупое быдло не понимает таких забав и вкатывается исключительно за деньгами в примитивный макакинг на жс/питоне.
>На порядок сложнее чем питон
Когда мне надо сделать что-то нетривиальное на Питоне, это всегда ебля на три дня, потому что какие-то зависимости не так прописаны. В Расте собрал, иногда поправил панику и просто работает. Opinion dismissed.
Это буквально "ебать в жопу пидоров", тупо русский мир протекает.
Допустим есть какой-нибудь коннект к БД или еще что-то в этом роде, что нужно во всей программе из рандомных мест. Например:
let mut conn = Client::connect("postgresql://postgres:postgres@localhost/main", NoTls).unwrap();
В static или const это не запихнешь, может есть лайфхаки?)
сам вопрос:
Можно ли этот conn во что-то обернуть, чтобы иметь к нему мутабельный доступ в любом месте программы? А не передавать его из функции в функцию. Или каждый раз инициализировать.
Можно.
Lazy_static?
LazyCell<RefCell> или LazyLock<Mutex> для однопоточки и многопоточки соответственно.
Да, тут что-то я не подумал.
Static меня послал с "cannot be shared between threads safely", а вот const уже норм заработал.
Только я эта... не совсем понял) Оно один раз создаст соединение и будет его каждый раз использовать или оно каждый раз будет создавать новое?
Просто const вроде инлайнит каждый раз, где встретит, т.е. создает новое. С другой стороны там RefCell, т.е. reference...
Т.е. каждый раз новое создает?
Просто я postgresql для примера взял, у меня там еще подключение к ВМ через libvirt (крейт https://crates.io/crates/virt). Больше оно интересовало.
static оберни в макрос thread_local!{}. Тогда при при первом обращении будет создаваться, а при дальнейших уже переиспользовать существующее.
https://github.com/rust-lang/cargo/pull/14287
cargo это не раст, но тоже неплохо
This proposes to stabilize automatic garbage collection of Cargo's global cache data in the cargo home directory.
Ну наконец-то, а то там кэш в хуй знает сколько крейтов и каждый еще по несколько версий и висит это дело никуда не удаляется
Ебать нахуевертил, мы как-то проще подошли к этому. Есть структура контекст, туда всю хуйню засунули и просто пробрасывается в контроллерах
https://docs.rs/axum/latest/axum/extract/struct.State.html
Плюс разбили на слои есть слой контроллеров, который вызывает сервисы и ничего не знает ни о БД, ни обо всем остальном. В сервисах уже бизнеслогика, работа с БД через репозитории и уже там у каждого репозитория ссылка на коннекшен к БД, на слоях выше никто ничего не знает.
Из минусов когда контекст собираешь надо это все руками писать или макрос колхозить, из плюсов знаешь когда и сколько раз у тебя подключается к БД.
нет, он будет чистить goвно
Он нормально приживается только в мелких либах. В крупном проекте сразу начинается ад уровня жс-комбайна с миллионом зависимостей и неподдерживаемым кодом.
Ох какой пост!
Если посмотреть на тех, кто строит себе коттеджи в частном секторе или ближних пригородах любого из 16 российских городов-миллионников, то там нет ни одного человека, который писал бы код, хлебая смузи стаканами. Посмотрите на коттедж на картинке 1 и забор на картинке 2:
https://another-it.ru/2024/08/06/mental-illnesses-of-programmers/
Можете себе представить, чтобы любой из людей, живущих в таком коттедже и за таким забором, открывал бы Neovim или RustRover и, зевая, колотил бы код пальцами на клавиатуре, чтобы успеть закрыть таску в Джире и уложиться в спринт?
Чего картинку не приложил, вообще забавная статья похоже автор сам немного болеет
> у нас тут, смотрите, замена си без ооп вот этого вашего, как раз с сишечки перекатываться.
> урее сишные аутисты понаписали11
Сишные аутисты уже зиганули от вас.
Изъебываться со split_at, вычисляя сколько элементов помещается в этот 53.4% и т.д. или есть способы проще?
он не "немного болеет", там пиздец
вот ему норм объяснили:
https://another-it.ru/2024/08/06/mental-illnesses-of-programmers/#comment-26591
>как красиво взять из него
Взять что? Срез? Ну так посчитай индексы начала и конца.
let n = array.len();
let b = n p1 / 100;
let e = n p2 / 100;
println!("{}", &array[b..=e]);
Проценты в usize сконвертируй сам, хз какое тебе округление требуется.
Может это шизик который здесь вечно срет и написал лол
Хотя уже неделю молчит, надеюсь помер
>вот ему норм объяснили:
Это двачаю, сам вкатился с разных работ, когда занимаюся электромонтажом, то выехать за 200 км в 5 утра и вернутся вечером к 22 и там ебашить весь день почти без остановки за 3000 на руки каждому для нас было очень выгодным предложением замкадье примерно 2015-2018 г. и чтобы получать хотя бы 50к нужно было постоянно ебашить. Сейчас зарплаты повыше, но на уровень того же мидла, который в офисе пердит в стул 8 часов на простых работах надо работать по 12 часов 6 дней в неделю и отношение работодателя кстати совершенно другое.
Даже быть предпринимателем кабанчиком не всегда выгодно не все взлетают до владельцев заводов, газет, параходов, большинство так и остается в своих гаражных производствах или со своими 3,5 пекарнями балансируя у околонулевой прибыли.
Хуйню несешь
Либо все хранится у всех, либо единственный пир удалил говно со своего диска и репа пропала навсегда. Нет спасибо, такое соевое слабоумие нам не надо...
>единственный пир удалил говно со своего диска и репа пропала навсегда
А сейчас как у тебя работает, лол? Если хочешь, чтобы не удалили, то стань одной и нод. Это всяко лучше текущего положения дел, когда кабаны из нужной корпорации стучат гитхабу и те сносят репы, либо же блочат по политическим мотивам.
1) У гихуба есть ответсвенность за то что он хранит, а у Васяна никакой ответстенности нет. Он может в любой момент любое действие совершить над репой.
2) Я не могу наперед знать что мне хранить. В общем случае гитхаб все хранит и ничего не выбрасывает.
3) Никто до этой поделки не запрещал делать зеркала реп
>Никто до этой поделки не запрещал делать зеркала реп
Так это не просто зеркало, а p2p сеть.
Все остальные пункты это не пробема этой поделки, а проблема организационного характера. Вот совсем недавно гугл по ошибке заблочил репы куберпетухам из РФ на пару суток и сразу же вой поднялся, говно по штанам потекло. Ну или можешь вспомнить любой другой пример, которых за последние годы было немало.
Ну и от себя накину, что васян это не всегда плохо. Тот же рутрахер очень давно существует и держит марку качества, а соевые глобохомокорпорации почти ежедневно тебе в штаны срут.
>когда кабаны из нужной корпорации стучат гитхабу и те сносят репы, либо же блочат по политическим мотивам.
Примеры?
>Примеры?
Нинтендо, другие эмуляторы, реверснутая GTA Vice City.
В репах не поставлялся контент за который можно забанить.
>Это всяко лучше текущего положения дел, когда кабаны из нужной корпорации стучат гитхабу и те сносят репы, либо же блочат по политическим мотивам.
С чего лучше-то? Корпорации удаляют по заявкам и по политическим причинам, а васян удаляет по велению своей жопы. Васян куда хуже корпораций, в 10, в 100, в 1000 раз хуже. Доверять что угодно одному хуесосу это самый худший выбор из возможных, 99.99% вероятности, что данные будут уничтожены.
Что за политические причины?
Ну ладно геймдев, он реально живет в своем мирке.
Но политические? Как бы весь цивилизированный мир опен сорса живет спокойно уже хуй знает сколько времени на одной вере
Когда удалит будет уже поздно форкать. Например ты читаешь статью, а там ссылка на код в пир-ту-пир хуне, открываешь ссылку и получаешь нот фаунд.
По спаведливости говоря хозяин репы на гитхабе тоже может репу удалить. Но хранением кода занимается например гитхаб. На поддержание репы у васяна силы не тратятся если он ее просто зархивирует. В p2p надо специально отдельным васянам озадачится доступностью своих и чужих реп. Тысячи причин для отказа. Надоело, комп сломался, свет отключили, интернет отключили и тд. Поэтому выход только один - всем хранить все. Запасаемся петабайтниками и храним у себя всякое дерьмо от педобиров...
https://habr.com/ru/news/837438/
Нет дурачок. Это наподобие торрент клиентов. Да с их помощью пиратят, но сам клиент не нарушает закон. Да и пиратства там нет, используется механизм который сайты сами предлагают, он просто автоматизирован.
>>254137
Сайты сами позволяют смотреть статьи за пейволом, например при переходе по ссылке из гугла. Вот такие вещи и эксплуатирует это расширение.
А еще есть свободный вход твою в квартиру, просто используется механизм который твоя дверь с замком предлагает...
Дебил, я там ниже даже пример привёл.
Вот РБК и Ведомости ничего такого не предлагают, их там и нет.
>пример привел
>например при переходе по ссылке из гугла. Вот такие вещи и эксплуатирует
А отмычка взломщика отлично плходит под пины твоего замка. Ты сам свел все законы к физическим: раз физически возможно - то законно. И кто тут дебил...
>Сайты сами позволяют смотреть статьи за пейволом, например при переходе по ссылке из гугла. Вот такие вещи и эксплуатирует это расширение.
Нарушение еулы
>Но политические? Как бы весь цивилизированный мир опен сорса живет спокойно уже хуй знает сколько времени на одной вере
Лол, гитхаб замораживал аккаунты разработчиков из РФ только потому что они работали в неугодных компаниях, Причем информации об этом в профиле на гитхабе не было.
Иди в /po шизик
>Нарушение еулы
Это очень тонкий вопрос, они же мне не показали еулу, а я не кликнул на принимаю. Ты когда по ссылке из гугла переходишь никакую еулу не принимаешь. Так что не факт что в суде удалось бы это доказать.
Но в данном случае гитхаб просто не стал разбираться и зассав от перспективы разборок в суде просто снёс все репы.
Еула это туалетная бумага. Никто не имеет права сочинять хуету, а потом требовать исполнения другими людьми, они не твои рабы. За такие предъявы надо нахуй посылать, а если настаивает ебало бить.
И правда, с этой DMCA вообще дурдом творится. Произвол.
>>254169
Если ты пускаешь всякого кто скажет "привет, свои", то да, никакого криминала, ходит каждый.
>>254328
Можно сочинять что угодно, но если это противоречит федеральному закону то идет в мусорное ведро.
>>254082
Как там анальный зонд от корпорастов, не выпадает, не натирает?
>Можно сочинять что угодно, но если это противоречит федеральному закону то идет в мусорное ведро.
Какая разница, противоречит или нет. Рандомное хуйло не федеральный законодатель, не имеет права устанавливать свои законы. Мало того, даже официальные законы существуют для людей, а не люди для законов. Неадекватные законы всё равно не исполняются, а когда правительство в их форсе перегибает палку случаются революции и резня таким образом их всё равно отменяя.
Аргументов нет, слив засчитан.
В целом согласен.
Договоры могут быть в сфере гражданского права. Но не могут противоречить федеральному закону, иначе не имеют силы.
Прогоняй код через clippy время от времени, он тебе скажет, что const LazyCell не будет работать так, как ты ожидаешь.
Если лень - https://rust-lang.github.io/rust-clippy/master/index.html#/declare_interior_mutable_const
Нет, мы тут код не пишем
Не ну а чё, в крестах 10 лет назад тоже темплейты такое выдавали. Терпи, язык развивающийся, рано или поздно догонит кресты.
> В обеих говорится одно и то же
Во втором он сказал что большинство проблем пердоликса из-за логических багов, а не небезопасной памяти.
Растаны говорили что вот вам простая и безопасная работа с памятью, но как оказалось на практике в системщине это никому не надо, пригодилось только питонистам, в принципе не умеющим работать с памятью.
У нас походу разное содержимое статей с тобой открывается, потому что я там вообще ни слова обсуждения про безопасную память не увидел.
Объясни, зачем старым разработчикам учить хрюкст, когда есть новые, умные, дерзкие хрюкстеры заявляющие свое превосходство? Вот брали бы и делали лучше стариков, в чём проблемы-то? Откуда тормоза? Так чем конкретно этот Пердорвальдс недоволен?
Чтобы разрабатывать ядро, нужно не только знать раст, но ещё C и само ядро. Сочетание этих трёх компетенций — достаточно редкое. Кстати именно об этом написано в коммите curl — чтобы поддерживать растовый бэкенд нужно крепкое знание раста, C и HTTP. Таких людей тоже не хватает.
Си-разработчики
- изучили си, изучили ядро
- успешно пишут ядро
- изучили http
- успешно пишут curl
Хрюстеры
- си не осилили, ядро не осилили
- залезли в ядро - наговнякали немного и пошел слив
- http не осилили
- залезли в curl, нишмагли, забросили, мусор на выброс
Получается, раст не язык программирования для создания программ, а диверсионное орудие, залезть в чужой рабочий проект, обосрать разработчиков "вы небезапасные! ря! отменить! запритить! заменить на правильный раст!", если повезет, этим их разогнать, не повезет, затормозить разработку засирая говнокодом и отвлекая от полезной работы. Короче, то же повесточное вредительство влезть и срать требованиями квот на раст и CoC-ками.
Пикабушник, ты там в пьяном угаре сидишь?
Перетолстил.
Лолсто. Вообще в ядре не тот Си, который изучили Сишники, там своя доп. поебота написанная Линусом, вообще может новый раст и говно, но мне кажется старый раст с системой типов, минимумом фич, с бч взлетел бы в нише сиспрога, но это очень мелкий рынок. Я тут вспомнил, в касперыче была система, где на хаскеле транспилили в си, потому что внезапно на хаскеле писать проще, чем на си.
Челик у нас в РФ ютуба нет.
> с системой типов
Это ведь одна из самых уёбищных фич раста, наравне с боров-чекером. Строгая типизация может только макакам-джавистам пригодиться или в академической функциональщине, для системщины это сплошная боль, когда тебе надо писать костыли для обхода/конверсии этого дерьма.
Скажи это челибосам из мисры, которые не исплоьзуют int, например.
Хуя даун
На C подобные задачи решать желания не возникает, хотя бы потому что ту же кучу придётся самостоятельно писать.
Однако на литкоде не все задачи адаптированы под раст, попадалась такие, которые пришлось решать на других языках. К счастью, это были задачи связанные с деревьями и не требующие никаких хитрых структур данных, поэтому я выбрал C для их решения. Пример:
https://leetcode.com/problems/copy-list-with-random-pointer/
https://leetcode.com/problems/linked-list-cycle/
https://leetcode.com/problems/delete-node-in-a-linked-list/
У этих задач линейная оценка времени (или даже O(1) для последней задачи). По моему опыту решение подобных задач на расте при проверке на литкоде даёт время 0-2 мс (2мс — это похоже предел погрешности измерения). Решение на C в 4 раза медленнее (7-9 мс). Я связываю это с тем, что литкод вроде бы компилирует C/C++ с включёнными санитайзерами, которые естественно добавляют изрядно оверхеда. Для раста это не требуется, потому что он сука безопасный по памяти. Особенно это хорошо заметно на последней задаче, т.к. её решение это тупо одна строка.
В целом думаю у раста и C время выполнения одинаковое для одинаковых алгоритмов. На расте только проще и быстрее решать. Но признаю честно, что те же адаптированные к расту задачи с деревьями поначалу доставили много боли, прежде чем я раздуплился как это удобнее делать.
>Удалить Ноду из Списка
>бла...
>бла......
>бла.........
>...под удалить мы подразумевает не удаление, а ...бла-бла-бла...
Дебилизм достойный треда языка говна. Дегенераты даже человеческий язык не осилили, а лезут в программирование.
Из списка нода удалена, причина тряски?
>Строгая типизация может только макакам-джавистам пригодиться
>для системщины это сплошная боль
Святая толстота
Хотя как-то довелось править модуль для mysql написанный на сишке, было ощущение что это жопаскрипт
>Смотрите: движков полно, игр мало. Почему?
Потому что логику игр удобнее писать на всяких жопоскриптах и шарпах. Там целая паста от геймера есть, как он страдал с глобусом и совой.
и да, для разработки игр нужен тулинг, студии и всякое. Натянутый рендер поверх сишных либ, это не движок.
В них слабая типизация, у них типы средствами языка можно выкинуть или скастовать к несовместимому типу. А вот, например, в питоне - строгая, там если переменная получила тип, то он гвоздями прибит прямо как в расте.
Как смысл раста
>Раст как трансы с пидорами, его уже выбрали жиды с бесконечным баблом на поддув. Разве не видишь, что пидарасня мерзкие уроды, а не люди, но это не мешает их форсить, вот и раст то же самое, плевать насколько это уебанский недоязык, это не мешает его форсить из каждого утюга, наоборот, именно за это его и форсят - нагадить, развалить, в чём цель жидопропаганды и состоит, найти говно повонючей и измазать в нём весь мир, на отряды разбрасывателей и мазателей говна у них средства есть.
Не думаю что ты сможешь мне чем-то помочь, коллега. Но спасибо за заботу, мне приятно!
> ада
> The Americans with Disabilities Act (ADA) protects people with disabilities from discrimination. Disability rights are civil rights. From voting to parking, the ADA is a law that protects people with disabilities in many areas of public life.
Звучит как организация для растанов.
Транс, причина тряски?
хочу 600к+ в год чилловой зп(баксов) или же быть стартапером 1млрд++
стоит учить раст как 1 язык? знаю чуток с, с++ на уровне обучалки до массивов.
англ с1 уверенный
я прросто хочу сильно разбогатеть
Паскаль.
Поэтому непопулярен, ни один умный человек не захочет ебаться с приведением типов. Такие языки, которые вместо предоставления возможностей связывают программисту руки форсами "ты пишыш ниправильна, пиши правильна как яскозал" - по определению для тупого быдла. Макакам всегда нужен надсмотрщик указывающий как жить, без которого рабы не могут, своей воли у рабов же нет. Тупой рабский скот не может написать ничего стоящего, только макакин говнокод по шаблонам шлепать.
Я про зарплату
Эта хуйня называется ivory, гораздо лучше, чем этот ваш раст, например.
Не, ну а что? Учишь раст -> становишься трапом -> ищешь ёбыря -> профит. Звучит как план успеха.
Создаю миллион векторов по 10 u8 и памяти жрет 59_822_080
чистых байтов данных там 10лямов. Что за накладные расходы что в 5 раз больше самих данных?
ой точно. это ж список, а не байтовый массив
Впрочем, это никак не влияет на результат.
Даже при таком безумном капасити 1000 векторов занимает всего 3 мегабайта, то есть капасити Vec::with_capacity(1_000_000) ничего не меняет и жрут память именно миллион векторов. Но почему так много?
24 байта на 10 000 000 - это 228 мегабайт. Еще 10 * 1 000 000 - это еще 9. Еще сколько-то отжирает malloc под выравнивания.
ну если как в шарпе то
1_000_000 (24(хидер)+10(данные)+8(ссылка)) = 1_000_000 42 (шарп как то выравнивает по 40) = 42_000_000
Даже если выравнивать по 8 то это в запредельном случае еще +8_000_000. Но остается еще 9 мегабайт.
Так почему он ушел и от чего устал?
>I truly believe the future of kernels is with memory-safe languages
Их уже много таких языков? Или раст перестал пахнуть свежестью и модники устали, нужен новый безопасный язык?
Пока молодые и шутливые сишники с легкостью перебрасывают указатели через бедро, протухший чулочник устал играть в рефакторинг с баран чекером и поплыл в закат. А прикиньте что будет, если прекратить переписывать и начать реально писать свой код!
>Так почему он ушел и от чего устал?
Хз, мне кажется, что случилось "пиздеть не мешки ворочать" и чувак ушел очередный мокрописьки для консоли писать с ЛГБТ подсветкой. Просто перевод своего труда и жизни в пустоту ради идеологии.
Эту картинку (кажется) сделали в программаче до того как я вкатился будучи скуфом. Я еще здесь тролил таких же вкатунов что уже поздно, кат закрыт
Там нечего рассказывать, вкатился в Мухосранской галере, потом пару раз сменил стек в ДС2, но в пределах пыхоплеяды. Вкатунам лучше не слушать что говорят двачеры.
>Вкатунам лучше не слушать что говорят двачеры.
А что тебе говорили? Я просто вкатился до того как начал местный бред читать.
То же что и сейчас. Что все. Тогда всес двачеры в руби хотели, как сейчас в голенг.
Я вдохновился пхп картинкой и запилил серию.
Хотя ХЗ уже много лет прошло
Это у тебя эффект Манделы, это было, видимо, в другой интерпретации вселенной. У го всегда была эта пикча, а по питону была это херь сначала.
Мне думается, они сделали фатальную ошибку, когда полезли в этот священный и чистый мир си.
https://www.youtube.com/watch?v=XHosLhPEN3k
> священный и чистый мир
Литерали докладчик показал нечистую хуйню в сишной АПИ, которая из-за священности (и пяти основных файловых систем с тоннами кода, и кучи других не таких основных) не будет меняться, а важный хуй из зала сказал что ебал ваш раст и не собирается с ним разбираться и будет (может быть) чинить это (когда-нибудь) без оглядки на поломки байндингов раста, который делает из нечистой хуйни чистую.
В сишечке ядра священность победила чистоту лол, а местные гомо-хейтерки кукарекали про карго-культ в расте.
Ждём хода злых корпоратов, о которых местные гомо-хетерки тоже кукарекали - схватка священности и бобла это всегда интересно.
>устал играть в рефакторинг с баран чекером
С ним рефакторить в разы проще, меньше вероятности что-то сломать. Тебе наверное с дивана виднее
Зато у тебя код на 99% из костылей состоит, которые втыкаются когда в очередной раз надо поменять логику и обойти боров-чеккер.
>Зато у тебя код на 99% из костылей состоит,
Не состоит
>когда в очередной раз надо поменять логику и обойти боров-чеккер.
Зачем его обходить? Пиши сразу нормально в парадигме раста, а не как в сишке когда мутабельную ссылку на одну переменную пробрасываешь в каждую дыру. Ты просто гвозди микроскопом заколачиваешь, от чего и страдаешь
Я понимаю, что в мире раста здоровая стабильность это нонсенс, но в реальном мире с легаси приходится мириться. В этом и заключается сложность и поддержка производственных решений, которые выполняют настоящую работу, а не просто ЛГБТ расцветкой пердят в консольку. Если растоблядям не нравится что-то, то пусть идут и пишут свою расово верную альтернативу и конкрурируют как атланты, но почему-то был выбран путь паразитирования на уже успешной экосистеме, но даже тут потерпели неудачу после появления первых трудностей. Может быть, правильно делают люди, которые поддерживают по настоящему полезную систему годами, решая проблемы человечества, когда предьявляют вполне справедливые замечания растотрунам, которые из-за своей нестабильной психики визжат как девочки и сразу все бросают? Зачем нам такие разрабы?
Там скорее бч отключен при конпеляции ведра, польза от раста - тупо нескучные перделки и свистелки.
По версии бизнеса, разумных людей и пользователей. Сам подумай головой кто для проекта лучше:
- тот кто обеспечивает здоровую обратную совместимость и стабильность, решает настоящие проблемы, не отвлекается на хуету
- тот кто из-за идеалистических соображений что-то насрал и слился, когда не осилил
Кому нужен второй вариант? Вот ты бы брал себе работника, который вместо решения проблем начинает заниматься хуетой, психовать и обижаться?
Конечно, аналогия не аргумент, но представь себе, что локомотив ходит по некоторому расписанию и развозит уголь. Вот однажды пришли художники по некоторой творчесткой инициативе, чтобы раскрасить вагоны и им это разрешили сделать. Но вдруг хужожники начинают верещать, что не могут что-то докрасить потому что локомотив делает свою работу и возит уголь. Чья это проблема? Локомотива или художника? Если состав локомотива попросит жудожников успевать красить во время стоянки, а ты просто ливнут от обиды, то проблема ли это состава локомотива?
>>259896
>гей-шиза, который не первый тред уже срёт про ЛГБТ повестку
Ну да, ведь такого в растосообществе нет.
>Ну да, ведь такого в растосообществе нет.
Самый главный ЛГБТ активист в этом треде только ты
>а не как в сишке когда мутабельную ссылку на одну переменную пробрасываешь в каждую дыру
Если нужно мутабельную ссылку пробросить, почему нет?
>нет ты
Ясно.
Ты когда входишь в помещение и тебя оттуда выгоняют из-за твоей вони, тоже пытаешься перефорсить?
Его нельзя отключить. Это часть компилятора.
>Если нужно мутабельную ссылку пробросить, почему нет?
Это просто нужно делать тогда когда действительно нужно что-то действительно изменять, а сишники привыкли на своем писать и пробрасывают их везде и всюду, весь код состоит из объявлений let mut, а потом ноют что ебутся с баран чекером
Какой нахуй перефорс, гомошиз? Тут только ты ходишь и рассказываешь про ЛГБТ не первый тред, кроме тебя никто этим не занимается
Таблетки, шиз. В моих постах про гомохуету только выражение "ЛГБТ цвета в терминале" с отсылкой на то, что убогие кроме цветных текстовых утилит ничего не пишут.
Ну и глубо отрицать гомошизу в сообществе раста.
Ты болен.
>-Если нужно мутабельную ссылку пробросить, почему нет?
>-РЯЯЯЯ СИШНИКИ ПРИВЫКЛИ РЯЯЯЯ
))
У мисры даже правило 8.13 есть на этот счёт.
> Пиши сразу нормально в парадигме раста
И как ты собираешься потом этот код переписывать, когда у тебя зависимости снизу-вверх, а не как у нормальных людей? Сотни проектов на расте как раз и сдохли потому что этот кал невозможно рефакторить на больших проектах, только переписать полностью. Это любимая забава растанов - переписывать сишку, а потом переписывать раст.
Потом обратно на си перепишут, лол.
Ты все равно упрешься в базу и io, а всякие гошарподжавы по производительности на уровне и иногда даже шустрее работают, ибо веб это не числодробилка, так что сомнительный кейс, с учетом того, ходит мнение, что баран чекер с асинками доставляет тонну трудностей. Я не спец, но пахнет лютым оверхедом. Если тебе делать нехер и нет планов искать себе кодеров, то можешь ковыряться хотя я думаю с клонированием и Rc<RefCell< ты все равно просядешь по производительности
Я могу быть не прав, но учти, что растеры фанатики и много врут, а я двачер, эксперт в ничем.
>обычные ниассиляторы
Челик, который деливерит, заебался рефакторить раст, вся суть, что это бесконечное переписывание. А ты-то кто? Хуй с горы?
>заебался рефакторить раст
а кто сказал что из за раста. люди банально выгорают, это нормально. Я тоже в свое время вот таким был, а потом семья заботы и другие интересы кроме энтузиазма.
В вебе? Врятли, там системные языки особо не нужны
В системке? Там в целом вакансий не так много, так ещё и с плюсов как то слезать не особо собираются, так ещё начали го активно использовать
В геймдеве? Ну там переписывать ничего на Раст точно не будут, движки уже давно на плюсах, логику на расте писать тоже сомнительно
Крипта? Аналогично вакансий в целом не так уж и много
В общем много вакансий точно не будет
А вы мне блядь объясните что за плюсы вообще в расте, чтобы на нём писать, ну кроме бч?
Если ты такие вопросы задаешь, значит для тебя никакие
вас его учить что-ли кто то заставляет или что
Ви не понимаете, это охуенно удобно и решает проблемы бизнеса.
Тоже интересно, без хейтерства. Мне больше интересно насколько его удобно сопровождать и читать сорцы? Как-то пробовал сорцы пхп читать и не осилил.
Это сила привычки. Любое "да блин что ту за лапша понаписана" превращается в "аааа вот оно чё" по мере привыкания к языку.
Хотя некоторые могут не осилить. Не всем дано.
>Как-то пробовал сорцы пхп
В смысле, те сорцы интерпретатора на си, а некод пхп.
Вообще очень понравился тулинг джавы, там дебагером прям по фреймворку ходишь и смотришь как там все устроенно.
Такая радость вообще есть на сях или расте?
>Что тебя смущает?
Ну для меня такая вложенность дженериков кажется диким, но потом я вспомнил что у вас типы там как контейнеры используют и один тип в другой заворачивают и подумал может норм. Хз, что во что заворачивать и в какой последовательности, а вдруг мой сосед в другой последовательности завернет? Ну в реале это портит читаемость или наоборот даже помогает?
Что там читаемость портит? Буквально слево направо читаешь
Тебе не понятно что резулт значит? Или что такое either?
> вдруг мой сосед в другой последовательности завернет?
Все что там можно перепутать так это последовательность типов в Either, сможешь догадаться почему это но на что не повлияет?
Проблема в том о для раста требуется "Visual Studio C++ Build tools " (6гб, лол), но билдер уже не ставится на семерку. То есть, я теперь не могу раст установить на старый ноут?
А где я драйвера возьму?
Почему старый го ставится норм или нода, а раст просто недостижим? Это офигенная политика - зависеть от билдера винды. Это кстати одна из причин протухания рубей, что они херова дружили с виндой.
>А где я драйвера возьму?
винда сама принесет. Тут больше проблема с самой виндой
у меня Dell Inspiron 3781 i3 7020U/ то есть дрова дровами. И если туда поставить винду свежую, то вроде едет, но после первых же апдейтов стает раком. Потому обычную десятку для пользователя нельзя - там понапихано куча говна
А вот сборка от васяна вполне себе летает, ну да не обновляется (только дрова притаскивает), ну так и 7ка мертва.
Может когда-нибудь изобретут вывод типов как в крестах. Там часто дженерики в принципе не требуют скобочки юзать, типы и так выводятся. А есть ещё auto чтоб компилятор/IDE заставлять работать, а не очко кодера.
У меня на этой жопе десктопном линуксе просто периодично что-то отваливается, я серьезно, это какая-то жесть, хотя серверную часть я уважаю.
>>260212
Так в следующем году и 10 устареет, лол. Это печально, есть рабочая пека, но я хотел лампово на кровате потыкать. Погуглил, всем насрать даже на то, что с билдером ставится вся вижла 6гигов.
А разве вывода нет
не нужно в векторе тип указывать. И выходной тип функции тоже сама IDE может написать после твоей писанины. В RustRover точно.
Не писать сигнатуру вовсе - это слишком дорогое удовольствие в реальном времени глубоко копать чтобы все типы вывести
>>260215
>Так в следующем году и 10 устареет, лол
только обычная. ИоТ будет аж до 32 года жить. Впрочем тебя не сильно парит устаревание раз ты на 7 сидишь.
Так что на 3 годика хватит, а там заработаешь на расте и купишь себе новый б/у ноут
>просто периодично что-то отваливается, я серьезно, это какая-то жесть, хотя серверную часть я уважаю.
6 лет на блядиксе, брат жив, зависимость есть.
Недавно все свои устройства на nixos перевел и теперь горя не знаю.
Ну ты представляешь уровень сего говна, если они кладут болт на обратную совместимость? Основная фишка си, что эта говнина будет работать где угодно и когда угодна, а они же противопоставляют себя си.
Даже жопоскрипту не похер на меня. Я был готов что старая нода не поднимется на старом железе, но никак не системный язык. Это ппц дно.
зачем это им? пусть сишники свое болото и поддерживают. А остальным дорога в светлое будущее.
Софт продолжает поддерживать старье? нет.
Почему они вдруг должны напрягаться? ради кого?
кто находился? куда смотреть? популярность rust только растет.
или вы про сишников с их супер языком что в итоге родилась жава и 100500 других языков лишь бы на си не писать.
Какое отношение обратное совместимость имеет к тому что ты на некро железе, на некро ос не можешь по запустить?
Малолетние умы, некрокомпиляторы и вообще некроверсии ПО должны запускаться на некроОСе, это база. И тут даже не речь не про постоянство ABI, а про то что у них сломалось что работало и должно работать. Это просто инженерный кринж объясняя вашим языком
> Не писать сигнатуру вовсе - это слишком дорогое удовольствие в реальном времени глубоко копать чтобы все типы вывести
Не вижу никаких проблем. В крестах типы можно вообще не писать, в том числе в дженериках.
ну раст может то же самое.
Даже выведет тебе тип вектора, который ты передал в метод и уже там в него что то записали.
Я говорил про "вообще нигде не писать никогда - пусть сам выводит, то есть без лимита глубины"
https://www.youtube.com/watch?v=2hWfLiRGaNM
Принесите мне лица тех, кто долбился с асинками и баранчекером, веря что их приложение быстрее чем язык с ГЦ?
видео не смотрел, но ох уж эти сравнения
даю 2 намека
1 в тестах язык с GC может не использовать этот GC толком ибо это хелловорлды. А если не хелловорлды то пункт 2
2 возьми любой ЯП и 2 фреймворка и сравни их между собой. и дальше удивляйся почему это они не равны до миллипуссисекунды, ведь ЯП же один
надеюсь я донес мысль всех этих сравнений "сравниваем 2 фреймворка с разной функциональностью и возможностями и делаем вывод про языки". К тому же если бы голанг был хотя бы соразмерен по возможностям расту, а не представлял собой убогое говнище. А то так ассемблер быстрее всего, но писать на нем....
Семерка у меня на ноуте, я люблю лежа читать, смотреть кино и серфить инет, мне лень обновляться и трахаться когда и так все устраивает, на компе у меня 10, чтобы кодить и играть в игры. Ты пытаешься меня ущемить версией ОС? Ты серьезно? У меня на ноуте оперативы хватит чтобы запустить параллельно пинус на виртуалбоксе и покомпилить эти хеллоуворды, о чем ты?
Вероятно, я могу даже через гну-abi запустить твой кривой раст, но разработчики сами насрали себе в штаны, зачем мне что-то делать? Я средней представитель винды и даже если бы я поставил 10 я бы много раз подумал чтобы ставить вижлу с 6 гигами, чтобы потыкать в краба. А то что старая версия тупо не рабоает на старой ОС, меня вообще пугает как инженера, это показатель того насколько там у них все сыро в техническом плане. и да, иди нахер глупый фанатик, хуже нет додиков, возводящих технологии в догму
Нет, там буквально раст обдристался в тестах, кроме озу. Одно дело подгонять раст под тесты фибоначчи и прочую чепуху, другое взять популярный веб сервер и поесть говна.
Вот мучаешься ты, конвертишь строки в строки, страдаешь с борроу чекером, костылишь через Rc, клонируешь постоянно и все ради чего, ради того, что в глубине души ты веришь что выиграл по производительности пару процессорных тактов, а тут на, твоя херь жрет в 10 раз больше проца, чем высер на хомяке. Лицо?
Кстати, на го не самый быстрей вебсервер был взят.
веб вебу рознь. язык тоже. мне сможет го гарантировать что нигде не будет нулл? а что там с разными фичами (я хз какие но про дженерики помню было много шума прежде чем их ввели, а что не ввели?). А что насчет самого фреймворка. Если оно будет расти, то что будет? как обычно "го для микросервисов"?
Это я молчу про всякие другие вещи влияющие на RPS - кеш, турбобуст, сетевой стек и так далее.
>быстрей вебсервер был взят
синклер бейсик порвет всех если скомпилить. не умеет правда ничего )
Тут вопрос в чем, нахер тогда раст нужен? На нем тяжелая разработка и сопровождение, особенно асинхронная разработка. И ради чего это все, когда по соседству сидит гофер и даже не чувствует что пишет асинхронно и жрет в 10 раз меньше проца? В чем профит?
когда там актикс стал фулл вебфреймворком, что за мнимые маневры пошли?
каждому свое. мне вот от синтаксиса го плохо. И пока гошник гоншничает я на шарпе уже запустился и получаю бабло и только потом думаю о масштабировании.
раст хорош гарантиями и системщиной. А раст в вебе? а почему нет. Для тех кто не чокнутый как я (и не хочет знать несколько языков) - тем зачем еще учить всякое говно типа го...и выгребать его слабые гарантии.
>когда там актикс стал фулл вебфреймворком, что за мнимые маневры пошли?
дополню. я ничего не знаю про актикс. зато я знаю цену таким тестам.
фулл не фулл - он ДРУГОЙ. А это значит сравнение разных вещей. Причем не во всех аспектах, а тупо в одном - в скорости. Ну кто хочет скорости пусть на ассемблере статику лабает - скорости будет завались, толку правда них
фантазии гошника? ну ок.
язык общего назначения (и даже не его, а один из его фреймворков) сравнили с языком что изначально создавался под веб в ущерб фичастости и не особой безопасности
видимо у го ничего нет, раз гошники бегают по вебу радость ищут хотя бы такого рода)))
я тоже шарпист. Но я при этом не отрываюсь от реальности. Тот же раст порвет шарп по скорости....но я все равно пишу на шарпе ибо скорость это не главное.
И я на забываю что выигрываю и чем плачу за выигрыш.
>Тот же раст порвет шарп по скорости
Только что порвали раст. Что за религия у тебя, почему так крепок манямир? Ты реально думаешь - что взяв ассемблер или си, ты напишешь код быстрее питона? Писать оптимизированный код, это тот еще скилл.
Ты только что взял популярный вебфрейворк и твой раст превратился в тыкву. Ты возьмешь Qt и твой С++ превратится в тыкву.
> ну раст может то же самое
Нихуя он не может. В сигнатуре всегда надо писать всю лапшу - произвольный тип ты не можешь вернуть, принять можно только дженериком. Тип полей структуры он тоже не умеет нормально выводить.
> вообще нигде не писать никогда - пусть сам выводит, то есть без лимита глубины
В крестах так и есть, лимита нет, если там конечно не бесконечная рекурсия.
у меня не религия а здравый смысл.
Я не сравниваю теплое с мягким.
Я знаю что раст быстрее шарпа, но я не бегу бежать на раст
в говносравнении кто то там намерил еще неизвестно что и у него вышло типа что го быстрее - и что? го от этого не стал лучше. и сравнение хрен знает чего.
количество языков которые я изучал и использовал больше чем пальцев на одной руке. Поэтому я знаю сам сильные и слабые стороны каждого из языков. И даже сейчас я активно использую (с растом 6). И вот эти сравнения у меня вызывают просто смех. Скорость можете засунуть себе в одно место. твитер был написан на руби - где вы и где твитер? вк вообще на пхп был написан, а потом они переделали компилятор. Но НЕ взяли почему то "а давайте все перепишем на го".
Поэтому если сравнивать то КОМПЛЕКСНО. иначе это сравнение говно.
Надеюсь, я донес свою мысль.
>>260461
раст дает гарантий что у меня нигде не будет nil. я го не изучал (меня от него тошнит), но где то видел что у него вполне может оказаться nil который ты с радостью поймаешь в рантайме
>>260462
я не знаю что может что не может. сигнатуры ты должен писать, но написать за тебя это может IDE. и это нужно ОДИН РАЗ и бац у тебя готовая сигнатура
а ту фигню что ты на скрине показал - это я видел в RustRover, так что мимо
>В крестах так и есть, лимита нет
без понятия про то что там щас в крестах но
а) это идиотизм
б) это ИДИОТИЗМ
в) сколько это стоит?
даже если не брать стоимость, то заставлять выводить сигнатуру хрен знает чего из кишок? что то ты фантазируешь. И вообще, там же вроде хидер файлы с сигнатурами. какой нахрен "не пишем типы нигде мы ж ебобо и пусть за нас каждый раз вычисляют" ты мне тут задвигаешь.
>а) это идиотизм
>б) это ИДИОТИЗМ
Почему? Обратная связь от языка это очень важно и чем она быстрее тем лучше.
в чем обратная связь? вместо явной сигнатуры которая написала словами (неважно кто ее написал) и ее можно увидеть глазами - нужно подключать IDE чтобы он что прояснил?
тут помню в разных языках за var был дикий ор, а ты прямо вообще сигнатуры рубишь
ну или я не знаю о чем ты говоришь.
но если о "не хочу писать сигнатуры", то в аду для тебя отдельный котел...с кольями....и то что со второго стула
> это идиотизм
Идиотизм иметь лапшу в коде, которая даже в экран может не уместиться.
> хрен знает чего из кишок
IDE и компилятор прекрасно знают что там. Хотя в коде как будто на питоне пишем без типов.
>Идиотизм иметь лапшу в коде, которая даже в экран может не уместиться.
ну тут 2 стула. либо ты проверяешь каждую возможную проблему, либо ты о ней узнаешь потом...в рантайме...когда миллионы компов по миру выдают синий экран...а потом ты такой синий ибо к тебе 100500 исков...и у тебя только "мы ни за что не отвечаем", что сработает, но попрут тебя с вольчим билетом
будем честны - раст имеет немало средств писать покороче по возможности, раз уж приходится сидеть на этом стуле
>IDE и компилятор прекрасно знают что там
рад за них. но я не компилятор.
Да ничего не делай, смотри фильмы читай книги
>Компилятор который ставился на семерку, больше не ставится
>ты неосилятор
Как же деградировали растеры, теперь на любую попаболь они тупо кричат -"ряяяя не осилил!"
но это же правда. чего ты споришь то
> либо ты о ней узнаешь потом...в рантайме
Чел, компилятор не скомпилирует код, если там проёб в типах какой-то.
>некроверсии ПО должны запускаться на некроОСе, это база
Так некроверсия Раста спокойно запустится на некроОСе, в чем проблема-то?
>Так некроверсия Раста спокойно запустится на некроОСе, в чем проблема-то?
Проблема в том что уже постов 10 говорят что нет, один додик говорит что ты неосилил (речь даже не о самом языке), другой говорит что ненужно, третий врывается в тред и говорит все работает, просто цирк дебилов какой-то.
Людей заебала ебля с Симейком.
> о нем все трындят
Все это кто? Твои красноглазые протыки? Зиг калище ещё то, он в принципе никуда не влетит, только так и останется для пердолинга под пердоликсом для желающих получить новые ощущения.
>Зиг калище ещё то, он в принципе никуда не влетит, только так и останется для пердолинга под пердоликсом для желающих получить новые ощущения.
Так-то на зиге написано больше лоулевел приколов чем на срасте, особенно во встройке.
Если в расте нет nil, то это уже гарантия, что его нигде не будет. Хотя там есть None, но это же другое?
Да. Это другое. Компилятор заставит тебя не забыть про "там может быть и none". Компилятор не позволяет тебе забыть про такой вариант. Эти доп проверки конечно добавляют тактов, зато в рантайме потом не вылезет "сюрпрайз мазафака забыл проверочку? "
И разве можно передать None вместо значения? А nil можно как я понял
Капец же у го уродский синтаксис.
Бімп
Прайм о нем часто говорил и вкатывается на стримах, недавно в подкасте подлодки упоминали, девелоперс войс брали интервью у зигера и потом говорили про кросскомпилятор зига, и еще пачка где о нем говорят или как минимум упоминают. При этом на нем пилят продукт реди решения, например как интерпретатор js, а убер финансирует фонд зига и юзает кросскомпилятор си (зига).
Вспомните рождение раста 1.0, народ от силы переписывал grep.
>протыки
Хотя по сленгу ты дегрод из б, но все же - на, покушай.
Такой же тах как в го, у нормальный языков давно есть наллабл типы и синтаксис чтобы в if-else не пердолиться. ой, простите, патерн матчинг
> например как интерпретатор js
Который сейчас фактически самый медленный интерпретатор жс, ахуеть успех. Он только пердолинг реди, а не продукт реди, с нодой он вообще не может конкурировать. По факту кроме Bun нихуя дельного на зиге и не пишется сейчас.
> упоминали
Абсолютно идентичная история, инфоцыганам надо всегда что-то новое обсасывать, теперь вместо раста пришло время зига, ничего не поменялось. Намного показательнее как они фиксят баги компилятора - если пердоли решат что это низкая важность винда, ага, на ней вообще их не фиксят и перекладывают их из года в год в следующий релиз, то годами. Пирилейтед, фикс 950 багов запланирован на 0.16, который должен выйти в 2026.
> а убер финансирует фонд зига и юзает кросскомпилятор си (зига)
А окамл финансируют мета и майки. Он от этого стал нормальным языком, который используется где-то кроме пары нишевых проектов в бизнесе?
> кросскомпилятор си
Ещё одно ублюдское говно от пердолей, наполненное пиздежом на 146%. Они обещали удобную замену шланга со встроенной системой сборки, в итоге чтоб хеллоу-ворлд на сишке собрать надо 100 строчек кода на зиге, а сам компилятор работает через очко за пределами линукса. Очень удобно, особенно когда сахара нет.
Лiл. Сразу видно долбоёба шарписта? Сисярп школьник, что будет, если ты вызовешь малок, а тот не сможешь выделить памяти?
ну может где и платят за изврат, но обычно за рабочий код. А за "хочу в расте маллоки вызывать" меня, скорее всего, просто отп....не погладят то есть
В прошлом треде перемогали переписываением на расте всего и вся в ядре линупса, в этом треде:
>А за "хочу в расте маллоки вызывать" меня, скорее всего, просто отп....не погладят то есть
)) Чёт походу пизда расту, даже теперь фирмварю для buggplug.io не пописать.
> на расте всего и вся в ядре линупса
не уловил связи между этим и маллок
звучит как
- давайте вместо кривого ружья выдадим вам отличную снайперскую винтовку, а лучше сразу держите готовую дичь в виде фазана.
- а как мне себе по ногам то стрелять? дуло длинное, неудобно же целиться себе в ногу. А фазаном тем более ногу не прострелить.
для любителей пое..сноша...в общем развлечь себя си никто не забирает.
А то че? Ты перепишешь сишарп на раст?
с какого перепугу? это ты пришел в тред языка что не дает стрелять по ногам и придираешься к этому
Я пришел за языком что мешает мне это делать. Если у сисянов от этого горит, значит язык ОТЛИЧНЫЙ.
>-Вы что хотите, чтобы я вызвал функцию, вы чё бля эта а бля?
Ниче, ещё подождём и быдлу запретят интернет.
let f: f32 = 0.220222;
println!("{}", f as f64);
}
Выводит 0.22022199630737305.
Как это работает? Почему она добавляет не нули, а добавляет рандом? Что делать, если нужны нули?
и гошники сразу станут никому не нужны, а растовики останутся востребованными. Ээээх святые мечты.
Использовать другой тип данных. Числа с плавающей точкой одинарной точности (f32), гарантируют только 6-7 значащих цифр после запятой.
не знаю, где шизы больше: на твоем пике или на моем
>что будет, если ты вызовешь малок, а тот не сможешь выделить памяти?
У процов Райзен виртуальное пространство на 256 терабайт, это литералли никогда не случится.
Тебе ни одна ОС не даст выделить даже 10 гигов одним вызовом. Есть куча ситуаций, когда даже если у тебя 146 гигов свободно, malloc всё равно не выделит память.
тогда зачем спрашиваешь?
у тебя вопросы типа "как пожрать говна и не подать виду"
вопрос "а зачем вообще жрать говно" у тебя не возникает даже
Так и вижу как из карго подтягивается пакет nuclear_power_plant_3.22, а за ним еще 1034 зависимости с тремя бэкдоромами и рекламой сосисек.
Окей, Винда не дала мне терабайт, но я не знаю, это malloc не сработал, или Раст исключение перехватил. Если же случится настоящий ООМ, то вообще насрать, у тебя не факт, что есть память, чтобы ошибку в лог напечатать.
Олсо, в Линуксе malloc вообще работает как VirtualAlloc в WinAPI, он даже не будет проверять, сколько у него есть места в свопе, а просто ёбнет процесс в рандомный момент.
когда все сишное говно будет переписано на великолепный раст, то всякие там птр уйдут в небытие.
Что за драма, лень перечитывать весь высер.
https://doc.rust-lang.org/std/mem/fn.needs_drop.html
Объект может быть спроектирован, чтобы жить до конца программы и не иметь деструктора, но это редкость.
Да просто бывает что когда использую какую-нибудь структурку, без задней мысли передаю её в какую-нибудь функцию, а потом в этом (вызывающем) скоупе получаю "value used after move" если хочу, скажем, после вызова прочитать что-нибудь из этой структуры. Конечно, чаще всего и так понятно можно так делать или нет если там внутри явно должна быть какая-то коллекция динамического размера например, да и фиксится несложно. Просто задумался о том как сразу по-правильному делать и не заниматься compiler-error-driven development в случаях когда неочевидно.
>>264135
Ну это подойдёт если надо во время компиляции или выполнения программы это определять, я больше про как это во время кодописания понимать... но всё равно интересно, спасибо.
>value used after move
Эта ошибка не имеет никакого отношения, где хранится содержимое — в кучу или на стеке.
Весь этот код написан на ФОРТРАНе в 70ые и компилируется верифицированными компилятором для компьютеров семейства ЕС.
Похуй на дедов. Надо делать свой Linux 2.0/Reborn и убивать винду с макосью нахуй.
двачую
0.0034243523
0.0000098723452
Надо получить на выходе:
0.34243523
0.00098723452
Количество нулей в начале может быть разным. Как сделать коряво я понимаю, а как сделать нормально?
мммм. умножить на 1000?
Просто увеличиваешь экспоненту, не трогая значимую часть, они там отдельно лежат во флоате, точку можно двигать как хочешь.
> Точка в двоичном представлении, это мало полезно.
Так скастуй экспоненту к целому. Ах да, это же тред раста, чуть не забыл.
Ты в 2024 не научился пользоваться vpn, чтоб скачать бесплатный RustRover?
Начни лучше с notepad.exe
>Зашёл по ссылке из ОП-поста, а все плагины деприкейтед.
ОП-посту лет сто небось, как и сайту на который он ссылается...
Это нормально, что он 300Мбайт жрёт?
В общем, прочитал на стековерфлоу, что разработчики этого плагина криворукие макаки и не осилили сделать поиск проекта на один уровень вложенности. Ещё про какие-то преимущества перед С++ рассуждают. Тут с порога видно, что всё кривое и прибито гвоздями к полу. Буквально первый же шаг в сторону и всё посыпалось.
Наверняка это какой-то пидор придумал, потому что бойфренд его бросил и ушёл к другому пидору, а этот сделал, что теперь можно работать только с одним проектом, потому что одновременная работа с несколькими проектами оскорбляет его пидорские чувства.
Мне надо, чтобы была корневая папка с гит-репозиторием и в ней папки по главам: 01, 02, ... 99. В каждой такой папке конкретные проекты: hello_world, hello_cargo и т.п.
Но тупой плагин так не может. Ему надо чтобы в корне лежал cargo.toml. Мало того, если даже во вложенной папке он обнаруживает второй cargo.toml, то тоже сразу перестаёт работать. Поэтому я и написал свой негативный пост.
Ты мне вот скажи: ты дебил вроде разработчиков этого плагина? Видимо, да, раз не понимаешь написанного. Я выше написал, что нужна иерархическая структура с многократными вложенями папок. А не одна папка! Это дебильный параметр придумали дебилы вроде тебя, потому что ни одни нормальный человек не будет вручную прописывать пути до toml каждый раз, когда захочет сменить проект. Дебилы вроде тебя наверно не понимают, что может вестить работа сразу с несколькими проектами одновременно!
Ты вместо того чтобы дегродные пасты сюда высерать перейди по ссылке и прочитай что можно спокойно пути для множества томлов прописать
Потом для тренировки мозгов напряги пару извилин и подумай почему автоскан на томлы в любом проекте это буквально дегродская фича
В гошке почему-то это всё работает из коробки и по ресурсам почему-то не грузит ни проц, ни память, а отличии этого дебильного плагина. Я буквально недавно делал аналогичный проект на го и сохранил как единый гит-репозиторий. Всё работает замечательно. А хваленный раст так не может. Вот интересно почему? Может проблема не в пользователях, а в разработчиках?
Я множество языков знаю и только в расте настолько неудобный плагин. Везде можно делать многоуровневные репозитории с множеством проектов и только один дебильный раст так не может.
> Плагин для С++ не привязывается ни к каким рабочим пространствам.
Ага все лишь к симейку
> Спокойно работает с любым файлом, на каком уровне вложенности он не лежал бы.
Как будто я говорил что он этого не может, тот анон хотел сразу 100 проектов открыть
не 100 таргетов, а именно 100 проектов никак не связанных между собой
В общем удалил этот поганный пидораст-анализатор. Буду писать со стандартной подсветкой синтаксиса вс кода.
Проблема в том, что ты ОКР-СДВГ дитя которое клацает Ctrl+S по 60 раз в секунду а не в тулзе.
Ну так настрой его нормально, а не чтобы оно срабатывало на каждый новый символ.
Просто держу в курсе
https://marketplace.visualstudio.com/items?itemName=dunstontc.vscode-rust-syntax
Можно открывать хоть 100500 проектов, ничего без спросу не скачивает, ресурсы компа не отжирает.
Да норм. Была какая-то тема, что хакеры переходят на Раст, потому что аналитики не понимают ассемблер.
Ну а сверху чем можно прогнать чтобы ещё надёжнее было?
Очевидно что один байт из того вектора - это не символы.
Си и кресты - проверенные и надежные, а раст - кривой и багованный, хоть и пиарится как супер-пупер язык, который решает все проблемы.
Про надёжность не скажу, не прогал. Однако, могу сказать про инфраструктуру и читаемость кода. Когда читаешь раст все предельно понятно, прям глаз радуется. Встроенный менеджер зависимостей это показатель современности. А что с мастодонтами? Читаемость на уровне брейнфака, пердолинг с зависимостями. Цена разработки - космический корабль.
Нахера в 2к24 нужны какие-то другие языки кроме JS, го и раста не очень понятно. Сила привычки наверное.
>Си и кресты - проверенные и надежные
Обзываешь свои баги UB
@
Вписываешь их в стандарт буквально всюду
@
Всё, ты проверенный, надёжный, багов нет
@
90% освоения языка - избегание UB, которого не ловит компилятор и статические анализаторы
@
Собесы полностью состоят из вопросов с подвохами на UB
@
Называешь раст кривым и багованным, пушо он не обзывает свои баги UB
Смолвил как боженька
Какого хрена вообще это так работает в системном языке по умолчанию? Это же не жаба. Даже в го надо команду дернуть, с учетом что в расте говна тянет на гигабайты.
Успешные менеджеры раста используют агрессивный маркетинг и пытаются хорошо заработать на нем. отсюда столлько хайпа и драм, особенно радует как жадные маркетологи как-то запретили юзать бренд раста, от чего некоторые фанбои его форкнули, а позже ливнули
Увы обратная сторона агрессивного маркетинга это растущая ненависть от реальных специалистов, которые противятся навязанной догме.
Насчет минусов - их уже давно обсосали до блеска, в реальности раст накладывает на разработку и рефакторинг массу неудобств и проблем, нередко появляются обратные статьи, когда люди годами использовавшие раст, устали и мухажукают.
По началу неудобства не сильно ощущаются, пока не начнешь разработку огромного асинхронного проекта. То есть, раст тупо просто неудобен и многие люди пытаются это донести, но осторожно, чтобы их не отменили.
Двачую js и go.
https://www.youtube.com/watch?v=h3AYiptXl4w
А приведи пару-тройку ссылок на примеры агрессивного маркетинга от успешных менеджеров раста.
А то или маркетинг не агрессивный, или не от менеджеров, или вообще не маркетинг
Пока растаны не придумают решение этому: https://faultlore.com/blah/c-isnt-a-language/
Так и будут сосать в системщине на ОС, написанных на C/C++. "Переписать" очевидно провальное решение, решающее проблему только когда саму ОС перепишут и она станет на расте. Никто не будет ебаться с таким, когда растаны поняли что им предстоит сделать, то сразу слились.
Почитал по диагонали. Там кажется автор плачет про сишный FFI, которому все вынуждены следовать. Причём здесь ядро?
Если не боишься писать анйсейф и хоть раз работал с указателями в си/плюсах, то идея тривиальная, в каждой ниже два указателя, на следующий и предыдущий
> ниже
Ноде*
Делаешь структуру из 3 полей:
1. Ссылка на предыщую ноду
2. Данные
3. Ссылка на следующую ноду
Как строить решаешь исходя из задачи.
>Как написать двухсвязный список на расте?
Вот так, делов-то https://rust-unofficial.github.io/too-many-lists/
Вот написал тебе. Rc можно на Box поменять, если хочешь большой эффективности, но с ним неудобнее работать. И никаких ансейфов (на поверхности, азаза).
struct ListNode<T> {
val: T,
prev: Option<Rc<ListNode<T>>>,
next: Option<Rc<ListNode<T>>>,
}
struct ListNode<T> {
val: T,
prev: Option<Rc<RefCell<ListNode<T>>>>,
next: Option<Rc<RefCell<ListNode<T>>>>,
}
Соответственно на Box меняется пара Rc+RefCell
>RefCell
И раст превращается из статического баран чекер компилятора, где каждый молвил - мол скомпилировалось значит работает, в динамикодресню в рантайме.
>Rc
В фундаментальный алгоритм, который может долбиться где-то в числодробилке с миллионнами значений, или где нужен каждый такт, мы просто закидываем сборщик мусора, просто великолепно.
Вы больные.
То есть, либо юзай костыли, либо пиши как на си. А смысл тогда раста? Иногда безопасное программирование?
С такой логикой только на ассемблере писать, удачи
А еще Раст не освобождает от необходимости смотреть по сторонам, переходя дорогу.
Не защищаю подрастов, вообще рефкаунтер норм для такой медленной параши как лист
>где нужен каждый такт
Каждый такт у него, блядь, и использует листы лол.
Алсо, в чём проблема сделать лист через unsafe ptr?
про refcell не знаю, но
Arc/Rc = shared_ptr
Box = unique_ptr
и нет ничего плохого в unsafe
а вот греет, что в расте каждый крейт тащит с собой дохуя микрозависимостей, предназначенных для самых самых тривиальных вещей, которые советуют в каждой дискуссии. например, lazy_static, но я вместо него юзаю oncecell, дальше bytemuck он, конечно, безопасный и тд, но мне похуй и я просто юзаю as, transmute, from_raw_parts и другие интерфейсы из стандартной либы.
получается иногда громоздко, но уже в найтли, вроде должен быть, макрос для кастов &raw, который уже довольно давно юзается в стандартной либе.
https://github.com/rust-lang/rust/blob/master/library/core/src/ptr/mod.rs#L2357
https://github.com/rust-lang/rfcs/pull/2582
Они даже генератор случайных чисел до сих пор не добавили в стандартную библиотеку
не хотят поддерживать, скорее всего, вот и отдают на откуп другим. похоже на окамль, где даже есть специальный пакет - батарейки, но в окамле их надо поставить, а в ф шарпе они из коробки.
> ведь его нет??
Нет. Во всех ситуациях где в крестах мог бы быть UB, в расте либо паника, либо так нельзя сделать без ансейфа.
rand и srand линкуются по дефолту, чего тебе еще не хватает?
>в крестах
Тут такое дело, меняя флаги конпелятора у тебя кресты перестают быть этими крестами, т.е. уже другой язык буквально.
Только если в раковом GCC. У всех остальных всё нормально со стандартами. И про другой язык ты бредишь, никакие флаги не сломают твой код.
Ебать даун. Ты можешь, например, флагами такой же паник делать на знаковом переполнении, как в расте.
Это ты даун. Переполнение в крестах это UB. Поведение UB может быть ЛЮБЫМ, а целенаправленное использование UB - это дурка. Твои флаги ничего не меняют, это всё в рамках стандарта, он не запрещает этого, а вот в расте нет альтернатив. Твой код уже невалидный и сломанный в тот момент как случилось UB, компилятор дальше может сделать что ему нравится, или что попросишь - в случае в флагами.
> получить структуру в которой есть указатель на буфер это небезопасно?
Получить и присвоить указатель - это безопасно. Покажи пример, я тебя не понял.
>>272807
>Владение же распространяется и на поля структуры?
Поля можно борровить по отдельности. Если нет кастомного деструктора, то можно и разбирать на куски спокойно.
Почему структура с указателем это плохо, а вот указатель на эту же структуру это норм?
Условия:
-вакансии не важны.
-использование 90% в вебе и мелкая автоматизация (язык общего назначения).
-нужно максимальное экономия по железке - cpu и памяти, то есть максимум выжать RPS на бюджетных vps.
-все еще важна скорость разработки, насколько велика разница между го и раст (как между го и с++??).
-наличие готовых стабильных библиотек.
первое - случай владение, второе бесконечное число ссылок на чтение. Вообще это в доках сказано и база которую знаю даже я. это основа в расте и даже не первые подводные камни[/spoiler
]
>вакансии не важны
Оба подходят
>использование 90% в вебе
Оба подходят
>нужно максимальное экономия по железке
Раст
>все еще важна скорость разработки
Го прям тащит
>наличие готовых стабильных библиотек
Оба в пролёте
Итого 1:1
Окончательный вердикт за тобой
Ты передаёшь строку другой функции, и внутри срабатывает её деструктор. Ты пытаешься передать пустое место.
Тупо даун.
У раста в связи с его системой безопасности есть проблема с размером бинарников. Но это не проблема. Для встраиваемых устройств не используй std, а для обычных ПК вообще по барабану. Так что любой объём.
Увы, чем богаты.
От некоторых сложных крейтов может словить инсульт и rust-analyzer может со сложными проектами не очень работать. Если тебе по фану, и большую часть кода будешь писать сам, но будет норм.
Получается тут как в джаве - без тяжёловесных сред разработки не обойтись?
Редактор + плагин к нему, чтобы была подсветка синтаксиса, автодополнение, подсветка ошибок.
Здесь нет перегрузки функций и дефолтных параметров, бесконечных иерархий классов, при этом мощный вывод типов и понятный текст ошибок. Так что не задушиться, печатая в условном виме и подглядывая в доки на телефоне, вполне возможно.
Емакс не такой уж и легковесный, как многим кажется. К тому же основная нагрузка будет не от редактора, а от плагина раста. А плагин походу у них один на всех - rust-anylazer. И он довольно требовательный к ресурсам машины.
1) Какую удобную IDE выбрать?
По возможности кроссплатформенную, я так понимаю какой-то дефолт мейнстрим это будет vs code? Или есть что-то еще (желательно популярное, чтобы не долбится в одиночестве в экзотические баги).
2) Насколько адекватна разработка из под винды? Я пока ньюфаг думаю этого достаточно. Или стоит за использовать WSL (или он тоже плох)?
3) Помимо чтива хочу и в ютуб повтыкать (есть перевод от я.браузера), киньте интересные каналы для ньюфагов, особенно интересует более глубокое погружения в сложные темы - лайвтаймы, Rc/Refcell, макросы, асинхронное, FnMut.
Очень интересно лайвкодинг, где автор что-то поясняет попутно.
> 1) Какую удобную IDE выбрать?
vscode + rust analyzer/rust rover/clion + rust plugin. Сам в clion сижу, но у меня all product pack купленный.
> 2) Насколько адекватна разработка из под винды?
Для числодробилок/джсономешалок/простой консольщины/десктопщины хватит винды, в wsl разве что сборку/запуск под линуха проверять, если хочешь хостить/использовать в линуксе. Всякое системное лучше поближе к целевой платформе.
> дефолт мейнстрим это будет vs code?
VS Code - это не IDE. Это текстовый редактор, причём довольно забагованный. Он хорош как тестовый полигон, для каких-то экспериментальных вещей, которые в нормальной IDE просто поленились бы делать. А так лучше возьми от JetBrains что-нибудь, сейчас оно пиратится легко.
> К тому же основная нагрузка будет не от редактора
ну бля скажи это интелиджи ебаной, которая под явой жрёт 4 гига оперативы, эти пидарасы еще и блокнули возможность скачки своих продуктов из рф, приходится под впн или проксей обновляться.
юзаю раст ровер, но у меня нет таких анальных ограничений как у анона, который изначально задавал вопрос.
>А так лучше возьми от JetBrains что-нибудь, сейчас оно пиратится легко.
А можно поподробней? С торрентов тянуть? А как же работа с плагинами? Через впн? Или есть проще подход.
Скоро напишут отечественную GigaRover
Качать с офф.сайта через vpn/proxy, активировать по ссылочке с 3.jetbra.in
А плагины потом заведутся или надо будет впн держать?
Добра. Нагуглил, если кому подробнее надо.
Берешь и пишешь, без всяких задних мыслей. В чем затык то, расскажи?
Язык стимулирует использовать ссылки. Типа смотреть можно, трогать нельзя.
Вот ограничение на мутабельные ссылки создают вопросы. Конечно так можно победить гонки, но стоит ли оно того я хз, я не сильно компетентен тут.
Пчел, если тебя устраивают плюсы, то какие вопросы, этой херни еще твоим детям хватит, это питоны и го могут быстро заменить, а богатых на инфраструктуру неуправляемых языков буквально два и они пишутся даже вместе - C/C++
Поэтому все их убийцы умирают, возможно выстрелить может только хорошо совместимый прокси язык (по типу котлин, тайпскрипт) как зиг или гугловский еле живой проект, но для этого нужно десятки лет.
Вопрос даже чаще в другом, а нужен ли тебе вообще такой низкоуровневый язык?
У меня пока в планах как-то заиспользовать связку раст + динамикодресня (возможно js, не очень люблю питон, но может его), так как писать все на системном языке - возможно боль (а возможно нет, я только вкатываюсь в раст).
Хотя иногда я думаю что проще обмазаться - го, шарпами или джава/котлином.
Вижу пока раст как язык общего назначения для себя, посмотрим что из этого выйдет.
Почти попал
>>3277777 →
Язык дал в последнее время бусту на гитхабе, может пиар с линупсом сыграл, хз, но буквально за последнее несколько лет, он со дна гитхаба поднялся в топ 10 по "тысячникам". Это не идеальная метрика, но все же.
https://github.com/search?q=stars%3A%3E1000+language%3ARust&type=repositories&l=Rust
Надо еще учитывать такой фактор - как комьюнити го специально накручивали звездами го-либы, может тут тоже самое, а может нет
Тут список видно
https://github.com/search?q=stars%3A%3E1000&type=repositories
Ну в общем там тенденция такая за 4 года где-то 150 либ было, потом за год два бустанулось до 350, а потом я открываю и охереваю - 1,4к. (это не точно, но примерное наблюдение).
Для примера котлин шел вровень и у него сейчас 650, хотя это андроид и готовая джава инфраструктура.
А на SO раст догнал и (если там можно считать в этой низкой нише) обогнал го, смотри пикчу.
В общем, тенденция роста есть, не искусственная как с любимым языком, на котором никто не писал, а реальная тенденция.
Это закономерное развитие ситуации, трапы думали что всё будет как ИРЛ у сжв-активистов, но не прокатило. У растанов единственное преимущество, о котором они постоянно говрят - безопасность памяти, при этом не могут показать где в ядре линукса есть проблемы с небезопасной памятью. Они начали переписывать рандомные модули просто потому что, но когда потребовали чтобы сишники начали подстраиваться под раст получили в ответ резонный ответ - вы кто такие, что тут забыли, мы вас не звали, идите нахуй. Если бы они сами попытались сишный код начать под раст подстраивать может и получилось что-то, но явно не требовать с сишников это делать. А потом вдруг обиделась и пишут про "non-technical nonsense", хотя это с их стороны абсолютно необоснованное поведение, когда они не могут даже обосновать зачем переписывают сишный код в ядре. "Мы примерно почувствовали что так будет лучше чем текущее решение" - это и есть "non-technical nonsense".
Размещать всё в массивах и обращаться через индексы пидораст тебе в рантайме сам чекает выходы за границу в массиве лул.
Вангую, в ведре линупса у пидораста 0 целых хуй десятых пользы от бч.
Он везде навешивает if на обращения к массиву, что замедляет работу кода. Ещё претендует на звание системного языка.
Реально? Если это так, то это же пиздос. Тупо в разы возрастает время доступа к массиву.
1. Не везде, иногда не навешивает (если видит, что индекс - производная от размера массива например, и в других случаях)
2. Всё просто - в сишке/плюсах по-умолчанию проверочек нет, а чтоб проверить надо явно написать код проверки. В расте по-умолчанию проверочки есть (обычно), а чтоб не проверять надо явно написать код unsafe get_unchecked/get_unchecked_mut.
>>277855
>где в ядре линукса есть проблемы с небезопасной памятью
вот где:
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=linux+kernel+%22use+after+free%22 "There are 1263 CVE Records that match your search."
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=linux+kernel+%22out+of+bounds%22 "There are 485 CVE Records that match your search."
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=linux+kernel+%22integer+overflow%22 "There are 198 CVE Records that match your search."
> где
> в ядре
Я и говорю растаны как будто траллят тупостью. Почему бы им всё ядро не переписать?
Как спарсить без огорода? Про chrono (chrono-tz) знаю, но там сложна и нипанятна.
Должна же быть возможность спарсить в одну строчку, учитывая таймзону. Пик не работает, но нужно примерно это.
Нихуя она не справилась. Летнее время пройдет, а твоя нейросеть с кодом из гугла так и будет считать с offset +0300.
Ну это не так плохо на самом деле, если зумерок пишет веб-говно на том же пидорасте, для доступа без проверок есть отдельные функцайки.
Так почему же пчелы выступают против мёда?
>Почему говнокодеры и прочие омежки бомбят с Rust?
Что то вроде фанбойства
Аналог интел vs амд, винда vs linux и тд.
Почему то люди считают что между языками программирования реально какая то борьба идёт, и нужно иди на фронтдвач защищать свой любимый яп
в итоге и расто тред засран, и плюсо треде один рак, жду когда треды оживут людьми которые хотя бы пишут на этих языках
Лечи пассивную агрессию, ты серишь и ешь одновременно.
2) Могу я получить из другого модуля доступ к приватным полям?
Само rand::thread_rng() доступна без крейта rand.
Но gen_range становиться доступным только после use rand::Rng (это трейт);
В модуле происходит какое-то связывание? Или как это работает? (абсолютно ньюфаг, привык что такой магии не происходит, мол что мы подключаем в пакете, то и используем).
Или это просто полная запись крейта, тогда зачем нужен use rand::Rng;?
Для полиморфизма - да, для ООП - нет.
Это никак не отменяет вопроса. Что там за магия?
К ThreadRng ты обращаешься по полному пути, а к Rng нет. Если вызовать как rand::Rng::gen_range, то тоже должно работать без импорта.
Если ты обратишься к gen_range с указанием модуля и трейта, он тоже будет доступен без use rand::Rng
Пока не импортировал трейт, ни одна его имплементация импортироваться также не будет. Чтобы с этим не морочиться, существует модуль prelude, который всё самое ходовое уже импортирует через pub use.
Есть безразмерные типы [] и dyn Trait (не путать со структурами нулевого размера с ссылочными типами &[] и &dyn Trait). ?Sized означает, что для них тоже есть реализация.
https://doc.rust-lang.org/book/ch19-04-advanced-types.html?highlight=Unsized%20Type
Благодарю
С растом надо понимать что ты делаешь же. Уровень интеллекта нужно больший чем для C++. Позволяет скинуть кучу работы на компилятор и использовать интеллект с пользой.
Раст пошустрее будет и памяти меньше жрёт, но нет полностью готовой реализации. Нужно будет больше времени потратить. Стоит оно того или нет - решать тебе.
Смотря для чего, но в целом если ты знаком с растом это основная сложность то работать с асинхронным кодом с тем же tokio будет удобнее, здесь как-то лучше реализованы каналы, мьютексы, не нужно всякие waitGroup счетчики руками пробрасывать, вместо этого запихиваешь футуры в join!() и прочие мелочи
>жду когда треды оживут людьми которые хотя бы пишут на этих языках
Не получится, обязательно придет местный шиз и расскажет что хэлоуворд слишком много весит и у него получилось написать Rc<Arc<Box<Vec<Arc<Mutex<Rc<Zalupa>>>>>>> не понимая что написал значит язык говно, а потом поделится скриншотом с гитхаба где кто-то написал говнокод и будет рассказывать про то как фанбои под влиянием маркетологов пишут говнокод не забыв упомянуть свою больную LGBTQIA++ тему
Deno, Veloren, ripgrep, polars
Если тебя волнует относительный успех, то сравнивай по числу новых проектов начатых на языках, начиная года так с 2018-2019, когда раст не то, чтобы замейнстримился, но с 2018-эдишоном, как мне кажется, кривая его популярности поползла вверх несколько круче. Именно тогда он стал рвать рейтинги любимых языков по скорости набора пойнтов.
За эти 5-6 лет и на сях/плюсах-то немного чего было значимого написано.
> Deno, Veloren, ripgrep, polars
Какой-то веб-кал и переписанный майнтест на расте. Кроме первого остальное вообще ноунейм хуйня.
> За эти 5-6 лет и на сях/плюсах-то немного чего было значимого написано.
Если ты не видел не значит ничего. Чего только стоят llama.cpp/whisper.cpp и другие производные ggml, на которые всё опенсорс ML-комьюнити молится и вокруг них сотни других проектов строятся. Алсо, в противовес Zed можно смело ставить крестовый ImHex.
Аххахах, нишевый кал, ну ты понел. И учитывай, что плюсовых разрабов до сих пор в разы больше.
ripgrep уже постепенно вытесняет GNU grep , трудности с переходом только у тех, кому сложно сменить привычку писать grep на rg
То же самое polars - быстрее и экономнее по ресурсам, чем pandas, который пока держится на инерции.
> нишевый кал
> grep
> polars
У раста что-то кроме микро-утилит есть живое? Один Zed, да и тот даже до ImHex не дотягивает по функционалу. Алсо, растаны пытались в подражание ggml, но так и не осилили, весь опенсорс всё так же на ggml сидит. Торч тоже, кста, на крестах написан. И ты не забывай, что ML-компании - это триллионы баксов, а не сраный grep. Первая в мире по капитализации компания на железе для машинного обучения живёт.
Пока ты сидишь на двощах и срешь в это время cloudflare во всю работает на двощах и прикрывает жопу Абу, так и по всему миру он работает почти везде, а его разработчики активно используют Rust о чём пишут у себя в блоге https://blog.cloudflare.com/tag/rust/
Но для тебя один хуй это будет какой-то неправильный проект, зарабатывает недостаточно денег или ты не заметишь этого поста. Или ещё чего.
Я не знаю чего ты добиваешься своим нытьем, которое маскируешь под холивар, но выглядишь ты как мартышка в зоопарке. Да и даже от того что на каком-то языке больше или меньше пишут в какой-то сфере солнце ярче светить не станет. Может конечно эти разговоры на твой анальный зуд это оказывает седативный эффект, но мне кажется что с твоим геммороем должны разбираться врачи.
Мимо
> какие крупные проекты появились на расте за 5 лет?
> ряяя смотри вон там в блоге пишут про раст
Ясно. Как будет что сказать по делу, так и приходи. Линукс уже на расте переписали, ждём как IDE напишут.
>Но для тебя один хуй это будет какой-то неправильный проект, зарабатывает недостаточно денег или ты не заметишь этого поста.
>>283085
>Ясно. Как будет что сказать по делу, так и приходи
>Мам, пагляди как затралил, ваще лалка
Собственно подтверждение моих слов cloudflare это маленький петроджект не считается, вообще любой софт не считается
> не считается
Посты в блоге не считаются. Считаются только реальные проекты на расте, а не "я примерно почувствовал что они всё на расте переписали уже". Тебе надо ставить аватару клоуна, а не ёбы.
>Zed, да и тот даже до ImHex не дотягивает по функционалу
Ты сравниваешь IDE с кек-едитором. Совсем ебанутый? Если написать IDE так же легко, как сраный кек-едитор, почему тогда до сих пор нет нормальной IDE на плюсах, а, а?
>Посты в блоге не считаются
>Считаются только реальные проекты
Ну и правильно, хули там какая-то хуйня непонятная конторка сайтик делают, чего-то у себя в блоге пишут. У них вообще не ральный проект, а хуй на блюде, вот если бы это была крупная программа zver.exe, код которой был нотариально заверенный, а так все это баловство!
>Ты сравниваешь IDE с кек-едитором. Совсем ебанутый?
Он похоже и есть тот аутист для которого эту хуйню сделали. У меня глаза вытекли от этих цветов, шрифтов и прочего. Но если эту хуйню открыть в кали линуксе и ковырять бинарник который сам же и написал, то можно перед мамкой похвастаться какой ты хакер
> кек-едитором
Так это не простой HEX-редактор. Альтернатив тому что он умеет просто нет нигде. В нём даже есть свой собственный скриптовый язык и визуальный редактор с нодами. Про всякие вещи типа того что он может сожрать что угодно и производительность я уж не буду много рассказывать.
864x486, 0:35
> Ну и правильно, хули там какая-то хуйня непонятная конторка сайтик делают, чего-то у себя в блоге пишут. У них вообще не ральный проект, а хуй на блюде, вот если бы это была крупная программа zver.exe, код которой был нотариально заверенный, а так все это баловство!
А ещё, есть RedoxOS. И если её вот сравнить с этим вот, сраным калом кек-едитором, то там и то есть, и сё, ну ты понял, да? Можно в твоём кек-едиторе дум запустить? Вот то то же.
Какая разница есть у него альтернативы или нет, если этим пользуется 3,5 шиза
>я уж не буду много рассказывать
Не рассказывай
> RedoxOS
TempleOS на раст переписали? Оригинал один шиз смог написать, у него даже игры были там.
Если бы не кинул ссылку тому шизу, так и не узнал бы что не так давно CF опенсорснули вот это https://github.com/cloudflare/pingora балансировщик, прокси и прочая хуйня аля nginx. Надо будет потыкать на днях
Шиик, которому нужны крутые программы на rust, этот пост не для тебя, иди на хуй
Как решают проблему с зависимостями снизу вверх лайфтаймы, боров-чекер, строгая типизация, асинхронщина?
Как решают проблемы рефакторинга, когда боров-чекер при любом изменении кода нахуй шлёт?
Как борются с макросами и дублированием кода?
Что делают с безобразными лесенками?
Как живут без документации либ?
Или просто терпят/привыкли?
В Гугле забанили?
Если по-другому нельзя, то объясните зачем так сделали.
Шаг 1: вводишь число
Шаг 2: считыватель число
а если ты вводишь строку, то и считываешь ты тоже строку
ну, как условно говоря просто проинициализировать переменную с тем типом который мне нужен, и потом ввести то что нужно, без перевода из строки в T.
просто получается говно пикрил, уже у чата гпт спрашивал - он лишь посоветовал костыль rustomatic
Как ты себе представляешь считывание строки из стдин, без считывания строки? Или ты думаешь у тебя поток ввода числа введённые как то у себя внутри хранит?
Ты read_int() что-ли хочешь?
Он наверное как в крестах хочет. В расте действительно письмена шизов получаются.
Опен сурс фирмваря buttplug.io, стыдно не знать.
В стандартной либе нет.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=b494550a9c207b70af7a4cb8f6e2effe
Можешь пооптимайзить, чтобы меньше жрать памяти, но скорее всего тебе хватит и такого.
Мне даже страшно представить написать что-то посложнее.
Может я чего то не пынямаю? В вузике лабы с большим удовольствием пишу на C++, юзая clangd, который мне все разжевывает и подсвечивает.
Неужто жидомаркетологи опять хайпят хуйню, как питон лет 5-7 назад? Или нужно просто потерпеть , а потом привыкнешь?
С другой стороны паттерн матчинг, cargo и zed мне очень даже зашли, сам пишу на плюсиках в зеде.
Я в смятении
> Ну и зачем тогда так визжат какой раст крутой если там даже над простейшим вводом числа надо пыхтеть?
Ну не пыхти, пиши на плюсах.
К стати, когда кто-то в cin в int i на плюсах введёт букафки, что будет в i? Этому в твоём вузике учат?
Btw учить пользоваться iostream на плюсах когда есть fmt и scnlib это какой-то турбо-паскаль
Как же 18 летние студентки хотят казаться не ламерами
Надо как в плюсо треде делать, дабы нахуй
> К стати, когда кто-то в cin в int i на плюсах введёт букафки, что будет в i?
0 там будет всегда. А можно залупиться пока не введут валидный инт.
>Ну и зачем тогда так визжат какой раст крутой если там даже над простейшим вводом числа надо пыхтеть?
Двадцать лишних строчек - это пыхтеть? У тебя терминальный СДВГ?
>Ну и зачем тогда так визжат какой раст крутой если там даже над простейшим вводом числа надо пыхтеть?
Не пыхти, просто съеби
>Мне даже страшно представить написать что-то посложнее.
Как будто бы ты имеешь представление как что-то сложное на плюсах написать, кроме лабы нихуя в своей жизни не делал, а понты как у рокстара из ФААНГ. За тебя тимлид будет думать ближайшие лет 5 после того как если закончишь свой ВУЗ и уже может быть после этого ты будешь иметь достаточный уровень экспертизы и то не факт.
>С другой стороны паттерн матчинг, cargo и zed мне очень даже зашли, сам пишу на плюсиках в зеде.
Не надо здесь стадии торга, оставайся на плюсах и пользуйся ide написанной на плюсах
>насколько раст ОБЪЕКТИВНО лучше плюсов?
Конкретно для тебя не лучше, можешь дальше не пытаться. Rust это язык для фанбоев, придуманный маркетологами чтобы писать хэлоуворды, но ты же умнее всех фанбоев, зачем тебе деградировать в этом треде?
Да.
Нахуя мне бойлерплейтить, трахаясь с боров крекер, если проще взять современные плюсы с RAII накатить туда clangd, при этом я ничего не потеряю.
Хрустеры вечно пиздят про какую то там безопасность, и не могут толком нормально объяснить что под этим подразумевают. Прям как жиды, которые вечно говорят что все ради твоей же безопасности давая взамен только хуй за щеку.
Я серьезно.
>>283919
Откуда лишних 20? У весь файл 13.
>>283862
А можно и не залупляться и внезапно пососать. На расте у тебя в местах потенциального пососа стоят unwrap, которые можно причесать на релизе.
Вообще, твой код семантически трудночитаемая параша, хоть и короткий. Ни хуя не понятно, что происходит, какая-то ёбаная магия внутри черного ящика.
фу, блядь.
Раст пригоден для мелкокода, в большом асинхронном проекте начинается лютый ад. Единственный реальный плюс отсутствие UB.
Имхо, делать синхронные языки в 21 веке, это дно.
И работает это сильно шустрее чем нода. Я конечно еще та макака, и в електроновом таскбаре приходилось костылить скомпиленные ahk екзехи для пары глобальных хуков GetMessage, потому что на ноде через ffi-napi через некоторое время ввод со сканеров адово тормозил с делеем в пару сек, а память росла. Ахк костыли это порешали. А еще на ноде приходилось рефакторить с ffi-napi на ref-napi (когда електрон обновил 21 версию вроде), а потом на koffi.
Недавно решил переписать на расте, фронт офк react+ts.
И насколько же охуенней работать стало с виндой через windows-rs - никаких вылетов непонятных, никакого ub.
Так что раст мне понравился.