Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 745 102 135
Rust #29 /rust/ Аноним # OP 15/11/23 Срд 23:20:36 2923611 1
1700079637114.jpg 16Кб, 400x400
400x400
1700079637116.png 48Кб, 768x773
768x773
Добро пожаловать в тред гарантий, обещаний, владения, заимствования и тайных знаков

Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.

Ссылка на официальный сайт: https://www.rust-lang.org/

В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.

IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
GayDev для Rust: https://arewegameyet.rs/
Что еще есть для Rust?
- Посмотри сам: https://wiki.mozilla.org/Areweyet

Основная литература:
Rust Book(версия на русском языке): https://doc.rust-lang.ru/book/
Rust Book: https://doc.rust-lang.org/book/
Rust by Example: https://doc.rust-lang.org/rust-by-example/
The Rustonomicon(для продвинутых анонов): https://doc.rust-lang.org/nomicon/
Programming Rust: https://www.oreilly.com/library/view/programming-rust/9781491927274/

Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41
Предыдущий: >>2898122 (OP)
Аноним # OP 15/11/23 Срд 23:21:50 2923613 2
1700079710648.png 13Кб, 220x229
220x229
Аноним 15/11/23 Срд 23:22:54 2923617 3
Аноним 15/11/23 Срд 23:29:42 2923622 4
image 350Кб, 970x1152
970x1152
>>2923611 (OP)
Охуенно перекатил, бро. Лучше бы тег добавил вместо смехуёчков и кривой картинки.
Аноним 16/11/23 Чтв 01:52:35 2923674 5
>>2923617
Гарантирую asyncронный Some(anus) а может и None, awaitжидайте.
Аноним 16/11/23 Чтв 07:27:07 2923707 6
Почему трансухи, которые дизайнили это, умудрились сделать синтаксис хуже, чем в плюсах? Код на расте просто больно и неприятно читать. Это не язык программирования, а мова программирования.
Аноним 16/11/23 Чтв 08:16:32 2923721 7
>>2923707
Например как оно должно выглядеть?
Аноним 16/11/23 Чтв 08:50:32 2923733 8
>>2923707
Это корпы им заплатили, чтоб вас, петушков, триггерить >>2905887 →
Аноним 16/11/23 Чтв 09:04:35 2923736 9
Аноны, репортим оп-пост, чтобы моча добавила тег или смыла тред нахрен.
Аноним 16/11/23 Чтв 10:24:09 2923791 10
pandoc.webp 27Кб, 1672x239
1672x239
Ленивость - зло.
Аноним 16/11/23 Чтв 22:05:41 2924718 11
>>2923611 (OP)
мелкобуква в треде и ему нужна помощь
есть некие результаты долгих вычислений, которые нужны для работы программы (мнемоника, т.е. один раз посчитали, чтобы потом не считать)
хранятся они в условном векторе(ах)
если этот вектор(ы) сохранить на диск получится около гига
периодически эти векторы нужно редактировать

как с этим работать, если с базами данных возиться не охота?
есть какой-нибудь способ (крейт с соответствующим API) сохранить этот вектор(ы) в бинарник (или отдельно на диск) и потом читать/редактировать
Аноним 16/11/23 Чтв 23:05:54 2924779 12
>>2924718
См parquet/avro/orc
Ну или таки возьми sqlite/duckdb
Аноним 17/11/23 Птн 08:42:03 2924960 13
>>2923707
> синтаксис хуже, чем в плюсах
Невозможно
Аноним 17/11/23 Птн 10:32:08 2925057 14
>>2924718
bincode , если нужно просто свалить данные на диск и оттуда вычитать целиком. Иначе используй бд с хорошей поддержкой бинарных блобов.
Аноним 17/11/23 Птн 12:12:03 2925207 15
>>2924960
>> синтаксис хуже, чем в плюсах
>Невозможно
Но получилось же
Аноним 17/11/23 Птн 12:32:16 2925240 16
>>2925207
required required
mutable
default delete explicit implicit
rule of 0, rule of 3, rule of 5, rule of 34
Аноним 17/11/23 Птн 16:08:00 2925640 17
есть два условно вечных цикла в двух тредах.
есть импорт следующей хуеты:
let gr = Gilrs::new().unwrap();

как блядь шарить её между двумя тредами? Спрашивал чатгпт, нихуя не сработало.
пробовал юзать в main, пробовал делать глобальным статиком, везда раст посылает на хуй
Аноним 17/11/23 Птн 16:11:29 2925651 18
image.png 57Кб, 225x225
225x225
Аноним 17/11/23 Птн 16:20:15 2925670 19
>>2925640
Arc of Mutex of Girl
Ну или onceCell с мьютексом
Ну или chatgpt пусть тебе погуглит "rust share mutable data between threads"
Аноним 17/11/23 Птн 16:44:54 2925712 20
Аноним 17/11/23 Птн 17:12:33 2925743 21
>>2925670
>>2925712
error[E0277]: `std::sync::mpsc::Receiver<gilrs_core::platform::platform::gamepad::WgiEvent>` cannot be shared between threads safely
--> src\main.rs:164:36
|
164 | let evloop_handle = thread::spawn(|| event_loop(gr_evloop));
| ------------- ^^^^^^^^^^^^^^^^^^^^^^^^ `std::sync::mpsc::Receiver<gilrs_core::platform::platform::gamepad::WgiEvent>` cannot be shared between threads safely
| |
| required by a bound introduced by this call
|
= help: within `Gilrs`, the trait `Sync` is not implemented for `std::sync::mpsc::Receiver<gilrs_core::platform::platform::gamepad::WgiEvent>`
Аноним 17/11/23 Птн 17:27:50 2925763 22
>>2925743
Как думаешь, что означает "sc" в mpsc и почему receiver send, но не sync?
Аноним 17/11/23 Птн 20:56:53 2926016 23
>>2925640
> Gilrs
Ммм... И в нумера!
Аноним 18/11/23 Суб 03:22:50 2926361 24
17002596446220.mp4 5646Кб, 1920x1080, 00:00:18
1920x1080
Найдена причина по которой Линукс переписывают на Раст. Это месть.
Аноним 18/11/23 Суб 09:21:27 2926445 25
>>2926361
Скуф, а россиянам разве можно черное солнце постить?
Аноним 18/11/23 Суб 12:31:37 2926580 26
>>2925763
Я понял тебя, попробую переписать
1.74 Аноним 18/11/23 Суб 13:04:45 2926608 27
Screenshot from[...].webp 5Кб, 760x142
760x142
Из значимого
Корпы очень просили, им добавили
unsafe_code = "forbid"
чтобы не грепать лишний раз по джунскому коду.
плюс что-то, стабилизировали и что-то добавили в анстейбл моде.

https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html
Аноним 18/11/23 Суб 15:52:45 2926840 28
1700311965956.png 130Кб, 652x365
652x365
>>2926361
Вголосинищу проорал, укотился пацтол!
Аноним 18/11/23 Суб 17:27:54 2927033 29
>>2926445
>черное солнце постить?
Оно белое.. С какими же дегенератами на одной доске сижу
Аноним 18/11/23 Суб 20:52:55 2927248 30
>>2926445
>можно черное солнце постить?
Только в Zig-треде!
Аноним 18/11/23 Суб 20:58:28 2927256 31
>>2926608
>ты манагер, тебе продали БЕЗОПАСНЫЙ язык
>пересаживаешь своих лбов на БЕЗОПАCНЫЙ язык, получаешь премию от руководства (им тоже продали)
>твои лоботрясы копротивляются и пишут везед ансейф
>в интернете растопидары рякают на ансейф, но ты простой манагер, а твои лоботрясы ставят анус, что всё заебок
>осадочек остаётся
>unsafe_code = "forbid"
))
Аноним 19/11/23 Вск 07:12:58 2927577 32
>>2927256
Эти манегеры сейчас с тобой в комнате?
Аноним 19/11/23 Вск 10:39:40 2927689 33
Аноним 19/11/23 Вск 17:15:55 2928458 34
Screenshot from[...].png 4Кб, 727x60
727x60
Screenshot from[...].png 4Кб, 719x52
719x52
Screenshot from[...].png 42Кб, 2030x235
2030x235
>>2924779
>>2924718
спасибо, аноны

bincode - это то, что я имел в виду, когда писал пост

я до поста все фрагментировал, чтобы считало маленькими кусками и можно было без проблем потом переписать нужный, а не оставлять комп работать на неделю нон стоп

попытался все запихать в json'ы с помощь serde_json, но охуел от скорости сериализации (она занимала раз в пять больше времени, чем сами вычисления)

после поста уже был sqlite - постоянно database is locked, поставил PostgreSQL - все хорошо, запросы идут, данные в БД появляются и я пошел спасть под шум вентиляторов

утром смотрю - в базе 20к записей (за ночь должно было накапать примерно 100к) и ошибка слишком много подключений (хотя .close() у меня прописано в цикле). к этому моменту уже отписался анон про bincode и я переписал под него. все хорошо, все работает. один фрагмент вычисляется 2 мин, 2 сек - это пару недель сна под гул вентиляторов. ок, терпимо.

через пару ночей я вспомнил, что нам обещали мегаоптимизации и прочую залупу. без всякого энтузиазма прописываю [profile.dev] opt-level = 3 и иду спасть. просыпаюсь через несколько часов и понимаю, что в комнате тихо, делаю вывод, что опять что-то наебнулось и охуеваю, когда вижу, что за это время просчиталось ВСЕ, что должно было считать пару недель.

проверяю, что расчеты верные, там ошибок нет и он посчитал, что должен был, а не какую-то хуйню. снова запускаю вычисления уже на одном фрагменте, чтобы понять как она умудрилась просчитать все за три часа - и там где было 2 мин 2 сек, после opt-level = 3 вижу 8 сек 138 мс.

получается, что хоть с оптимизацией, растобляди не наебали.
Аноним 19/11/23 Вск 17:57:28 2928518 35
>>2928458
Щас бы числодробилку не на релизном билде запускать, ммм. Кекаешь что-ли?
Аноним 19/11/23 Вск 17:58:00 2928519 36
>>2928458
> прописываю [profile.dev] opt-level = 3
Тебе кто запрещал сразу собрать с --release?
Аноним 19/11/23 Вск 18:06:29 2928528 37
374e34988c6d03d[...].gif 624Кб, 484x338
484x338
>>2928458
такими вещами не шутят, анон

>>2928519
можно и так
Аноним 20/11/23 Пнд 02:27:40 2929172 38
image.png 29Кб, 638x363
638x363
есть функций как на пике, которые чекают массивы на дубли
массивы разной длины, и для каждой длины своя функция

выбран массив, а не вектор, т.к. вектор в куче, а массив вроде как на стеке, типа так быстрее

так вот, кто-нибудь шарит за все эти оптимизации в расте: если компилятор видит, что вектор можно переделать в массив и переместить на стек, он будет это делать? или оставить все как на пике?
Аноним 20/11/23 Пнд 03:29:32 2929176 39
>>2929172
Разберись с тем что такое стек и куча. Скорость работы с данными в них одинаковая, потому что это одна и та же микросхема RAM блять. Разница в том, чтобы выделить память на стеке нужно только из регистра верхушки стека вычесть размер требуемой памяти, а выделение памяти в куче это грубо говоря поиск таких свободных блоков, чтобы они образовывали непрерывную область памяти нужного размера, что гораздо сложнее. Зато в куче можно выделять память произвольного размера, а для выделения памяти на стеке в 99% случаев требуется знать размер на этапе компиляции.

Ну и по алгоритму, если размеры сильно больше 5, то у тебя сложность O(n^2), это медленно. Можешь отсортировать свой массив и сравнивать только два соседних элемента, будет сложность O(n log n). Или вообще завести HashSet, и добавлять в него очередной элемент только если он ещё не был добавлен, тогда вообще будет O(n), но расходы на дополнительную память O(n).
Аноним 20/11/23 Пнд 04:47:23 2929181 40
>>2929176
>Разберись с тем что такое стек и куча.
Ок, почитаю. Всю дорогу почему-то думал, что L1-l2-L3 кэш - это и есть стек, а куча это ОЗУ. Видимо, кэш - это просто кэш :)

>Можешь отсортировать свой массив и сравнивать только два соседних элемента, будет сложность O(n log n).
Самое веселое, что изначально так и делал. vec.sort() и дальше сравнение соседних элементов за одну итерацию (при совпадении дропаем итерацию). И это было существенно медленнее, чем сейчас с массивом и двумя итерациями (O(n^2)). Количество элементов до 10 штук, если что. Не знаю уж по какому алгоритму работает у них sort() и какое там большое O, но все замеры были с opt-level = 0.
Аноним 20/11/23 Пнд 10:55:26 2929249 41
>>2929176
>Разберись с тем что такое стек и куча. Скорость работы с данными в них одинаковая, потому что это одна и та же микросхема RAM блять
Сразу можно обоссать долбоёба.
Аноним 20/11/23 Пнд 11:03:59 2929255 42
>>2929181
>Количество элементов до 10 штук

На таких размерах космические лучи влияют больше, чем код.
Аноним 20/11/23 Пнд 11:52:24 2929319 43
>>2929181
Кэш это просто кэш, ты на него никак не можешь напрямую повлиять наверное. Просто следует писать свои алгоритмы так, чтобы процессору не приходилось лазить за данными в сильно разные области памяти.

Инты лучше сортировать с помощью sort_unstable() имхо, обычный sort() выделяет дополнительную память для своей работы, вероятно это замедляло производительность. Впрочем при таких размерах действительно не принципиально какой у тебя алгоритм, хоть вручную все циклы разверни и сравнивай элементы напрямую (может кстати компилятор это и делает). Хотя если ты эту функцию вызываешь очень часто, то можно и оптимизировать. Так же обрати внимание, что данные в неё ты передаешь по значению, это тоже может быть медленно. Эффективнее по ссылке.
Аноним 20/11/23 Пнд 12:07:48 2929351 44
Ради интереса посмотрел исходники сортировок в стандартной либе, чисто оценить объём кода. Действительно, смысла в данном случае когда n < 10 применять нет. Миллион разных проверок и рекурсивные вызовы.
Аноним 23/11/23 Чтв 11:45:01 2933480 45
Screenshot from[...].png 36Кб, 701x369
701x369
Если кого утомляет длительная перелинковка после правки пары строчек, то
1. ставим mold
2. создаём в корне проекта .cargo/config.toml
с примерно пикрил содержимым и радуемся ускорению x10
Аноним 23/11/23 Чтв 16:11:22 2933867 46
>>2929319
>Кэш это просто кэш, ты на него никак не можешь напрямую повлиять
Ебатьб долбоёб.
Аноним 23/11/23 Чтв 23:48:50 2934616 47
image.png 51Кб, 1207x826
1207x826
насколько пикрил правдив?
Аноним 23/11/23 Чтв 23:51:12 2934622 48
Аноним 23/11/23 Чтв 23:56:57 2934633 49
>>2934622
как я могу тебе доверять? trust_me ?
Аноним 23/11/23 Чтв 23:57:08 2934634 50
>>2934616
Обязан спросить и в C-треде
Аноним 24/11/23 Птн 00:22:49 2934658 51
>>2923611 (OP)
Делаю GUI. Вызывается обработчик MouseDown на кнопке, который вызывает callback приложения, который может эту кнопку вообще удалить. То есть в крестах у меня MouseUp уже будет работать на области памяти, которая недавно была объектом, на котором уже отработал деструктор, а может быть и free. Мне эти ваши владения как-то помогут отследить такую ситуацию и понять, что вообще происходит?
Аноним 24/11/23 Птн 00:37:14 2934664 52
>>2934658
Статически вряд ли, но в каком-то месте у тебя возникнет что-то типа RefCell, которую надо залочить. Если один коллбэк стриггерится из другого, то возникнет паника
Аноним 24/11/23 Птн 01:09:35 2934678 53
как включить линтер в реальном времени в vs code? Или еще не завезли?
Аноним 24/11/23 Птн 06:23:11 2934710 54
>>2926361
Месть кому и за что?
Аноним 24/11/23 Птн 17:10:41 2935273 55
>>2934616
Звездеж же. Даже не стараются.
Аноним 24/11/23 Птн 17:11:27 2935274 56
Аноним 24/11/23 Птн 17:18:10 2935281 57
Аноним 24/11/23 Птн 17:36:47 2935297 58
>>2934710
> Месть кому
Линусу Торвальдсу
> за что?
Отказывается долбиться в сракотан, как все кодкуколдеры.
Аноним 24/11/23 Птн 21:17:42 2935670 59
>>2935274
А ты по другим тредам тоже носишься с этим обскурным говном? Не то чтобы мне было дело до этого, просто я не понимаю какое отношение раст имеет ко всем этим поделкам? Надоело, что тут постоянно обсуждают какие-то зиги, валы и лобстеры. Почему бы не завести свой отдельный тред для них, если они такие классные?
Аноним 24/11/23 Птн 21:32:49 2935717 60
>>2935670
>Надоело, что тут постоянно обсуждают какие-то зиги, валы и лобстеры.
Потому что раст это
>обскурным говном
Аноним 24/11/23 Птн 22:01:43 2935782 61
>>2935717
Ясно. Типичный хуесосик с двача. Хоть бы на один вопрос ответил.
Аноним 24/11/23 Птн 22:48:46 2935813 62
>>2935670
> Надоело, что тут постоянно обсуждают какие-то зиги, валы и лобстеры.
Потому что мы на них реагируем, вот ты сейчас среагировал, они получили дозу дофамина и теперь будут срать ещё 300 постов.
Аноним 24/11/23 Птн 23:08:38 2935829 63
>>2935782
>Хоть бы на один вопрос ответил.
>>2935670
>просто я не понимаю какое отношение раст имеет ко всем этим поделкам?
>носишься с этим обскурным говном
Аноним 25/11/23 Суб 11:54:23 2936238 64
>>2935274
Тысячи их было и тысячи ещё будет. Даже такое было http://cyclone.thelanguage.org/

Никаких шансов без ставки корпов, как у swift/kotlin/rust, или без интеграции в очень удачный инструмент, как у ruby.

>>2935670
>валы и лобстеры
тоже попытка в безопасные языки без гц, а у лобстера вообще логотип, это отсылочка к расту - почему бы и обсудить.
Аноним 27/11/23 Пнд 04:05:32 2938723 65
rust-femboy.gif 3614Кб, 224x498
224x498
8sbiafx9e2881.png 120Кб, 640x729
640x729
откуда взялся стереотип, что программеры на расте это няшные пидорасы в чулочках?
Аноним 27/11/23 Пнд 05:30:08 2938734 66
>>2938723
У тебя 2 ошибки в посте:
Во-первых, пидорасы не няшные. Это они себя такими изображают в качестве коупа, прям как жирухи феминистки. Няшных пидоров можно по пальцем пересчитать, да и они по своей сути ЧСВ хуесосы, которые не могут в любовь и которые озабочены только похотью и лукизмом. Многим ошибочно кажется, что с пидором отношения построить легче, но нихуя подобного - красивые пидоры ебут больше мозгов, чем самая стервозная тян, а страшные пидоры по факту не няшные, так как выглядят как мужики.
Во-вторых, трапы полностью наследуют класс Пидоры, но добавляют свою шизу, отчего становятся более тяжелыми пациентами.
Дальше переходим к вопросу
>откуда взялся стереотип
Существует такой класс людей, которые по жизни бездарности и ничтожества, но вместо принятия своей природы и работы на слабостями они начинают бежать от трудностей и создают группы нетакусиков. Чем больше очков нетакусика ты соберешь, тем больше можно обвинять других в тупости и всех смертных грехах. Именно поэтому можно встретить комбо из транса + эзотерический ЯП + музыка от исполнителя с 2 подписчиками на Bandcamp + ноунейм "глуболкое" анимеи и т.д. Так как по своей сути эти люди бездарности, то ничего нового создать они не в состоянии, поэтому приходится внедрятся в сообщества здоровых людей и паразитировать на них. Так же эти парни очень падки на хайп и моду, так как по своей сути являются адскими вниманеблядями, ведь нельзя же жить спокойно, нужно постоянно завялять о себе. Ты можешь сам открыть профили нетакусиков и проследить путь развития этих людей, там сто процентов будет руби, хаскель и прочая хуйня, которая была на хайпе у нитакусиков в свое время и очередным геймченджером в мире ИТ, раст не последний. И как и любой другой проект, раст создавался здоровой, умной и цисгендерной хуемразью из-за чего и привнес что-то новое в эту индустрию. А учитывая, что разработка раста полностью подвластна корпорации Мозилла, которая в свою очередь подчиняется американской шизе и социальному проекту по расколу общества для облегчения управления этим обществом и сокрытию настощих причин экономических проблем с расслоением, то раст просто не мог не оказаться райским местом для нетакусиков. Именно внешние ярлыки(транс никогда не промолчит, он обязательно укажет у себя в профиле все нужные ему баззворды, ведь если никто не будет знать, что он транс, то в чем смысол его копротивлений) и причастность к чему-то "прогрессивному" заглужают их боль от собственной ущербности. Вот ты нацепил значок, насобирал самой ебанутой хуйни, вступил в сообщество к таким же, присосался к нормальным людям и все, ты больше не какой-то там биомусор, а прогрессивная личность с оригинальным видением мира, которого быдло очевидно не понимает и хейтит просто так, без причины. И именно ты двигаешь мировой технический прогресс своим хеллоуворлдом на очередном модном язычке, именно ты улучшаешь сообщество на небинарных сходках, прожирая гранты выделенные твоему проекту.
Аноним 27/11/23 Пнд 06:58:09 2938741 67
IMG202311270653[...].jpg 110Кб, 1280x720
1280x720
>>2938734
Ты будешь одним из последователей их прогрессивной идеологии переписывания все на раст, и будешь счастлив
Аноним 27/11/23 Пнд 07:14:47 2938743 68
Untitled.png 144Кб, 1200x800
1200x800
Аноним 27/11/23 Пнд 08:38:24 2938762 69
>>2938743
мне показалось что у него в глазах кокосовая жопа
Аноним 27/11/23 Пнд 08:48:51 2938765 70
>>2938762
Даже своим взглядом рептилоиды надсмехаются на гоями.
Аноним 27/11/23 Пнд 12:59:03 2939075 71
сколько трапов в треде?
Аноним 27/11/23 Пнд 13:59:43 2939204 72
Отвечает Александр Друзь:
Аноним 27/11/23 Пнд 16:19:23 2939497 73
>>2938734
>Существует такой класс людей
>«Да, я пидарас. Так уж вышло — что теперь делать… Но может быть, я гениальный пидарас! Буду писать программы на эзотерическом языке, люди будут думать, что я - гениальный программист! Разве посмеют плохо говорить о гениальном программисте…»
Аноним 27/11/23 Пнд 17:29:28 2939656 74
>>2938734
так писать на расте зашквар или нет?
Аноним 27/11/23 Пнд 18:43:36 2939814 75
>>2939656
Да. И в этом треде сидеть зашквар. Милости прошу, к нашему шалашу, сладенький. Теперь ты законтачен.
Аноним 27/11/23 Пнд 20:17:44 2939987 76
>>2938723
Наследие мозилы. Обмазались диверсити и потом педерастия по наследству передалась.
Аноним 28/11/23 Втр 18:46:56 2941316 77
Хочу написать программу которая будет искать, или изменять тег Description в метадате картинок. Хочу сами операции сделать через exiftool, и process::Command, но я хочу все это показывать в гуи. Как мне это собрать? Или в какую сторону копать, подскажите
Аноним 28/11/23 Втр 23:54:45 2941690 78
1701204887508.png 27Кб, 952x217
952x217
>>2941316
Пик релейтед.
Дальше сам разберёшься.
Аноним 30/11/23 Чтв 20:13:31 2944434 79
Любители пожаловаться на избыточность функций стандартной библиотеки Rust посмотрят это видео, но все равно не поймут https://www.youtube.com/watch?v=TBGu3NNpF1Q
Такова их судьба
Аноним 30/11/23 Чтв 21:22:47 2944502 80
>>2944434
> но все равно не поймут
А чо там понимать? на 8 минуте показывается главное отличие си от раста. Си даёт скомпилировать (выстрелить себе в ногу), раст в аналогичной ситуации просто не скомпилирует.
Аноним 01/12/23 Птн 05:57:26 2944720 81
image.png 175Кб, 1152x1336
1152x1336
image.png 36Кб, 1112x350
1112x350
Есть множество случайных событий, для каждого события есть вероятность, что оно произодет (f64).

Задача: написать функцию, которая бы случайным образом возвращало одно событие, с учетом прописанных вероятностей.

Т.е. если бесконечно количество раз ее вызывать и считать события которые она возвращает, то в итоге мы должны получить примерно те же самые вероятности.

На пике то, что пока получилось высрать. Интересует именно foo, т.е. на вход коллекция (вектор, массив, хэшмап и т.д.), а на выходе одно событие. Пик рабочий, но уверен, что можно написать короче.
Аноним 01/12/23 Птн 06:35:19 2944723 82
>>2944720
> можно написать короче
Просто генери рандомное число, от 0 до 1
И сразу по массиву проходись и проверяй попал ли ты в него, или нет
Нет особого смысла для этого отдельный массив рэйнджей делать
Аноним 01/12/23 Птн 07:13:09 2944729 83
>>2944502
Варнинги можно переделать в ероры. Где твой Б-г теперь?
Аноним 01/12/23 Птн 07:56:17 2944738 84
Аноним 01/12/23 Птн 14:35:31 2945081 85
image.png 50Кб, 853x427
853x427
>>2944723
так? или можно вообще от ренжей избавиться?
Аноним 01/12/23 Птн 14:42:53 2945097 86
Какие вакансии есть на Расте сейчас?
Аноним 01/12/23 Птн 15:13:53 2945154 87
>>2945081
Да нафига тебе эти рейнджи

for i in 0..v.len(){

if (start <= random && random < start + v){
return Some(i);
}
start += v;
}
return None();

ну ещё есть проблема что флоаты сравнивать операторами сравнения не очень хорошо, так как погрешности, но для твоего случая думаю можно забить

>>2945097
Не надо о грустном
Аноним 01/12/23 Птн 15:38:01 2945183 88
image.png 49Кб, 819x414
819x414
Аноним 01/12/23 Птн 15:53:17 2945197 89
>>2945154
>Не надо о грустном
Ну понятно, что вакансий маловато. Но из тех, что есть, какие это сферы?

Как я понимаю, тру растеры не любят блокчейн и крипту. А еще что есть?
Аноним 01/12/23 Птн 16:01:22 2945209 90
>>2945197
В телеге @rust_jobs_feed
Гейдев, ERP, анализ данных, инфраструктурные системы, ИИ
Сейчас вроде даже блокчейна поубавилось
Аноним 01/12/23 Птн 17:50:39 2945429 91
image 127Кб, 1745x542
1745x542
>>2944720
>>2945081
Всё в стандартной библиотеке есть. Переписал твой код из первого варианта. Вместо того чтобы на каждый вызов foo() суммировать элементы — сделай это один раз в самом начале. Вместо линейного поиска используй бинарный. Не забывай сравнивать числа с плавающей точкой в окрестности, хотя может раст это сам делает, не знаю точно.
Аноним 01/12/23 Птн 18:06:27 2945451 92
>>2945183
Нахуй там вообще start <= random? Мы ж это проверили уже в предыдущей итерации.
Аноним 01/12/23 Птн 18:34:11 2945491 93
Аноним 01/12/23 Птн 19:01:36 2945534 94
image.png 47Кб, 1200x295
1200x295
>>2945429
И у нас есть победитель! Приз, как обычно, нихуя, но от всего сердца.

Для таких же даунов как и я поясню, что f64::EPSILON - это машинный ноль, т.е. в замыкании мы проверяем, что число отрицательное и, как только оно становится положительным, возвращаем индекс.

>>2945451
нахуй не нужен, да
Аноним 01/12/23 Птн 19:33:53 2945619 95
>>2945534
> EPSILON - это машинный ноль
Вообще-то не совсем. Эпсилон это предел погрешности. Флоаты нельзя просто так сравнивать с нулём, из-за погрешности. Эпсилон из матана спешит на помощь и решает эту проблему.
Аноним 01/12/23 Птн 19:35:10 2945623 96
>>2945534
И да, у тебя там ошибка. С эпсилоном сравнивается абсолютная величина:
> abs( a - b) < eps
Аноним 01/12/23 Птн 19:41:15 2945640 97
>>2945534
Гляди какой прикол. Трансформация массива вероятностей представляет из себя кумулятивную (накопительную) сумму всех элементов. Очевидно это достаточно долгая операция O(n), потому что необходимо пробежать все элементы массива без исключения. Если ты foo() будешь много раз вызывать с одними и теми же данными, то эти вычисления будут выполняться каждый раз. Они являются подготовительными и их можно сделать один раз, например сразу после объявления массива вероятностей в удобном тебе виде. И в функцию foo() передавать уже суммы. Сам выбор события при этом будет занимать гораздо меньше времени O(log n).

Конечно если у тебя foo() часто вызывается с разными вероятностями, а самих вероятностей не очень много, то это необязательно. Смотри сам короче, зависит от твоих потребностей, просто мне глаз режет.

И ещё один момент по стилю — растаны рекомендуют функции, принимающие массивы оформлять с помощью указателя на слайс:

fn foo(input: &[f64])

Тогда ты сможешь вызывать её и с вектором и со слайсом и с массивом.
Аноним 01/12/23 Птн 19:42:37 2945643 98
>>2945623
Ошибки нету, не вводи в заблуждение. Абсолютное значение сравнивается когда нужно проверять на равенство нулю. В этом алгоритме надо проверить, что p < random.
Аноним 01/12/23 Птн 19:47:47 2945657 99
Сам неправильно написал. Проверяется, что p <= random.
Аноним 01/12/23 Птн 19:51:30 2945671 100
>>2945623
если написть f64::abs(p - random) < f64::EPSILON, то оно всегда true, т.е. перестает работать
а вот p.abs() - random.abs() < f64::EPSILON работает как надо
Аноним 01/12/23 Птн 20:04:10 2945717 101
>>2945640
Спасибо, там до десяти элементов в векторе и поэтому можно не заморачиваться. И вызывается функция не настолько часто, да и не в цикле. Учет вероятностей больше нужен для успокоения души, типа предусмотрел этот момент. На самом деле там вообщее [(енум, вероятность), (енум, вероятность), (енум, вероятность)...], но не суть.
Аноним 05/12/23 Втр 22:12:32 2951631 102
каким надо быть поехавшим извращенцем чтобы пользоваться исчадиями от жидбрейнс когда есть vs code для белых людей?
Аноним 05/12/23 Втр 22:15:55 2951641 103
>>2951631
Майки реально тащат. Хоть и корпорация зла, но бля.
Аноним 05/12/23 Втр 22:32:34 2951656 104
>>2951631
Не расстраивайся, когда-нибудь и ты сможешь позволить себе all products pack
Аноним 05/12/23 Втр 23:25:13 2951716 105
>>2951656
в идешках от жидбрейнс шрифт некрасивый
да и оперативку жрут много
Аноним 06/12/23 Срд 04:14:57 2951833 106
>>2951631
Ковырял и VSCode, и nvim, и helix, и RustRover (+ ideavim). Все хуйня, оставил просто RustRover.
В VSCode, например, не нашел, куда запихнуть "--color=always", чтобы работала подсветка синтаксиса в cargo. Прописывание в launch.json (configurations - cargo - args) не помогло.
>>2951656
У RustRover'а ранний доступ, поэтому пока бесплатно.
>>2951716
На моих скринах шрифт не дефолтный, поэтому по ним не судите. Памяти у меня 64GB, поэтому похуй. В утечках памяти IDE замечена не была.
Аноним 06/12/23 Срд 11:21:44 2952052 107
>>2951833
>RustRover
Кстати, сыроват. На мой вкус, лучше всего идейка с растом работала где-то с полгода-год назад. Потом как начали, видимо, переписывать плагин, так то одно отвалится, то другое.
Аноним 06/12/23 Срд 11:48:48 2952111 108
>>2951833
> не нашел, куда запихнуть "--color=always", чтобы работала подсветка синтаксиса в cargo
Штоблять?
Установи любой аддон для формата TOML. Какой "--color=always"? Что за бредок?
Аноним 06/12/23 Срд 16:32:31 2952619 109
image.png 151Кб, 1820x1223
1820x1223
image.png 187Кб, 1496x1206
1496x1206
>>2952111
пик 1 - вывод ошибки компиляции в RustRover
пик 2 - вывод такой же ошибки в швятой студии
разницу видишь? или монитор монохромный?
Аноним 06/12/23 Срд 20:36:55 2953130 110
1701884216941.png 117Кб, 1363x891
1363x891
>>2952619
Ты просто ламер.
> в швятой студии
Да ещё и обиженка.
Аноним 06/12/23 Срд 21:07:46 2953146 111
>>2953130
предполагалось, что я не буду руками вбивать "cargo run", а нажму F5 (или что-нибудь другое) и оно дальше само
>Ты просто ламер.
>русский интерфейс
интересный манямир
Аноним 06/12/23 Срд 21:58:56 2953193 112
image.png 190Кб, 1039x1162
1039x1162
Аноним 06/12/23 Срд 22:21:13 2953223 113
>>2953146
>не буду руками вбивать "cargo run", а нажму F5
Что ты делаешь со всем этим свободным временем?
Аноним 06/12/23 Срд 22:27:12 2953232 114
image.png 100Кб, 500x500
500x500
Аноним 07/12/23 Чтв 02:53:16 2953376 115
Screenshot15.png 13Кб, 517x368
517x368
Когда я пикрил увидел, я не поверил. Но это действительно компилируется во что-то.
Аноним 07/12/23 Чтв 02:57:32 2953377 116
>>2951641
Тащат весь опенсурс, молодцы!

Купили npm, github, теперь вот еще и написали самую популярную ИДЕ в мире! Светлое будущее нас всех ждет.
Аноним 08/12/23 Птн 12:27:05 2955104 117
>>2953377
А при опенсорсе всё будет заебись
Там всё будет бесплатно, там всё буудет в кайф
Он наступит скоро - надо только подождать

а я настолько ебанулся, что пишу транслятор с плюсов на раст
Аноним 08/12/23 Птн 16:58:21 2955527 118
image 552Кб, 3648x1988
3648x1988
Что приуныли, растаны? Ну-ка, подскажите как избавиться от уродливого &* при обходе дерева? Можно наверное каждое поддерево обрабатывать отдельно в своём if и результат наращивать последовательно, но хочется использовать match для наглядности.
Аноним 08/12/23 Птн 17:24:00 2955582 119
>>2955527
В бинарном дереве достаточно Option<Box<TreeNode>>
Аноним 08/12/23 Птн 18:06:27 2955659 120
image.png 206Кб, 512x512
512x512
java или rust? Вот в чем вопрос
Аноним 08/12/23 Птн 18:06:43 2955661 121
>>2955527
у нас есть паттерн для обхода деревьев, у которых не две дочерних ветки, а, скажем, десять?
Аноним 08/12/23 Птн 18:10:49 2955671 122
>>2955582
>>2955661
Это задача с литкода. Формат данных и сигнатура функции предопределены.
Аноним 09/12/23 Суб 01:34:41 2956277 123
>>2955527
Option<Rc<RefCell<TreeNode>>> ахуеть как просто! Не то что ваши TreeNode* в Сишечке!
Аноним 09/12/23 Суб 08:42:55 2956330 124
>>2956277
Шах и мат. В два хода.
Аноним 09/12/23 Суб 13:52:39 2956541 125
>> 2955104
Реально ебанулся
Аноним 09/12/23 Суб 14:17:59 2956574 126
17021200954670.png 15Кб, 270x643
270x643
ClickHouse переписывают на Rust. Это наш шанс вкатиться в Яндекс на лакомую пазицию.
Аноним 09/12/23 Суб 14:33:22 2956612 127
>>2956574
слишком громкий заголовок для подобного скрина - может это какой-нибудь линейный инженер-программист ради интереса решил переписать/дописать пару строчек кода
Аноним 10/12/23 Вск 16:07:05 2957945 128
Почему не выбрали единый стандарт для названия программ? На crates io половина использует -, другая _. Глаза же мозолит пиздос.
Аноним 10/12/23 Вск 16:32:40 2957973 129
Аноним 13/12/23 Срд 15:06:10 2961840 130
>>2956277
>Option<Rc<RefCell<TreeNode>>>
>TreeNode*
То есть семантической разницы в этом ты не видишь?
Аноним 14/12/23 Чтв 01:17:37 2962586 131
Есть отсортированный вектор из f64 и число. Надо найти к какому из элементов вектора ближе всего находится число.

Например:
vec![2.5, 3f64]
2.74 - должен возвращать первый элемент (или индекс 0), а 2.76 - уже второй (или индекс 1)

Выше была подобная задача и мы использовали partition_point, но тут немного сложнее. Уверен, что что-то должно быть в стандартной библиотеке.
Аноним 14/12/23 Чтв 02:47:18 2962617 132
>>2962586
Бинарный поиск же
мимо
Аноним 14/12/23 Чтв 03:10:36 2962624 133
>>2962586
Боюсь вот прям такого нет. Но ты опять же с помощью partition_point можешь получить индекс массива, значения левее которого меньше проверяемого числа. Пусть это будет индекс i. Потом посчитать абсолютную разницу между проверяемым числом и числами в массиве по индексам i и i - 1. Остаётся выбрать минимальную, она будет соответствовать искомому элементу. По сути два вычитания и одна проверка, константное время. Лень писать пример. Не забудь аккуратно обработать случаи, когда partition_point возвращает 0 или длину вектора.
Аноним 14/12/23 Чтв 20:19:17 2963583 134
Сап, программач.
Кто-нибудь может пояснить за зависимости в крейтах.

Добавил зависимость axum (веб фреймоврк), он использует токио под капотом, я вижу токио в зависимостях после сборке, но не могу получить доступ к его функциям. Почему так?
В мануалах отдельно добавляют зав-сть токио.
Аноним 14/12/23 Чтв 21:42:21 2963659 135
>>2963583
Потому что axum так написан. Чтобы потрогать зависимости модуля, он должен их реэкспортировать через pub use.
Аноним 15/12/23 Птн 21:42:34 2965288 136
Аноним 17/12/23 Вск 00:33:41 2966859 137
image.png 41Кб, 736x542
736x542
Продолжаем эстафету тупых вопросов.

Чтобы не запихивать Enum в Option и потом не писать if foo.is_some_and(| x | x == FooBar::Foo) и прочую хуйню, делаю как на пике. Eсть ли в std derive, которой бы сам выводил подобный impl?
Аноним 17/12/23 Вск 09:31:37 2967052 138
>>2966859
что-то такое можно
if x == Some(FooBar::Foo)
Аноним 20/12/23 Срд 15:18:59 2970488 139
Накидайте мне идей проектов на расте
Аноним 20/12/23 Срд 17:00:23 2970631 140
>>2970488
Нейронный детектор шарпошиза.
Должен детектить посты шарпошиза итт и отвечать на них СПОК ШИЗ

inb4: СПОК ШИЗ
Аноним 20/12/23 Срд 19:03:31 2970773 141
image.png 521Кб, 604x604
604x604
Аноним 20/12/23 Срд 19:55:06 2970819 142
>>2970488
Реши актуальную для себя задачку. Мне вот например, недавно понадобилось поинлайнить скрипты, стили и картинки в 300МБ html отчёт. Нашлось какое-то говнорешение на ноде, которое не работало, pandoc, который лениво сожрал всё мои 48ГБ оперативы и до конца не отработал. Написал сам на расте c регулярками - 120 строк кода, работает хорошо, быстро, задачу выполняет теперь схороняю им двачетреды, т.к. мозилла пихает всё по папочкам
Аноним 21/12/23 Чтв 07:34:58 2971165 143
>>2970819
Единственная актуальная для меня задача - заработать лярд баксов. Как мне этого достичь с помощью раста?
Аноним 21/12/23 Чтв 08:08:54 2971169 144
Аноним 21/12/23 Чтв 08:12:05 2971171 145
>>2971169
На автомате торгующий этим самым?
Аноним 21/12/23 Чтв 08:24:17 2971175 146
>>2971171
да, ключами для кейсов CS:GO
Аноним 21/12/23 Чтв 08:26:46 2971176 147
Аноним 21/12/23 Чтв 08:28:08 2971177 148
>>2971176
ну ты хотя бы попытайся
Аноним 21/12/23 Чтв 08:30:00 2971179 149
>>2971177
Я в своё время на трейдинг 2 года убил. Зачем мне пытаться переиграть габена или тп?
Аноним 21/12/23 Чтв 08:31:12 2971181 150
>>2971179
>на трейдинг 2 года убил
так это у тебя просто бота на расте не было
Аноним 21/12/23 Чтв 08:37:52 2971185 151
>>2971181
Бот на расте мне никак не поможет заработать много бабал
Аноним 21/12/23 Чтв 08:38:58 2971186 152
>>2971185
ну ты хотя бы попытайся
Аноним 21/12/23 Чтв 11:53:45 2971319 153
>>2971165
Тебе в любой книжке про успешный успех скажут, что сперва цель
"Заработать ярд баксов", а уже потом "Как мне этого достичь?" разматываешь по этапам.
А не как ты: "Пацаны, купил в сельпо титановые вилы, охуенная вещь - как теперь с их помощью заработать ярд баксов?"
Аноним 21/12/23 Чтв 12:17:42 2971351 154
>>2971319
Нужно только поверить в себя?
Аноним 21/12/23 Чтв 13:08:17 2971425 155
>>2971351
Если тебя мотивирует сам процесс зарабатывания бабла, то я тебе даже завидую. Ты - Кабанус Вульгарис, на таких, как ты, земля держится. Открой лавку или парикмахерскую. Советую выбрать биз с большим порогом вхождения, чтобы конкуренции поменьше. Один мой кореш так подкопил бабла, а когда женился, вложился в биз по лазерный эпиляции девиц , чтоб жена не скучала. Внезапно, попёрло, филиалов панаоткрывал. Я бы так не смог, скорее бы с тоски подох.
Аноним 21/12/23 Чтв 13:33:15 2971466 156
>>2971425
Вовсе нет. Бабло мне нужно как средство достижения более высоких целей, перспектива свершения которых сейчас меркнет потому что приходится по 40 часов своего времени убивать на этого самого кабануса и шлюх и наёбышей.
Аноним 21/12/23 Чтв 15:33:06 2971647 157
зз.jpg 151Кб, 1280x853
1280x853
>>2971466
Видишь ли, 30 лет назад не у всех был компухтер, поэтому взять и написать хуету, чтобы продать её потом за сотни лямов, мог каждый второй шиз, у которого он был.
Сейчас времена не те. Поэтому иди от бизнес-идии: что ты собираешься дать людям полезного? А уже в процессе реализации делай упор на раст в айти составляющей проекта, если видишь в этом конкурентный потанцевал.
Аноним 21/12/23 Чтв 15:38:12 2971652 158
>>2971647
Вижу в расте бесконечный потенциал. Надеюсь в будущем софт будут писать только на нём.
мимо
Аноним 21/12/23 Чтв 16:29:12 2971702 159
>>2971425
Как же прав.

>>2971165
Даже не знаю, с помощью кодинга, кроме как типикал работы, нечего предложить. Если у тебя есть биз-хватка, тогда ты можешь сделать деньги более простым способом. А если у тебя такого нет...

Ну если так пофантазировать, сначала тебе нужно как-то охуенно контрибьютить в Ржавчину, прямо в ядренные вещи, чтобы шишка у всех на тебя стояла, привлекаешь шизов-энтузиастов, открываешь компанию. А потом пробуешь выбить какой-нить грант от мелкософта. Повторюсь, если у тебя нет бизнес яиц, любая идея в любой сфере обречена на провал, в тч и эта. Помимо гениального кододрочерства, нужен охуительный продаван. В общем, всю эту базу чел выше выдал, чего тут...
Аноним 21/12/23 Чтв 16:39:08 2971710 160
>>2971702
Да не. Вопрос изначально стоял в том, какой проект написать. Уже потом мы перешли к моей конечной цели.
Аноним 21/12/23 Чтв 17:04:02 2971722 161
>>2971165
>Единственная актуальная для меня задача - заработать лярд баксов. Как мне этого достичь с помощью раста?
Сделай финансового бота, который будет удваивать деньги каждый год.
1 год - $10,000
2 год - $20,000
3 год - $40,000
4 год - $80,000
5 год - $160,000
6 год - $320,000
7 год - $640,000
8 год - $1,280,000
9 год - $2,560,000
10 год - $5,120,000
11 год - $10,240,000
12 год - $20,480,000
13 год - $40,960,000
14 год - $81,920,000
15 год - $163,840,000
16 год - $327,680,000
17 год - $655,360,000
18 год - $1,310,720,000

Как видишь всё реально. Давай приступай удваивать. К 2041-му году ты должен управиться. Удачи.
Аноним 21/12/23 Чтв 17:13:09 2971732 162
image.png 770Кб, 1280x720
1280x720
>>2971165
>Единственная актуальная для меня задача - заработать лярд баксов. Как мне этого достичь с помощью раста?
очевидно, что надо продавать курсы по расту
Аноним 21/12/23 Чтв 17:20:02 2971740 163
>>2971722
>Сделай финансового бота, который будет удваивать деньги каждый год.
Зачем так сложно если можно просто зайти в админку бд банка и сделать SET balance = 10e12?
Аноним 22/12/23 Птн 18:46:13 2973060 164
Подводные камни изучения раста без знания языка C/C++?
Аноним 22/12/23 Птн 19:20:02 2973114 165
>>2973060
Так и не узнаешь, сколько bullets ты dodged, и насколько на нём проще писать, ч5м на тех же плюсах. На сях проще, но дольше
Аноним 22/12/23 Птн 19:29:52 2973123 166
>>2973060
Что то говно, что другое. Для закрытия гештальта можешь подрочить ассемблер, если перед пацанами неудобно.
Аноним 22/12/23 Птн 19:57:26 2973143 167
>>2973060
Есть мнение (не мое), что rust как первый язык - это самое оно, т.к. все ограничения rust'а воспринимаются как само собой разумеющееся, без мыслей типа "что за хуйня? в C/C++ всю жизнь такая конструкция работала без проблем..." и соответствующего желания дропнуть этот язык.
Аноним 22/12/23 Птн 20:10:32 2973151 168
Если я хочу написать nmap 2, насколько сложно мне будет работать с libpcap? Насколько вызовы будут медленней?
Аноним 22/12/23 Птн 20:49:05 2973165 169
Аноним 23/12/23 Суб 01:54:54 2973428 170
>>2973165
А зачем что-то куда-то копировать? Да и вообще зачем создавать buff? Не шарю в С.
Аноним 23/12/23 Суб 01:56:31 2973429 171
>>2973428
А, оно там со стдина, а не аргументов. Он так коряво печатал аргв аргц что у меня всё внимание на них ушло.
Аноним 23/12/23 Суб 17:02:28 2973807 172
В дополнение к каким языкам вы бы посоветовали учить Раст?
Аноним 23/12/23 Суб 19:01:01 2973915 173
Аноним 23/12/23 Суб 19:02:28 2973918 174
>>2973915
про Кобол забыл
другой анон
Аноним 23/12/23 Суб 21:23:14 2974172 175
>>2973915
Почему именно они?
Я так-то про более распространенные языки, но вдруг твоя рекомендация реально имеет под собой неироничные основания.
Аноним 23/12/23 Суб 22:38:26 2974304 176
>>2974172
Научишься разному чернокнижному программированию, часть из которого возможна и в расте.
Аноним 25/12/23 Пнд 17:21:26 2977179 177
>>2973807
В будущем не должно остаться других языков и софта написанных ни на чём другом помимо раста или сишарпа так что вот тебе и ответ.
Аноним 25/12/23 Пнд 20:09:43 2977420 178
Аноним 26/12/23 Втр 04:00:31 2977801 179
>>2977420
Тише, жабаскриптер
Аноним 28/12/23 Чтв 13:44:46 2981149 180
Я прочитал все материалы из шапки. Что дальше учить? Что дальше писать? Как найти работу?
Аноним 28/12/23 Чтв 19:52:12 2981684 181
image.png 57Кб, 225x225
225x225
Аноним 28/12/23 Чтв 20:56:27 2981788 182
>>2981149
>Я прочитал все материалы
Ну и всё сиди перди теперь
Аноним 28/12/23 Чтв 21:17:02 2981808 183
>>2970819
Твоё решение хуйня, если оно не евалит жс после загрузки страницы, поскольку страницы могут тащить за собой дохуя ленивых бандлов, шрифтов и стилей. Поэтому, наиболее годный вариант с тз совместимости - ранать что-то наподобие Паппеттира и использовать MHT как сингл-файл архив для страницы со всем её содержимым. У холма есть соответствующее АПИ: https://vanilla.aslushnikov.com/?Page.captureSnapshot
Аноним 29/12/23 Птн 08:49:17 2982150 184
>>2981808
Мне для моих нужд хватило. Хз, как там твой папитер, 300мб 🕛 прожуёт?
Аноним 29/12/23 Птн 10:23:54 2982206 185
Аноним 29/12/23 Птн 19:50:18 2982865 186
image.png 152Кб, 800x355
800x355
>>2982206
В текущих реалиях 🎁 - язык нишевый. Корпы, если и смотрят в его сторону, то в качестве эксперимента, и берут под это дело не анона с двача, который "прочитал все материалы из шапки", а персонажей уровня Кладова (автор 🎁-analyzer, есть его лекции на ютубе).

Поэтому если конечная цель - трудоустройство, то я бы учил ту же 🍊.
Аноним 29/12/23 Птн 21:34:20 2982996 187
>>2982865
>персонажей уровня Кладова
пока вакансий мало, берут самых крутых, это ессно.
Когда распробуют, будут выгребать всех, даже бывших продавцов и шиномонтажников, как в жс/похапе.
Аноним 29/12/23 Птн 22:58:34 2983148 188
>>2982996
>Когда распробуют, будут выгребать всех, даже бывших продавцов и шиномонтажников, как в жс/похапе.
Ну так когда это будет и будет ли?)
🍾 так-то существует с 1991 года и только пару лет назад о нем начали вещать из каждого утюга.
Помню времена, когда 🎁 (с Rails) был на хайпе и где он сейчас?

🎁 - нишевый язык и я бы исходил из того, что скорее всего он таким и останется.
Аноним 30/12/23 Суб 10:46:54 2983457 189
>>2983148
🐍 из каждого утюга полез тогда, когда индустрия начала пылесосить всех подряд. Так-то он и до этого был востребован в том же вебе - с джангой, зопой и прочими фреймворками. Ну и как дефолтный язык, когда баша уже мало, а сишечки с джавой ещё много, он чуть ли не с тех же 90-х и использовался.
🎁 - сразу ясно было, что ещё один чуть более сахарный, но и чуть более тормозной 🐍, не нужен.

Раст - нишевый, да. Метит в нехилую такую нишу C/❄️, причём в нишу сразу обоих. И, в отличие от 🎁, решает проблемы тех, на чью замену метит.
Аноним 30/12/23 Суб 10:50:07 2983460 190
Лучше бы вместо снежинок и автозамены добавили на доску подсветку синтаксиса, или, на худой конец, блок, где разметка не съедала бы форматирование кода.
Аноним 30/12/23 Суб 12:58:53 2983519 191
1680139467829876.png 2132Кб, 1808x1796
1808x1796
Аноним 30/12/23 Суб 14:02:43 2983557 192
>>2983519
Сцук, я когда в айти вкатывался в 2007, голова также пухла. Но было интересно.
теперь у меня совсем нет друзей, а тогда ещё были
Аноним 31/12/23 Вск 22:35:18 2985026 193
image.png 5Кб, 296x100
296x100
что он делает?
должно быть просто 6a 07, и 68 72 7c или 66 68 72 7c 00 00, ещё и адрес 0x7c3e неверный. таргет файл и линковочный скрипт из крейта загрузчика, под раст осдев
Аноним 01/01/24 Пнд 02:03:28 2985157 194
С новым годом, анончег.
Назрел довольно странный вопрос.
Кто-нибудь работал с Голубой Огонёк? Даже если нет, можете высказать свое имхо.
Предположим у нас есть два воспроизводимых Голубой Огонёк:
1) в браузере
2) в десктоп плеере
Вопрос такой в вакууме, есть ли разница в перфомансе и чем её можно измерить.

Всех обнял, приподнял.
Аноним 01/01/24 Пнд 02:06:27 2985161 195
Абу, что ты сделал...
В_и_д_е_о >>2985157
Аноним 01/01/24 Пнд 13:18:52 2985239 196
>>2985157
Ну блять, если они оба локально лежат и браузер у тебя свежей версии со всеми кодеками и хардварным ускорением - то особо никакой разницы.
Аноним 01/01/24 Пнд 14:17:18 2985261 197
Есть хитровыебаный парсинг хитровыебаного сайтика с помощью крейта headless_chrome. Хитровыебанность парсинга заключается в том, что там имеет место быть рекурсивная функция (обходим древовидные менюшки).

Мы создаем структуру браузер, от браузера структуру вкладка, а вклюдку передаем в функцию. И все заебись работает, но браузер по непонятным мне причинам падает.

Соответственно, когда мы создаем новые браузер и вкладку, старый Tab, который прописан в вышестоящий рекурсии, становится недоступным, т.к. адрес нового таба уже другой.

С дуру пытался запихать этот Tab в once_cell, но rust меня послал нухуй, т.к. Tab не имплементит Debug.
Аноним 01/01/24 Пнд 14:37:00 2985268 198
>>2985261
Нихуя не понятно из твоей стены но чем тебе не подходит Rc?
Аноним 01/01/24 Пнд 15:48:23 2985317 199
>>2985239
А с аудио не работал?
Вот житейский пример, ты скорее предпочтешь скайчку Новый Годез фильма на хард или будешь на лордфильме довольствоваться очень ужатым 1080р....

Хотелось бы узнать как работает браузер внутри... Я чуть пытал Полярная Почта на предмет того, насколько риалтайм аудио обработка реализована, можно ли к примеру ОС функции дёргать в браузерах, но как понял что это песочница, значит есть какой-то оверхед так или иначе. Но могу ошибаться.

>>2985261
Под каждую вкладку процесс выделяется. Вообще хром конечно охуел знатно, переоцененное говно как по мне!
Аноним 01/01/24 Пнд 15:57:32 2985323 200
>>2985317
Песочница, да. Вся эта херня работает посредством различных апишек реализованных в браузере. За подробностями тебе на mdn. Но в целом то там обычные С/❄️ код для дёргания сисколов, так что если у тебя обычные audio/video теги с прописанным сорсом без всякого жс говна работающего с ними особого оверхеда нет.
Аноним 01/01/24 Пнд 16:13:55 2985331 201
>>2985157
Сейчас основная разница в используемых кодеках и используемы фиьтрах. У себя локально ты можешь настроить плеер как тебе хочется - подобрать более производительный Дети в костюмах снежинок для аппаратного ускорения или интерполяцию до 60 фпс включить, например.
Аноним 05/01/24 Птн 05:44:40 2989502 202
чем раст лучше спп?
Аноним 05/01/24 Птн 06:05:57 2989507 203
>>2989502
Трейтами, отслеживанием лайфтаймов и более жёстким borrow checker-ом.
Аноним 05/01/24 Птн 06:11:05 2989510 204
Аноним 05/01/24 Птн 13:08:10 2989678 205
Аноним 05/01/24 Птн 17:07:53 2990121 206
Аноним 05/01/24 Птн 19:20:12 2990341 207
1563697091919.png 34Кб, 1667x333
1667x333
Когда уже бинарники станут весить нормально? Протестил сейчас хэллоуворлд - 125 кб, сборка стд из исходников во время компиляции и тримминг не уменьшают размер. В это же время у зига хэллоуворлд 4.5 кб, а упх жмёт его до 2.5 кб, лол. Такими темпами сишарп догонит скоро, там после упх собраный на АОТ бинарник весит 350 кб.
Как мне малварь сисадминский софт обновлять через ICMP не привлекая внимания санитаров безопасников с такими размерами в сотни кб?
Аноним 05/01/24 Птн 20:07:16 2990404 208
>>2990341
Раз уж ты выбрал путь страданий, гугли "rust winapi no_std no_main"
Количество доступных тебе крейтов сильно поубавится, сборка чуть усложнится, но таков путь
Аноним 05/01/24 Птн 20:29:45 2990428 209
>>2990404
> 1536 байт
Ну меньше на целый кб чем зиг с стд. Но как этим говном пользоваться без стд? Даже хуже сишки экспириенс. На зиге страдать не надо чтоб иметь мелкий файл.
Аноним 05/01/24 Птн 20:34:40 2990434 210
>>2989502
Отсутствием многолетнего легаси.
Аноним 05/01/24 Птн 21:18:43 2990493 211
>>2990428
Ну так пиши на зиге, нахуа тебе раст? Раст - про эффективность и безопасность, а не про размер бинаря.
Аноним 05/01/24 Птн 21:29:07 2990515 212
>>2989507
> Трейтами
Шаблоны всё равно мощнее инструмент. Интерфейсами ещё в джаваговне нажрались, от того что их назвали по другому лучше они не стали.
> отслеживанием лайфтаймов и более жёстким borrow checker-ом
Не понятно одно - почему ебаться должен кодер, а не компиляторостроители. Санитайзеры в крестах с этим справляются без проблем, но там хоть не заставляют ублажать компилятор, когда хочешь ссылочки на объекты попередавать.
>>2990434
> Отсутствием многолетнего легаси.
Это конечно вопрос философский что хуже - легаси или сырой полудописанный код, но я бы всё же предпочёл не иметь ничего из этого в модном и молодёжном ЯП, учетшем ошибки предков.
Аноним 05/01/24 Птн 21:48:18 2990546 213
>>2990493
> эффективность
Как-то он неэффективно расходует место на моем диске. Я сейчас ещё могу вспомнить про 5-гиговые папки deps, которые он оставляет после сборки. Или могу вспомнить про то что в расте нет ленивой загрузки внешних библиотек в рантайме, как у майков на MSVC, что влияет на скорость запуска, если уж зашла речь про эффективность и бинарник.
Мне больше не понятно в чём проблема триммить стд, нахуй он тащит его весь с собой. Зиг же может выкинуть всё что не надо из бинаря. Кресты на LLVM тоже без проблем избавляются от мусора, у которых так-то рантайм жирный килобайт на 5 аж, я не верю что у раста чего-то полезного и жизненно необходимого есть на 120 кб, это же не ГОвно, которое сборщик мусора и ещё гору всего таскает с собой.
Аноним 05/01/24 Птн 21:57:56 2990552 214
>>2990515
>Интерфейсами ещё в джаваговне нажрались, от того что их назвали по другому лучше они не стали.
Трейты это не интерфейсы.
>Шаблоны всё равно мощнее инструмент.
Шаблоны вообще перпендикулярны и трейтам и интерфейсам.
>Санитайзеры в крестах с этим справляются без проблем
Они в рантайме работают, это проблема по определению. Например, их не на любой платформе можно включить.
Аноним 05/01/24 Птн 22:00:02 2990554 215
>>2990546
Расту нужна своя стандартная её он и тащит. Скомпиляй свой хелловорлд с -C prefer-dynamic, сразу увидишь разницу.
Аноним 05/01/24 Птн 22:05:20 2990555 216
>>2990552
> Трейты это не интерфейсы.
Ты видимо совсем глупый, семантически это абсолютно идентичный функционал.
> Шаблоны вообще перпендикулярны и трейтам и интерфейсам.
Ясен хуй, они кодогенерацией занимаются, а не просто выполняют функцию полиморфизма.
> Они в рантайме работают
Они в дебаге работают. В релиз их никто не тащит.
> это проблема по определению
Проблема - это когда компилятор/рантайм не может сам справиться с проверкой памяти на дыры. Не вижу проблем когда он всё же может сделать это не накладывая никаких ограничений на кодера.
Аноним 05/01/24 Птн 22:20:09 2990564 217
>>2990515
>Не понятно одно - почему ебаться должен кодер
Ебля только пока не щелкнёт. Или пока не столкнешься с кейсами, когда случается ложное срабатывание. Это еще и средство, чтобы задать контракт для API.
Аноним 05/01/24 Птн 22:27:42 2990569 218
>>2990554
> сразу увидишь разницу
Да, увидел, теперь в консоль не пишется хэллоуворлд. Это типа норма что теперь код не выполняется вообще, лол?
Аноним 05/01/24 Птн 22:44:56 2990571 219
>>2990555
>семантически это абсолютно идентичный функционал
Нет, семантически они разные. Говоря простым языком, трейты это свойства типов, а интерфейсы это описание общего поведения, организованное в иерархию. Например, ты можешь хранить свою коллекцию изображений аниме-шлюх в иерархии папок, это классический ООП подход. А можешь каждой картинке проставить несколько тегов, это трейты. Хз, как ещё проще объяснить.

Разница в реализации тоже значительная, трейты это обычное раннее связывание, в то время как интерфейсы это позднее связывание.

Трейты дают больше возможностей. Например, можно добавить новый метод для чужого класса или даже примитива языка. Вообще, там много всяких интересностей, я не так хорошо растом владею чтобы их тут перечислять, лучше почитай растбук, если интересно.

>они кодогенерацией занимаются, а не просто выполняют функцию полиморфизма.
Иногда это называют статическим полиморфизмом...

>Они в дебаге работают. В релиз их никто не тащит.
Т.е. если в дебаге вручную проблему не отловят, то она попадает в релиз. В то же время эти же проблемы в расте исключены на этапе компиляции.

>Не вижу проблем когда он всё же может сделать это не накладывая никаких ограничений на кодера.
Не может. Вернее может, но тогда ты вообще заебёшься что-то сложнее сложения двух чисел писать. Уже писал в этих тредах про проблему останова >>2823357
Аноним 05/01/24 Птн 22:48:31 2990573 220
Аноним 05/01/24 Птн 23:00:07 2990580 221
image 209Кб, 2352x1540
2352x1540
>>2990569
Не, просто ты недостаточно компетентен.
Аноним 05/01/24 Птн 23:39:31 2990601 222
>>2990571
> семантически они разные
Это классический полиморфизм, от твоих фантазий он не перестанет быть таким.
> А можешь каждой картинке проставить несколько тегов
Чел, с каких пор класс в джаве перестал иметь возможность реализовывать сколько угодно интерфейсов?
> можно добавить новый метод для чужого класса
Если сильно хочется, то jvm тебе позволит хоть очко на глобус натянуть, Manifold даст тебе возможность чужие классы изменить просто подставляя аннотацию @Extension.
Аноним 05/01/24 Птн 23:50:21 2990608 223
1667388743659.png 105Кб, 1802x384
1802x384
>>2990580
Скорее разрабы этой хуиты некомпетентны в написании компиляторов. Безопасность... Она где-то рядом, но я её чувствую всё меньше и меньше.
Аноним 06/01/24 Суб 00:11:32 2990623 224
>>2990601
> классический полиморфизм
Классический полиморфизм предполагает виртуальную таблицу, тут её нет.
Олсо, какие вообще проблемы с интерфейсами, их раньше называли множественным наследованием здорового человека. Когда их зумеры успели засрать?
Аноним 06/01/24 Суб 01:18:01 2990658 225
>>2990623
Что-то ты уже совсем бредишь, это всё полиморфизм подтипов, детали реализации не равно семантика. И в джаве тоже нет виртуальной таблицы так-то, в жвм уже давно избавились от такого.
> наследованием
> здорового человека
Здоровый человек использует дженерики для полиморфизма. В крестах концепты есть - это самое близкое к определению "интерфейсы здорового человека", хоть они и могут показаться как руны древних шизов для свежих крестов это норма.
> Когда
В момент создания, когда гении легасистроения придумали как использовать легаси не снимая штанов которые очевидно уже обосраны, заодно запретив трогать это самое легаси, выпадающее из штанин.
Аноним 06/01/24 Суб 01:18:11 2990659 226
>>2990601
>от твоих фантазий он не перестанет быть таким.
Прекрасно тебя понимаю, поначалу я тоже очень скептически относился к таким заявлениям. Если тебе действительно интересно, всё-таки рекомендую ознакомиться с растбуком. Мне Весело на утреннике в одном посте выразить то, что разжёвывается в целой книге. Свою лучшую попытку я уже сделал. Может есть более сжатые источники, я таких не знаю, а гуглить за тебя не собираюсь.
>с каких пор класс в джаве перестал иметь возможность реализовывать сколько угодно интерфейсов?
Ну вот ты просто не знаешь раста, поэтому пишешь такое. Приведи пример, как в джаве сделать подобное (пример из растбука собственно):
pub fn notify(item: &(impl Summary + Display)) {}
Если ты не понимаешь, что тут написано, то это шаблонная функция, которая принимает в качестве аргумента ссылку на любое значение, для которого реализованы типажи Summary и Display. inb4: сделать интерфейс, который наследуется от двух других интерфейсов.
>Если сильно хочется, то jvm тебе позволит хоть очко на глобус натянуть, Manifold даст тебе возможность чужие классы изменить просто подставляя аннотацию @Extension.
Не очень понимаю, о чём речь, ты как-то с классов на джаву соскочил, будто это синонимы и все её знают. Я вот её почти не использовал. Но догадываюсь, что речь о каких-то хаках уровня поправить в рантайме указатель на vtable для объекта в C++. Конечно здорово, что это можно сделать. Но в расте это базовая возможность, которая описана в официальном руководстве для начинающих. А твой пример это похоже на хак, основанный на понимании внутреннего устройства конкретной реализации. Feel the difference, как говорится.
Аноним 06/01/24 Суб 01:27:20 2990664 227
>>2990608
Ну можешь поковырять, как оно там у тебя линкуется. ldd есть на винде? В принципе, ты только что наглядно продемонстрировал, почему по умолчанию линковка растовых бинарников статическая. В противном случае, критики завалили бы разрабов сообщениями подобными твоему.
Аноним 06/01/24 Суб 01:37:03 2990671 228
>>2990659
> как в джаве сделать подобное
Легко:
public <T extends Summary & Display> void notify(T item) {}
> которая описана в официальном руководстве
Тебе бы самому не помешало почитать документацию, потому что методы расширения работают только для типов из твоего крейта и std, т.к. он в твоём крейте. Для типов из других - даже хаков нет. Хуй знает чего ты так доебался до этого, это просто синтаксический сахар, передающий произвольный объект методу в виде self.
Аноним 06/01/24 Суб 01:59:52 2990679 229
>>2990671
>public <T extends Summary & Display> void notify(T item) {}
Прикольно, не помню чтобы было такое, когда я ковырял джаву. Проверка, на ограничения Т будут применены в рантайме или при компиляции?
>Тебе бы самому не помешало почитать документацию, потому что методы расширения работают только для типов из твоего крейта и std, т.к. он в твоём крейте.
Да, я читал, в расте есть так называемое orphan rule. Нельзя имплементировать чужие трейты для чужих типов. Это сделанно намеренно, чтобы не сломать функциональность чужого крейта. Все остальные сочетания (свой-свой, чужой-свой, свой-чужой) работают.
Последний параграф https://doc.rust-lang.org/book/ch10-02-traits.html#implementing-a-trait-on-a-type
>доебался до этого
До чего этого?
>это просто синтаксический сахар, передающий произвольный объект методу в виде self.
Что?
Аноним 06/01/24 Суб 06:42:08 2990733 230
>>2990659
>с каких пор класс в джаве перестал иметь возможность реализовывать сколько угодно интерфейсов?
Класс в джаве реализует ровно те интерфейсы которые указаны в спеке класса. Добавление нового интерфейса возможно только расширением или изменением класса.
>>2990679
>Прикольно, не помню чтобы было такое
В районе 9 джавы дотюнили систему типов.
Аноним 07/01/24 Вск 14:46:09 2992033 231
Аноны, почему Haskell такой лаконичный и красивый, а Rust какой-то уродливый и с кучей синтаксического шума. Как Rust-код вообще читать?
Аноним 07/01/24 Вск 15:58:28 2992106 232
>>2992033
Красота в глазах смотрящего, говноглазик. А теперь проследуй в хаскел-тхреад
Аноним 07/01/24 Вск 16:04:33 2992114 233
>>2992106
> Красота
.unwrap() и .collect<Govno<Zalupa<Hui&>>>() уже оформил, эстет?
Аноним 07/01/24 Вск 16:12:30 2992125 234
>>2992114
><Hui&>
а это что значит?
Аноним 07/01/24 Вск 16:14:48 2992127 235
>>2992125
Ну хрустоводы не знает о такой части тела как Hui. Они гендернонейтральные небинарные личности с малых лет.
Аноним 07/01/24 Вск 16:22:07 2992142 236
>>2992127
Ну хаскеллисты-то всё о хуях знают. Как не спросишь хаскеллиста, о чём он думает, так всё время отвечает, что о хуях размышляет, и как их каррировать приятно.
Аноним 07/01/24 Вск 16:24:46 2992147 237
>>2992142
> реверсфорс соевого хрустопереписывателя
Чому не на хрусте свой пост не написал, гендернонейтральный?
Аноним 07/01/24 Вск 16:27:13 2992155 238
>>2992127
ну ты видимо очередной любитель запихивать себе в Тулуп всякое - в данном случае амперсанд

в rust'е нет ни одной конструкции, где <foo&> было бы легитимно
Аноним 07/01/24 Вск 16:38:15 2992169 239
>>2992155
Хрустоводы могут конечно и дальше пихать себе в тулупы `vec.iter().map(|x| x 2).collect::<Vec<_>>()`

Пока Haskell-бояре обходятся лаконичным `map (
2) list`.

Даже в лишпе код будет проще и без синтаксического мусора.
Аноним 07/01/24 Вск 16:44:12 2992182 240
>>2992169
а где амперсанд? в жопе застрял?
Аноним 07/01/24 Вск 16:47:30 2992191 241
>>2992182
В твоей? Может быть. У сквир-личностей хрустопереписывателей и не такое в Тулупх найти можно :)
Аноним 07/01/24 Вск 17:00:09 2992207 242
>>2992147
Потому что я его не знаю и ничего на нём никогда не писал, хуячкеллист.
Аноним 07/01/24 Вск 20:25:06 2992574 243
>>2992169
В Rust'е много синтаксического "мусора", потому что там более сложная семантика. Всё-таки нужно близко к железу держаться, а не опираться на GC.

Разберём, откуда что берётся.
- Rust с энергичной стратегией вычисления, а не с ленивой, и коллекции гораздо более непрозрачные для компилятора, чем ADT для компилера Хаскеля. Rust не может просто опираться на `Foldable` и на то, что оптимизатор может доказать, что промежуточные списки строить не надо. Отсюда и берётся lazy external iteration. Следовательно, появляется `.iter()` и `.collect()`.
- В Rust'е функции – не first-class objects, потому что это бы создавало слишком много виртуальных вызовов. Поэтому, как и в плюсах, всякие лямбды и даже обычные функции имеют анонимные типы. Из-за этого приходится возиться с `Fn`-трейтами. Наличие сечения операторов и частичного применения сделало бы эти ограничения слишком неявными. Поэтому пишем `|x| x + 2`.

Короче, в рамках поставленных задач, Rust, на мой взгляд, получился очень хорошим. Тут хотя бы не надо своё очко трансформерами монад, свободными монадами, tagless encoding и прочей хуетой дрочить
Аноним 07/01/24 Вск 20:55:42 2992635 244
>>2992574
> Всё-таки нужно близко к железу держаться, а не опираться на GC.
Есть Perceus. Взгляни как синтаксически чисто выглядит koka-lang, хотя в нём тоже нет GC и рантайма. Ручной работы с памятью там тоже нет.

> Rust с энергичной стратегией вычисления, а не с ленивой
У схемы тоже не ленивые вычисления, что не мешает использовать функторы по-человечески.

> и коллекции гораздо более непрозрачные для компилятора, чем ADT для компилера Хаскеля
Что значит «прозрачность»? Связанные списки - они в Африке связанные списки.

Не вижу проблемы сделать прямое отображение map :: (a -> b) -> List a -> List b.

Заодно нам вообще не нужно указывать где либо типы, их можно спокойно вывести согласно сигнатуре.

> В Rust'е функции – не first-class objects
Обычно после это предложения на какое-либо использование в Real World язык уже не претендует.
Аноним 08/01/24 Пнд 09:50:22 2993035 245
>>2992033
Потому что функциональщину пришили костылями, а синтаксис для неё не завезли. Даже в шарпе LINQ придумали, потому что понимали насколько всрато монады будут смотреться через точку, а в расте на похуе сделали лапшу. В итоге имеем на каждой строчке новый уровень вложения и миллион скобочек трёх видов. То что монады не отформатировать без лесенок - всем похуй, жрите как есть, а если через пол года разработки код превращается в нечитаемое месиво - переписывайте заново. Причём видимо у кого-то всё же были приступы озарения какое дерьмо они делают и кто-то пытался бороться с этим, но ничего дальше заглушек типа unwrap не ушло.
>>2992574
> Из-за этого приходится возиться с `Fn`-трейтами
С чем ты там возиться собрался, когда дедукция типов уже хуй знает сколько редакций крестов есть, ничего кроме auto тебе не понадобится. Это в расте тебе аж дженерик параметр надо делать, чтоб лямбду передать, вот что это за нахуй:
> fn pizdec<F>(f: F) where F: Fn(i32) { f(123); }
В то время как в крестах оно выглядит вот так:
> auto zaebis(auto f) { f(123); }
Аноним 08/01/24 Пнд 10:54:46 2993087 246
>>2993035
fn pizdec(f : impl Fn(i32))

>В то время как в крестах оно выглядит вот так:
И чтобы понять тип переменной, нужно лезть в код. Да, охуенно.
Аноним 08/01/24 Пнд 11:12:07 2993102 247
1557098205092.png 118Кб, 1304x816
1304x816
>>2993087
Да, с "auto f" он примет что угодно и IDE будет похуй, только на этапе компиляции он скажет что не может сделать f(123) с аргументом.
> чтобы понять тип переменной, нужно лезть в код
Есть же концепты. Достаточно написать "invocable<int> auto f" и туда можно будет передать только то что можно вызвать с аргументом int. Алсо, в крестах настоящий duck-typing, т.е. ты туда можешь передать вообще что угодно, что подпадает под условия концепта, а не только то что реализует трейт. Т.е. в случае с invocable там может быть хоть указатель на функцию, а не обязательно лямбда. Пикрилейтед, раст так может?
Аноним 08/01/24 Пнд 11:43:50 2993128 248
>>2993102
>Алсо, в крестах настоящий duck-typing
Это не всегда хорошо. Путь к костылям. Но если бы плюсы пытались во что-то строгое, то было бы еще хуже, поэтому пусть будет.

>Пикрилейтед, раст так может?
Указатель вроде нет, просто функцию по имени да.
Аноним 08/01/24 Пнд 13:09:42 2993191 249
lldb -P

Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'lldb.embedded_interpreter'
/usr/lib/local/lib/python3.10/dist-packages

Когда питухон пакаджи там лежали? Что за блядство
Пробую раст ваш, какое-то нахуй все сырое...
Аноним 09/01/24 Втр 03:44:11 2994263 250
>>2993102
>Есть же концепты. Достаточно написать "invocable<int> auto f" и туда можно будет передать только то что можно вызвать с аргументом int.
А в чём отличие от трейта Fn(i32)?
Аноним 09/01/24 Втр 03:52:32 2994266 251
>>2993102
>Т.е. в случае с invocable там может быть хоть указатель на функцию, а не обязательно лямбда. Пикрилейтед, раст так может?
В расте указатель на функцию это так называемый fn тип. Он реализует все три трейта замыканий (Fn, FnOnce, FnMut). Поэтому да, в расте достаточно объявить функцию ожидающую замыкание и передавать туда указатель на функцию.
https://doc.rust-lang.org/book/ch19-05-advanced-functions-and-closures.html
Аноним 09/01/24 Втр 03:58:21 2994267 252
По поводу автоматического выведения сигнатур функций, в растбуке кстати сказано так:
>In function signatures, you must declare the type of each parameter. This is a deliberate decision in Rust’s design: requiring type annotations in function definitions means the compiler almost never needs you to use them elsewhere in the code to figure out what type you mean. The compiler is also able to give more helpful error messages if it knows what types the function expects.
Честно говоря, я не силён в современном C++ и хаскелле, не знаю как они справляются с обозначенными проблемами.
Аноним 09/01/24 Втр 06:02:09 2994297 253
Кто-то из анонов занимается скрапингом и анализом данных на Расте?
Аноним 09/01/24 Втр 11:25:44 2994480 254
>>2994263
>>2994267
В крестах в концепте просто пишешь как есть - тип должен вызываться с таким-то параметром. Компилятор/IDE проверяет возможно ли сделать такое с этим типом - если да, то пропускает его.
> template<typename T>
> concept zalupa = requires(T t) {
> t(123);
> };
Можно чекнуть возвращаемый тип, или то что с аргументом можно какие-то операции делать, типы объектов или его полей проверить, чекнуть есть ли нужные поля или методы у объекта { arg.hui };. Короче любое выражение можно написать и если оно валидно для этого типа - он пропускается. Причем при самом использовании этого концепта не надо использовать дженерики и прочее, просто перед auto добавить концепт и например работать с любым типом, умеющим в арифметические операции - в IDE будет всё чекаться и подсвечиваться, а тебе похуй там float, int или вообще объект из какой-то либы. Можно вообще как на питоне сидеть, обмазавшись auto и концептами для ограничений типов.
template<typename T, typename Arg>
concept zalupa = requires(T t, Arg arg) {
> { t(arg) } -> same_as<void>;
> { arg + 1 };
> };
Аноним 09/01/24 Втр 12:34:58 2994563 255
>>2994480
А потом ты пишешь t.sosat(hui) и идёшь на этот самый хуй, так как классов, имплементящих этот sosat может быть несколько и означать этот sosat может разное - а по году твой дженерик функции поди догадайся, что именно.
Вот и получается, что C++ для хэллоуворлдов с одним - двумя разрабами, которые в курсе, как именно sosat, а раст для серьёзных проектов, где куча разрабов и всё должно быть строго - вот корпорации к нему и присматриваются.
Аноним 09/01/24 Втр 13:20:58 2994624 256
image 226Кб, 3648x1988
3648x1988
>>2994480
Всё ещё не понимаю в чём разница. Ты привёл пример:
>просто перед auto добавить концепт и например работать с любым типом, умеющим в арифметические операции
Как я понимаю, для этого нужно написать 5 строк самого концепта, а потом добавить многословное описание аргумента в сигнатуру функции. На расте это как-то проще и лаконичнее выглядит.

>Причем при самом использовании этого концепта не надо использовать дженерики и прочее
Это либо дженерик с другим синтаксисом, либо это полиморфизм в рантайме, другого не дано. И судя по ключевому слову template в описании концепта, это не последнее. В расте тоже есть синтаксический сахар для Fn трейтов, можно просто писать f: impl Fn(usize, i32) -> bool. Конечно, когда ты хочешь наложить ограничения на аргументы передаваемой функции уже приходится полноценное синтаксис обощений использовать, благо он довольно выразительный и легко и интуитивно читается.

О чём спор вообще, исторически концепты по-моему это спизженные из раста трейты. Поправьте если ошибаюсь.
Аноним 09/01/24 Втр 13:26:01 2994630 257
>>2994563
> А потом ты пишешь
Как говорится, с дури можно и хуй поломать. При написании кода должен быть хотя бы минимальный здравый смысл. А вообще сишка и кресты weakly typed, а тот же питон внезапно strongly typed. Это никогда не мешало писать код ложа хуй на типы и ничего не ломалось.
А вот в расте меня сильно бесило, когда в обёртке winapi один тип, а либа возвращает другой, хотя я точно знаю что это блять просто uint64 на самом деле какой-нибудь HANDLE, но раст позволяет их взаимозаменить только в ансейфе, "безопасно" они не кастуются. Т.е. я имею две "безопасные" обёртки, но должен использовать ансейв чтоб передать один объект в метод другого, это уже граничит с шизой. И такое на самом деле очень часто встречается в расте среди либ для системщины, пока майки сами не сделали единый биндинг к своим APi так и пользовались ансейфом в безопасных обёртках. Хотя оно и сейчас часто есть, например в DirectX и графических либах, где кому-то вдруг захотелось вместо майковских типов написать свои, или Result использовать другой. А ты потом ебись с этим, когда каждая либа свой Result имеет и ты банально Ok не можешь кастануть к Ok, вот уж где меня точно не ебёт что это за Ok.
> раст для серьёзных проектов
Почему же тогда на расте пишут только опенсорс-пердолики, причём забагованный, зато безопасный, код? Я каждый раз проигрывают с безопасности, которую каждый интерпретирует по своему, хотя речь вообще-то про безопасность от уязвимостей. От логических багов всё это не спасает от слова совсем, а ведь они в первую очередь и важны для юзера.
> присматриваются
Сколько присмотрелось за 5 лет? Видел только полтора бэкенда для веба у каких-то крупных компаний типа Дискорда. Все остальные как писали системщину на крестах, там и пишут новые проекты на них, за пределами веба раст вообще отсутствует. Ты можешь аргументировать это легаси, но это всё хуйня, за 5 лет можно было бы и написать хорошие либы. Я вот с графикой имел дело в расте и наблюдал одно и то же - делают обёртки на графические API и через год проект сдыхает потому что поддерживать код уже даже авторы не могут и в итоге начинают новый проект, в этот раз говоря что учли все ошибки прошлого нет. В итоге сейчас кроме wgpu который тоже уже вторая итерация переписывания всего кода, лол ничего нормального и нет, на чём можно было бы начинать реальный проект.
Аноним 09/01/24 Втр 15:09:07 2994774 258
>>2992635

> Взгляни как синтаксически чисто выглядит koka-lang, хотя в нём тоже нет GC и рантайма.
В Koka подсчёт ссылок. Это всё равно оверхед в рантайме. Достижение атомарного счётчика нуля – гораздо более сложный критерий для проверки в рантайме, чем выход из области видимости. Но гораздо более опасный. Идея borrow checker'а в том, чтобы можно было во время компиляции доказывать, когда использование этого критерия безопасно

> У схемы тоже не ленивые вычисления, что не мешает использовать функторы по-человечески.
Ты выдираешь названные мною причины по-отдельности. А я говорю, что они все в совокупности приводят к тому, что в Rust'е нужны ленивые итераторы.

> Что значит «прозрачность»?
В хаскеле основная коллекция – список (`[]`), в расте – вектор (`Vec`).

Список выражается естественным образом через ADT и его определение для хаскеля прозрачное и понятное. В хаскеле операции над списками выражаются через два примитива: fold, unfold (ну или эквивалентные им, я не помню). И компилятор умеет оптимизировать их композиции так, чтобы не создавать промежуточных коллекций.

В расте вектор –дрочево указателей на полу-инициализированную память с невыразимыми в системе типов инвариантами. Если написать `(map f . map g)` в расте он не сможет доказать, что это то же самое, что `map (f . g)`.

Даже если мы добавим `Vec` и его комбинаторы в компилятор, чтобы он его мог оптимизировать, это всё равно не решит всех проблем. Потому что эти оптимизации не могут пересекать границу функций. Когда мы возвращаем `map g xs` из функции, мы обязаны это вычислить и построить новый контейнер из-за энергичной стратегии вычисления, даже если это значение после этого сразу будет запихнуто в `map f`. Тут спасёт только инлайнинг, но он не всегда возможен и не всегда помогает.

Поэтому приходится использовать совсем другой подход: ленивые итераторы. Они достигают того же эффекта (отсутствие промежуточных контейнеров), гарантированно работают, не требуют компиляторного шайтанства, но у них менее лаконичный синтаксис.

> Заодно нам вообще не нужно указывать где либо типы, их можно спокойно вывести согласно сигнатуре.
Раст тоже умеет выводить типы много где. У него, правда, гораздо более сложная система типов, поэтому, скорее всего, полный вывод типов неразрешим, да и никто даже и не пытается, потому что типы – часть документации.
В данном конкретном случае с `.collect()` надо указывать тип контейнера, потому что из итераторов можно построить не только `Vec`, но и многие другие контейнеры. Тут надо смотреть на контекст, в которой появляется эта строчка, потому что часто компилятор справляется вывести тип контейнера.

Последнее замечание, но самое главное. Раст – системный язык программирования, рассчитанный на работу в отсутствие глобального аллокатора и кучи в принципе. Для него, куча – это ресурс, а не расходник.

И тут мы подходим к последнему:
> > В Rust'е функции – не first-class objects
> Обычно после это предложения на какое-либо использование в Real World язык уже не претендует.
У лямбды есть захваченный контекст. Если у любой лямбды с одинаковой сигнатурой должен быть одинаковый тип одинакового размера, то это вынуждает класть лямбду с контекстом на кучу. А это оверхед в обычном мире и невозможность использование в embedded. Не понимаю, чем embeddedне Real World.
Аноним 09/01/24 Втр 15:26:26 2994778 259
>>2994624

> О чём спор вообще, исторически концепты по-моему это спизженные из раста трейты. Поправьте если ошибаюсь.

Трейты в расте и классы типов в хаскеле –более мощная вещь, чем концепты в плюсах. Концепты в плюсах гораздо ближе к интерфейсам в тайпскрипте.

Разница в том, что концепты выражают структурную типизацию: они просто проверяют, что у класса есть все нужные поля и методы. Концепт реализован на типе, если у него все эти структурные вещи есть.

Трейт же надо реализовывать на типе явно. Потому что трейты помимо нужных методов формулируют законы/свойства/инварианты, невыразимые в системе типов. Например, `Eq` требует, чтобы `==` задавал отношение эквивалентности.

Это позволяет иметь, в том числе маркерные трейты – трейты, формулирующие только свойства, которыми должен обладать тип. Например, трейт `Send`, который говорит, что тип можно безопасно передавать через границу потока. Более того, т.к. компилятор это свойство проверить не может, но он при доказательстве безопасности кода на него опирается, этот трейт помечен `unsafe`. Пользователь должен тысячу раз подумать прежде чем реализовывать этот трейт для типа. Если это свойство не выполняется, то он сам еблан, но он хотя бы будет знать куда смотреть.
Аноним 09/01/24 Втр 18:13:51 2994963 260
>>2994630
Назови хоть один язык, который появился (для широких масс) после 2010 года и был бы хоть вполовину также популярен. Говно разве что, но там хорошая такая поддержка от гугла и ниша была посвободнее - вообще не было языка, на котором можно было бы кодить с хлебушком вместо мозга, но чтобы оно ещё и быстро работало. Питон/руби тормозили, жаба сложна.

>Видел только полтора бэкенда для веба у каких-то крупных компаний типа Дискорда
Гугл новую системные компоненты андроида пишет почти исключительно на расте, плюс потихоньку переписывает старые. Я не знаю, куда уже ближе присматриваться.
Аноним 09/01/24 Втр 18:38:09 2994981 261
>>2994778
> более мощная вещь
Я не вижу где ты нашёл мощность, если одинаковые свойства с разными названиями в расте не считаются одинаковыми. Особенно когда в реальности нет чёткой стандартизации трейтов и ты всегда можешь обнаружить неведомую хуйню, дублирующую дефолтные трейты, но для компилятора они не совместимы.
> концепты выражают структурную типизацию
Вот не пизди. В концептах можно проверить например константная переменная или нет, или проверить какой тип получится после передачи объекта как аргумент функции например int& станет int, так же как и const int&& будет просто int. Или проверить можно ли деференсить переменную для этого она не обязана быть указателем или иметь оператор дереференса. Примеров бесконечное количество можно придумать, которые к структуре объекта вообще никакого отношения не имеют. Это я ещё не вспоминаю про constexpr.
> трейты помимо нужных методов формулируют законы/свойства/инварианты
Совсем шиза пошла, твой трейт ничем не отличается от интерфейса, кроме того что он сбоку прилеплен, а не при объявлении типа. Как будто ты не можешь пустой интерфейс прилепить и притвориться что он какое-то свойство имеет. Если уж на то пошло, то свойства типов, о которых ты пытаешься рассказывать, в крестах называют type traits ахуеть, да?, ещё с С++11 есть они в стандарте.
> невыразимые в системе типов
Чел, трейт 'Eq' требует реализовать оператор сравнения, ты таблетки что ли забыл выпить. В расте ты должен реализовать метод 'eq', в крестах 'operator=='.
И в концепте ты можешь проверить что два типа можно сравнивать или умножать, не проверяя реализован ли у объекта этот оператор или он наследован. В отличии от раста, где надо проверять наличие трейта, вместо самого фактического свойства типа.
> трейт `Send`, который говорит, что тип можно безопасно передавать через границу потока
Т.е. это просто аннотация, которая к реальности не имеет вообще никакого отношения. Трейт может формировать указанные свойства, а может и не формировать, зависит от уровня долбоебизма пишущего код.
Если сильно захотеть на тип повешать что-то, чего не будет в рантайме, и тебе не нравится всякое наследование, то в крестах можно какой-нибудь constexpr enum использовать для аннотации и проверять значение в концепте. А потом писать 'requires Trait<Eq>' и туда нихуя не пролезет без правильной аннотации и реализаций чего надо.
>>2994963
> Назови хоть один язык
ЯП на JVM считается? Ты смотри, а то так и третий ЯП популярнее Раста наскребём, если подумать хорошо.
Можно ещё Dart вспомнить, по количеству компаний, пишущих на нём, он не сильно ниже Раста.
Аноним 09/01/24 Втр 19:19:07 2995043 262
>>2994778
Читаю тебя и ощущаю себя луддитом.

Походу на С++ пишут две категории разработчиков - одна, представители которые берут и пишут и не заморачиваются, вторая, представтели которой любят попиздеть о теории, поучить других, пообсуждать новые ебучие стандарты, но которые не написали в жизни ни одной востребованной народом программы.

Как-то так видится. Остановиться надо было где-то вот на этом:
(11-й стандарт)
for (auto const& i : data) {
std::cout << i.name;
}

Ну ещё constexpr () бывают реально полезными - можно switch со строковыми значенями делать, что удобно.

В остальном - С++ движется куда-то не туда и обрастает вредными фичами.
Аноним 09/01/24 Втр 19:44:12 2995084 263
image.png 50Кб, 484x831
484x831
image.png 61Кб, 582x663
582x663
>>2995043
>В остальном - С++ движется куда-то не туда и обрастает вредными фичами.
плюплюсую

жаловался в с++ треде. Скину сюда:

https://github.com/chriskohlhoff/talking-async/blob/master/episode2/step_8.cpp

Вы говорили, вам тяжело читать сетевой код с сишными колбеками, да? А мне вот не тяжело совсем. И дело тут не в readability, а в нехватке оперативной памяти у читающих, который в голове не могут удержать пару-тройку раскинутых мест по назначению колбека, его вызова и самой функции назначенной колбеком.

А вот современный супер ASIO c++20 с корутинами, вообще шедевр (пикрил 1), да? Его читать у вас глаза не ломаются?!

И теперь каждый долбоёб, который не хочет тащить ASIO, но хочет юзать корутины, будет писать свои future и promise

Каким же с++ говном становится с каждой пятилеткой.

Костя из интел, согласен?
Аноним 09/01/24 Втр 19:44:22 2995085 264
>>2994981
>И в концепте ты можешь проверить что два типа можно сравнивать или умножать, не проверяя реализован ли у объекта этот оператор или он наследован. В отличии от раста, где надо проверять наличие трейта, вместо самого фактического свойства типа.
А в чём разница-то?
Аноним 09/01/24 Втр 19:45:23 2995087 265
>>2994981

Все примеры, которые ты назвал, про структурные свойства типа. Даже type_traits нужны только для того, чтобы проверять, если у типа нужный конструктор/оператор и т.д. Но они ничего не говорят про свойства, которые в коде даже явно не прописаны, но на которые корректность кода опирается.

Как выразить в системе типов требование, чтобы operator== задавал отношение эквивалентности? Без зависимых, refinement или ещё какиъ-то ёбнутых типов не сделать.

То, про что я говорю, это совсем не про type_traits, а ближе к named requirements, которым тоже в стандарте плюсов сто лет в обед. Но тайпклассы и трейты доносят идею объединения структурных и функциональных требований до масс.

Это называется "design by contract". Формулировать свойства абстракции прямо рядом с абстракцией следует этой идее. Когда функция принимает тип "T: Eq", это означает, что её корректность опирается на то, что метод eq задаёт отношение эквивалентности. Но это не нужно прописывать явно, т. к. это уже описано в трейте.

Да, это можно делать с интерфейсами. Да, это можно делать добавлением ассоциированных контант/типов, чтобы структурно классы получались различными. Но это всё костыли. Я сравнивал конкретно концепты и трейты. Всё. Я вообще не нападал на плюсы, только твоё раздроченное тонкостями стандарта очко на месте усидеть не может.

Любую программу и на ассемблере написать можно написать. Наличие всех этих фич на тьюринг-полноту не влияет (может, наоборот, её забрать). Речь идёт про то, что язык ставит в приоритет.
Аноним 09/01/24 Втр 20:34:00 2995149 266
>>2995084
> ASIO
Так-то boost - это рак всех крестов, из-за него все считают что все крестовики ебанутые говноделы, пишущие антипаттерны. К счастью этот кал довольно нишевый уже, к свежим крупным проектам его стараются даже близко не подпускать.
>>2995087
> структурные свойства типа
Как ты вообще умудряешься приплетать структурные свойства, если то что я перечислил не является частью типа вообще ни в каком виде. По твоей шизоидной логике как раз трейты структурные свойства, раз они являются частью структуры объекта.
> type_traits нужны только для того, чтобы проверять, если у типа нужный конструктор/оператор и т.д.
Ясно, ты реально дегенерат. Я думал ты хотя бы документацию читал, а ты оказывается просто шизишь.
> design by contract
Ну это уже троллинг пошел, потому что у Раста из коробки в принципе нет инструментов для определения контракта. Трейт - это не контракт, потому что не гарантирует что этот трейт реально реализуется. "Компилятор опирается на трейт" - это design by trust me bro, а не by contract. Ты бы хоть ознакомился с тем про что пишешь. Именно из-за такой каши в башке и получаем забагованное говно в Расте, пиздос.
Аноним 09/01/24 Втр 20:55:39 2995169 267
>>2995149
>Так-то boost - это рак всех крестов, из-за него все считают что все крестовики ебанутые говноделы, пишущие антипаттерны. К счастью этот кал довольно нишевый уже, к свежим крупным проектам его стараются даже близко не подпускать.
Погляди вакухи плюсовые. Через одну BOOST BOST BOOTS BOST
Аноним 09/01/24 Втр 21:16:26 2995187 268
>>2995169
> вакухи
> BOOST BOST BOOTS BOST
Так хрюши копипастят одно и тоже из вакансии в вакансию, в них какой хуйни только не увидишь, на собесе никто и не вспомнит про boost.
Аноним 09/01/24 Втр 21:44:56 2995250 269
>>2995187
При чём тут собес? Если буст указан, скорее всего он юзается.

В жизни один раз видел только, когда проект сползал с буста. Но это был стильный молодёжный стартап железный
Аноним 09/01/24 Втр 21:46:35 2995257 270
>>2995149

Ты вообще нихуя не выкупаешь, я смотрю. То, какой у тебя получится тип после передачи в функцию –всё ещё очень синтаксическая вещь, никак не отражающая семантики типа. Всё, что ты назвал – синтаксические вещи.

> > type_traits нужны только для того, чтобы проверять, если у типа нужный конструктор/оператор и т.д.
> Ясно, ты реально дегенерат. Я думал ты хотя бы документацию читал, а ты оказывается просто шизишь.
Чел, я много лет на плюсах писал. Покажи мне хоть один пример не чисто синтаксической проверки. Ты просто не можешь, потому что это невыразимо в системе типов.

> > design by contract
> Ну это уже троллинг пошел, потому что у Раста из коробки в принципе нет инструментов для определения контракта.
Я говорю про принцип дизайна, а не про формальный инструмент. Плюсовый компилятор тоже никак не проверяет, что итератор, который заявляет, что он в категории random access, действительно таковым является.

Прежде чем утверждать, что то, о чём я говорю, это не design by contract, ты бы хоть погуглил, что это такое. Реально позоришься.

> это design by trust me bro, а не by contract
Конечно, компилятор не всегда и не всё может проверить и всегда есть некоторый trust surface. Именно, поэтому трейт Send unsafe. Только в плюсах unsafe –это весь код, а в rust'е несколько изолированных мест, к которым очень пристальное внимание. При желании, можно написать вменяемую программу без строчки unsafe кода.

И прежде чем строчить ответный высер, ответь уже наконец-то на вопрос, который я задаю третий раз. Как выразить, с помощью концепта/интерфейса/constexpr/whatever, что operator== задаёт отношение эквивалентности?
Аноним 09/01/24 Втр 22:14:15 2995311 271
>>2994981
>ЯП на JVM считается?
Нет, не считается, семантика ведь та же.

>Dart
Ага, гугол его уже закопал, но хомяки всё ещё доедают труп.
Kotlin, кстати, тоже стал популярен после обласкания гуглом.

И, вообще, давай сравнивать +- универсальные языки. Котлин ещё туда-сюда, а вот дарт, ну это как 1С.
Аноним 09/01/24 Втр 22:21:28 2995332 272
Screenshot from[...].webp 15Кб, 770x821
770x821
Аноним 09/01/24 Втр 22:25:59 2995347 273
>>2995257
> Я говорю про принцип дизайна
Что за хуиту ты порешь. При предоставлении контракта ты должен иметь возможность проверить его выполнение, это просто ключевой момент в design by contract. В Расте ты не можешь сделать это средствами языка, не написав ебучий тест. Посмотри хоть как в других языках это реализуется, клоун.
> Как выразить, с помощью концепта/интерфейса/constexpr/whatever, что operator== задаёт отношение эквивалентности?
Ты реально тупой, да? Я тебе могу в пятый раз объяснить, что в крестах свойства объекта и структура - разные вещи. operator <=> тоже может использоваться для определения эквивалентности вместо operator==. Наличие этого свойства определяется концептом, прямой проверкой что объект имеет это свойство, блять, а не наличием какого-то атрибута у типа, как в Расте. Ты лучше свой высер про design by contract объясни, как узнать что трейт Eq задаёт отношение эквивалентности, а не просто рандомный bool возвращает.
Аноним 09/01/24 Втр 22:49:01 2995383 274
>>2995311
> Нет, не считается, семантика ведь та же.
Не, у котлина она отличается от джавы, больше функциональщины. Там в свежих версия конвертация в джаву выдаёт совсем нечитабельные простыни, потому что джава просто не имеет альтернатив языковым конструкциям котлина. Ну и если уж быть точным, то Котлин может LLVM компилиться в нативный код.
> гугол его уже закопал
Зато китайцы подхватили. Тенцент на нём писал. Он как видишь даже Свифт обходит, хотя казалось бы кому вообще нужен этот Дарт, но его довольно активно развивают.
>>2995332
> вообще не уверен, неси другую стату, если найдёшь
Надо по хорошему стату по коммерческому использованию, а не просто какой-то опрос непонятно каких 90к человек. В вебе котлин точно обходит раст, у котлина какие-то огромные списки корпораций, использующих его для бэка.
Аноним 09/01/24 Втр 22:58:43 2995391 275
>>2995347

> При предоставлении контракта ты должен иметь возможность проверить его выполнение, это просто ключевой момент в design by contract.
Нет, нихуя. Design by contract – просто способ мышления при проектировании приложения. Всё.
> Ты лучше свой высер про design by contract объясни, как узнать что трейт Eq задаёт отношение эквивалентности, а не просто рандомный bool возвращает.
Я нигде не говорил, что в расте можно проверить (в смысле "доказать") это свойство средствами языка. Я ровно это и написал: "невыразимо в системе типов". Именно поэтому оно пишется рядом с трейтом в комментарии.

Если ты вообще посмотришь на мой изначальный комментарий, то увидишь, что речь шла ровно про разницу между концептом и трейтом. И я говорил про идейную разницу, а не только про физические возможности. А идея в том, что ты рядом с трейтом описываешь законы этого трейта, которые НЕ выразить в системе типов. Я для тебя, ебаната, ещё раз это повторяю.

Конечно, компилятор не может их проверить, в этом ровно блять и смысл, что не может. Идея в том, что разрабы раста поставили идею design by contract в приоритет и энфорсят её в дизайн-решениях. То, что трейт нужно реализовывать явно, помогает энфорсить эту идею. Всё. В этом весь сакральный смысл.

Если от невыполнения этого контракта, описанного комментарием, можно получить UB, то трейт помечают unsafe, чтобы переложить ответственность на реализующего этот трейт.

Если ты хочешь формально проверять эти свойства, то используй тулы для формальной верификации. Удачи это сделать на плюсах. Если хочешь неформально проверять, то используй рандомизированные тесты.

Ещё раз, для конченых. Идея трейтов ровно в том, чтобы обычные разрабы освоили идею design by contract. Чтобы язык был построен вокруг этой идеи. И чтобы это приводило к лучшему дизайну приложений.

Приводит ли это по факту– другой вопрос. Человек задал конкретный вопрос, я на него ответил. Прости, что я пощекатал твоё хрупкое эго, просто назвав разницу между механизмами двух языков. То, что тебя это так будоражит, говорит лишь о том, какой ты уебан
Аноним 09/01/24 Втр 23:11:47 2995410 276
>>2995391
> Design by contract – просто способ мышления при проектировании приложения.
Пиздос. Ну если ты придумал какое-то шизоидное определение этому, то держи, описание из первоисточника что это такое:
https://www.eiffel.com/values/design-by-contract/introduction/
А вот держи как design by contract выглядит в другом ЯП:
https://dlang.org/spec/contracts.html
Всю остальную шизу забери обратно.
Аноним 09/01/24 Втр 23:22:24 2995426 277
>>2995410
Ты ещё начни настаивать на конкретном определении слову "абстракция" или "полиморфизм".

Если контракт можно верифицировать, круто, только это очень сложно. И я писал на всяких коках, агдах, тла и прочем. Оригинальная идея, может, и была такая, но ничто не мешает её адаптировать для языков, в которых нет формальных инструментов для проверки этих контрактов. Называть её так же, не я придумал.

Я несколько раз чётко дал понять, что я имею в виду. Не нравится то же название, имей в голове: "design by contract 2TM" и запрись в своём крестовом царстве.
Аноним 09/01/24 Втр 23:33:42 2995437 278
>>2995426
> Ты ещё начни настаивать на конкретном определении слову "абстракция" или "полиморфизм".
Вот не надо передёргивать. У какого-нибудь TDD нет никаких других шизоидных определений.
> не я придумал
А кто? Ты хоть одно упоминание этого в доках раста покажи.
Я тебе могу даже показать костыльные реализации контрактов в расте, почему-то всем кроме тебя прекрасно понятно что это такое и как оно выглядит.
https://docs.rs/contracts/
> Я несколько раз чётко дал понять, что я имею в виду.
У тебя такая каша в башке, что ты даже сам не понимаешь что пишешь, чел. Ты ведь буквально пишешь "компилятор не может проверить" хотя design by contract сделан ровно для того чтобы проверять это. Ебучий цирк.
Аноним 09/01/24 Втр 23:59:01 2995463 279
>>2995437
> У какого-нибудь TDD нет никаких других шизоидных определений.
Шизоидное оно, только потому что тебе не понравилось.

> Ты хоть одно упоминание этого в доках раста покажи.
С чего это именно там должно быть? Я назвал конкретную идею и объяснил что имею в виду. Если тебе удобнее так считать, считай, что я так называю. Можешь меня в чём угодно обвинять. Но идея от этого не изменится.

> https://docs.rs/contracts/
Есть ещё миллион инструментов: https://rust-formal-methods.github.io/tools.html
Всё это достаточно ограниченые языки спецификации, которые только небольшое количество контрактов могут сформулировать. Я не могу представить, как в них сформулировать свойство "безопасно передавать через границу потока".

Это не каша. Я нигде по ходу не переобулся. Я вёл одну и ту же мысль до конца, начиная с первого сообщения.
Аноним 10/01/24 Срд 00:07:24 2995471 280
>>2995383
> В вебе котлин точно обходит раст
А что там у сей/плюсов по вебу? Если не считать готовые вебсерверы типа нжынкс, то как бы не меньше, чем у раста. В том и фишка, что раст, он и для фронта, и для бэка, и дла ядра линуха, и для всего остального. Он как питон, только здорового человека.
Аноним 10/01/24 Срд 00:10:32 2995474 281
>>2995471
> как питон, только здорового человека
Питонист скорее от рака умрёт, чем на раст пересядет, лол.
Аноним 10/01/24 Срд 00:16:13 2995481 282
>>2995474
Дак вот, я, например, пересел.

Меня воротило от сей/плюсов вот это самое - "накосячил позавчера, ебис с дебагером сегодня". Джава громоздко, питон медленно, но с numpy хоть как-то. Потом решил уползать с питона. Сперва попробовал julia, но её индексация с 1 и охуеть какая долгая компиляция тогда в 2019 меня шибко расстроили. Потом выдохнул и попробовал раст и зашло на ура. Внезапно, батареек оказалось достаточно уже тогда в 2019/2020
Аноним 10/01/24 Срд 00:56:26 2995506 283
>>2995474
Знакомые питонисты кипятком писают от раста. Выборка нерепрезентативная, но тем не менее..
Аноним 10/01/24 Срд 18:39:17 2996358 284
Аноним 10/01/24 Срд 19:51:54 2996581 285
Можно ли совместить достоинства языка D в раcте?
Аноним 10/01/24 Срд 19:56:01 2996591 286
>>2996581
Можно ли совместить достоинства пива в водке?
Аноним 10/01/24 Срд 19:58:05 2996597 287
Аноним 11/01/24 Чтв 02:04:50 2996979 288
image.png 61Кб, 1782x200
1782x200
Аноним 11/01/24 Чтв 19:05:24 2997994 289
>>2985261
Братишка, я нихуя не понял, но желаю тебе всяческих успехов.
Аноним 11/01/24 Чтв 19:08:08 2997997 290
>>2994630
>опенсорс-пердолики
плюс в чат если опенсорс-пердолик
Аноним 11/01/24 Чтв 20:57:57 2998182 291
>>2996581
Зачем, если можно сам D использовать? У него только две проблемы - он слишком непопулярный и хохлы. Это всё ещё лучше чем раст, даже с учётом второй проблемы D.
Аноним 11/01/24 Чтв 21:17:17 2998251 292
появилась странная идея для структур данных вместо типов использовать трейты.
например, не struct Tree, а trait Tree, т.е. данные отделяются от внешнего интерфейса, зачем это? чтобы одни и те же структуры данных можно было реализовать по-разному, что скажете норм идея?
Аноним 11/01/24 Чтв 21:35:10 2998292 293
>>2998251
Норм, только
1. Заебёшься ебаться с дженериками
2. Или будешь делать через Dyn, то тоже не айс
Аноним 11/01/24 Чтв 22:00:47 2998399 294
>>2998251
Просто пиши в процедурном стиле и всё, нахуй ебаться со всем этим.
Аноним 11/01/24 Чтв 22:51:02 2998460 295
>>2998182
Затем, что это мертвый язык, дебич. И не надо плодить 100500 языков, пусть будет один заебатый раст под системщину.
Аноним 11/01/24 Чтв 23:05:50 2998473 296
>>2998251
Сначала делаешь по тупому, а если поймешь, что есть какой-то постоянно повторяющийся код (больше чем три раза), можешь начать думать о каких-то абстракциях.

Иначе получается хуйня вне зависимости от языка.
Аноним 11/01/24 Чтв 23:24:18 2998495 297
>>2998473
по-тупому на самом деле зачастую проще, просто иногда хочется делать с заделом на будущее, если надо будет что-то добавить хотя ни разу до этого не доходило
>>2998292
>1.
да, когда-то помню делал какую-то ебаторию с трейтами с закосом под ёба универсальный интерфейс, потом выяснилось, что без hkt работать не будет.
>>2998399
хз. есть в этом некий шарм
Аноним 11/01/24 Чтв 23:32:08 2998502 298
>>2998495
> хочется делать с заделом на будущее, если надо будет что-то добавить
Ты либо пишешь по солиду расширяемое легаси, либо выкидываешь ООП и пишешь модифицируемый код.
Аноним 12/01/24 Птн 02:00:48 2998649 299
image.png 413Кб, 1080x778
1080x778
image.png 165Кб, 344x611
344x611
Вы бросайте свою херню, а то к Тохе попадете на встречу.
Аноним 12/01/24 Птн 04:04:47 2998677 300
>>2998649
Что блять? Какую соль натрия? NaCl?
Давай ссылки.
Аноним 12/01/24 Птн 04:09:23 2998678 301
>>2998677
>Какую соль натрия? NaCl?
Так просто соли(наркотики) назвали.

>Что блять?
Тоха передознулся и умер. R.I.P. легенда.
Аноним 12/01/24 Птн 04:13:36 2998679 302
>>2998678
Пиздец, курили бы траву лучше.
А где можно новости по Золотцу почитать?
Аноним 12/01/24 Птн 04:15:30 2998681 303
>>2998679
>А где можно новости по Золотцу почитать?
ТГ каналах нижнего интернета, в инсте со второго пика выше.
Плюс, попробуй в Б треды поискать.
Аноним 12/01/24 Птн 07:00:50 2998706 304
>>2998649
Теперь его отца пустят в космос на МКС?
Аноним 12/01/24 Птн 07:41:24 2998717 305
>>2998649
А причем тут раст пидораст? Тоха или золотце писали на расте?
Аноним 12/01/24 Птн 18:32:43 2999496 306
А в расте вообще хоть какое-то развитие идёт? За последние пару лет ничего кроме let else не припоминаю. Типа и так норм, можно на этом остановиться?
Аноним 12/01/24 Птн 18:39:53 2999512 307
>>2999496
> За последние пару лет
На самом деле с Edition 2021 никаких изменений нет в языке. Так-то даже в сишке больше изменений за последние годы произошло, чем у пидорастов. Мёртвый язык.
Аноним 12/01/24 Птн 18:49:28 2999524 308
Какая есть причина любить раст и ненавидить си-шное семейство языков?
Аноним 12/01/24 Птн 18:54:27 2999529 309
>>2999524
Непонятно. Ладно на западе их всяким лиспам со студенчества учат, а у нас в тех вузах до сих пор с++ билдер 6. Казалось бы проще забыть как тебя зовут, чем лабы на плюсах...
Аноним 12/01/24 Птн 19:02:51 2999535 310
>>2999529
> в тех вузах
Ты так говоришь, как будто питонисты, пересаживающиеся на раст, в вузе учились, лол. Там в большинстве случаев максимум курсы на фулстака для 300к/сек, после которых можно только хуи сосать за 500$. Они ахуев от такого пытаются уйти из веба и вкатываются в безопасный раст, люто ненавидя всё что заставляет их думать, ведь на питоне/жс им это не приходилось делать.
Аноним 12/01/24 Птн 20:40:33 2999675 311
>>2999524
В интернетах так написали, там пиздеть не будут
Аноним 12/01/24 Птн 22:34:38 2999826 312
>>2999512
Сишечка дёргается в агонии, это не развитие.
Аноним 12/01/24 Птн 22:58:05 2999847 313
>>2999826
>Устоявшаяся сфера использования и от этого устоявшиеся требования к языку
>Агония

Нужны финтифлюшки для всего на свете, с постоянным добавлением новых фич? Уже есть, называется С++
Аноним 12/01/24 Птн 23:33:40 2999887 314
>>2999826
У сишки теперь будут релизы каждые 3 года как у крестов, чел. Огромный список изменений есть в C23, теперь будут тащить фичи из крестов, которые оттестированы десятилетиями и не требуют ООП.
Аноним 13/01/24 Суб 00:13:07 2999949 315
Аноним 13/01/24 Суб 13:41:04 3000402 316
>>2998460
>один заебатый раст
Но ведь язык говно по сути.
Аноним 13/01/24 Суб 14:25:23 3000427 317
>>2999887
>теперь будут тащить фичи из крестов, которые оттестированы десятилетиями и не требуют ООП
Дак, это, зачем оно, если сразу на крестах можно писать без ООП?
Типа, "вот вам язык, а вот такой же, но кастрированный".
Ща мы методом обрезки фич тоже сварганим пару десятков языков из раста, сишники, сосать.
Аноним 13/01/24 Суб 14:30:11 3000428 318
>>3000402
Есть куча многообещающих языков, возможно даже чем-то прогрессивнее раста, но без коммьюнити, без доки, без батареек и без тулинга. У раста это всё есть, поэтому пока без особых альтернатив.
Аноним 13/01/24 Суб 16:53:55 3000615 319
>>3000427
ABI. Из-за этих трёх букв всё дерьмо и происходит.
Аноним 13/01/24 Суб 17:04:34 3000639 320
1684878405810.png 179Кб, 2211x593
2211x593
>>3000428
> У раста это всё есть
Хотелось бы узнать в каком месте. Я помню на кресты пиздели за то что в темплейтах куча скобочек, какие-то непонятные выражения там и прочее, пиздели на то что вместо названия типа вермишель на пол страницы и название переменной утопает в этой лапше. Кресты с этим боролись ещё со времён C++14, в итоге пришли к дедукции типов и auto, когда можно делать дженерики без использования синтаксиса дженериков и тип вообще не писать. А что имеем в расте? Вот что на пикрилейтеде такое? И ведь в реальном коде постоянно видишь как 2-3 строчки занимает сигнатура метода со всеми этими потрохами. Как по мне, раст уже даже обгоняет кресты по количеству ебанутого мусора в синтаксисе и размеру кода. Безопасность это хорошо, но код раста читать банально неприятно.
Аноним 13/01/24 Суб 17:05:59 3000641 321
>>3000615
>ABI.
Который завязан на платформу. И ты либо работаешь на любом говне, но не имеешь стандартного Аби, или имеешь, но работаешь на ограниченном выборе платформ (или на виртуальной машине, у которой под капотом очередной нестандартный Аби).
мимо
Аноним 13/01/24 Суб 17:38:14 3000716 322
>>3000641
Спроси у пердоликов зачем это, на винде оно точно не нужно, значит красноглазики или красноглазые корпорации зачем-то тянут всё. Майки вот пытаются заставить комитет отказаться от старого ABI, но они проебали голосование прошлый раз, в этом году тоже. С++26 всё ещё без официальных изменений в ABI. При этом почему-то никого не смущает, что компиляторы с С+17 уже вынужденно сломали его, потому что комитет не пишет компиляторы и не думает о том как их стандарты реализовывать будут.
Аноним 13/01/24 Суб 18:14:31 3000819 323
>>3000639
Ты пиздишь на синтаксисис, ни разу не возражая тому, что я перечислил. Да, если проблемка, может однажды сделают тоже что-то типа auto и автовыведения дженериков. Код, который ты привёл, в реальности крайне редок.
Аноним 13/01/24 Суб 18:22:35 3000836 324
>>3000639
мимо c++ тупняк от зануд которые байты считали, давно уже не нужен байто-дроч, кэш проца больше чем экономия от выравнивания байтов, и асм который произошёл от экономии бит, уже давно устарел.
Раст вообще недоразумение, как будто его придумали чтобы вообще испортить здравый смысл в программировании.
Всё уже придумано давным давно, Java лучший язык- можно его компилировать хоть в бинари хоть в vm байткод любой, зачем ещё выдумывать тупейшие вещи, которые давно в java решены?
Аноним 13/01/24 Суб 18:37:39 3000878 325
>>3000836
Подскажешь инструмент для джавы который поможет не блевать когда приходится прикосаться к этому мерзотнейшему античеловечному поделию из прошлой эры?
Аноним 13/01/24 Суб 19:23:23 3000971 326
>>3000878
Скала или хотя бы Котлин.
Аноним 13/01/24 Суб 19:59:42 3001039 327
>>3000971
>Скала или хотя бы Котлин.
В обоих недорешена проблема null, оба тормозят.
Котлин-нейтив выдаёт тормозной код по скорости не обгоняющий джаву, это костыльное решение для разработки под гейось.
Тулинг у обоих всясывает расту. Дети, давайте проблеем дружно ме-ее-еэээйвен, бля.
Аноним 13/01/24 Суб 20:31:04 3001111 328
>>2973060
У раста хорошая документация, пока вкатываешься, попутно узнаешь много нового о низкоуровневых вещах, не вижу минусов.
Аноним 13/01/24 Суб 20:33:53 3001115 329
Аноним 13/01/24 Суб 20:40:43 3001126 330
>>2973807
Си + Раст, не вижу минусов (и плюсов)
Аноним 13/01/24 Суб 20:42:36 3001129 331
>>2998251
Как же они переусложнили с типами, надо признать. А эти красивые вложенные дженерики ммм красота
Аноним 13/01/24 Суб 20:46:02 3001133 332
>>3000971
выкинь на помойку Scala и Кotlin, это смехотворные и ненужные компромиссы, от людей которые ни одного софта нормального полностью целиком не написали за всю жизнь. Только java лучший, объяснять почему займёт не один том рассуждений, любой умный прогер это знает.
Просто умных кодеров не существует, те кто умные- идут в начальники или бизнесмены. Код пишут тупые, такова селяви по фактам.
Аноним 13/01/24 Суб 20:51:36 3001140 333
>>3001039
нет, ты дурак, я ни одного русского человека не знаю, который так бы тупо и не по делу написал. Даже васян который мне сантехнику делал, умнее в сто раз написал бы, даже не зная предмета обсуждения.
просто те, кто наводнили борду чат- ботами, конченные деграданты, идиоты, пидоры, нелюди одним словом.
Ваши нейросети- обучены на генетических отбросах, а обучали и корректировали нейросети- такие же унтерменши, за мелко- баксовый прайс. Почему вас не банят, непонятно.
Аноним 13/01/24 Суб 21:36:59 3001215 334
1668384649309.png 31Кб, 402x158
402x158
Есть по вашему расту какие-то замеры перфоманса у разных фич? Типа стек против кучи/динамическая диспетчеризация против статической/копирование против перемещения. Понятно что оно быстрее, но это какое-то абстрактное "быстрее" меня не сильно устраивает, там может разница в два раза, а может в пару процентов и нахуй в реальном коде не нужно.
Аноним 13/01/24 Суб 22:54:37 3001304 335
1636441716837.png 203Кб, 1269x1110
1269x1110
>>3000819
> Код, который ты привёл, в реальности крайне редок.
Потому что в реальности ещё хуже? У пидорастов какое-то странное понимание краткости кода. Краткость должна быть в минимальном повторении конструкций языка, а не письмена душевнобольного на клочке бумаги.
Аноним 14/01/24 Вск 10:48:13 3001949 336
>>3001140
Найс подорвался. Вся jvm ссанина вынуждена поддерживать джавовый null, живи с этим. И тулинг у вас уёбищный, хотя и получше чем у крестов.

>>3001304
Этот юнит-тест не для тебя написан, мань, а для автора.
Аноним 14/01/24 Вск 11:28:55 3001977 337
>>2999529
>>2999675
>>2999887
>>3000402
Как же забавно, что в треде раста постоянно тусуются сишники и плюсеры, и высерают тонны желчи. Интересно, почему от ржавчины столько батхерта и хейтеры готовы инвестировать свое свободное время в срачи на форумах.
Найдите уже себе работу, выйдите на улицу траву потрогайте.
Аноним 14/01/24 Вск 12:19:20 3002045 338
>>3001949
> не для тебя написан
А для кого? Это пример их доков как этим калом пользоваться.
Аноним 14/01/24 Вск 12:28:08 3002058 339
>>3001977
> почему
Потому что кресты кал и пишущие на нём хотят перекатиться в ЯП получше. Но получают ещё более жидкую и вонючую кучу дерьма, вместо ожидаемых исправлений проблем, с которыми крестовики уже живут второе десятилетие. А местами даже наоборот деградацию, поэтому с удивлением высераются тут, как можно было сделать плохо то что уже сделано нормально задолго до раста. Естественно видя такое хочется плюнуть в лицо тем кто этот кал делал и поддерживает всё это.
Аноним 14/01/24 Вск 12:48:14 3002093 340
>>3002058
Да и хуй с вами. Я в кресты даже вкатиться не мог, а вот в раст запросто. Вы просто передохнете, а новое поколение будет писать на расте, не подозревая, какие там охуенные плюсы были в древности (а пашкаль-то какой был, мм). Кстати, с полгода назад понадобилось разобрать ресурсы одной старенькой игры, дак мне на форуме какой-то олд скинул код на паскале. А я сконвертил его в раст через GPT. Вот ты этому олду не пояснишь, как он неправ, что пишет не на плюсах.

Впрочем, если сделают корпы начнут форсить язык с достоинствами раста и без его недостатков, я первый на него перекачусь. это я тут форсил lobster в прошлом треде
Аноним 14/01/24 Вск 12:56:30 3002101 341
>>3002045
>как этим калом пользоваться
Никак не пользуйся. Это сторонний трейт, там у него макрос, внутри которого он сочинил свой синтаксис. (если ты про эти вот _1). Чувак, видимо, беженец с хачкеля, тоскует по родине вот таким вот образом.
Аноним 14/01/24 Вск 13:00:47 3002106 342
>>3002093
> Вы просто передохнете, а новое поколение будет писать на расте
Для начала надо всё легаси переписать, что никогда не случится. Раст прижился только там где кресты и так только извращенцы использовали. Я почему-то не наблюдаю чтоб те же Майки стали что-то на расте делать, хотя от них есть официальное API под раст для всего в винде, даже для WDK. Я подозреваю что корпорации, так же как и ноющие в треде, сталкиваются с теми же проблемами - невозможность поддерживать старый код на расте. В итоге где-то мелкие куски на расте с сишки переписывают, а чтоб прям огромный проект целиком на нём - это уже нет.
Аноним 14/01/24 Вск 13:07:30 3002117 343
Кто то с питона в раст перекатывался?

Мнение?
Аноним 14/01/24 Вск 14:11:38 3002179 344
>>3002106
>невозможность поддерживать старый код на расте
Ну, во-первых, он от нового почти не отличается.
А во-вторых, благодаря более продвинутой системе типов, в старом коде на расте проще разобраться с тем, что имелось в виду его автором - это не эти ваши сиси, где можно хуй прибавить к пальцу и помножить на залупу.

Да и, ну это же просто бред: возьми любой заброшенный проект на расте 5+ летней давности и такой же на плюсах - и проверь, что у тебя получится собрать прямо сейчас. Сдаётся мне, шансы собрать на расте будут раза так в 2 повыше.
Аноним 14/01/24 Вск 14:14:33 3002183 345
>>3002117
Вкатывался в раст с сишки
Петухонщики не программисты, они не осилят
Аноним 14/01/24 Вск 14:20:35 3002190 346
>>3002117
Заебок. Если проект больше 1000 строк, то дописывать и поддерживать на расте будет куда проще. У раста лучше обстоят дела с зависимостями - всё прописывается вместе с версиями, просто клонируешь, cargo build и всё делается само. Как язык он выразительнее, сравни
if x := call_to_func()...
или
if let Some(x) = call_to_func()...

первое - костыль, который работает только с None, второе - общий подход, который работает с любым enum.

Из минусов:
1. Конпеляция. После скриптового языка будет непривычно сперва подождать.
2. Нужно больше места на диске.
Аноним 14/01/24 Вск 15:59:33 3002272 347
>>3002179
> продвинутой системе типов, в старом коде на расте проще разобраться с тем, что имелось в виду его автором
Так-то абстракции предполагают что тебя не должно ебать как оно работает, просто достаточно знать что делает API. Вот в питоне только совсем недавно начали делать аннотации типов, а до этого и без этого жили - функции хуй пойми какие структуры данных принимали и всем почему-то было понятно что туда засунуть. Типы нужны компилятору, а кодер и так будет послан компилятором в случае чего.
> 5+ летней давности
Даже код до 2021 эдишен не собирается уже, лол. Какие 5 лет. Я не уверен как предполагается с легаси работать в расте, но скорее всего либу собирать со старым эдишеном, а потом линковать к своему проекту. Скопипастить код из пятилетнего проекта раста не получится так просто, если ты используешь актуальный эдишен.
> на плюсах - и проверь
Регулярно так делаю. Проблемы могут возникнуть только с устаревшими скриптами сборки. Если там header-only либа или нет зависимостей, то вообще похуй, хоть C++11 там, хоть сишка - всё соберётся. С большими проектами может придётся из-за зависимостей поебаться, в которых тоже обоссаные системы сборки.
Аноним 14/01/24 Вск 16:54:50 3002322 348
>>3002272
>Вот в питоне
>Типы нужны компилятору
Ебать, ты, не в теме. В питоне интерпретатору до сих пор глубоко класть на типы, он их не замечает. Они именно что для программиста, что если у тебя ф-ция принимает str, а ты послал туда int, то тебе ide подсветит косяк.
В расте то же самое, только глубже: ты можешь создавать, например, типы Speed(f32) и Distance(f32), которые на машинном уровне будут тем же f32, но которые нельзя будет, скажем, складывать между собой, зато можно будет делить Distance на Speed и получить какой-нибудь Duration. Твоя сосишечка так может?

>Даже код до 2021 эдишен не собирается уже, лол
Если ты версии зависимостей не фиксируешь, то это твои проблемы. Да, знаю, ещё была одна фича, которую убрали из языка как небезопасную, но это такие мелочи по сравнению с плюсопиздецом, что не стоит упоминания.

>Проблемы могут возникнуть только с устаревшими скриптами сборки
Которые могут ещё и не только устареть, но и быть написаны так, что собираются только на компе у автора, ага. А ещё там отдельный язык, поэтому чтобы оно работало, надо держать в штате отдельного чела, который будет заниматься только сценариями сборки. А ещё зачастую нужна какая-нибудь либа, именно системная, но у тебя она шибко новая, поэтому иди на хуй, а добавить её гит-сабмодулем автор поленился.
Аноним 14/01/24 Вск 17:10:21 3002338 349
С выхода rust 1.0 прошло почти 10 лет. Почему до сих пор с этим языком так мало вакансий? Почему работодатели предпочитают убогий go вместо раста? Или 10 лет мало? Надо ещё подождать столько же?
Аноним 14/01/24 Вск 17:12:43 3002340 350
>>3002338
Да вроде в последнее время появляются, даже не блокчейн.
Аноним 14/01/24 Вск 17:31:56 3002364 351
>>3002338
>Почему работодатели предпочитают убогий go вместо раста?

Есть такое мнение по поводу больших корпораций https://www.linux.org.ru/forum/development/17376931

Но почему мелкий бизнес обезьянничает? Ему-то какая выгода?
14/01/24 Вск 17:38:50 3002370 352
>>3002338
>Почему работодатели предпочитают
ПОЙДИ У НИХ СПРОСИ
Малое количество вакансий - это не проблема самого языка.
Язык может быть каким угодно замечательным-презамечательным
Причины могут быть разными:
1) Программист посоветовал другое решение
2) Не рискуют пробовать новое
3) Привыкли к другому стеку
4) Думают, что rust подходит только для блокчейна
5) Не слышали о таком языке
6) Бояться что не найдут исполнителя
Ну и так далее.
Аноним 14/01/24 Вск 17:42:19 3002376 353
>>3002340
Появляются, но слишком мало. Я понимаю, что для джавы/сишарпа вакансий больше, так как нужно поддерживать тонны легаси. Только зачем для новых проектов больше берут го вместо более продвинутого раста? Вот загадка.
Аноним 14/01/24 Вск 17:49:02 3002402 354
>>3002370
>1) Программист посоветовал другое решение
Некомпетентный программист.

>2) Не рискуют пробовать новое
Так go тоже не такой уж и старый, на нём ещё не скопилось так много легаси, чтобы его нужно было терпеть.

>3) Привыкли к другому стеку
К любому новому языку нужно привыкать.

>4) Думают, что rust подходит только для блокчейна
5) Не слышали о таком языке
см. п.1

>6) Бояться что не найдут исполнителя
А убытков от убогих язычков типа go не боятся?
Аноним 14/01/24 Вск 18:07:54 3002425 355
>>3002364
Какая альтернатива, маня?
Аноним 14/01/24 Вск 18:30:27 3002476 356
>>3002322
> В питоне интерпретатору до сих пор глубоко класть на типы
Чел, в питоне сильная типизация. Всё ровно наоборот. Со стороны кодера нет типов, полная динамика, но в самом JIT-компиляторе сильная типизация как в Расте. Ты в питоне не можешь кастануть какой-то тип как в сишке во что угодно и компилятор его сожрёт. У питона в большинстве случаев под типом есть некий нативный код, который намертво прибит гвоздями и не предусматривает свободную конвертацию во что угодно. Я, как написавший тонну кода на пайторче и куче либ для вычислений, сразу тебе говорю - если в либе не написан нативный код для каста в другой тип, питон просто кинет тебе эксепшен и пошлёт нахуй, опрокинув интерпретатор. Как я тебе и писал до этого - все как-то жили и живут, когда в коде нихуя не подписано, а какой тип нужен можно узнать только из документации или получив эксепшен.
У жс-пидоров немного другая ситуация с динамикой, у них там язык для конченых дегенератов и он действительно будет пытаться хоть как-то работать даже если ему хуиту подсовывают.
> мелочи по сравнению с плюсопиздецом
Ты так и не рассказал что это за пиздец. Я в отличии от тебя на практике знаю, что современный компилятор просто берёт и компилирует десятилетний код. Я тебе уже написал - возможная ебля не в языке, а в конченых системах сборки. Если ты можешь выкинуть выкинуть систему сборки либы и просто скопипастить файлы - всё скомпилируется.
> А ещё там отдельный язык
Это как раз вопрос к пердолям с кроссплатформенностью головного мозга. На той же винде никаких скриптов сборки нет. А проект от старой студии в большинстве случаев соберётся на новой после нажатия кнопочки "ретаргет солюшена", без каких-то дополнительных вмешательств.
Аноним 14/01/24 Вск 18:38:15 3002485 357
Ытфлу Ыефегы.mp4 18670Кб, 1280x720, 00:01:06
1280x720
>>3002190
Спасибо за развернутый ответ.
Сам работаю на питоне, но думаю надо паралельно изучить еще какой нибудь язык. Думаю между го и растом.
Шоб було так скозать.
Аноним 14/01/24 Вск 18:55:56 3002512 358
>>3002376
Да нет никакой загадки. На самом деле всё литералли как тут в треде пишут - и про синтаксис, и про обратную совместимость, и про либы, и про доработку языка. При старте проекта прекрасно понимают что его будут писать куча людей, возможно будет ебейшая текучка, возможно надо будет макак нанимать. И поэтому важно чтоб макаки могли быстро разобраться и продолжить писать в таком же стиле - в стиле, про который даже студент омского ВУЗа знает. И тут не важно что ты такой молодец, выучил раст и готов РАБотать. Джава вечная, на джаве есть фреймворки, с джавой есть уверенность в завтрашнем дне до дна ещё далеко. А что раст может предложить бизнесу, кроме соевых идей про безопасность? На первом же обсуждении его вычеркнут нахуй из-за слишком больших рисков. Он сейчас и пролезает только в соевом молодёжном коллективе, который может выбрать ЯП какой нравится, а не какой реально эффективно решит задачу бизнеса.
У нас на соседнем проекте сидят шарписты, пишут такой кал, что их каждый день хуями обкладывают и они не успевают лицо от харчи вытирать. Но ничего, их сервисы пердя-кряхтя работают, полного останова или критического говна ни разу не было. Всех оно относительно устраивает. Нужна ли кому-то там безопасность и скорость раста? Нет.
Аноним 14/01/24 Вск 19:20:28 3002545 359
Как же тяжело быть программистом...
После 2-3 месяцев на расте, захотелось на питоне попробовать...
Аноним 14/01/24 Вск 19:29:56 3002554 360
>>3002512
>Нужна ли кому-то там безопасность и скорость раста? Нет.

Пришёл к тому, что в конечном счёте у нас есть cpu bound задачи и сетевые, дроч с перфомансом имеет смысл только если что-то считаешь на проце, а задачи принеси подай легко решаются асинхронкой + легчайшим параллелизмом тредпула.
В принципе с этой херней и питон может справится...
Дроч на перфоманс это какой-то инженерно-кодерский фетиш.
Аноним 14/01/24 Вск 19:38:12 3002564 361
Screenshot from[...].webp 9Кб, 934x168
934x168
>>3002476
> в питоне сильная типизация
Она там отдельно от аннотации типов, или что ты имел в виду, когда писал
>Типы нужны компилятору
в пизду такую аннотацию, как по мне.

https://programiz.pro/ide/python/L8O6LVX5V6

>современный компилятор просто берёт и компилирует десятилетний код.
ага, ага. Да похрену, изначально речь шла о поддержке, и я таки настаиваю, что плюсоговно поддерживать тяжелее, так как
1. обилие фич и обратная совместимость позволяют наворотить жуткого дерьмища, где не разобраться даже в теории.
2. зависимость от системных либ, без внятного версионирования. На самом деле что-то есть, знаю, но все стараются указать >=, наивно надеясь, что года через 3 оно не сломается. А вот хуй.

>вопрос к пердолям с кроссплатформенностью головного мозга
Ой, прикинь, а на расте вообще без проблем на любой системе, а через cargo apk, даже под ведроид можно.

>студии
Так ты и сиди там, в своём m$ мирке, что ты к нам лезешь-то ? Девелопь дальше бэк под некрософт тырпрайз хуитанейм и прочую лабуду. Или что, тырпрайз шарписты зажимают? Дак, сбегай и им расскажи, какое их .нет говно.
Аноним 14/01/24 Вск 20:36:31 3002645 362
>>3002564
> позволяют наворотить жуткого дерьмища, где не разобраться даже в теории
А раст как будто не позволяет писать такое, вон даже выше либы кидают для написания такого дерьма.
> зависимость от системных либ
У тебя в расте точно так же при написании системщины зависимость от libc/winapi/winrt и их версий, лол. Я уж не стану говорить про то что на Винде с крестами это не проблема, а то опять бахнешь.
> а на расте вообще без проблем на любой системе, а через cargo apk
Чуть выше уже был пример, что твой каргобилд может молча собрать нерабочий бинарник и разбирайся сам почему.
> в своём m$ мирке
Как там раст работает без MSVC-тулчейна на винде, лол? Или это другое, а поддержка ОС кроме прыщей не нужна?
Аноним 14/01/24 Вск 21:39:58 3002741 363
>>3002645
>поддержка ОС
Ключевое слово. Прыщи, это ОС для работы и разработки софта, винда, это запускалка софта.

>зависимость от
Скажем, на расте есть egui и Qt, а у вас только Qt, который системный, хаха. Плюс сишники любят брать системные либы для всяких мелочей, типа, вот, нам нужна либа для хитровыебанной трансформации звука, утонови, слыш. И похуй, что система загажена этой либой ради одной этой софтины.

>для написания такого дерьма
Там всегда можно раскрутить макрос и заглянуть в логику. А понять, что имел в виду сишник в своей функции, принимающей указатель на void, можно примерно с тем же успехом, что ковыряя ассемблерные коды.
Аноним 14/01/24 Вск 23:17:28 3002916 364
>>3002741
> egui
Который клон крестового imgui? Ты траллишь? При том что твой egui тянет зависимостей гору и весит пиздец, в отличии от оригинального imgui, не имеющего зависимостей вообще. Заебись пример ты привёл.
> сишник
Давай сразу на ассемблер перескочим, а то уже с крестами не получается сравнивать раст. В крестах нельзя так просто кастовать к воиду, лол.
Аноним 15/01/24 Пнд 03:07:45 3003111 365
>>3002512
Джавараст, что ты тут сидишь и ноешь? Ты себе пытаешься что-то доказывать аутотренингом или что? Съеби в другой тред, раст никому не нужен, он никак не развивается, на этой или на следующей неделе точно загнется, ты победил.
Аноним 15/01/24 Пнд 03:16:44 3003112 366
>>3002741
>>3002564
Читаю вас и думаю, а как реверс инженеры такой код реверсят, если даже в оригинальных исходниках не разберешься что к чему?
Аноним 15/01/24 Пнд 10:25:14 3003196 367
>>3002916
>клон крестового imgui
которым за пределами игровой индустрии никто не пользуется, почему-то.

Вообще, смотри, если вкратце.
Раст это те же плюсы, но:
- с нормальным тулингом в виде cargo + rustup, которых хватает для всего
- с нормальным менеджментом зависимостей
- с чуть более выразительной семантикой
- с более продвинутыми макросами
вышеперечисленного мне уже хватило бы, чтобы предпочесть его плюсам, но он же ещё и
- безопасный
за что на него обращают внимание корпорации, иначе бы он им не сдался и был бы просто ещё одним маленьким языком для фанатов прогрессивных веяний.

рад за вас, что вам нельзя кастовать войд во что угодно в этих ваших плюсах. Вот ещё многое другое было бы нельзя, было бы совсем заебок. Ряяя, не трожь, я знаю что делаю примерно так отреагирует сишник на попытку отобрать у него свободу обращения с войдом
Аноним 15/01/24 Пнд 10:29:04 3003199 368
>>3003112
>как реверс инженеры такой код реверсят
На уровне машинного там нет никакой разницы. Конпелятор тебе из идеального, понятного даже твоей информатичке, кода выплюнет ту самую кашу, в попытке абстрагироваться от которой и придумали высокоуровневые языки.
Аноним 15/01/24 Пнд 10:31:49 3003202 369
91a.jpg 120Кб, 584x536
584x536
Аноним 15/01/24 Пнд 10:59:17 3003217 370
>>3003202
Это из мира unsafe. Например, если тебе надо работать с сишной либой, то для раста там всё будет заведомо void, который надо небезопасно кастануть.
Аноним 15/01/24 Пнд 12:00:14 3003278 371
>>3003217
Небезопасно не значит что опасно.
Аноним 15/01/24 Пнд 12:03:57 3003283 372
>>3003278
Если у тебя, скажем, указатель на структуру из сишной либы, куда автор добавил новые поля, а твой код об этом не в курсе, то будет ошибка доступа к памяти. Поэтому, таки, опасно.
Аноним 15/01/24 Пнд 12:10:26 3003293 373
>>3003199
Речь про декомпиляторы.
Аноним 15/01/24 Пнд 13:08:11 3003414 374
>>3003293
Ну, ёпрст. Ты точно погроммист? Деконпеляторы деконпелируют ту самую кашу, выглядит одинаково.
Аноним 15/01/24 Пнд 13:16:50 3003427 375
>>3003278
Безопасен снаружи, опасен внутри.txt
Аноним 15/01/24 Пнд 13:20:42 3003431 376
>>3002741
>А понять, что имел в виду сишник в своей функции, принимающей указатель на void
Проблема си не в этом, а в том, что сам язык зело сложный.
Аноним 15/01/24 Пнд 13:33:23 3003449 377
>>3003431
Он прост, как 5 копеек. Сложности возникают из-за необходимости разбираться в ABI, версиях libc, флагах сборки, сборочных системах и прочей параше, которая в расте от тебя скрыта по большей части.
Аноним 15/01/24 Пнд 13:45:20 3003466 378
>>3003449
>Он прост, как 5 копеек.
Такой охуенно простой язык с хуилионом подводных камней, обходить которые помогают лишь набитые десятилетием шишки.
>разбираться в ABI, версиях libc
В чём тут проблема?
>флагах сборки, сборочных системах и прочей параше
То есть знание, как сделать из си нужный тебе диалект != знание языка?
Аноним 15/01/24 Пнд 19:31:17 3003894 379
а есть тут такие, кто активно пишет на раст, но может высказать критику, обрисовать минусы языка, с которыми уже смирился или забил? интересно сравнить со своими впечатлениями о языке.
Аноним 15/01/24 Пнд 19:54:59 3003919 380
>>3003449
> необходимости разбираться в ABI
Это откуда такая необходимость появляется, шиз?
> флагах сборки, сборочных системах
В 2024 году с cmake тебе даже в конфиг заглядывать не придётся, чтоб написать и собрать сишный/крестовой код. В VS Code даже гуй есть для менеджмента проектом. На флаги совершенно поебать, cmake за тебя всё сделает.
> в расте от тебя скрыта
Это в том расте, где для минимальной кастомизации сборки надо писать build-скрипты на этом самом расте? Где аргументы компилятору надо передавать через println?
Аноним 15/01/24 Пнд 20:02:38 3003940 381
Аноним 15/01/24 Пнд 20:27:08 3003959 382
>>3003894
Язык норм
Жаль, что мертворожденный
Аноним 16/01/24 Втр 09:13:38 3004513 383
>>3003940
>пишу эмуляторы
эмуляторы чего?
Аноним 16/01/24 Втр 09:51:46 3004542 384
>>3003919
>где для минимальной кастомизации сборки
Для минимальной кастомизации у тебя есть features. build.rs нужен для всяких хитрых штук, вроде кодогенерации или переконпеляции сторонней либы на другом языке. Это не минимальная, а максимальная кастомизация, которая делается на том же самом расте, а не на хитровыебанном cmake или иной залупе.

>>3003959
Даже если бы и так, не труп крестов же колупать. В расте у тебя продвинутая семантика и одалживания, что-то похожее сейчас есть в любом новом системном языке без сборки мусора. Если какой-то из них выстрелит, переползать с раста будет легче.
Аноним 16/01/24 Втр 10:08:48 3004560 385
>>3004542
У опытных программистов пямять не течет, поэтому всякие системные штуки до сих пор пишут на си. Не потому, что деды пердуны не шарят за мемчики в тиктоке, а потому, что в программе на си ты берешь дамп памяти и можешь понять, где у тебя что лежит. В том же расте хуй проссышь, что оно там набесоебило с замыканиями и прочим говном.
Аноним 16/01/24 Втр 10:13:31 3004565 386
Аноним 16/01/24 Втр 11:15:21 3004646 387
>>3004560
>У опытных программистов пямять не течет
опытных программистов не хватает на всю индустрию. А растишка с годом опыта перформит не хуже опытного сишника и тоже ничего не течёт.
Аноним 16/01/24 Втр 11:45:23 3004698 388
>>3004646
Вот только в вакансиях на раст опыт от пяти лет.
Аноним 16/01/24 Втр 14:32:18 3004897 389
Аноним 16/01/24 Втр 23:00:28 3005689 390
Screenshot from[...].webp 24Кб, 1039x308
1039x308
Аноны, я нашёл проект, который не собирается

https://github.com/kevincox/rustymedia
какая-то хуйня с форматом сокета

Фиксится в 2 шага:
rustup install 1.57.0
А потом просто при сборке указываем версию тулчейна.
cargo +1.57.0

Что характерно, ошибка в пикрил вызове, так что, косвенно это нам сишники говна в штаны наложили.
Аноним 16/01/24 Втр 23:01:29 3005691 391
>>3005689
>не собирается
Точнее, собирается, а потом не работает.
Аноним 16/01/24 Втр 23:17:52 3005716 392
>>3005689
И ты хочешь сказать, что это ебаное месиво из символов лучше кода на чистом си? Нахуя там map с пустой лямбдой, чтобы что? Посмотри, как выглядит открытие сокета на си и сравни с этой шизофазией.
Аноним 16/01/24 Втр 23:38:47 3005758 393
>>3005716
>map с пустой лямбдой
Чтобы в одну строку избавиться от значения результата.
Как видишь, сишная функция возвращает c_int, который нам не пригодится, поэтому для успешного результата мы вернём Ok(()) вместо Ok(c_int), а в случае ошибки она уйдёт без изменений.

Можно было сделать в 2 строки:

let _ = bind(blah_blah)?;
Ok(())
Аноним 17/01/24 Срд 10:27:47 3006300 394
>>3005758
Сишная функция возвращает код ошибки, который надо проверять.
Аноним 17/01/24 Срд 10:47:05 3006325 395
>>3006300
Дак, в биндинге она и проверяется (Result откуда взялся, по-твоему), но на всякий случай пробрасывается наверх. Я хз, зачем это сделано, может для работы на каких-то экзотических системах, где есть шанс получить ошибку с неизвестным кодом и тогда перенести его обработку выше.
Аноним 17/01/24 Срд 11:11:13 3006357 396
Screenshot from[...].webp 7Кб, 603x201
603x201
>>3006325
Немного не то гоню. Проверяется она вызовом cvt, но суть особо не меняется - он проверяет ошибку и возвращает значение, а на месте ты решаешь, нужно ли оно тебе.
никогда не копал так глубоко, на расте оно почти не нужно, кроме как для споров с сишниками на двачах
Аноним 17/01/24 Срд 11:17:51 3006360 397
>>3006357
>кроме как для споров с сишниками

С продвинутыми сишниками спорить не нужно. Им нужно внимательно внимать (слушать что они толкуют).
Аноним 17/01/24 Срд 12:25:08 3006495 398
>>3005758
Я так и не понял почему бы просто не прокидывать наверх вопросом? Или опять чудеса сильной типизации, когда Ок не равно Ок?
Если значение в Ок не используется, то это компилятор обычно оптимизирует нахуй.
Аноним 17/01/24 Срд 12:31:45 3006509 399
>>3006357
Ты уверен, что он проверяет ошибку и падает, а не просто возвращает Err? Тут же нет эксепшенов.
Аноним 17/01/24 Срд 12:52:52 3006555 400
>>3006495
Ну вот не нужен наверху результат сишного вызова, поэтому с вопросом будет 2 строки, без можно в одну. Это вкусовщина.

>>3006509
Изначально там проброс идёт на самый верх и unwrap'ится уже в коде непосредственно сервера. Чтобы понять, на каком этапе ошибка, я размотал все вызовы и проставил unwrap вместо ?.
Собсно, до конца не вполне понятно, в чём именно ошибка, надо разбирать структуру по байтам, а мне лень. Там идёт создание структуры сишного сокета из строки вида "ip:port", потом это всё скармливается сишному bind из libc. В 1.57 тулчейне работает, в новом не работает. Вполне возможно, что это баг и его пофиксят, если отрепортить. Не тот баг, где они убили сокеты, азазаз, а поломка совместимости со старым кодом 5+ летней давности.
Аноним 17/01/24 Срд 13:27:21 3006641 401
Зачем вам нужны алгебраические типы данных? В популярных языках программирования без них обходятся.
Аноним 17/01/24 Срд 13:45:29 3006671 402
>>3006641
Что такое алгебраические типы данных?
Аноним 17/01/24 Срд 13:56:26 3006690 403
image.png 22Кб, 507x218
507x218
>>3006641
решился все-таки перекатываться, да?
ты наверное имеешь в виду абстрактные типы данных, да?
Аноним 17/01/24 Срд 13:56:45 3006691 404
>>3006641
Обходятся и страдают, и наворачивают в "альтернативно-популярные" языки.
В js их нет а в ts есть, в java нет а в scala есть, в csharp нет а в fsharp есть, в типизированном питоне есть, в плюсах страдают с std variant и шаблонами, в сишке и гошке страдают с енамами.
Аноним 17/01/24 Срд 14:31:52 3006728 405
>>3003919
>В 2024 году с cmake тебе даже в конфиг заглядывать не придётся, чтоб написать и собрать сишный/крестовой код. В VS Code даже гуй есть для менеджмента проектом. На флаги совершенно поебать, cmake за тебя всё сделает.
Звучит, как пиздёж.
Аноним 17/01/24 Срд 15:20:17 3006771 406
1567365484129.png 131Кб, 2509x637
2509x637
>>3006728
Почему же? На винде пишешь в консольке:
> choco install visualstudio2022buildtools cmake vscode
Открываешь VS Code, ставишь экстеншены для крестов и cmake, жмёшь на команду "CMake: Quick Start", жмёшь на кнопку Build, видишь в консольке:
> [driver] Build completed: 00:00:01.281
> [build] Build finished with exit code 0
Вот и всё, больше ничего не надо делать на чистой винде, чтоб собрать кресты. Пикрилейтед уже все профили сборки есть на выбор. Лезть в CMakeLists.txt нет нужды, писать в консольку какие-то команды сборки тоже.
Аноним 17/01/24 Срд 15:55:30 3006809 407
>>3006771
>На винде пишешь в консольке
Как это прекрасно.

>ставишь экстеншены для крестов и cmake
Здорово, конечно, но что, если чукча не только читатель, но ещё и писатель? Готов потратить полгода жизни на изучение искусства написания cmake скриптов?
Аноним 17/01/24 Срд 16:29:51 3006851 408
>>3006809
> Как это прекрасно.
Что тебе не нравится? В винде ещё с десятки есть встроенный менеджер пакетов, для кодинга там все пакеты актуальные, в том числе и раст можно ставить без всяких rust-up.
> потратить полгода жизни на изучение искусства написания cmake скриптов
А зачем? Все твои скрипты ограничатся вызовом пары местных "функций" - заданием переменных окружения через set(переменная значение) или find_library()/include(). Ну ещё натыкать ифов для разных ОС. Там же синтаксис беднее чем у lua, чего учить. Реальные скрипты придётся писать только если ты ебанутый шизик или у тебя проект уровня игрового движка с десятком зависимостей. Так-то у cmake функционал огромный, он может даже сам собрать либу на расте и прилинковать.
Аноним 17/01/24 Срд 17:54:53 3007083 409
>>3006851
>find_library
Как же оно ищет, интересно. А если не найдёт, что делать?
liba_name not found sosi hui

а, вот что, теперь ясно.
Аноним 17/01/24 Срд 18:26:16 3007161 410
>>3007083
> Как же оно ищет, интересно.
В vcpkg, например. Или через git clone, если в репе либа собирается через cmake.
Аноним 17/01/24 Срд 18:32:12 3007171 411
>>2923611 (OP)
велосипедные пидорастеры.
вы же просто крутите педали на готовых программах просто всё перепечатывая по 10 раз, воруя ресурсы прямиком из энтропии.
из-за вас скоро гитхаб станет платным потому что вы начали срать копипастом с плюсов из всех щелей.
Аноним 17/01/24 Срд 18:33:10 3007172 412
>>3007171
Нам просто не нравится плюсовое легаси...
Аноним 17/01/24 Срд 18:36:30 3007179 413
>>3007172
давай без пиздежа.
вам просто работу на плюсах не дают. потому вы и изобрели этот манямирок, прикрываясь мягкими стенами и единарогами.
Аноним 17/01/24 Срд 18:37:33 3007181 414
>>3007171
>велосипедные пидорастеры
от авторов "все ваши крейты - это враперы над либами на с/с++! своего ничего нет!"?
Аноним 17/01/24 Срд 18:41:01 3007185 415
>>3007181
раст = кофескрипт

как только в сишку зайдут упругие зумеры, и начнут недовольно стучать попытами по столу, старые пердуны из коммитетов начнут писать сахар, и вы окажитесь не у дел.
Аноним 17/01/24 Срд 18:50:39 3007190 416
>>3007179
Я поэтому и учу раст, чтобы вкатиться во что-то околосистемное и чтобы меня не ебали заморочками плюсов. Так что все правда.
Аноним 17/01/24 Срд 18:57:59 3007211 417
>>3007179
нет лишних десяти лет, чтобы набивать шишки в этих ваших плюсах, а потом все равно где-то раз в год охуевать в стиле "а что так разве можно/нельзя было?"
Аноним 17/01/24 Срд 19:04:40 3007219 418
>>3007211
>нет лишних десяти лет,
не пизди, как будто ты метишь к докторской в 24.
волоёбишь как и все.
наверняка и диплом какой нибудь с дженерик темой "как сделать говно на си"
Аноним 17/01/24 Срд 19:07:36 3007226 419
image.png 1054Кб, 840x630
840x630
>>3007219
>как сделать говно на си
Аноним 17/01/24 Срд 19:15:50 3007246 420
>>3007219
>докторской в 24.
Так можно?
Аноним 17/01/24 Срд 19:22:36 3007262 421
>>3007246
Phd можно, в России это кандидатская, но в мире будет считаться докторской. Если лет в 16 поступить в вуз, то можно успеть.
Аноним 17/01/24 Срд 19:38:57 3007291 422
1702420243155.jpg 41Кб, 585x609
585x609
Аноним 17/01/24 Срд 19:44:18 3007299 423
>>3007262
>Если лет в 16 поступить в вуз, то можно успеть.
Рофлишь что ли?
Аноним 17/01/24 Срд 19:47:11 3007302 424
image.png 323Кб, 823x1071
823x1071
Аноним 17/01/24 Срд 19:52:35 3007305 425
>>3007299
Идешь в 1-й класс в 6 лет, пропускаешь 4й класс, но учишься до 11го. Поступаешь в вуз, за 4 года получаешь бакалавра, уезжаешь сразу на пхд в пиндостан, делаешь его за 4 года. Вуаля, доктор в 24 года. Спешите принять оффер в фаанг на ресерч позицию.
Аноним 17/01/24 Срд 19:55:22 3007309 426
>>3007299
Когда в универе учился, на первом курсе у меня была пара однокурсников по 15 лет. Сам я уже был дед 22 года.
Аноним 17/01/24 Срд 19:55:43 3007310 427
>>3007305
Если из обычной пидорашской семьи, то так не выйдет.
Аноним 17/01/24 Срд 19:57:04 3007314 428
Аноним 17/01/24 Срд 19:58:31 3007315 429
>>3007310
Само собой. Семья очень важна, лет до 20ти практически все зависит от того, как тебя семья поддержит и какая она. Одному трудно будет, даже если на таланте работать. Так что если не повезло, то придется работать вдвойне и не факт, что к чему-то хорошему придешь. Перегоришь и будешь на харкаче сидеть в треде про раст.
Аноним 17/01/24 Срд 20:00:06 3007319 430
>>3007314
На пиндосский пхд можно без маги. Там многие поступают на пхд с финансированием, а потом выпускаются со степенью магистра и идут работать. Но это вроде фишка штатов, что можно с бака сразу на пхд прыгнуть. В России и Европе такое не прокатывает вроде. Про Азию не в курсе.
Аноним 17/01/24 Срд 20:02:17 3007322 431
Аноним 17/01/24 Срд 20:35:55 3007358 432
>>3007315
>Семья очень важна
учитывая, что рос без отца
Аноним 17/01/24 Срд 21:00:59 3007388 433
>>3007305
> 24 года
> доктор философии
Но зачем?
Аноним 17/01/24 Срд 23:07:39 3007552 434
Хотел посоветоваться, посоны. Кратко изложу суть.
Хочу сделать простое приложение, которое будет взаимодействовать через браузер.
Хотел написать серв на чистом раст+токио, с минимальными зависимостями. Но гонять туда-сюда заголовки, поддерживать сессии - тот ещё гемор. Мне точно нужен webrtc или websocket, наверное tls еще, чё думаете вообще?
Axum и всякое такое кажется тяжелым.
Аноним 17/01/24 Срд 23:08:45 3007553 435
>>3007552
Да и главный и самый тупой вопрос, как динамически обновлять страницу ? я ваще далек от фронта, htmx это может?
Аноним 17/01/24 Срд 23:29:53 3007568 436
>>3007552
Пиши фронт в виде PWA, на жс, блять а хули хотел?.
> Мне точно нужен webrtc
Нет, тебе это говно не нужно, его ещё и блочат в браузерах часто потому что это дырявая параша. WS хватит.
>>3007553
> я ваще далек от фронта
Земля тебе пухом. Лучше тонкий клиент напиши, если инвалид.
Аноним 18/01/24 Чтв 05:02:16 3007717 437
>>3007315
> будешь на харкаче сидеть в треде про раст.
По себе судишь? Или реально думаешь, что среди пользователей rust нет людей с phd, маня?
Аноним 18/01/24 Чтв 05:03:27 3007719 438
>>3007305
PHD по чему? Компьютер сайнс или про что ты?
Аноним 18/01/24 Чтв 13:17:17 3008186 439
Добрый день, граждане.
Я классическая веб обезьяна. Хотел попробовать что-то серьёзное. Аля С++ или Rust. Насколько я понимаю, они решаю одни задачи, но rust современее что ли.

Собственно вопрос: стоит ли пробовать ковырять rust или это чисто хайп?
Аноним 18/01/24 Чтв 13:56:30 3008275 440
>>3008186
Просто возьми и поковыряй, это бесплатно.
Аноним 18/01/24 Чтв 14:05:19 3008286 441
>>3008186
>стоит ли пробовать ковырять rust или это чисто хайп?
А цели какие? Хайп, но не чисто.
С С++ можно переползти практически на любой юзык, но не факт что захочется.

И малюсенький нюансик, который большинство назовёт недостатком, а считаю достоинством - по большей части С++ это надмножество над Си. Обратная совместимость очень высока и опытный программист даже не обращается внимание на эти нюансы - он напишет сишную программу так, что её соберёт С++ компилятор.

Вот и думай.
Аноним 18/01/24 Чтв 14:09:19 3008292 442
>>3008186
если писать что-то свое, то rust
если зарабатывать бабло, то C++
Аноним 18/01/24 Чтв 14:11:43 3008296 443
Аноним 18/01/24 Чтв 14:12:53 3008301 444
>>3008186

Если до этого не трогал языки без сборщика мусора, советую начать с Си. Язык без лишних абстракций и максимально приближен к ассемблерному коду. Как освоишься с управлением памятью, можно уже и раст или плюсы потрогать.
Аноним 18/01/24 Чтв 14:12:54 3008302 445
image 78Кб, 900x900
900x900
>>3007305
>уезжаешь сразу на пхд в пиндостан
Ооаоао, мурика святая, какой же восторженный долбоеб, у которого кроме пиндостана мира больше нет.
Аноним 18/01/24 Чтв 14:16:02 3008305 446
>>3008292
На плюсы же сложнее устроиться куда-то, не? Больший объем знаний подводных камней требуется.
Аноним 18/01/24 Чтв 14:19:19 3008309 447
>>3008186
Я так тоже хотел попробовать раст, в итоге пишу на чистом си, пытаюсь во всякие сетевые штуки чисто для саморазвития. Си оказался внезапно очень простым и понятным языком, в отличие от раста с его наркоманским синтаксисом. Плюсы - это помойка, куда срали шизофреники, даже не думай вкатываться. Если хочется язык с беспощадным месивом из символов, лучше возьми раст, тут хотя бы сообщения об ошибках компиляции написаны для людей.
Аноним 18/01/24 Чтв 14:25:08 3008319 448
Это база мем (Б[...].mp4 279Кб, 720x1280, 00:00:03
720x1280
Аноним 18/01/24 Чтв 14:25:56 3008321 449
>>3008305
ну а на rust вообще работы нет
Аноним 18/01/24 Чтв 14:34:01 3008333 450
>>3008309
Когда будет больше 1000 строк в проекте, поплачешь горючими слезами, что не выбрал раст.
Аноним 18/01/24 Чтв 14:38:13 3008345 451
По-моему раст без знания си учить бесполезно. Иначе ты не поймёшь зачем нужны такие страдания и у тебя просто сгорит жопа, а потом прибежишь на харкач рассказывать какое раст говно. Собственно, чем половина треда и занимается. С плюсами то же самое кстати, только мотивация другая.
Аноним 18/01/24 Чтв 14:42:18 3008347 452
>>3008333
Я как бы давно пишу на сишарпе и жалкими 1к строк меня не напугаешь. Достаточно не писать весь код в одной гига функции, как любят чистые сишники.
Аноним 18/01/24 Чтв 14:43:37 3008349 453
>>3008309
В моем манямирке Си - это синтаксический сахар/фреймворк/надстройка для асма, т.е. ты сначала учишь асм, а потом уже Си. Не зная асма Си - бесполезен. Да, ты на нем напишешь, он скомпилируется и будет работать, а потом наебнется в самый неподходящий момент и ты заебешься искать место где и что ты там не туда записал/прочитал.

Си++ это надстройка над Си. Изучая С++ автоматом учишь С.

А вот rust - это уже самодостаточный язык, с которым можно работать не ломая голову, что там произходит на более низких уровнях. Да, расплата за это в том, что возможностей у тебя сильно меньше и приходится больше изъебываться, чтобы ублажить компилятор.
Аноним 18/01/24 Чтв 14:46:07 3008353 454
image.png 19Кб, 545x269
545x269
>>3008333
>Когда будет больше 1000 строк в проекте,
В проекте?????
Вот тебе один файл из проекта. Точнее, ничтожный по размеру фрагмент.
Аноним 18/01/24 Чтв 14:48:49 3008355 455
>>3008345
>По-моему раст без знания си учить бесполезно.
А по-моему все ровно наоборот. Изучение Си просто выработает в тебе вредные привычки.
> Иначе ты не поймёшь зачем нужны такие страдания и у тебя просто сгорит жопа, а потом прибежишь на харкач рассказывать какое раст говно.
Если rust для тебя первый язык, ты не поймешь, что твои страдания - это именно страдания, т.к. не будешь знать как с этим обстоят дела в других языках. Ты будешь воспринимать все ограничения раста как данность и учиться с этим жить.
Аноним 18/01/24 Чтв 14:55:26 3008365 456
>>3008349
Выше в треде анон пытается понять, почему у него в расте сокеты не работают. Расскажи ему, какой раст самодостаточный. В си открытие сокета - это четыре функции, вызываешь их по порядку и все ок. В коде на расте накрутили ооп, монады, лямбды, чтобы в итоге вызвать четыре фунции. Оно еще и не работает в итоге, лол.
Аноним 18/01/24 Чтв 14:58:57 3008370 457
>>3008355
>Изучение Си просто выработает в тебе вредные привычки.
Например?
Аноним 18/01/24 Чтв 15:00:16 3008373 458
>>3008349
>В моем манямирке Си - это синтаксический сахар/фреймворк/надстройка для асма
Ты не знаешь языка на хорошем уровне, поэтому для это это так, продолжай жить в своём манямирке.
Аноним 18/01/24 Чтв 15:03:57 3008380 459
>>3006771
А если нужно убрать половину УБ из Си, как тебе cmake в этом поможет?
Аноним 18/01/24 Чтв 15:05:51 3008384 460
>>3008365
>Выше в треде анон пытается понять, почему у него в расте сокеты не работают.
ну это его право, я бы просто ишью создал на гитхабе и разбирался бы с сокетом уже автор проекта

если бы у анона выше свет в доме вырубили, ты бы тоже писал, что раст гавно и надо ставить генератор?
Аноним 18/01/24 Чтв 15:07:22 3008386 461
image.png 1277Кб, 751x1080
751x1080
>>3008373
>Ты не знаешь языка на хорошем уровне, поэтому для это это так, продолжай жить в своём манямирке.
спасибо, я уже испугался, что будет как на пике
Аноним 18/01/24 Чтв 15:14:44 3008401 462
>>3008386
Я и не пытаюсь продать, просто если бы ты разбирался в вопросе, то ты никогда не написал бы "уиии си - высокоуровневый ассемблер".
Аноним 18/01/24 Чтв 15:15:43 3008403 463
image.png 450Кб, 530x420
530x420
>>3008370
висячие ссылки/указатели, use after free и т.д.
Аноним 18/01/24 Чтв 15:16:25 3008405 464
>>3008403
сорри за пикчу, миссклик)
Аноним 18/01/24 Чтв 15:20:32 3008411 465
>>3008403
>привычка
А ещё си учит привычке поклоняться условной сатане и тп.
Аноним 18/01/24 Чтв 15:23:20 3008416 466
>>3008411
и это тоже)
в целом все как обычно:
- вы просто язык(а|ов) не знаете
- это было раньше, сейчас исправили
- у вас у самих ничего не работает
etc.
Аноним 18/01/24 Чтв 15:25:01 3008419 467
>>3008416
Мексидол прими, шизик.
Аноним 18/01/24 Чтв 15:26:32 3008422 468
>>3008419
и это тоже)
в целом все как обычно:
- вы просто язык(а|ов) не знаете
- это было раньше, сейчас исправили
- у вас у самих ничего не работает
- препарат_нeйм прими, шизик
etc.
Аноним 18/01/24 Чтв 15:48:10 3008437 469
>>3008353
Код ошибки циферкой.
Даже диру сменить, уже челендж, пипец.
Как там в 1980-х ?

>>3008347
>как бы давно пишу на сишарпе
как бы +-нормальный язык на хреновой платформе, тут не надо сравнивать.
Аноним 18/01/24 Чтв 15:57:35 3008451 470
>>3008437
>Код ошибки циферкой.
обижаешь! числом!
заглатывая Мексидол
Аноним 18/01/24 Чтв 16:15:57 3008471 471
>>3008292
>если зарабатывать бабло, то C++
РАБотать на барина за пару сотыг ты хотел сказать?
Аноним 18/01/24 Чтв 16:20:05 3008475 472
>>3008321
в тг постоянно чёто скидывают, но везде 3+ лет
Аноним 18/01/24 Чтв 16:38:57 3008491 473
>>3008437
Код ошибки циферкой? Так он в ОС возвращается и могу проанализировать его в shell.

А так, в этом же проекте, но в другом месте, возвращается nullptr если всё заебись или char * c подробным описанием ошибки.

Извращаюсюсь как хочу. Нужно будет - верну объект, содержащий полнейшую инфу об ошибке, но в данном случае счёл это излишним.
Аноним 18/01/24 Чтв 16:39:56 3008495 474
>>3008475
Можно компенсировать опытом на других языках наверное. А на каком канале смотришь работу?
Аноним 18/01/24 Чтв 16:43:18 3008500 475
>>3008475
кидай сюда что ли
может там 3+ лет имеется в виду опыт разработки в целом, а не на расте
во всех вакансиях, что мимо меня проходят, rust идет как доп требование
т.е. если ты не знаешь C/С++, то твое знание rust'а и не нужно особо
на текущий момент на рынке труда раст - это просто очередной выебон работодателя
типа пусть будет, может пригодится

но я не сильно мониторю все это дело и не ищу работу, поэтому могу ошибаться

>>3008471
именно
Аноним 18/01/24 Чтв 18:31:02 3008623 476
>>3008500
>может там 3+ лет имеется в виду опыт разработки в целом, а не на расте
exactly

тг сами ищите,
Аноним 18/01/24 Чтв 20:57:11 3008803 477
>>3008491
>в этом же проекте, но в другом месте, возвращается nullptr если всё заебись или char * c подробным описанием ошибки
Попросту навалил говна и хвалится. Вот тут-то и вылазит проблема сишечки: делать хорошо, по-кармаковски, трудно, а говна навалить легко и приятно. goto не распробовал ещё?

>Извращаюсюсь как хочу
Вся суть сишника. Вернёшься к проекту года через 2, поймёшь, что над собой же поизвращался в итоге.
Аноним 18/01/24 Чтв 21:23:02 3008834 478
image 276Кб, 1445x1521
1445x1521
Аноним 18/01/24 Чтв 21:26:18 3008837 479
>>3008803
> goto не распробовал ещё?
Я уже распробовал panic. Лучше бы с goto сидели.
Аноним 18/01/24 Чтв 21:33:52 3008849 480
>>3008803
>. goto не распробовал ещё?
>
Я использую goto иногдв. В сложных конечных автоматах.
Это позволяет в разы сократить колиество кода. Мне можно.
Аноним 18/01/24 Чтв 22:35:25 3008946 481
image.png 128Кб, 668x349
668x349
Аноним 19/01/24 Птн 06:39:53 3009380 482
>>3008946
Написать новую ось на расте будет лучше линупса?
Аноним 19/01/24 Птн 07:23:13 3009390 483
>>3008849
>Я использую goto иногдв. В сложных конечных автоматах.
>Это позволяет в разы сократить колиество кода. Мне можно.
Это собственно единственное место, где использование goto оправдано -- реализация математической абстракции типа упомянутых КА. Только в таких местах goto не только не снижает читаемость, но и повышает её.
Аноним 19/01/24 Птн 15:20:07 3009953 484
>>3009390
>единственное место, где использование goto оправдано -- реализация математической абстракции типа упомянутых КА
>единственное место
Специалисты уровня б.
Аноним 19/01/24 Птн 15:37:47 3009976 485
Аноним 19/01/24 Птн 19:35:20 3010297 486
>>3009976
Ты сам считаешь его пидорасом.
Аноним 20/01/24 Суб 00:55:21 3010650 487
>>3009380
Делают редокс, но пока хуйня
Даже не в плане функционала, а того как работает
Но они сами заявляли что пока не пытались в оптимизацию и прочее
Аноним 20/01/24 Суб 02:34:52 3010684 488
Screenshot2024-[...].jpg 400Кб, 1080x2400
1080x2400
наконец-то бесполезная хуйня, которая мозолила глаза теперь сдыхает в агонии
Аноним 20/01/24 Суб 03:19:40 3010704 489
>>3010684
Твой пиздюк? Признавайся
Аноним 20/01/24 Суб 03:48:58 3010715 490
Насколько мне известно, в Расте до сих пор нет aliasing model. То есть, строгое понимание того, что "можно и нельзя" делать в unsafe-коде в принципе отсутствует. Почему об этом так мало говорят и почему это не мешает отдельным даже, вроде как, серьёзным людям продвигать Раст в качестве настоящего и будущего всего системного программирования?
Аноним 20/01/24 Суб 03:54:52 3010716 491
Написал пост, и тут вспомнил, что на C++ <20 (до implicit object creation) невозможно было вектор написать. Так что, в целом, такое положение дел в порядке вещей, наверное.
Аноним 20/01/24 Суб 07:46:30 3010794 492
>>3010715
> что "можно и нельзя" делать в unsafe-коде в принципе отсутствует
Почему же, у пидорастов есть чёткое понимание как работать с ансейфом - никак.
>>3010716
> на C++ <20 (до implicit object creation) невозможно было вектор написать
Шиз, плиз, явные аллокации всегда работали, сейчас просто сишку подтянули под defined behavior.
Аноним 20/01/24 Суб 09:23:55 3010805 493
>>3010794
>как работать с ансейфом - никак
Примерно так.

>>3010715
Давай конкретику, чего тебе не хватило.
Я лично вижу раст, как замену крестам с той же стороны, что жаба и дотнет — безопасный язык для написания различного рода приложух и сервисов. Поэтому меня ансейф не особо парит, я байтоёбством не занимаюсь. Но одно то, что гугл использует раст в адроиде для вполне себе байтоёбских целей, говорит, что ты неправ.
Аноним 20/01/24 Суб 12:58:32 3010892 494
>>3010715
>Насколько мне известно, в Расте до сих пор нет aliasing model

Есть же. Звучит как "любой алиасинг от дьявола". Хотя один хер LLVM сломан и это никак не используется
Аноним 20/01/24 Суб 16:32:08 3011088 495
>>3010794
>как работать с ансейфом
РЯЯЯ АНСЕЙФ
Аноним 20/01/24 Суб 17:48:58 3011163 496
Аноним 20/01/24 Суб 17:53:15 3011173 497
>>3011163
А теперь ты идёшь и смотришь как в STL вектор реализован.
Аноним 20/01/24 Суб 17:54:55 3011177 498
>>3010805

Что значит "не хватило", ты пост читал, ты с чем споришь вообще? Этот пост вообще не для тебя, зачем тебе Раст, если ты только джейсоны перекладываешь?
Аноним 20/01/24 Суб 17:56:28 3011184 499
>>3011173
В какую именно реализацию, какой версии? Дай ссылку на реализацию без UB (до C++20).
Аноним 20/01/24 Суб 18:00:54 3011196 500
>>3011173
Или хотя бы, может есть реализации, которые работают принципиально иначе, чем в примере по ссылке?
Аноним 20/01/24 Суб 18:03:19 3011202 501
>>3010892
"Любой алиасинг от дьявола" - это значит, что на Расте нельзя написать его стандартную библиотеку, что, как бы, несколько не ОК для языка общего назначения (ещё и для системного программирования)
Аноним 20/01/24 Суб 18:28:22 3011248 502
>>3011184
> В какую именно реализацию, какой версии?
Любую майков хотя бы. Там нет выделения куска памяти и гуляния по нему указателями. У тебя по ссылке наивная реализация, естественно так никто не делает.
Аноним 20/01/24 Суб 18:50:19 3011297 503
>>3011248
"Гуляние по указателям" в каком-то виде там неизбежно, и проблема как раз в том, что гулять можно только внутри array object, который до C++20 там не создавался.
Аноним 20/01/24 Суб 19:00:25 3011325 504
>>3011248
Точно так же у майков всё. Да и по другому никак. Единственное, что в этом примере странно, что используются, зачем-то, указатели на char вместо на указателей T. Вот std::allocator::allocate - выделяется массив байтов и указатель приводится к нужному типу. (https://github.com/microsoft/STL/blob/80e0909966e797158f65ae68f5c30191091b02c9/stl/inc/xmemory#L1001)
Аноним 20/01/24 Суб 19:14:18 3011357 505
>>3011325
> Точно так же у майков всё.
Ты траллишь или что? Где ты там увидел арифметику указателей в реализации вектора?
Аноним 20/01/24 Суб 19:15:22 3011360 506
>>3011177
Хочу безопасно перекладывать.
Аноним 20/01/24 Суб 19:20:16 3011371 507
>>3011357
>Где ты там увидел арифметику указателей в реализации вектора?

Блять, даже не знаю - везде? https://github.com/microsoft/STL/blob/80e0909966e797158f65ae68f5c30191091b02c9/stl/inc/vector#L800

По-моему, это ты траллишь и стандарт ни разу в жизни не открывал.
Я тебе дал ссылку на пропозал в стандарт, который приняли. Там в качестве основного мотива написано, блять, "динамическое конструирование массивов", а ты мне доказываешь, что я шиз. Получается, автор пропозала - тоже шиз и весь комитет заодно.
Аноним 20/01/24 Суб 19:22:54 3011376 508
>>3011202
Чому? Что-то оборачиваешь в UnsafeCell, с чем-то работаешь через memcpy.
Аноним 20/01/24 Суб 19:23:01 3011377 509
>>3011360
Перекладывай на джаве.
Аноним 20/01/24 Суб 19:23:15 3011378 510
>>3011371
> что я шиз
Да, потому что ты не сумел прочитать что конкретно UB.
Аноним 20/01/24 Суб 19:25:15 3011383 511
>>3011376
>UnsafeCell, memcpy

Это всё как-то решает проблему циклических ссылок в структурах данных?
Аноним 20/01/24 Суб 19:28:34 3011391 512
>>3011378
Тебе автор пропозала написал специально, где там UB. Ты мне всё ещё доказываешь, что _Mylast++ - это не "арифметика указателей", или это уже пройденный этап?
Аноним 20/01/24 Суб 19:30:00 3011393 513
>>3011391
Ясно, ты даже код читать не умеешь.
Аноним 20/01/24 Суб 19:34:38 3011400 514
>>3011393
Мне про тебя тоже всё ясно, по существу-то есть возражения?
Аноним 20/01/24 Суб 19:39:43 3011419 515
>>3011377
Джава опасная: там null и ConcurrentModificationException
Аноним 20/01/24 Суб 19:40:20 3011421 516
>>3011383
Раст не позволяет напрямую что-то делать с указателями, поэтому пока ты не сделал из него borrow, никаких проблем с элиасингом случиться не может.
Аноним 20/01/24 Суб 19:44:39 3011438 517
>>3011419
Ну не знаю тогда - программируй в презервативе, что ли.
Имелось в виду, нахера тебе для твоих задач язык с ручным управлением памятью.
Аноним 20/01/24 Суб 19:49:29 3011453 518
>>3011421
Зачем в программе указатели на память, которую ты не собираешься трогать? Ясно дело, borrow нужно будет сделать рано или поздно.
Аноним 20/01/24 Суб 19:55:20 3011475 519
>>3011419
> там null
Используй нормальные языки на жвм, где null запрещён.
> ConcurrentModificationException
А что не так с итераторами? В расте они так же кидают панику. Если ты имел в виду потокобезопасность и просто назвал первый попавшийся эксепшен с Concurrent в названии, то в нормальных ЯП на жвм корутины потокобезопасно обращаются к памяти.
Аноним 20/01/24 Суб 20:01:06 3011491 520
>>3011453
А почему я не могу иметь указатель на память, которую собираюсь трогать? Где швабодка, нахуй? Даже в питухоне я могу указателями раскидываться куда угодно.
Аноним 20/01/24 Суб 20:03:30 3011497 521
>>3011491
Иметь-то можешь, только зачем? Указатели - они чтобы идентифицировать куски памяти. Память - она чтобы её читать и писать.
Аноним 20/01/24 Суб 20:09:10 3011501 522
>>3011475
В жаве такое вылазит, когда пытаешься изменить вектор (List), по которому итерируешь.
>расте они так же кидают панику
Хуюшки, боровчекер не даст.

>>3011438
>язык с ручным управлением памятью
Ну ты чудак, а. Оно не ручное, а автоматическое, просто делается не в рантайме, а при конпеляции.
Аноним 20/01/24 Суб 20:13:50 3011507 523
>>3011475
Когда в языке пятнадцать видов указателей - это не автоматическое управление. RAII до пришествия ржавой сои никто в здравом уме автоматическим управлением памятью не называл.
Аноним 20/01/24 Суб 20:16:38 3011509 524
>>3011453
Боровы живут примерно столько же как мьютекс-локи. То есть нет ситуаций когда ты захватил объект в мапе через get, а после этого рандомный коллбек его затер или удалил.
Аноним 20/01/24 Суб 20:17:47 3011511 525
>>3011497
> только зачем?
Чтобы не ебаться с borrow cheсker. Это опять же плохо для читаемости кода, где dependency inversion. Почему Раст вынуждает меня проектировать структуры данных с оглядкой на низкоуровневые вещи и borrow checker, а не как в нормальном ООП - сверху вниз? Даже в крестах это соблюдается - высокоуровневым абстракциям поебать что там с памятью на низком уровне, а раст имеет ебучие деревья лайфтаймов и borrow, идущих снизу.
Аноним 20/01/24 Суб 20:19:39 3011515 526
>>3011501
Я, если что, Раст тут не защищаю, я как раз про отсутствие aliasing model писал.
Аноним 20/01/24 Суб 20:20:54 3011518 527
Аноним 20/01/24 Суб 20:26:36 3011530 528
>>3011511
Можно поебать, как в C++, с ошибками доступа к памяти, можно поебать, как в го, с уборкой мусора, можно поебать, как в свифте, обернув всё в Arc. У всех этих вариантов есть недостатки.
Впрочем, где-то я видел опциональное отслеживание владения, то ли в Vale, то ли в Lobster. А может приснилось, не ручаюсь.
Аноним 20/01/24 Суб 20:38:46 3011560 529
>>3011530
> как в C++, с ошибками доступа к памяти
Кто запрещает unique_ptr использовать?
Аноним 20/01/24 Суб 20:40:24 3011563 530
>>3011530
Правильно, но вот вопрос: современная джейсоноукладка редуцировалась уже максимально - всю тяжёлую работу делают базы данных. Зачем ебаться с владением, если можно взять язык со сборкой мусора?
Аноним 21/01/24 Вск 11:48:18 3012250 531
>>3011563
Я хочу владеть одним универсальным инструментом "для всего". Чтобы работало быстро, было много сахара и мало ошибок в рантайме, которые, ссук, бесят. Иногда я люблю и пиксели поперекладывать, али какой-нибудь гуй по-быстрому сваять.
Боровчекер меня особо не парит, я к нему привык. Не держу постоянно в голове весь набор правил, а примерно чувствую, когда ругнётся, а когда нет.
Скажем, адаптировал я тут некий код под обновившийся winit: 98% времени ебался с изменениями апи, 2% засовывал в Arc переменную, на которую заругался боровчекер.

>>3011560
>Кто запрещает unique_ptr использовать?
Разработчик-сыроед сторонней либы, например.
Аноним 21/01/24 Вск 13:30:40 3012334 532
Если мне нужно рекурсивно передавать мутабельную ссылку RefCell это хороший вариант или есть что получше?
Аноним 21/01/24 Вск 14:51:07 3012432 533
>>3012334
> есть что получше?
Ансейф.
Аноним 21/01/24 Вск 15:36:50 3012483 534
>>3012432
Мне ансейфа в сексе хватает
Аноним 21/01/24 Вск 15:38:51 3012486 535
>>3012483
У пидорастов он безопасный же.
Аноним 21/01/24 Вск 16:02:33 3012505 536
>>3012486
У пидорастов традиционного секса нет, они с боровом трахаются. Всё ещё лучше в каком-нибудь жопаскрипте NaN`ы на лицо принимать.
Аноним 21/01/24 Вск 16:20:59 3012517 537
>>3012505
твой жопаскриптиз сейчас используется только скуфами-вкатывальщиками, для белых людей уже давно придумали typescript
Аноним 21/01/24 Вск 16:41:25 3012530 538
>>3012517
Нет, теперь тренд обратный, с тайпа на джс. Не следишь ты за индустрией.
Аноним 21/01/24 Вск 16:47:03 3012535 539
>>3012530
где ты такого набрался?
Аноним 21/01/24 Вск 16:52:44 3012543 540
>>3012517
1. Тайпскрипт это не ЯП
2. Он учится за 2 часа человеком с бекграундом 1 курса универа с занятиями по С/С++/C#/Джаве.
Аноним 21/01/24 Вск 16:57:14 3012547 541
>>3012543
> 1. Тайпскрипт это не ЯП
Лол, эксперт из школы сбежал, все в комитет
Аноним 21/01/24 Вск 17:25:03 3012599 542
Аноним 21/01/24 Вск 17:35:20 3012613 543
>>3012547
Ну давай, напиши мне какой-нибудь работающий скрипт используя только конструкции тайпскрипта.
Аноним 21/01/24 Вск 18:11:13 3012654 544
>>3012547
Так-то он всё верно пишет, интерпретатора TS не существует в природе, только компилятор из TS в JS. А ещё для работы с TS надо иметь ебучие комбайны на бэке.
Аноним 21/01/24 Вск 18:46:12 3012736 545
>>3012613
ts-node, мань

>>3012654
> интерпретатора TS не существует
> компилятор из TS в JS существует
Он написал, что TS - не ЯП, но TS - ЯП, можно писать и запускать код на нём. Так-то можно про плюсы и джаву сказать, что они не ЯП - джава только в байткод компилится и запускается в интерпретаторе байткода, а плюсы фронтендом gcc/clang в glimpse/llmv-ir компилируются, а в машинные коды их бекенд gcc/llvm компилит.
Охуеть тут знатоки собрались.
Аноним 21/01/24 Вск 19:04:23 3012772 546
image.png 35Кб, 730x214
730x214
Аноним 21/01/24 Вск 19:23:14 3012800 547
Screenshot2024-[...].png 201Кб, 1080x2248
1080x2248
>>3012772
Ну не троллируй тупостью плез
Аноним 21/01/24 Вск 19:38:39 3012806 548
>>3012800
Тебе слова "JIT transforms TS into JS" никаких реакций не вызывают?
Аноним 21/01/24 Вск 19:44:18 3012811 549
>>3012806
Одни ЯП транслируется в другой ЯП на лету. Что сказать-то хотел?
Аноним 22/01/24 Пнд 07:00:46 3013311 550
Аноним 22/01/24 Пнд 07:19:51 3013315 551
>>3013311
В школу не опоздай, а то мамка наругает
Аноним 22/01/24 Пнд 10:44:12 3013454 552
У меня есть основной поток, в нем запускается тред по конвертации файла и не дожидается окончания, чтоб не блочить основной поток. Можно ли как-то асинхронно пингануть, что поток завершился? Оповещение о окончании операции хочу вернуть, чет не знаю как
Аноним 22/01/24 Пнд 10:54:38 3013464 553
>>3013454
Сделай atomic флаг и чекай его из другого потока.
Аноним 22/01/24 Пнд 11:07:04 3013481 554
Аноним 22/01/24 Пнд 17:37:57 3014086 555
Аноним 22/01/24 Пнд 18:23:19 3014227 556
>>3014086
Ты собрался один байт через это говно предавать?
Аноним 22/01/24 Пнд 19:02:51 3014307 557
image 2Кб, 256x50
256x50
>>3014227
Да хоть целый сконвертированный файл. А в чём проблема?
Аноним 22/01/24 Пнд 19:16:20 3014319 558
>>3014307
В том что ты предлагаешь забивать гвозди кувалдой. А потом и получаются бинарники жирнее шарпа, берёшь либу и каждые 10 строчек кода дают +100 кб к размеру файла.
Аноним 22/01/24 Пнд 19:46:35 3014360 559
>>3014319
Активный поллинг редко когда бывает лучше системы сообщений. А реализация его в виде флагов ведёт к большим проблемам при расширении и сопровождении кода. Конечно, если это софт уровня laba3, то это не страшно. Бояться же использовать стандартную библиотеку в расте... ну не знаю, как эта болезнь называется?
Аноним 22/01/24 Пнд 20:02:04 3014370 560
>>3014360
>Бояться же использовать стандартную библиотеку в расте... ну не знаю, как эта болезнь называется?
Нищессд на 256 гигов - ОС - Какое-то говнецо портированное с плойки = 2 гб на работу.
Аноним 22/01/24 Пнд 20:03:06 3014371 561
>>3014360
Чел, для этой задачи достаточно возвращать atomic bool, как это сделано с is_finished. Нахуй ты собираешься прикручивать к этому какую-то синхронизацию потов, ты совсем ебанутый?
> Бояться
Дело не в боязни, а в использовании инструментов не по назначению. В каналы лезет что угодно - значит будем не думая пихать в них всё что можно. Ну ахуеть теперь.
Аноним 22/01/24 Пнд 20:06:56 3014375 562
>>3014370
Попробуй объяснить проблему своему менеджеру, это его работа обеспечить тебе комфортные условия работы.
Аноним 22/01/24 Пнд 20:08:08 3014378 563
>>3014375
Ты тиктоков девочек-фронтэндерш с Кремниевой Долины пересмотрел что ли?
Аноним 22/01/24 Пнд 20:30:14 3014414 564
>>3014371
Повторю ещё раз, это решение более расширяемое и лёгкое в сопровождении. Код с флагами это очень хрупкая конструкция. Изначально в >>3013454 анон хочет вернуть оповещение обо окончании операции конвертации файла. Через некоторое время ему захочется отображать её прогресс (кстати, я думаю, что ему именно для этого и ищет неблокирующую проверку, уверен на 80%, в противном случае хватило бы простого джойна). Потом потребуется добавить функционал паузы/возобновления. Потом придёт в голову обработка сразу множества файлов. Потом возможность изменять очередь файлов на лету. Потом делать это не в отдельном потоке, а отдельном процессе или даже на другой машине. А может делать конвертацию сразу в несколько потоков. Можно ли это всё сделать на флагах? Безусловно. Но это будет выглядеть как лапша с миллионом условий и иметь множество трудновоспроизводимых багов.

Понимаю, что это выглядит как какая-то блажь, но я имел счастье поработать над проектами с обоими подходами и поэтому хочется поделится опытом. Хз конечно, насколько оно релевантен конечно, т.к. описании задачи без деталей, не исключаю что каналы будут over-engineered, но уж больно красных флагов для меня, простите за каламбур.
Аноним 22/01/24 Пнд 20:32:52 3014420 565
>>3014378
Это моя реальность.
Аноним 22/01/24 Пнд 20:35:04 3014421 566
>>3014420
Тиктоки, девочки-фронтэндерши или КД?
Аноним 22/01/24 Пнд 20:48:06 3014436 567
>>3014421
Работа в командах, в которых менеджмент может обеспечить условия для работы.
Аноним 22/01/24 Пнд 20:49:49 3014439 568
Аноним 22/01/24 Пнд 21:02:26 3014451 569
>>3014414
> более расширяемое
Но ведь у тебя должно быть чёткое API. Конкретно этот кусок будет отвечать за понимание состояния выполнения операции. Ты туда собрался что-то ещё прикрутить? Тогда это вдвойне пиздец.
> Через некоторое время ему захочется
Тогда и надо делать это расширяя API, а не изменяя его. Нет ни одной причины зачем надо переусложнять то что можно сделать просто.
> Можно ли это всё сделать на флагах?
Как будет подходящая задача под каналы, так и надо их применять. Что за бинарное мышление - мы либо пердолимся с примитивами и флагами, либо каналы для всего. Так можно и до уровня Линуса дорасти, когда будем сетевой стек использовать для коммуникации - там вообще сказка, отправляй что угодно куда угодно.
Аноним 22/01/24 Пнд 21:34:52 3014523 570
>>3014451
О, началась моя любимая игра: "выдели каждое утверждение собеседника гринтекстом и доведи его до абсурда". Без дополнительных пояснений со стороны >>3013454 плюсы и минусы в данной конкретной ситуации обсуждать довольно бессмысленно. С позицией, что лучшее враг хорошего я в целом согласен.
Аноним 22/01/24 Пнд 21:40:02 3014540 571
>>3014451
>> более расширяемое
>Но ведь у тебя должно быть чёткое API. Конкретно этот кусок будет отвечать за понимание состояния выполнения операции. Ты туда собрался что-то ещё прикрутить? Тогда это вдвойне пиздец.
И да, а что тебя удивляет? В расте это можно сделать очень тупо. Заводишь енум под сообщения, который расширяется при необходимости. В основном цикле просто диспатчишь варианты. Классический паттерн наблюдатель, только без полиморфизма в рантайме. Но и его легко добавить при необходимости.
Аноним 22/01/24 Пнд 21:58:34 3014603 572
Аноны, полегче. Жене надо по работе конвертировать видеофайл в mp4 и я решил просто попробовать сделать на расте это, вместо своего основного языка. Для нее терминал - дебри, поэтому взял tauri + ffmpeg_sidecar. У последнего при выполнении спавнится дочерний тред. Вот мне и хотелось узнать, как из него эмит сделать. Ну как передать его назад я знаю, а получить подтверждение окончания операции не знал как. Ни прогресс баров, ни множественной обработки или еще чего.
Аноним 22/01/24 Пнд 22:45:24 3014694 573
Аноним 22/01/24 Пнд 22:48:40 3014702 574
image 314Кб, 1610x1087
1610x1087
>>3014603
Глянул быстренько этот ffmpeg_sidecar. Там в отдельном потоке парсится выхлоп ffmpeg, который оборачивается в варианты енума FfmpegEvent и передаются через каналы с помощью итератора в основной тред, лул. Что и требовалось доказать в общем-то, тупо то, о чем я писал выше. Тебе нужно обработать cобытие Done.
Аноним 22/01/24 Пнд 23:53:36 3014778 575
>>3014702
Если ты матчить будешь done, то залупу пососешь
Аноним 22/01/24 Пнд 23:57:35 3014781 576
1630591155443.png 27Кб, 493x405
493x405
>>3014702
> пик
Синтаксис мечты, строчка кода лапшой растекается на 20 строк экрана. Алсо, что на пикрилейтеде за смайлик? Похоже на что-то пидорское.
Аноним 23/01/24 Втр 01:06:39 3014877 577
image 131Кб, 1140x524
1140x524
>>3014778
В плане?
>>3014781
Угу, то ли дело святые плюсы. Сказать-то что хотел? Хотя я использование for_each() тоже нахожу неуместным. Алсо, за те полгода, что я имею дело с растом, ни разу подобных ассоциаций не возникало. Ты сходи на улицу, потрогай снег что-ли, слишком много на дваче сидишь.
Аноним 23/01/24 Втр 01:16:33 3014885 578
1701472799809.png 58Кб, 410x327
410x327
>>3014877
> плюсы
Тут недавно на концепты гнали и говорили что не понятно что там за типы, а вот ты можешь догадаться что тут между точками за хуита? Так что это ещё открытый вопрос где хуже. Ну и на твоём пике вермишель типов убирается через using, так же как в расте c use.
Аноним 23/01/24 Втр 01:40:21 3014894 579
>>3014885
Так там написано сверху, что это Builder API, поэтому очевидно, что &mut FfmpegCommand (ну кроме последних двух, конечно, по ним нужно документацию смотреть, особенно iter() возвращающий Result меня с толку сбивает). Но это и без комментария в принципе видно по характерному коду. Это характерный для раста паттерн, потому что нет дефолтных параметров. Вот, просвещайся, если интересно: https://rust-unofficial.github.io/patterns/patterns/creational/builder.html
Аноним 23/01/24 Втр 07:22:40 3014959 580
>>3014894
> очевидно
> кроме последних двух
И что тебе там очевидно? Начиная со spawn там идёт пляска разных типов, а заканчивается обработкой событий. Хороший паттерн, который плавно перетекает в кашу из типов.
Аноним 23/01/24 Втр 12:13:05 3015256 581
>>3014781
Всё таки раст пидорасты писали, ведь могли сделать простой и понятный язык с бч, но нет, хлебом не корми, надо было завалить всё свистелками и перделками в угоду читаемости. Тупо дебичи.
Аноним 23/01/24 Втр 12:31:06 3015287 582
>>3015256
Ебать, ты довнич, а. Точно такой же код можно соорудить на котлине, например. Билдер-хуилдер-матчер. И выглядеть будет также. Вот автор этой конкретной либы решил сделать так, ты чего бухтишь-то? Это современное программирование, не осилил - обтекай.
Аноним 23/01/24 Втр 14:25:31 3015510 583
>>3014959
Ну это вопрос к конкретному автору. В принципе, он делал по аналогии с std::process::command, который из spawn() возвращает Child обёрнутый в Result. На самом деле, под капотом именно это у него и происходит. Только вот FfmpegChild, в отличии от Child из стандартной библиотеки не конечный тип сам по себе, а ещё позволяет создать итератор, чтобы получать оповещения о работе ffmpeg. Собственно, в этом вся суть этого крейта, которая в двух строчках описания указана. Поэтому при её использовании всегда эти две последние строчки будут (я бы ещё wait() вызвал, чтобы зомби-процесс почистить в конце), а перед ними борода из сколько угодно вызовов билдера. Хз, в целом прикольно. Причём при желании, это можно написать в классическом виде, привычном джавистам и плюсовикам, т.е. создать "объект" FfmpegCommand и по очереди вызывать его методы, а потом получить отдельно "объекты" FfmpegChild и FfmpegIterator. Но зачем?
Аноним 23/01/24 Втр 14:57:18 3015567 584
>>3015287
>язык позволяет делать говно, значит, язык - говно (c) растопидораха
>поправка: работает только в одну сторону (верно для с/с++, не верно для раста)
))
Аноним 23/01/24 Втр 15:20:13 3015610 585
>>3015567
А это и не говно, на уровне семантики нормальный код. goto и арифметика указателей говно вовсе не из-за синтаксиса.
Аноним 23/01/24 Втр 16:47:44 3015791 586
image.jpg 13Кб, 200x319
200x319
>>3015610
>нормальный код
Согласен, нормльный язык.
Аноним 23/01/24 Втр 21:43:39 3016091 587
1685598860182.webm 2264Кб, 1024x426, 00:00:16
1024x426
>>3015791
> если пишешь код на расте вынужденно, то не пидораст
Аноним 24/01/24 Срд 17:44:55 3017350 588
1608023443867.png 363Кб, 2138x1022
2138x1022
Аноним 24/01/24 Срд 19:01:39 3017461 589
>>3017350
А если на реддите спросят, какой бумагой растаны подтираются, ты тоже это сюда притащешь, довен?
Ржавые новости Аноним 25/01/24 Чтв 12:01:43 3018439 590
Аноним 25/01/24 Чтв 13:01:08 3018522 591
>>3018439
> Zed
Выглядит как хуйня. VS Code хорош именно электроном, который позволяет новые фичи/экстеншоны пилить хуяк-хуяк и готово. Поэтому функционал у него ахуевший и гуй красивый с кучей удобств. А на скорость поебать, кому какое дело что раст на 40% быстрее текст жуёт.
Аноним 25/01/24 Чтв 13:11:06 3018538 592
>>3018522
У вскода всратая интроспекция, вот это всё. А идейка память жрёт и фризит на больших проектах. Я надеюсь, что может хоть тут растаны сделают хороший редактор для раста. А то впадлу жидбрейнсу платить, когда они ровер этот платным сделают.
Аноним 25/01/24 Чтв 13:16:42 3018552 593
>>3018538
Всё равно нахуй не нужно, пока опенсорс-пердолики не сделают аналог этого - https://continue.dev/
С нейросеткой хоть поприятнее, когда всратые скобочки лесенкой за тебя сами рисуются.
Аноним 25/01/24 Чтв 13:24:33 3018566 594
Screenshot from[...].webp 13Кб, 615x381
615x381
>>3018552
>опенсорс-пердолики

Это добавят, если ещё не. 100500 этих плагинов уже подо что угодно.
Аноним 25/01/24 Чтв 13:27:02 3018569 595
>>3018566
Я в Zed не вижу поддержки экстеншенов в принципе.
Аноним 25/01/24 Чтв 13:37:04 3018579 596
>>3018569
https://github.com/zed-industries/zed/tree/main/plugins

Они есть, но походу, тоже на расте. С другой стороны, если во главу угла ставить скорость, то будет странно добавлять расширения на скриптах. Хотя, есть тот же самый rhai.rs, можно будет добавить икстеншон уже с его поддержкой для быстрого прототипирования (у него синтаксис максимально близок к расту).
Аноним 25/01/24 Чтв 17:48:07 3019088 597
>>3018439
>уиии аа перепишут
Как же всегда ору с растодаунов.
Аноним 25/01/24 Чтв 18:10:33 3019133 598
>>3019088
Как ору с даунов-хейтерков, которые сидят в ненавистных тредах 24/7. Найди себе парня, сипидор.
Аноним 25/01/24 Чтв 20:04:14 3019306 599
>>3019088
Ну, часть системы-то перепишут. Начнут с утилит, дальше - больше. Плюсовики, сглатывайте молча, в общем.
Аноним 26/01/24 Птн 01:51:34 3019996 600
>>3018439
>Zed
Почему он вообще закрыт был? Думали пропадут или что?
Аноним 26/01/24 Птн 07:33:45 3020057 601
>>3018439
> Zed
> только для макоси
Но зачем? Или у этих петухов совсем плохо с человеческими IDE?
Аноним 26/01/24 Птн 08:30:41 3020094 602
>>3020057
Мань, не завидуй успешным владельцам маков. Попроси своего мужика - он тебе тоже купит.
Аноним 26/01/24 Птн 09:51:05 3020143 603
Вскрылось интересное про zigунов.
https://github.com/zed-industries/zed/pull/6690 - первые подсуетились. То есть
1. Они знают раст
2. Они юзают макось, то есть, педерасты

>>3019996
Не хотели раньше времени принимать патчи для поддержки линуха и винды. А если не принимать, то сообщество захейтит нежных и ранимых поняшек.

>>3020057
Следи за руками:
- фряха - основа для макоси и спонсируется эппл
- часть компонентов фряхи собрались переписать на расте
- кода этого зеда наворотили с моё почтение, прям серьёзно взялись - тут явно не обошлось без щедрого спонсорства
- зед прибит гвоздями к макоси на низком уровне, там свой ui поверх metal (https://github.com/zed-industries/zed/blob/main/crates/gpui/src/platform/mac/metal_renderer.rs) - догадайтесь, кто спонсор
там всё настолько плохо, что, мне кажется, проще будет сделать форк на egui, чем добавлять поддержку Vulkan/OpenGL

В-общем, эппл тоже присматривается к расту. Одним свифтом сыт не будешь, шланг слегка устарел, собсно, вывод очевиден.
Аноним 26/01/24 Птн 10:19:30 3020165 604
>>3020143
> Вскрылось интересное про zigунов.
Там нечему вскрываться. Вместо того чтобы зарелизить 1.0 зига под x86 для линукса/винды и потом уже пердолить зоопарк платформ, эти дебилы пишут и под MIPS компилятор, и под арм с макосью, и ещё хуй знает что. Переписывают libc, LLVM и вообще занимаются неизвестно чем. В итоге версии апают, а язык всё так же сырое говно с мерзотным синтаксисом, не исправляющий никаких проблем сишки. Даже встроили компилятор крестов и называют его "лучшей заменой clang", но по факту это такое пердольное говно со скриптами сборки на самом зиге, что пиздец. Ну и бонусом идут разрабы этого кала - идейные борцы за мазоли Столмана, у которых идеология на первом месте, я уже видел васеры Эндрю про швабодку он даже из ютуба выпилился потому что "несвободная платформа", сразу стало понятно что он за ЯП придумал. Хули ещё можно было ждать от чела, живущего в кладовке, проецирует комплексы куда может.
> Они знают раст
А ведь Эндрю высрал зиг потому что бомбанул от того какой раст говно. Уже даже мазолееды забыли за что боролись.
Аноним 26/01/24 Птн 11:53:53 3020316 605
>>3020143
> фряха - основа для макоси и спонсируется эппл
Ты в каком году живешь?
Аноним 26/01/24 Птн 12:34:15 3020352 606
>>3020316
Ну лан, ну лан, всё же так красиво сходится.
У нас нет 100% сведения, эппл молчит, но выглядит всё так, будто они таки тянут свои лапки к расту. Бсдуны как-бы сами решили попереписывать на расте, зед как-бы случайно написали плотно так онли под макось.
Аноним 26/01/24 Птн 14:31:36 3020500 607
>>3020165
Столман базовый мужик.
Аноним 26/01/24 Птн 15:19:41 3020587 608
>>3020165
> Ну и бонусом идут разрабы этого кала - идейные борцы за мазоли Столмана,
Ну да, куда лучше успешные менеджеры, которые доят натянутую сову 9 лет.
Без опенсорса, сосали вы бы сейчас бибу у пропретарного софта с платными закрытыми либами, а не няшились на гитхабе.
Аноним 26/01/24 Птн 15:30:14 3020600 609
>>3020165
>>3020143
Забавно как ржавые стали бояться зиг, а ведь еще полгода назад даже не замечали его.

Раст, имхо, очень сильно тормозит разработку, дальше хелловорда он тупа неудобен. Единственный выигрыш это встроенный пакетный тулинг, что облегчает вкат всяким петонщикам, больше плюсов там особо нет.
Аноним 26/01/24 Птн 16:26:16 3020685 610
>>3020316
Это не про год, а про небольшой уровень познаний поциента.
Аноним 26/01/24 Птн 17:30:30 3020833 611
>>3020685
https://wiki.freebsd.org/Myths#FreeBSD_is_Just_macOS_Without_the_Good_Bits
> The two operating systems do share a lot of code, for example most userland utilities and the C library on macOS are derived from FreeBSD versions

https://opennet.ru/opennews/art.shtml?num=60473
> Список утилит, которые есть намерение переписать на языке Rust, если бы поддержка Rust появилась в базовой системе:
> ...

Хуйца пососи, короч.
Аноним 26/01/24 Птн 17:31:36 3020838 612
>>3020833
>пернул в лужу
>пошёл проверять в гугле
Аноним 26/01/24 Птн 17:42:23 3020865 613
>>3020600
>дальше хелловорда он тупа неудобен
Аха, бля. Нам ведь надо быстро и мноога говна наваять. А потом отдать на аутсорс, пусть галерщики ошибки фиксят. Стандартная тема на тех же плюсах плюсах, никто не жалуется, нах здесь раст, действительно.

>>3020600
>бояться зиг
Ты это, уже сразу новость кидай куда-нить в зиг-сообщество: растаны боятся зигунов, чтобы зиг-воены воодушевились и, ну я не знаю, переписали на зиг alacritty, например.
Аноним 26/01/24 Птн 17:58:49 3020907 614
>>3020865
Всему своя цена, если кабану нужно качество, кабан платит временем и деньгами, тебе какая разница, раст тут ничем не поможет вообще.
А вот платить больше за одну и ту же работу и тем более сопровождать, это уже другое. Раст не отменяет ошибок, в управляемых языках тоже нет проблем с памятью, стало там меньше багов?
Аноним 26/01/24 Птн 18:18:37 3020948 615
>>3020907
>стало там меньше багов
Итить, ну конечно стало.

> если кабану нужно качество, кабан платит временем и деньгами
Вот только ручное управление даёт очень мало гарантий качества - придётся платить ораве тестировщиков. К тому же, в том и смысл раста, что качественно на нём писать дешевле и быстрее, чем на тех же плюсах. Просто потому, что проще сразу не ошибаться, что перелопачивать потом половину кода из-за ошибки.
И ты прикинь, бывают такие проекты, которые не "написал и забыл", постоянно в разработке, обрастают новыми фичами и тэ-дэ. И такое проще допиливать на расте, чем постоянно подрываться на оставленных хуй пойми когда минах.
Аноним 26/01/24 Птн 19:44:10 3021082 616
image.png 117Кб, 1409x347
1409x347
17051546752200.png 161Кб, 2211x593
2211x593
>>3020948
Кто сейчас из вменяемых пишет промышленный код на плюсах? Что мне даст твой раст, если перформанс топ веб-серверов отличается лишь на 0,01%, а траха там на порядок больше?

Кому ты это хочешь "продать"? Ну и код менее читабельнее чем на сях, да еще бытует мнение, что пишут на расте медленнее чем на си.
Аноним 26/01/24 Птн 20:15:34 3021127 617
image.png 165Кб, 1191x999
1191x999
Аноним 26/01/24 Птн 20:36:07 3021153 618
>>3021127
Дотнет ахуенен, и АОТ тоже. Но эти пидоры вообще ложат хуй на совместимость со старыми системами, самое хуёвое что они 32-бита дропнули, это вообще пиздос.
Аноним 26/01/24 Птн 21:05:49 3021167 619
>>3021082
Раст среди этих всех языков:
1. Самый безопасный
2. Один из самых выразительных (возможно в C# плюшек больше, зато в расте нет null)
3. Один из самых кроссплатформенных - от утюга до браузера.
4. Тулинг вне конкуренции.

>бытует мнение, что пишут на расте медленнее чем на си
Среди сишников-неосиляторов оно бытует. Разрабы TOR его сами на раст переписывают, в том числе ради более быстрой разработки.
Аноним 26/01/24 Птн 21:43:09 3021230 620
>>3021153
Не ас шарпов, но писал оконную перделку для 7 винды, так в общем, писал на последней версии шарпов, а потом просто под дотнет 6 собрал.
Разве нельзя так же делать?
Аноним 26/01/24 Птн 21:56:20 3021239 621
>>3021167
>1. Самый безопасный
Заипали, честно.

>2. Один из самых выразительных (возможно в C# плюшек больше, зато в расте нет null)
Котлиновский вопросик для типов, куда круче и современнее костылей опшинов (да, в шарпах нуллабл типы накатили давно, даже в дарте завезли).

>3. Один из самых кроссплатформенных - от утюга до браузера.
На 98 винде запущу? Но я уверен что все ограниченно llvm или только популярными платформами, и скорее только словами, ибо кто там тебе будет тестить, там надо бюджеты усваивать.

>4. Тулинг вне конкуренции.
Пакетный менеджер, этим даже гоферку не удивишь.

>в том числе ради более быстрой разработки.
Фанатики даже на го большие приложения клепают, но это не делает го удобным для этого.

Покормил малолетнего фанбоя, но только один раз.
Аноним 26/01/24 Птн 22:24:05 3021265 622
>>3021230
> Разве нельзя так же делать?
AOT в принципе только под х64. Весь смысл пропадает, ведь экономить ОЗУ и размер бинарника обычно надо на некрожелезе. Вообще у майков очень много чего находится хуй знает сколько лет в разработке с отмазкой "низкий приоритет". Им-то похуй в своих облаках, всегда свежая ось.
Аноним 26/01/24 Птн 22:33:52 3021278 623
>>3021265
Мне тоже это не нравится, но таким "быстрым" дропом занимаются нынче все.
Аноним 26/01/24 Птн 22:40:49 3021292 624
>>3021153
А зачем тебе 32 бита? Что за железка?
Аноним 26/01/24 Птн 22:53:49 3021313 625
>>3021292
На работке пара тысяч клиентских 2гига/2ядра стоят на объектах, инцел атомы/целероны, везде 32-битная десятка. Я в итоге на крестах пердолю автоматизацию, ибо ещё надо защищаться от сисадминов/подрядчиков/инженеров, которые увидев неведомую хуйню, жрущую 100 мб ОЗУ, могут её просто ёбнуть по-тихому, чтобы им оно не мешало ковыряться в и так тормозящем кале.
Аноним 26/01/24 Птн 23:59:45 3021356 626
Тред перекатите?
Аноним 27/01/24 Суб 00:47:26 3021425 627
>>3021313
Так в случае aot как раз и будет все в одном месте и за сотню метров, а когда вирт машина, она просто будет сбоку, а твой процесс будет весить копейки. Можно даже под старый фреймворк 4 собрать, чтоб не светить последний рантайм.
Аноним 27/01/24 Суб 06:06:49 3021532 628
А раст хорош.
Я ради интереса написал простенький тайм сервер, который по tcp возвращает текущее время. Сделал на си и на расте. Проверил через apache benchmark 1 лям запросов в 20 потоках. Однопоточный сервер на clang выдал 37к rps, многопоточный раст на токио 34к лол, однопоточный на расте 41к. Токио оказалось хуйней, компилятор раста охуенен.
Аноним 27/01/24 Суб 10:25:36 3021634 629
Screenshot from[...].webp 8Кб, 572x178
572x178
>>3021239
1. Слил

2.
> Котлиновский вопросик
Нуу, такое себе, такой же используется в Vala, например. Также см. пик: в котлине это ворнинг, в расте сравнение с None будет ошибкой. И котлин сливает по скорости и ресурсам.

3.
> На 98 винде запущу?
Код на плюсах на /360 мейнфрейме запущу?

4.
> Пакетный менеджер
> go
Какой-то он хреновенький. Модуль добавить, прям целое колдунство. И логика импорта завязана на версию языка, что ломает совместимость. А какой-то общий способ указать фичи для модулей есть? Сомневаюсь. Ну это я так, погуглил, не вдаваясь.

>Фанатики
Вот ты поясни, как разрабы TOR, которые всю жизнь писали на сях, вдруг стали фанатами раста.
Для крупного проекта важный критерий - это контроль, чтобы конструкция не рассыпалась. Поэтому, например, в своё время так зашла Java, что она этот контроль давала. А python не давал, хотя хэлловорлды на нём писать в 10 раз быстрее. В расте контроль строже, чем в джаве, следовательно, на нём удобно писать ещё более крупные проекты.
Аноним 27/01/24 Суб 10:36:16 3021642 630
>>3021634
> разрабы TOR
Как будто они раньше не были СЖВ-борцами за швабодку.
Аноним 27/01/24 Суб 10:37:01 3021643 631
>>3021634
Контроль чего? Конструкция какая? У тебя питон вышел из под контроля? Тред перекатите растобляди
Аноним 27/01/24 Суб 10:45:10 3021657 632
>>3021532
Токио хорошая вещь, но для других задач. Например, у тебя веб-сервер общего назначения, который и в базу слазит, и картинку отдаст. Токио тут и пригодится: пока один клиент ждёт свой запрос из базы, другой в это время получит свою картинку.

Ещё попробуй такую аннотацию, може увеличит чего
#[tokio::main(flavor = "multi_thread", worker_threads = 8)]
Аноним 27/01/24 Суб 10:47:52 3021661 633
>>3021642
>швабодку
Это zig, ты не путай. Если чисто по швабодке, то сишка свободнее раста - больше компиляторов, больше бардака.

>>3021643
>Контроль чего?
Контроль, это твёрдое понимание, какая переменная какие значения может принимать и какая функция что может возвращать.
Аноним 27/01/24 Суб 10:48:25 3021663 634
>>3021634
> в котлине это ворнинг
В чём проблема? Он тебе и пишет, что он всегда не null. А String? ты не сможешь присвоить к переменной String без явного каста с рантаймчеком. Никаких проблем с безопасностью нет, тем более вопросик можно выключить на уровне компилятора.
> в расте сравнение с None будет ошибкой
Ты тёплое с мягким сравниваешь - null с енумом. Сравнивай тогда котлиновские енумы, там тоже String и None не сможешь сравнить потому что разные типы.
Аноним 27/01/24 Суб 11:19:39 3021690 635
>>3021663
>В чём проблема?
Проблема в том, что когда переменная вдруг перестанет быть nullable, на этот кусок кода можно просто забить. Это безопасно, по поощряет распиздяйство.

>котлиновские енумы
не поддерживают вопросик, ха-ха.

В плане работы с отсутствующим значением котлин, конечно, далеко ушёл от жабы, но чутка не дотягивает до раста.
А на расте есть ещё и Result, тоже с поддержкой вопросиков.
Вот и получается, что раст, помимо того, что быстрее и экономнее по памяти, ещё и продвинутее по семантике.
Аноним 27/01/24 Суб 11:26:04 3021695 636
>>3021690
> Result, тоже с поддержкой вопросиков
Лучше бы ты не вспоминал этот кал, не умеющий кастовать Ок к Ок, ахуеть какая продвинутая семантика. Даже эксепшены лучше.
Аноним 27/01/24 Суб 11:44:28 3021707 637
>>3021657
Результат тот же. Видимо, зависит от машины, я тестирую на линуксе под виртуалкой, у нее 1 проц 4 ядра.
Ради интереса добавил голанг, с корутинами он выдал 35к рпс, без корутин еще меньше.
Аноним 27/01/24 Суб 11:44:39 3021708 638
>>3021695
>не умеющий кастовать Ок к Ок
Ну-ка, поясни. Типа, Ok(u32) as Ok(u64) или что?

>эксепшены
Фу, фу, никакого сравнения. Для Result и Option в расте есть куча функционального сахара, хошь так ими верти, хошь эдак, хошь одно в другое, а хошь - в итераторе filter_map и прочее кастуй.
Аноним 27/01/24 Суб 11:46:00 3021710 639
>>3021707
Попробуй вместо времени просто байтик сплёвывать - может в системные вызовы упирается.
Аноним 27/01/24 Суб 12:02:37 3021721 640
>>3021708
> хошь так ими верти, хошь эдак
А почему если у меня есть Result и CustomResult, то я должен вручную обрабатывать Ок и Error? С эксепшенами если всё Ок, то я вообще ничего не должен делать, совсем. И в случае Error я могу проигнорить что за ошибка конкретно случилась и обработать сам факт ошибки. В то же время раст заставляет ебаться каждый раз с этим говном, а если там разные типы Result, то вообще пиздец хуже кодов ошибки из сишки.
> в итераторе filter_map и прочее кастуй
Заебись, но я всё ещё не понимаю зачем всё это надо делать вручную с заведомо идентичными Ок. Совсем не чувствую сахара. Получается больше ебли без причины - это сахар и гибкость? Ведь по факту в расте на уровне языка в принципе нет функционала для работы с ошибками, только через енум-костыли с Result, отличающиеся от кодов ошибки в сишке только тем что туда прилепили непосредственно результат. Как в сишке делали if (result != SUCCES), так и тут та же срань с явной обработкой, только покороче.
Аноним 27/01/24 Суб 12:22:54 3021730 641
>>3021721
> С эксепшенами если всё Ок, то я вообще ничего не должен делать, совсем
Ты никогда не отлаживал код, в котором ловится ". . ." в какой-то жопе, да?
Аноним 27/01/24 Суб 12:29:28 3021734 642
>>3021721
>я должен вручную обрабатывать Ок и Error
Ставь .unwrap() для паники или пробрасывай наверх через ? для дальнейшей обработки. Ты, видимо, совсем не в теме.

>И в случае Error я могу проигнорить что за ошибка конкретно случилась и обработать сам факт ошибки
И тут ты тоже можешь, прикинь. Есть такой метод Result::is_err() Точно не в теме, залётный.

> Как в сишке делали if (result != SUCCES)
Ебать, ты даун, слов нет. В сишке при таком подходе ты возвращаешь код в одном месте, результат по указателю в другом месте. Тебя никто не обязывает проверять код, ты можешь просто забить и пойти использовать результат, хотя там может оказаться что угодно. В расте ты получаешь явно - или результат, или ошибку, что-то одно.
Аноним 27/01/24 Суб 12:42:33 3021737 643
Аноним 27/01/24 Суб 12:46:43 3021740 644
>>3021730
Если в кишках либы сломалось что-то, то ты и в расте заебёшься дебажить unwrap().
>>3021734
> Ставь .unwrap()
Заебись, будем ронять весь код, безопасность чувствую прям.
> пробрасывай наверх через ?
Только если типы одинаковые, если нет, то ты идёшь нахуй со своим вопросиком и пиздуешь свитчевать эту парашу. И так каждый раз, пока код не превратится в пилу из лесенок.
> Result::is_err()
Я надеюсь ты траллишь, потому что это как в сишке с if (result != SUCCES), только ты предлагаешь if result.is_err().
> Тебя никто не обязывает
В крестах ты варнинг получишь. Получается разница лишь в том что в расте кодера держат за конченого долбаёба, неспособного прочитать что компилятор пишет?
Аноним 27/01/24 Суб 13:04:11 3021761 645
>>3021740
>Если в кишках либы сломалось что-то, то ты и в расте заебёшься дебажить unwrap().

В либах паникующие методы без дублирующего try_ встречаются редко.
Аноним 27/01/24 Суб 13:22:01 3021806 646
Аноним 27/01/24 Суб 13:25:57 3021814 647
>>3021806
Это ещё хуже по читаемости.
Аноним 27/01/24 Суб 13:32:29 3021824 648
>>3021740
>Только если типы одинаковые
Тут есть варианты:
1. Сделать общий enum для всех ошибок, руками или через custom_error, тогда ? будет работать для всех ошибок
2. Через map_err приводить всё к общему типу ошибки. Можно вообще сделать Result<T, String> и кастовать все ошибки внутри функции в строку.

>и пиздуешь свитчевать эту парашу
точно также, как с иксепшонами - однажды придётся свичевать

>В крестах ты варнинг получишь.
Ебать, какая эвристика, конпелятор видит, что функция получает указатель и возвращает int и на этом основании как-бы предполагает, что в неиспользуемом инте могло быть что-то важное. А могло и не быть, может там текущая погода в градусах, правда? Ну и пиши сразу на асме тогда, ты же знаешь, что там у тебя по регистрам распихано.
Аноним 27/01/24 Суб 14:39:14 3021923 649
привет скуфы, работа на расте есть? думаю сейчас после 10 лет питона куда выкатиться, но чтобы была работа. Или лучше жрать кал на Го?
Аноним 27/01/24 Суб 14:55:00 3021949 650
>>3020948
>проще сразу не ошибаться
>проще
Пиздец, какие же сказочные долбоёбы бывают.
>>3021082
>список
>нет С
Проиграл с этой веб макаки.
Аноним 27/01/24 Суб 15:13:15 3021963 651
>>3021949
Проиграл с этого скуфа. Кто сейчас пишет приложения на си?
Аноним 27/01/24 Суб 15:28:41 3021973 652
>>3021963
>приложения
Это так сейчас веб сайты называются?
Аноним 27/01/24 Суб 15:33:51 3021976 653
>>3021973
Это называется все что не драйвера и эмбедед хуйня с прочими компиляторами
Аноним 27/01/24 Суб 15:33:52 3021977 654
>>3021949
Что проще: отловить возможную гонку на этапе конпеляции или ебаться с этой гонкой через год, когда она появится из-за кривизны кода? Под не ошибаться сразу я имел в виду первый вариант.
Аноним 27/01/24 Суб 15:34:37 3021979 655
>>3021977
Важно успеть закрыть деллайн. Че ты как маленький.
Аноним 27/01/24 Суб 15:56:30 3022001 656
>>3021977
О да, в пидорашьем расте ошибок-то нет, всё сразу конпелятор отлавливает.
Аноним 27/01/24 Суб 17:07:33 3022101 657
>>3022001
На 100% отлавливает ошибки доступа к памяти, которые самые мозгоебучие при отладке.
Аноним 27/01/24 Суб 17:24:09 3022125 658
Аноним 27/01/24 Суб 17:27:16 3022132 659
image.png 196Кб, 640x620
640x620
>>3021167
>1. Самый безопасный
Аноним 27/01/24 Суб 18:03:30 3022198 660
>>3021824
Для всех этих махинаций давно существуют 2 крейта - thiserror и anyhow. С первым ты пишешь конвертеры ошибок одной строчкой, со вторым можешь вообще нихуя не писать, он сконтвертирует как сможет и пох.
Аноним 27/01/24 Суб 18:58:56 3022289 661
Screenshot from[...].webp 18Кб, 897x718
897x718
>>3022198
>thiserror
Да, хорошая штука, то же самое делает custom_error.

>>3022132
См. пик. Раст безопаснее сраного котлина, который даже ворнинг не подсветил.
Аноним 27/01/24 Суб 23:12:50 3022710 662
>>3022289
@
Браузерный редактор
@
Что-то не подсветил
@
Котлин плохой

Нахер я тут сижу?
Аноним 27/01/24 Суб 23:31:05 3022765 663
>>3022710
звучит почти как хокку, бравно
Аноним 28/01/24 Вск 08:42:11 3023025 664
Screenshot from[...].webp 12Кб, 420x263
420x263
>>3022710
Вот идейка с дефолтными настройками.
Только var/val подсветила. Постоянно забываю, что val в котлине такой же неполноценный, как жс - val нельзя перезаписать, но можно добавить значений в список, например
Аноним 28/01/24 Вск 14:41:27 3023460 665
>>3023025
Да что ж такое, опять плохо подсвечивает.
Даже комментарий скопировал, а то вдруг не заработает.
Аноним 28/01/24 Вск 15:21:25 3023540 666
>>3023025
Берешь такой мутабельный список
@
Возмущаешься что он мутабелится
@
Редакторы не подсветили что я приёмный
@
Котлин плохой.
Аноним 28/01/24 Вск 15:48:04 3023602 667
Аноним 28/01/24 Вск 15:58:24 3023624 668
>>3023602
Пиздос он ебало отожрал. Хорошо хоть не из кладовки стримит, видимо надонатили достаточно. Слушать не собираюсь, он сказал когда 1.0 планируют? К 0.99 хоть успеют, а то на гитхабе уже issues до 0.16 на год вперёд отложенные валяются?
Аноним 28/01/24 Вск 16:34:49 3023710 669
>>3023624
Кто что, а успешные менеджеры раста переживают, как деньги мимо них проходят.
Аноним 28/01/24 Вск 17:58:22 3023904 670
Аноним 28/01/24 Вск 18:38:57 3023967 671
Screenshot from[...].webp 14Кб, 464x272
464x272
Screenshot from[...].webp 13Кб, 699x272
699x272
>>3023460
Изменение списка внутри итератора по этому списку не подсвечивает, а это главное.

>>3023540
А он, что val, что var, всё равно мутабелится. Это ж котлин.
>Котлин плохой.
Ты ж сам его знаешь меньше моего, довнич, откуда тебе знать, что он хороший?
Аноним 28/01/24 Вск 18:39:13 3023969 672
>>3023904
У тебя анальная фиксация, проследуй в плюсотред.
Аноним 28/01/24 Вск 18:40:27 3023973 673
>>3023969
>-ряя решает все проблемы
>-не пиздишь?
>-ряя У тебя анальная фиксация, проследуй в плюсотред.
Аноним 28/01/24 Вск 18:47:02 3023993 674
>>3023967
Ты настолько тупой, что требуешь подсветки синтаксиса момента исполнения?
Я уверен он это и делает в момент исключения, тыкает носом, что не так.

Котлин и так долго компилится и эти проверки в момент компиляции были бы очень дорогими и возможно не достижимыми.
Если ты берешь управляемый язык, то меньшее что хочется это долгая компиляция. Все равно любое приложение крупнее утилиты линукс будет иметь дело с динамическим внешним миром, такова цена и таков путь приложений.
Аноним 28/01/24 Вск 18:49:48 3023997 675
>>3023993
>>3023967
И да, котлин там не причем, это жвм тебя мокает в лужецу.
Аноним 28/01/24 Вск 19:43:44 3024116 676
>>3023993
Я пруфаю то, что на управляемом языке можно сесть в лужу там, где нельзя на расте, причём не будет даже ворнинга. Не больше, не меньше.

>>3023997
Жвм, это среда исполнения, да. И? У сишки и раста тоже одинаковая среда исполнения, как у жабы с котлином, но это не мешает расту отлавливать такие ошибки на этапе конпиляции, а вот котлину что-то мешает.
Аноним 28/01/24 Вск 20:12:00 3024187 677
>>3024116
>Я пруфаю то, что на управляемом языке можно сесть в лужу там, где нельзя на расте, причём не будет даже ворнинга. Не больше, не меньше.
Зато есть еще 100500 способов сесть в лужу обоим языкам, динамические системы никто не отменял. То что у тебя компиляция дольше, такая себе радость, если бы взял иммутабельный тип, котлин вообще бы не дал тебе методов импакта и не нужно оверхеда с анализом кода.
Аноним 28/01/24 Вск 20:13:17 3024190 678
>>3024116
>У сишки и раста тоже одинаковая среда исполнения
Ладно, я понял.
Аноним 28/01/24 Вск 20:28:55 3024232 679
>>3024187
>иммутабельный тип
Но я хочу мутабельный, но что-то подобосрался слегка. А код, который меняет лист, срабатывает по if раз в полгода. Расставил, значит, везде перехваты всего, что можно, попиваешь кофий, сервис тебе ошибочки в телегу шлёт, чуствуешь себя владыкой, а тут хуяк - и нежданчик, всё упало, и ты об этом узнаёшь от кабанчика.
На расте такого не будет - если ты перехватываешь ошибки, то они таки перехватятся. Может упасть сторонняя либа, ну дак пользуйся хорошими либами с пробросом ошибок.
Аноним 28/01/24 Вск 20:35:11 3024245 680
>>3024232
> Но я хочу мутабельный
Я тоже хочу мутабельный в расте, но он говорит "пошёл нахуй теперь вектор иммутабельный", даже если объявлен как мутабельный. Я даже не знаю кем надо быть, чтоб топить за такие анальные унижения. При этом в джаваговне всё же можно через .next() сделать мутабельную итерацию, в отличии от раста, где тебя ставят перед фактом что ты идёшь нахуй.
Аноним 28/01/24 Вск 20:44:02 3024259 681
>>3024245
Надо для вас какой-то клуб униженных растом организовать. Где бы вы делились своей болью, как хотели отстрелить себе хер на полшишечки, а раст не дал.

Впрочем, такой клуб есть, зовётся zig
Аноним 28/01/24 Вск 21:05:08 3024301 682
>>3024259
> нинужно
С таким подходом надо в ГОвно перекатываться.
Аноним 28/01/24 Вск 21:11:58 3024321 683
>>3024301
У ГОвноедов хотя бы работа есть и зарплаты
Аноним 29/01/24 Пнд 09:46:38 3024792 684
Если раст такой действительно хороший то почему вакансий нет? Или если есть, то это какой нить криптоскам. Чому у го получилось а у раста нет?
Аноним 29/01/24 Пнд 10:10:20 3024825 685
>>3024792
100500 раз обжёвано, обжуём и 100501-й

Во-первых, goвно взлетело потому же, почему взлетел swift. Поддержка крупной корпорации.

Во-вторых, он очень лёгок в изучении и на него может переползти любая макака с php/python в анамнезе. Причём, эта фича, лёгкость освоения и переползания, очень активно форсилась с самого появления языка "Мы, гугл, пилим простой и быстрый язык для макак и будем его поддерживать."
Раст, наоборот, сразу отпугивает "У нас сложно, зато безопасно". На самом деле человеку, не испорченному сишкой, а переползающему, скажем, с джавы/питона, раст не покажется таким уж сложным, каким его малюют сишники, мыслящие арифметикой указателей.

В-третьих, есть фактор сферы применения. Go - хороший язык для стартаперов, так если Вася знает питон, а Петя джаву, то стартап им проще будет пилить на го. Сфера стартапов очень бурная, один лопнул - два появилось, поэтому goвно поражает этот мир со скоростью коронавируса.
Раст же затрагивает несколько более медленную сферу - к нему приходят состоявшиеся стартапы, которые понимают, что питона/жабы/го им уже мало, а сишка отстало и небезопасно.

Поэтому расклад примерно такой: го - это быстрая и мимолётная сезонная инфлюэнса, а раст - это вич, который медленно, но верно и надолго.
Аноним 29/01/24 Пнд 13:40:39 3025100 686
>>3024825
А если раст поддержит корпорация, взлетит?
Аноним 29/01/24 Пнд 13:52:30 3025124 687
Я прикладная макака - заводчанин, хочу пощупать раст, чисто для себя, интересна вся эта низкоуровневая тема. Где взять идею для такого низкоуровневого ПЕТ-проекта? Ну либо посоветуйте что можно навоять вечерами под пивко
Аноним 29/01/24 Пнд 14:08:26 3025174 688
Аноним 29/01/24 Пнд 15:33:19 3025321 689
>>3024825
Караван охуительных историй. Раст не взетел потому, что нахуй не нужен. Для прикладного программирования он слишко засран наркоманскими абстракциями, это место у параши уже занято плюсами. Для системного программирования ты не можешь просто взять и написать код, как на сишке, ты долго и нудно ебешься с бороу чекером, а потом все равно ныряешь в unsafe. В итоге получилось говно без задач.
Аноним 29/01/24 Пнд 15:55:05 3025370 690
>>3025321
>Для прикладного программирования
Он очень хорошо подходит и изначально задумывался

>это место у параши уже занято плюсами
хуёво занято, иначе не появились бы жава с сисярпом, которые часть проблем решают, но не вполне, а также добавляют новых.
Раст, это ультимативное решение проблем плюсов в прикладном направлении, единственное "но" - хватило бы мозгов. Мне хватает, я пользуюсь.

>>3025100
Уже поддерживают, но робко и неуверенно - переписывают по кусочкам.
Аноним 29/01/24 Пнд 16:10:54 3025405 691
>>3025370
>жава с сисярпом
это тоже системные языки?
Аноним 29/01/24 Пнд 16:33:15 3025458 692
>>3025405
Они решают проблемы плюсов в прикладном направлении.
Аноним 29/01/24 Пнд 18:37:58 3025658 693
>>3025124
BLE-мигалка RGB светодиодом
Аноним 29/01/24 Пнд 18:54:32 3025681 694
>>3025321
ты тупой? что значит "не взлетел"?

Языку сколько лет вообще, стабильной его версии особенно?
Комьюнити у раста пиздец какое огромное, реддит открой, ебанько.
То что в рашке работы нихуя нет - не значит что он не используется нигде вообще и не взлетел.

Раст засунули в винду и ядро линупса. Всё только начинается
вкачусь сразу как появится немного свободного времени
Аноним 29/01/24 Пнд 18:59:10 3025689 695
>>3025124
Для проекта сперва должна быть идея, а уж потом инструмент.
Если идей нет, то попробуй что-то связанное с графикой/играми. Для обучения эта тема хорошо подходит, так как даёт мгновенный дофамин: накодил, увидел результат, кодишь дальше.
Аноним 29/01/24 Пнд 23:04:41 3026040 696
image.png 131Кб, 1201x753
1201x753
>>3025681
Ну хз, девятый год после релиза, интерес околонулевой, несмотря на количество навязчивого маркетинга (купленных постов и видео). В том году даже начали работать на джаваскрипт аудиторию, что совсем смешно.
И вот после этого всего мы видим такое явление и такой абсурд, как фанбой пытается сравнивать раст и котлин.

Так что не все однозначно, но слежу за яп, любой язык победивший си и плюсы будет у меня в фаворитах.
Аноним 29/01/24 Пнд 23:32:31 3026059 697
>>3026040
Конечно до питона и других титанов ему далеко. Он никуда туда не заберется.

Но я бы не стал называть язык мертвым хотя бы потому что вокруг языка сложилось больше комьюнити.

то что языку потребуется больше времени, чтобы набрать критическую массу - факт. На рынке уже больше 40 лет доминируют си и плюсы, а системное программирование, в общем и целом, не самое популярное сейчас направление.

Да и честно говоря писать на языках из твоего топа я ни за что не хотел бы. Ну разве только на гоупараше ок.
Аноним 30/01/24 Втр 01:56:55 3026137 698
>>3025681
Лол ты даун. Вакансии открой, ебанько, а не раковый чятик с фурипидорасами. Вот когда найдешь работу на расте никогда тогда и приходи. Ты напоминаешь фанатов лиспа, те тоже рассказывают, как лисп скоро взлетит, вот еще немного и огого.
Аноним 30/01/24 Втр 08:26:32 3026217 699
>>3026137
Че трясешься так, порватка? Таблетки прими. Если у тебя руки дырявые ты и на джаве не найдешь работу лол.
Аноним 30/01/24 Втр 10:46:04 3026355 700
>>3026040
Не знаю, что у тебя за график, но на нём раст опережает go.
Аноним 30/01/24 Втр 12:06:48 3026459 701
Бля, приятный язык, жалко вакух мало...
Аноним 30/01/24 Втр 15:58:44 3026842 702
17051546752200.png 161Кб, 2211x593
2211x593
>>3025321
>а потом все равно ныряешь в unsafe
Но ведь адепты сказали, что раст безопасен, можно сразу без ошибок писать ПРОЩЕ ЖЕ.
>>3026459
>Бля, приятный язык
Пикрил.
Аноним 30/01/24 Втр 16:56:38 3026899 703
image 719Кб, 3199x1799
3199x1799
>>3026842
А мне нра.
мимо-литкод-решала
Аноним 30/01/24 Втр 17:09:43 3026921 704
>>3026899
>говнокод
>А мне нра.
Не удивлён.
Аноним 30/01/24 Втр 17:41:10 3026962 705
>>3026921
А что конкретно для тебя тут говнокод, можешь написать? Мне очень важно твоё мнение!
Аноним 30/01/24 Втр 23:39:13 3027474 706
>>3026962
Нужно свитч кейс делать вместо божественного питоновского eval
Аноним 31/01/24 Срд 09:39:19 3027781 707
Растаны, вендекапец и раст-никому-не-нужен наконец-то не за горами!
Аноним 31/01/24 Срд 09:40:29 3027783 708
Screenshot2024-[...].png 1023Кб, 1080x2248
1080x2248
>>3027781
(сорян, я криворукий сишник)
Аноним 31/01/24 Срд 09:57:31 3027794 709
Untitled.jpg 111Кб, 1220x428
1220x428
>>3026899
Двачую, очень простой и понятный язык.
Аноним 31/01/24 Срд 10:16:25 3027805 710
>>3026842
>>3027794
Плюсовики пугали выводом ошибок, растеры пугают сигнатурами функций.
Вы в курсе, что мы читаем код больше чем пишем? Как это сопровождать, если тело функции проще сигнатуры?
Аноним 31/01/24 Срд 10:29:33 3027818 711
>>3027805
>>3027794
>>3026842
Причем это не какой-то энтерпрайз, где за слоями логики суют гига-функции.
Что будет в многолетнем миллионом проекте?
Аноним 31/01/24 Срд 10:35:00 3027821 712
image.png 31Кб, 897x255
897x255
>>3027783
Деврелы обосрались.
Аноним 31/01/24 Срд 10:38:37 3027825 713
>>3027805
>>3027818
Живём во времена ИИ, тебе хинтик покажет, что эта сигнатура означает.
Аноним 31/01/24 Срд 10:41:09 3027831 714
>>3027821
В общем, сторонние челы переписывают у себя что-то в облаке, но деврелы уже накатили/купили статью на целое переписывания ядра винды.
Какой же сюр.
Аноним 31/01/24 Срд 11:59:09 3027930 715
Аноним 31/01/24 Срд 11:59:29 3027931 716
>>3027805
Так это по сути сигнатура не функции, а обобщения. Поэтому такая сложная. Если написать функцию с конкретными типами всё станет просто и понятно. Собственно, по той же причине в плюсах такие монструозные ошибки - из-за шаблонов. Ну и конкретно этот пример мне кажется довольно легко читаемым.
Аноним 31/01/24 Срд 12:32:28 3028000 717
Тут надо отделять 3 вещи:
1. Раст как язык - пригоден даже для разработки ядра.
2. Тулинг и инфраструктуру -
а. проблема leftpad
Ответ - используйте свои крейты/форки, где это возможно, сделайте свою репу и отзеркаливайте на ней надёжные версии крейтов.
б. Тяжёлый и дорогой бутстрап. Увы, ментейнёров у них маловато, а без бутстрапа там никак. Ответ - продайте почку.
3. Реализацию async
Тут скорее проблема рантайма. Напишите свой, заточенный под FreeBSD, рантайм и используйте его в своих утилитах сколько угодно. Или вообще обходитесь без асинхронности, никто не заставляет, действительно.
Аноним 31/01/24 Срд 12:54:40 3028025 718
>>3027930
Забавно, что к С++23 внезапно оказывается что кресты победили почти все свои недостатки и на кресты больше надежд чем на раст.
>>3028000
> проблема leftpad
Она вообще не решаема. Тут уже жаловались что хэллоу-ворлд жрёт 150 кб. У самого стд куча зависимостей. Если взять любую низкоуровневую либу - там 25 зависимостей. Удобный пакетный менеджер сделал только хуже, все просто прописывают тонну зависимостей в карго и ебись оно конём. Тут только писать в но_стд и фактически выкидывать абсолютно всю, почти 10-летнюю, кодовую базу раста.
> Тут скорее проблема рантайма. Напишите свой
Получается проще свой раст написать, чем на уже существующем что-то делать.
Аноним 31/01/24 Срд 13:30:35 3028050 719
>>3028025
>Получается проще свой раст написать
Я про асинхронный рантайм, полно альтернатив тому же токио.

>Удобный пакетный менеджер сделал только хуже, все просто прописывают тонну зависимостей в карго и ебись оно конём
хуже чем что? Чем приписывание зависимостей через git submodule или чем зависимость от системной либы, которая ещё может оказаться не той версии? Или чем банальное Ctrl+C/Ctrl+V, как сделано в ffmpeg, например ?

В любом случае, можно поиграться с Cargo.lock (там прописаны все 100500 зависимостей твоего проекта) и https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html , наверняка проблема leftpad таким образом решаема

>Тут только писать в но_стд
Если тебя размер волнует, то раст позволяет дёргать отдельные куски из стд
Аноним 31/01/24 Срд 13:41:38 3028059 720
>>3028050
> Я про асинхронный рантайм, полно альтернатив тому же токио.
Проблема не в конкретном рантайме, а в том что асинхронность в принципе существует в том виде как она придумана в расте.
https://blog.hugpoint.tech/avoid_async_rust.html
> хуже чем что?
Чем осмысленный выбор зависимостей для проекта, а не забивание хуя и добавление вообще всего что можно.
> проблема leftpad таким образом решаема
Ты похоже не понимаешь в чём проблема.
> раст позволяет дёргать отдельные куски из стд
Нет. А даже если научится делать это адекватно, то это всё ещё не убирает кучу зависимостей для сборки стд. Я тебе больше скажу, в последней версии раста со свежим майковским тулчейном раст вообще не может собрать бинарник без стд в релизе, только в дебаге, лол. Issue по этой же проблеме ошибки линковки без стд есть на гитхабе, закрыт как решёный два года назад, блять.
Аноним 31/01/24 Срд 13:58:45 3028076 721
>>3027794
Это семпл из какого-то мертвого крейта для парсинга аргументов командной строки. Вообще хер знает, зачем ему Box, Sync и Send.
Аноним 31/01/24 Срд 14:07:50 3028085 722
>>3028059
>https://blog.hugpoint.tech/avoid_async_rust.html
Половина описанных там проблем так или иначе на пути к решению. Например https://rust-lang.github.io/async-fundamentals-initiative/roadmap/async_closures.html

> осмысленный выбор зависимостей для проекта
"Ваши плюсы, плюсы?" - "У нас нет пакетного менеджера!" - "Какой же в этом плюс?" - "Подбирать зависимость будете долго и обстоятельно, а не пихать всё подряд".
Ну пиздец.

>Ты похоже не понимаешь в чём проблема.
Ты, похоже, не понимаешь, в чём решение.

>Нет
https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std-features

>со свежим майковским тулчейном
Юзай гнутый x86_64-pc-windows-gnu
Аноним 31/01/24 Срд 14:19:24 3028100 723
>>3028076
Этот код всего лишь берет строку "key=value" и возвращает пару строк (key,value). Задача тривиальная, но на расте насрали буковками просто чтобы было.
Аноним 31/01/24 Срд 14:23:33 3028102 724
>>3028085
> на пути к решению
Не вижу решения ни одного пункта из приведённой ссылки. Ты читать умеешь хоть? Решение может быть только одно - выкинуть асинхронщину, а не добавлять ещё больше, как ты тащишь в пример. Единственное применение асинхронщины по назначению - однопоточные системы, где нет многопоточности и надо её как-то эмулировать. Собственно в крестах асинхронщина только для этого и используется.
> Ну пиздец.
Ты жопой не виляй. Есть проблема с зависимостями, от того что ты попытаешься перевести стрелки на кресты она не пропадёт.
> unstable.html#build-std-features
Чел, сборка std из исходников ничего не режет, -Zbuild-std:std соберёт полный std, а других вариантов нет. Разницу можно получить лишь собрав std с оптимизациями на размер, а не как оно собрано по умолчанию на скорость.
> Юзай гнутый x86_64-pc-windows-gnu
Проще вообще не использовать раст. В этом говне постоянно всё разваливается. На гну новая ебота будет из-за левого тулчейна, он ещё и порт libc наверняка потащит с собой.
Аноним 31/01/24 Срд 15:14:43 3028192 725
Аноним 31/01/24 Срд 15:24:09 3028206 726
>>3028076
>Вообще хер знает, зачем ему Box, Sync и Send.
>>3028192
Разобрался. Потому что трейт From<String> имплементирован только для Box<dyn Error> и Box<dyn Error + Send + Sync>. Поэтому подходит только второй вариант, если функцию предполагается использовать многопоточном окружении.
Аноним 31/01/24 Срд 15:42:19 3028234 727
>>3028102
>Не вижу решения ни одного пункта из приведённой ссылки.
В глаза ебёшься
>Still no async closures. Quite painful when you need to move stuff into it.


>Единственное применение асинхронщины по назначению
Нет. Рядовой пример: веб-сервер со 100500 медленными клиентами. На тредах ты отожрёшь слишком много ресурсов.

>Есть проблема с зависимостями
У раста нет проблемы с зависимостями. Можешь использовать хоть cmake и линковаться с чем угодно и как угодно.

>>3028102
>сборка std из исходников ничего не режет
ну, используй prefer-dynamic, чо.
Аноним 31/01/24 Срд 16:05:33 3028307 728
>>3028234
>Рядовой пример: веб-сервер со 100500 медленными клиентами. На тредах ты отожрёшь слишком много ресурсов.
Для защиты от ддоса ставят прокси.
Асинхронная параша в виде корутин - это медленное говно, просто мода сейчас такая, все его форсят. Когда-то все надрачивали на ооп и наворачивали абстрактные фабрики абстрактных фабрик, сейчас бесятся с асинками, это пройдет. Для хай перфоманс задач быстрее всего работает, внезапно, однопоточный сервер, который просто ставит вызовы в очередь io_uring.
Аноним 31/01/24 Срд 16:21:41 3028346 729
>>3028234
> На тредах ты отожрёшь слишком много ресурсов.
Сразу видно что ты не умеешь в многопоточность, вот такие дауны и лепят потом тормозящее говно на асинхронности.
> prefer-dynamic
Работает только под линуксом.
Аноним 31/01/24 Срд 18:06:49 3028504 730
>>3028307
>Для защиты от ддоса ставят прокси.
Сразу видно, что ты не потратил 5 лет жизни на администрирование хостинга. Сервер может быть какой угодно: pop3/imap, smtp, ftp. А ещё может случиться медленная отдача от сервера БД, где асинхрон тоже не помешает.

>Асинхронная параша в виде корутин
Это универсальное кроссплатформенное говно, которое работает с любым медленным ио.

>io_uring
>Работает только под линуксом.


>>3028346
>Сразу видно что ты не умеешь в многопоточность
Ебать, а ты у мамы умелец, да? Ну, сходи, скушай блинчик.
Аноним 31/01/24 Срд 21:33:39 3028876 731
>>3028000
>а. проблема leftpad
Что за проблема?

>3. Реализацию async
Что там не так?
Аноним 01/02/24 Чтв 00:31:13 3029032 732
Тут в соседней палате предатель, что думаете?
>>3017573 →
Аноним 01/02/24 Чтв 01:46:38 3029075 733
>>3029032
Все правильно сказал. Макросы - это пиздец, каждый первый автор изобретает свой язык. Crates.io - тупо список функций, который в нормальных языках и так показывает в иде, еще полтора примера, которые в 95% устаревшие и не компилируются. На каждую мелочь приходится гуглить примеры и лазить по гитам с исходниками. Каждый мудак обязательно пытается высрать декларативный код на шаблонах, хоть там задача на две строки.
Я бы посоветовал тому анону попробовать сишарп, а не нырять в говно.
Аноним 01/02/24 Чтв 08:12:47 3029117 734
>>3029032
Ничего нового он не сказал, основная претензия по вакансиям.
Поест говна какое-то время, потом встретит нормальную вакансию на расте и перекатится обратно.
А вот это
>клепают БПЛА
уже интересно. Также интересно, на чём пишут софт для дронов уважаемые западные партнёры.
Аноним 01/02/24 Чтв 11:08:23 3029262 735
Перекатите тред ебанаты
Аноним 01/02/24 Чтв 17:05:23 3030087 736
>>3029262
Популярнее от этого тред не станет.
Аноним 01/02/24 Чтв 17:40:27 3030158 737
>>3030087
мне неудобно его искать
Аноним 01/02/24 Чтв 17:43:39 3030162 738
>>3030158
Зумеры должны были уже изобрести закладки для ссылок.
Аноним 01/02/24 Чтв 18:11:42 3030244 739
Аноним 01/02/24 Чтв 18:27:55 3030272 740
>>3029262
Пидорасты стыдятся этого говна. Да и вообще в РФ запрещена пропаганда гомосексуализма, ОПа посадят же.
Аноним 01/02/24 Чтв 18:39:23 3030289 741
>>3030244
Тогда тяжелый случай.
Аноним 01/02/24 Чтв 18:45:03 3030300 742
Аноним 01/02/24 Чтв 19:07:50 3030347 743
>>3030300
Чел разбирается в энергетике, экономике, астрофизике и программировании. Это абсолютно точно не бумер-шизик, ага.
Аноним 01/02/24 Чтв 19:33:22 3030402 744
>>3030300
Да похуй, его будут только в облаке использовать. Как до винды доберётся, так и приходите.
Аноним 02/02/24 Птн 01:49:22 3030909 745
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов