Сохранен 709
https://2ch.hk/pr/res/3030908.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Rust #30 /rust/

 Аноним 02/02/24 Птн 01:48:52 #1 №3030908 
изображение.png
Добро пожаловать в тред гарантий, обещаний, владения, заимствования и тайных знаков

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

Предыдущий: >>2923611 (OP)
Аноним 02/02/24 Птн 01:50:58 #2 №3030911 
C++ лучше чем раст.
Аноним 02/02/24 Птн 01:55:23 #3 №3030913 
>>3030911
Молодец, двже по ночам дежуришь
Аноним 02/02/24 Птн 01:59:07 #4 №3030915 
изображение.png
Кстати из предыдущего треда, там довольно забавную сигнатуру кто-то высрал. На сколько я понял это нужно чтобы в трейт добавить синхронный метод, где-то когда-то мелькала новость что собирались завести поддержку async в трейтах, чтобы не костыльть сторонним крейтом, кому-то попадалось это на глаза?
А вообще это боль, особенно если что-то с лайфтаймами, странно что до сих пор не завезли
Аноним 02/02/24 Птн 02:44:05 #5 №3030942 
>>3030913
Но он прав.
Каждый раз, когда вижу эту тему, бегу в Википедию, поттому что не различаю ваши Rust и Ruby, смотрю на синтаксис и охуеваю.
Аноним 02/02/24 Птн 02:45:20 #6 №3030943 
>>3030915
>забавную сигнатуру кто-то высрал

Не надо искать смысл там, где его нет. У него кошка по клавиатуре пробежала, а ты принял это за программу.
Аноним 02/02/24 Птн 03:36:25 #7 №3030948 
>>3030908 (OP)
Этот язык надо было назвать unwrap.
Аноним 02/02/24 Птн 03:37:39 #8 №3030949 
Screenshot22.png
>>3030915
Не поленился для тебя распаковать троллинг
Аноним 02/02/24 Птн 03:39:08 #9 №3030950 
>>3030948
>grep unwrap
пофиксил
Аноним 02/02/24 Птн 03:58:27 #10 №3030952 
>>3030942
Но ведь если ты не понимаешь что это, для чего оно нужно, то почему оно так выглядит ты тоже не сможешь понять. Альтернативы нет.
Аноним 02/02/24 Птн 04:15:17 #11 №3030959 
Спасибо за критику, тоже вдохновился всеми этим постами про лучший раст, но увидел что он не очень то и хорошо для меня подходит. Читаемость кода для меня важна, да и макросы то еще недооцененное зло.
Спасибо за сэкономленое время.
Аноним 02/02/24 Птн 04:31:23 #12 №3030962 
>>3030959
>не хочу не буду
Да похуй мне, щенок
Аноним 02/02/24 Птн 09:04:35 #13 №3031030 
>>3030942
Ну оно и понятно, ты же глупый ригидный скуф, которого как в универе научили писать на плюсах он так и серит везде ими. У тебя уже мозг забыл как это - учиться новому. Даже руби от раста отличить не можешь.
Аноним 02/02/24 Птн 11:02:27 #14 №3031158 
>>3031030
>руби от раста отличить не можешь
Сомнительные по необходимости знания.
Аноним 02/02/24 Птн 11:50:29 #15 №3031229 
>>3031158
Это нормально, скуф
Все кроме того что ты уже знаешь - нинужно и сомнительно. Так оно обычно и начинается.
Аноним 02/02/24 Птн 12:12:28 #16 №3031260 
>>3031229
Ты бы еще перл и делфи принес, зумерок. Нашел чем гордиться.
Аноним 02/02/24 Птн 13:01:26 #17 №3031333 
>>3030915
Это и есть размотка функции трейта, аннотированного async_trait
Аноним 02/02/24 Птн 13:52:17 #18 №3031411 
>>3031260
>и делфи
Что не так?
Аноним 02/02/24 Птн 14:39:35 #19 №3031518 
>>3031333
Вот, я и говорю как-то собирались избавить нас от этого костыля
Аноним 02/02/24 Птн 14:41:10 #20 №3031528 
>>3030942
Дело не в том прав или нет, а в том что тред не успел толком появится и уже он тут как тут, сейчас чуть ниже найдет крейт с говнокодом и будет сюда постить или запостит то что макрос сгенерировал и будет жаловаться на синтаксис.
Аноним 02/02/24 Птн 14:58:09 #21 №3031596 
А что это нельзя даже 2* 2.0 сделать? Или 4.5 -2? Неужели и тут небезопасная операция?
Аноним 02/02/24 Птн 14:59:21 #22 №3031601 
>>3031260
>perl
Очередной неосилятор.
Аноним 02/02/24 Птн 16:24:17 #23 №3031750 
>>3031518
Так они и избавляют, в самой последней версии вон залили изначальную поддержку async в трейтаз.
Аноним 02/02/24 Птн 16:43:08 #24 №3031774 
>>3031750
Ну наконец-то запилили
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
Аноним 02/02/24 Птн 16:45:09 #25 №3031779 
>>3031596
Приводи всё к одному типу f32 или f64, операции с разными типами нельзя проводить
Аноним 02/02/24 Птн 16:52:10 #26 №3031797 
Ваши прогнозы, когда на расте будет нормальная экосистема без макакинга с сдиранием репозитории, которые делали 1.5 пидораса?
Аноним 02/02/24 Птн 17:02:43 #27 №3031816 
848.png
Кто сказал перл?!
Аноним 02/02/24 Птн 17:16:21 #28 №3031853 
>>3031260
скуф даже сравнить нормально не может, давай ещё кобол сравни с рубями
Аноним 02/02/24 Птн 18:03:59 #29 №3031932 
>>3031596
2.0*2.0 или 4.5-2.0 пиши
Аноним 02/02/24 Птн 20:34:31 #30 №3032123 
>>3031797
Когда за какой-нибудь фреймворк или за сам язык возьментся кто-нибудь из FAANG, а не нищая мозила и трапики
Аноним 02/02/24 Птн 20:50:38 #31 №3032151 
>>3032123
боже упаси
а что тебе не нравится? раст охуенен и без паршивых фаангов
Аноним 02/02/24 Птн 20:56:03 #32 №3032168 
>>3032151
Но на нем нихуя же нету!
Аноним 02/02/24 Птн 21:03:29 #33 №3032191 
>>3032168
прямо как и на си.
И?
вопросы?
Аноним 02/02/24 Птн 21:10:20 #34 №3032202 
17056065261990.png
>>3032191
Но на си дохуя всего написано. А что написано на расте???
Аноним 02/02/24 Птн 21:27:26 #35 №3032231 
>>3032123
Дак раст итак сейчас трогают всякие хуйавеи, амазоны и мелкомягкие
Аноним 02/02/24 Птн 21:45:54 #36 №3032270 
>>3032151
>а что тебе не нравится? раст охуенен и без паршивых фаангов
Проблема в том что дохуя библиотек, которые поддерживаются васянами и на часть из них давно положили хуй, ситуация прям как с руби
Аноним 02/02/24 Птн 22:43:03 #37 №3032333 
>>3032270
Как эта же проблема решена в го или сишечке?
Аноним 02/02/24 Птн 22:58:43 #38 №3032346 
>>3031932
Ха ха, язык в котором нельзя целое число умножить на число с плавающей запятой.
Пиздец.
Аноним 02/02/24 Птн 23:42:11 #39 №3032416 
>>3032346
В крестах тоже нельзя, о чем ты? Там просто число без спроса приводится к нужному типу.
Аноним 02/02/24 Птн 23:56:15 #40 №3032444 
>>3032416
>Там просто число без спроса приводится к нужному типу.

Так это не в крестах. Это CPU сначала приводит тип к плавающей запятой, а затем уже затем производится арифметическую операцию. Компилятор просто это прячет.
Аноним 03/02/24 Суб 00:02:34 #41 №3032448 
>>3032333
>го
Гугл

>сишечке
Никак, но на нём много всего написано что будут поддерживать ещё долгие годы
Аноним 03/02/24 Суб 00:04:23 #42 №3032449 
>>3032346
И что ты пытаешься этим сказать?
Вот и пришёл этот шиз в тред похоже
Аноним 03/02/24 Суб 01:03:55 #43 №3032481 
image.png
>>3031797
Лучшее что случиться, это займет какую-то нишу, например как котлин мобилы, или го микросервисы, будет очередным языком для перделки.
Но в реале, любой подобный язык, который будет выпущен под крупным финансированием и у которого будет лучше читаемость кода и скорость написания, обгонит раст.

Просто посмотри как можно легко работу с ошибками и нуллами в том же зиге. И как скоупы памяти и деферы, намного проще выглядят костылей владения и лайфтаймов и как легко выглядит кодогенерация вместо макросов, как-будто рефлексия.
Аноним 03/02/24 Суб 01:29:55 #44 №3032497 
>>3032481
Тоже вырвиглазное говно, так что хуй знает.
Аноним 03/02/24 Суб 01:36:01 #45 №3032500 
>>3032481
>зиге
Те же яйца только в профиль, чуть исправили ошибки раста, но нахуевертили своего всратого синтаксиса
Аноним 03/02/24 Суб 01:39:27 #46 №3032502 
>>3032497
Для питонорожденных есть моджо.
Но все они без крупной поддержки. Хотя я офигел что оборот зига полмиллиона долларов в год. Фонд раста публикует расходы, как они кормятся?
Аноним 03/02/24 Суб 01:41:47 #47 №3032504 
>>3032497
>>3032500
Мне срать на зиг, я просто как пример привел, что можно лучше.
Аноним 03/02/24 Суб 01:44:21 #48 №3032505 
>>3032504
> что можно лучше.
Можно, но это далеко не зиг, там похоже такие же трансы пишут
Аноним 03/02/24 Суб 10:08:44 #49 №3032647 
>>3032448
>Гугл
Что гугл? Любой шаг в сторону от веба и там такие же васянские пакеты. Да ещё и хостится это всё где попало, в любой момент можно устроить новый leftpad - насколько я понял, бегло погуглив, гугл не имеет репозитория для го. А с crates.io так просто не удалишь, например.

>на нём много всего написано что будут поддерживать ещё долгие годы
Кто будет поддерживать и как? Репозитория-то нет. Я тебе скажу, как: корпорация просто берёт кусок васянской либы и включает в свой проект методом Ctrl+C - Ctrl+V и там её поддерживает, периодически высирая изменения для gpl либ в виде архива в разделе corpsite.com/opensource/.
Аноним 03/02/24 Суб 10:32:07 #50 №3032656 
Screenshot from 2024-02-03 11-30-39-1.webp
>>3032502
>оборот зига полмиллиона долларов в год
Аноним 03/02/24 Суб 13:39:53 #51 №3032810 
>>3032656
Что мы должны понять исходя из информации предоставленной на этом графике?
Аноним 03/02/24 Суб 13:43:45 #52 №3032811 
>>3032810
Что пидоРастам платят меньше чем ГОвночистам или перлам, например. Отсюда делаем вывод кто нужнее на рынке труда.
Аноним 03/02/24 Суб 14:04:32 #53 №3032838 
>>3032811
Брехня! Мне платят ровно те же нихуя, что и всем остальным в этом ИТТ треде.
Аноним 03/02/24 Суб 14:11:10 #54 №3032849 
>>3032838
Надо тогда собрать статистику по потёртым постам и банам на доске, так поймём на какой язык больше уходит модерских ресурсов - т.е. кто сжирает больше всех бюджет доски.
Аноним 03/02/24 Суб 14:12:09 #55 №3032851 
>>3032810
>оборот зига полмиллиона долларов в год
>ЗП зигуна 100к в год

Вывод очевиден: зиг пилят 5 разрабов на полную ставку от спонсора, остальные сосут писос за идею.
Аноним 03/02/24 Суб 14:27:50 #56 №3032870 
>>3032444
Нет, ты не прав. Не существует операции + над типами слева int и справа float. Все арифметические операции производятся над унарными типами. Компилятор добавляет неявных преобразований типов, пока типы не будут совпадать.
Это вообще проблема языка большая, что очень много вещей происходит без ведома пользователя.
Аноним 03/02/24 Суб 14:30:44 #57 №3032874 
>>3032851
Сколько попенсорсников сосет писос у раста? И сколько там уже заброшено либ?
Аноним 03/02/24 Суб 14:51:24 #58 №3032900 
>>3032870
В нормальных языках существует. Нет никаких проблем написать реализацию сложения двух чисел. Особенно если эти типы не надо конвертить и сложение можно выполнить при компиляции.
> Это вообще проблема языка большая, что очень много вещей происходит без ведома пользователя.
Ты лучше расскажи как раст в консольку пишет, нахуя он перекодирует текст из utf-8 в кодировку консольки, даже если не просишь. На той же винде можно просто попросить консольку выводить текст в utf-8 и консолька выведет его, но в расте всё равно идёт конвертация в wide string. Единственный способ в расте вывести utf-8 в виндовую консольку - дёрнуть через ансейф winapi.
Аноним 03/02/24 Суб 15:02:03 #59 №3032911 
>>3032900
> В нормальных языках существует. Нет никаких проблем написать реализацию сложения двух чисел. Особенно если эти типы не надо конвертить и сложение можно выполнить при компиляции.
Ни в каких не существует, ты не можешь складывать числа с плавающей точкой и целые типы без конвертаций, ты чё ебанутый?
Аноним 03/02/24 Суб 15:02:08 #60 №3032912 
>>3032870
Слева от знака присваивания.
Аноним 03/02/24 Суб 15:07:43 #61 №3032919 
1562482956181.png
>>3032911
А как насчёт пикрилейтеда? Вы сосем ебанулись от долбёжки в сраку? Даже на уровне ассемблера эта операция валидна. Что за театр абсурда?
Аноним 03/02/24 Суб 15:16:33 #62 №3032925 
>>3032919
На ассемблере невалидно. Там вставляется инструкция https://www.felixcloutier.com/x86/cbw:cwde:cdqe

Это если про х86 и не углубляться.
Аноним 03/02/24 Суб 15:17:53 #63 №3032927 
>>3032919
Супер безопасность же, зато есть затенение переменной, что может привести к такой неуловимой логической ошибке, что ub покажется сказкой.
Аноним 03/02/24 Суб 15:31:48 #64 №3032937 
1687292510109.png
1660463043695.png
>>3032925
Покажешь её в расте? Даже в дебаге без оптимизаций там просто 2, т.е. он при компиляции посчитал 1 + 1 при одинаковых типах.
При этом u8 в расте занимает весь 32-битный регистр, т.е. там даже в теории не может быть сдвига знакового бита, как ты уверяешь.
Аноним 03/02/24 Суб 15:35:55 #65 №3032939 
>>3032919
У тебя запрещены имплисит касты, что не так?
Аноним 03/02/24 Суб 16:01:21 #66 №3032962 
1603317531831.png
1572211869580.png
1585002779902.png
>>3032925
> Там вставляется инструкция
Пикрилейтеды из сишки, всё ещё не вижу чтоб байт куда-то конвертировался отдельной инструкцией. Вот с float есть конверсия.
Аноним 03/02/24 Суб 16:03:58 #67 №3032967 
https://en.wikipedia.org/wiki/ATS_(programming_language)
>By using theorem proving and strict type checking, the compiler can detect and prove that its implemented functions are not susceptible to bugs such as division by zero, memory leaks, buffer overflow, and other forms of memory corruption by verifying pointer arithmetic and reference counting before the program compiles. Additionally, by using the integrated theorem-proving system of ATS (ATS/LF), the programmer may make use of static constructs that are intertwined with the operative code to prove that a function conforms to its specification.
Ну и чем раст лучше?
Аноним 03/02/24 Суб 16:16:07 #68 №3032984 
>>3032962
>всё ещё не вижу чтоб байт куда-то конвертировался отдельной инструкцией
movsx
Аноним 03/02/24 Суб 16:19:00 #69 №3032988 
>>3032937
u8 занимает регистр? Тогда очевидно конверсия тут не нужна. Именно поэтому.
Аноним 03/02/24 Суб 16:19:03 #70 №3032989 
>>3032984
Так это инструкция чтения в регистр. Я сильно сомневаюсь что есть разница между обычным mov по задержке.
Аноним 03/02/24 Суб 16:19:27 #71 №3032990 
>>3032919
Опенсорс же. Если не нравится, сделай МР. Здесь даже систему типов не надо усложнять. Тебя либо компетентно обоссут, либо даже примут.
Аноним 03/02/24 Суб 16:21:23 #72 №3032993 
>>3032989
Это перенос значения с расширением. Значения разной размерности в ассемблере складывать нельзя.
Аноним 03/02/24 Суб 16:25:17 #73 №3033001 
>>3032962
Ты троллишь?
https://sysprog.ru/post/komandy-movsx-i-movzx
Аноним 03/02/24 Суб 16:46:10 #74 №3033029 
>>3032993
> разной размерности
Самое смешное что это только в крестах она разная, у раста там просто mov, а u8 хранится в 32 битах. В контексте х86 уже обсер с этим оправданием, там одинаковые значения с идентичными инструкциями.
Аноним 03/02/24 Суб 20:57:56 #75 №3033396 
>>3033029
Это очень частный случай, который можно подпереть таким костылём:
Если примитивное число меньшей размерности вступает в арифметические отношения с примитивным числом большей размерности и тип результата задан явно как тип соответствующий типу числа большей размерности, то автоматически кастовать число меньшей размерности к большей.
Хз, может когда-нибудь и сделают.
Аноним 03/02/24 Суб 21:07:56 #76 №3033408 
>>3033396
В плане костыль, в крестах так и работает
Аноним 04/02/24 Вск 03:25:51 #77 №3033747 
>>3033396
Забытые технологии древних.
Там перегрузку функций то не осилили. А это просто приписать постфикс к функции.
Аноним 04/02/24 Вск 03:30:33 #78 №3033749 
>>3033396
Примитивное число? Это ты так целые обозвал?
Аноним 04/02/24 Вск 03:31:46 #79 №3033750 
>>3033747
Хех. Вижу человека который копался в компиляторах.
Аноним 04/02/24 Вск 04:04:30 #80 №3033759 
>>3030347 →
>Чел разбирается в энергетике, экономике, астрофизике и программировании. Это абсолютно точно не бумер-шизик, ага.
Хрюкни, пидор. Финка все помнит и ждет.
Аноним 04/02/24 Вск 04:05:33 #81 №3033760 
>>3030402 →
>Да похуй, его будут только в облаке использовать. Как до винды доберётся, так и приходите.
У меня для тебя плохие новости - винда уже переезжает в облако.
Аноним 04/02/24 Вск 04:06:50 #82 №3033761 
>>3033759
>>3033760
Собственно, то о чем шла речь в предыдущем треде: https://blackpill.usite.pro/news/pederust_korporacija_microsoft_v_ocherednoj_raz_dokazyvaet_chto_oni_plokhie/2024-02-01-114
Аноним 04/02/24 Вск 05:39:17 #83 №3033777 
>>3033761
Там же первым реддит постом обоссали и в том треде тоже, но хомяки за бесплатно продолжают разносить фейл ссмщиков раста.
Аноним 04/02/24 Вск 07:02:16 #84 №3033793 
>>3032919
А почему случилось так, что у тебя целочисленные типы разной размерности?

Если допустить неявное приведение то в ситуации где выходной тип опущен, непонятно что хотел сказать программист в некоторой ситуации. То ли тебе u32 то ли u8. Это может быть симптомом какой-то проблемы в другом месте.

Приведи конкретный пример посмотреть.
Аноним 04/02/24 Вск 07:23:21 #85 №3033796 
>>3033747
>>3033750
Придется это скушать. Создатели языка решили что перегрузка функции затрудняет чтение кода, путает людей.

в IDE (в меньшей степени благодаря анализатору), при чтении коммитов, в текстовом редакторе, в документации,... you name it

Это один из значительного списка аргументов против перегрузки функций. Обсуждение тут https://users.rust-lang.org/t/why-rust-doesnt-have-function-overloading/80416/23

Самый смак что нашел приходит из C# https://learn.microsoft.com/en-us/dotnet/visual-basic/reference/language-specification/overload-resolution Статья-пушка.
Аноним 04/02/24 Вск 07:29:12 #86 №3033798 
>>3033796
Мислинк. Это для VB

Вот правила для C# (не такая пушка как для VB, но тоже полезно знать):

Improved overload candidates

Summary
The overload resolution rules have been updated in nearly every C# language update to improve the experience for programmers, making ambiguous invocations select the "obvious" choice. This has to be done carefully to preserve backward compatibility, but since we are usually resolving what would otherwise be error cases, these enhancements usually work out nicely.

- When a method group contains both instance and static members, we discard the instance members if invoked without an instance receiver or context, and discard the static members if invoked with an instance receiver.
- When there is no receiver, we include only static members in a static context, otherwise both static and instance members.
- When the receiver is ambiguously an instance or type due to a color-color situation, we include both.
- A static context, where an implicit this instance receiver cannot be used, includes the body of members where no this is defined, such as static members, as well as places where this cannot be used, such as field initializers and constructor-initializers.
- When a method group contains some generic methods whose type arguments do not satisfy their constraints, these members are removed from the candidate set.
- For a method group conversion, candidate methods whose return type doesn't match up with the delegate's return type are removed from the set.

Хочу такие правила в Rust (нет)
Аноним 04/02/24 Вск 07:34:18 #87 №3033800 
>>3033793
>Приведи конкретный пример посмотреть.
>Не язык говно, это вы плохо прогаете.

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

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

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

Чувак, чтобы ты понимал, они половина того что не успели впихнули в макросы и забили, потому как надо было релизиться, а ты сидишь сейчас и пытаешься с умным видом рассказать что это не яп сырой, а тот чел неправильный код пишет.
Аноним 04/02/24 Вск 07:39:32 #88 №3033801 
>>3033796
>>3033798
Сколько надо ума чтобы сравнивать неуправляемые язык с управляемым, да еще и с ГЦ? Ты не то чудо, которое в прошлом треде с котлином сравнивал?
Аноним 04/02/24 Вск 07:46:54 #89 №3033803 
>>3033798
Что там тебя напугало, там большая часть про статик поля. В раст давно классы завезли?

Я бы остерегался сравнивать раст с топ языками, там по фичастости шарп порвет твой сырой раст как тузик грелку.
Аноним 04/02/24 Вск 10:10:23 #90 №3033837 
>>3033803
>топ язык
>фичи
>шарп порвет
Откуда вы только беретесь
Аноним 04/02/24 Вск 10:42:37 #91 №3033859 
>>3033837
У котлина вообще свой статический DLS на базе языка, у всеми любимого раста даже дефолтных аргументов нет. Но зато есть затрах с опшенами и мегакостыльные пользовательские ошибки.
Аноним 04/02/24 Вск 11:29:19 #92 №3033888 
>>3033749
Примитивный числовой тип, f32/f64 туда же.
Аноним 04/02/24 Вск 11:35:10 #93 №3033892 
>>3033859
Ты о чем вообще дурачок? Опшены тебе не нравятся? Да мало ли что тебе не нравится.
Иди на котлине пиши и не еби серьезным дядям тут мозг.
Проблема макак Итт в том, что они почему-то думают что в их языке все реализовано правильно, следовательно в условном расте это должно быть тоже.
Хотя по факту это просто необучаемость и старческая ригидность мышления. Вы хотите чтобы вам было удобно, а язык от вас требует времени для изучения других концептуально вещей.
Вместо того, чтобы изучить язык, открыться для других идей, мы начинаем вонять что А ВОТ В СИ КОТЛИНЕ ЖАБЕ ЭТО ЕСТЬ ХАХА СОСИТЕ ОПШЕНЫ НИНУЖНЫ. Допустим оно все в расте есть. Так и зачем тогда вам он нужен? Ведь есть уже котлин.
Безусловно есть вещи которых в расте не хватает. Но серьезно хуесосить систему типов за то, что она не позволяет проводить операции над разными типами - нонсенс.
Аноним 04/02/24 Вск 11:38:48 #94 №3033895 
>>3033892
>когда чулки передавили кровоток
Аноним 04/02/24 Вск 11:49:23 #95 №3033900 
>>3033747
Опять шиз с перегрузками выполз
Аноним 04/02/24 Вск 11:53:48 #96 №3033903 
>>3033895
Вот и гринтекст пошёл
Аноним 04/02/24 Вск 12:34:30 #97 №3033924 
>>3033892
Я не пойму как вы накрутили рейтинг любимого языка, если на SO доля вопросов и сторонников раста стремиться к нулю.

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

Зачем качать макросы, чтобы не бойлерплейтить ошибки руками?

Как могут нравится древнейшие опшены, когда есть сахар с нуллабл типами? А эти не читаемые сигнатуры простых функций? Как это нравится может?

Серьезный дядя, сними чулки!
Аноним 04/02/24 Вск 12:40:37 #98 №3033926 
1562816415582.png
>>3033892
> не позволяет проводить операции над разными типами - нонсенс
Ну если тебе не нравится пример с интами, то что скажешь про Result и Option. Это же банально неудобное говно, когда тебе всё надо в Ok оборачивать, а разные Ок не кастуются друг в друга. Вот в крестах они оба умеют кастоваться из ок-типа, просто возвращаешь значение. И эксепшены тут можно использовать - можно даже не чекать Ок там или ошибка, при обращении оно скастуется к Ок, а ошибка кинет эксепшен. Это в расте мало того что надо прописывать unwrap, так ещё и нет возможности сделать что-то с паникой выше уровнем.
Аноним 04/02/24 Вск 12:57:19 #99 №3033944 
Screenshot from 2024-02-04 13-51-54.webp
>>3033924
>накрутили рейтинг любимого языка,
Это делается так: назови, какие языки знаешь, среди них выбери любимый. Раст на первом месте у тех, кто вообще знает раст, только и всего.

>Как строить АПИ без перегрузок.
>как вообще жить без GOTO

>Зачем качать макросы, чтобы не бойлерплейтить ошибки руками?
Чтобы сахару было больше, очевидно же. Посмотри на serde или cached, например.

>древнейшие опшены
Ты долбоёб, нулл ещё древнее, а
> сахар с нуллабл типами
это вынужденный костыль, когда у тебя уже есть куча легаси кода с нулл и надо как-то с ней жить. Что касается опшенов: в отличие от нуллбл костылей, это универсальный подход, который позволяет делать, например, как на картинке
Аноним 04/02/24 Вск 12:59:59 #100 №3033946 
>>3033926
>надо прописывать unwrap
Долбоёбушек, это сделано, чтобы при случае можно было все эти unwrap найти и нормально обработать, а не оставлять заряженное ружьишко, нацеленное на яйца, как вы, сишники, любите.
Аноним 04/02/24 Вск 13:01:48 #101 №3033949 
>>3033926
>раз в крестах есть то и в расте ДОЛЖНО быть
>будто если есть в плюсах — априори самое лучшее решение
Что и требовалось доказать.
Кому-то memcpy удобно руками вызывать и указатели складывать. Что теперь?

Кастовать опшены? охуеть вообще. Ты разберись пойди зачем они нужны и как их применять, почитай про option или error монады например. Ах да, тут же голову включать надо. Зачем? Лучше пойду проблююсь на двощах.

>>3033924
Твои наллбл типы это тот же опшен с сахаром
Я не очень понимаю тряски с перегрузками вообще. Способов заебашить апи тысячи. Этому лишь бы перегрузки писать. Почитай про трейты и дженерики.

Я пишу на скале. Там можно оверлодить функции. Но никто не будет заниматься раскидыванием этого кала, когда можно просто добавить инстанс тайпкласса или написать свой тайпкласс
Аноним 04/02/24 Вск 13:04:53 #102 №3033951 
>>3033888
Уже хотел было на тебя наехать, написал пост, разбивающий твои аргументы в пух и прах, но перед отправкой решил проверить и полез сюда - https://linasm.sourceforge.net/docs/instructions/fpu.php

Ну да, FPU поддерживает арифметические операции между целыми числами и числами с плавающей запятой. Во всяком случае на x86.
Аноним 04/02/24 Вск 13:09:38 #103 №3033952 
>>3033946
> нормально обработать
Нормально обработать - это вот эта >>3033944 лапша? Option кастануть к bool по какой причине нельзя?
>>3033949
> монады
Как только появится вменяемый синтаксис под это говно, так и приходи. Лапшу из монад и в крестовом optional можно сделать.
Аноним 04/02/24 Вск 13:19:04 #104 №3033960 
>>3033952
>Лапшу из монад и в крестовом optional можно сделать.
Монаду error с ручным закатом солнца и в ГО можно нужно делать
Аноним 04/02/24 Вск 13:20:40 #105 №3033961 
image.png
>>3033952
>Option кастануть к bool
Итить, ты ни хуя не понял, а. Это сразу распаковка значения из структуры напрямую в мэтчинге.
Аноним 04/02/24 Вск 14:05:08 #106 №3034026 
Кекаю с местных срачей про FP. За 2 месяца сказал команде переписать простенький сервис с переусложненного fp-говна на скале на простенький круд на джаве. Пофиксили все баги, разблокировали найм, удешевили поддержку и разработку, снизили риски ухода сотрудников. Брат жив и счастлив.

мимо-манагер
Аноним 04/02/24 Вск 14:13:33 #107 №3034034 
1681656339458.png
>>3033961
Да, я нихуя не понял зачем столько много синтаксического мусора.
Аноним 04/02/24 Вск 14:35:22 #108 №3034080 
>>3033924
>Как строить АПИ без перегрузок.
Никак, не пиши на нём апи и вообще лучше не пиши код

>Зачем качать макросы, чтобы не бойлерплейтить ошибки руками
>когда есть сахар с нуллабл типами
Как сказать что ты ничего кроме хэлоуворда на расте не писал, не говоря об этом прямо лол
Аноним 04/02/24 Вск 14:48:22 #109 №3034116 
>>3033801
Я сравниваю не синтаксис, а семантику. Это разные вещи.
>неуправляемые язык с управляемым
Тут получается что ты либо в M$ работаешь, и двачуешь на перекурах. Или кроме .net никогда ничего не видел. На будущее просто. Чтобы люди тебя понимали, что ты пишешь.

Как я уже писал, это цитаты с сайта где коммитеры в Rust отвечают на вопросы таких как мы с тобой. И они утверждают что есть проблемы с перегрузкой методов в трейтах, приводя в пример C# .

Вот я сейчас нагуглил С++ https://en.cppreference.com/w/cpp/language/overload_resolution В конце там табличка такая интересная, посмотри.
Аноним 04/02/24 Вск 14:51:15 #110 №3034125 
>>3034026
>манагер

хули ты тут забыл даун? иди анализируй бёрндаун чарт

>дебилы для простого круда накрутили монады функторы и прочие залупы
>нахуя?
>следовательно всё ФП плохое

ФП для других задач, простенькие круды писать на нём смысла нет. Круды вообще писать смысла нет. Это как на ассемблере писать сайт визитку
Аноним 04/02/24 Вск 15:04:06 #111 №3034146 
>>3034125
>иди анализируй бёрндаун чарт
кекнул, а ведь правда

>ФП для других задач, простенькие круды писать на нём смысла нет. Круды вообще писать смысла нет. Это как на ассемблере писать сайт визитку
Я знаю. Я люблю ФП, но не с позиции промышленного программирования, а академического. Написал, чтобы выбирающие ФП задумолись и не пихали его, куда не стоит. ведь один раз уже напихали
Аноним 04/02/24 Вск 15:09:40 #112 №3034153 
Screenshot 2024-02-04 at 1.08.34 PM.png
>>3034034
на расте мне код более понятен например, но я не писал на плюсах лет 10
распаковывать Optionals так нельзя, смысл в явной и элегантной обработке отсутствия значения в том числе, иначе опшеналы смысла не имеют
Аноним 04/02/24 Вск 15:09:42 #113 №3034154 
сочинение Почему мне нравится Rust. Вот разраб языка nikomatsakis, один из основателей, передумал о своем намерении убрать из раст ключевое слово mut под аргументами reddit'a. Где такое можно увидеть вообще, чтобы язык разрабатывался самими программистами, а не личным мнением фюрера? Каждую запятую так обсуждали, и на гитхабе, и в internals, даже на реддите.
https://old.reddit.com/r/rust/comments/25i544/babysteps_focusing_on_ownership_or_removing_let/
Аноним 04/02/24 Вск 15:16:04 #114 №3034167 
>>3034146
потому раст и не ФП язык;
вообще фп как дисциплина хорош тем, что оттуда можно понапиздить ништяков и немного улучшить императивную парашу чтобы меньше страдать (замыкания, некоторые монады (result, option например), паттерн матчинг, иммутабельность и прочее.
но макаки все равно будут дергать Option(x).value не ведая зачем оно вообще

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

сорян зря быканул на тебя, не в настроении сегодня
Аноним 04/02/24 Вск 15:16:52 #115 №3034171 
>>3034153
токио игнорьте, я просто в существующий код вставил сниппет, поленился
Аноним 04/02/24 Вск 15:22:13 #116 №3034185 
>>3034154
я люблю раст за
- хайп (это весело)
- комьюнити, это для меня значит много, можно и похоливарить, и пообщаться, и поучаствовать в совместном проекте just for fun
- за возможность писать быстрый код без гц не отстреливая себе очко, ибо основной альтернативой тут является только цпп (no go zone)

С растом я снова почувствовал себя как в свои 13 лет когда я на паскале ПРОСТО по фану без задней мысли писал вирусню и прочие решаторы уравнений. Последний раз от кодинга я полча лкайф именно тогда.

Годы гребли выбили из меня всю спесь и я превратился в раба энтерпрайза, раст в этом смысле освобождает
Аноним 04/02/24 Вск 17:11:29 #117 №3034435 
Screenshot from 2024-02-04 18-09-35.webp
>>3034034
Это не мусор, это сахар. Так ты можешь любой енум распаковать.
В том смысле, что Option и Result в расте работают на общих принципах, в отличие от null и nullable в других языках, которые приделаны сбоку.
Аноним 04/02/24 Вск 17:26:23 #118 №3034482 
изображение.png
>>3034034
Можно тоже самое сделать, в чём у тебя проблема?
Аноним 04/02/24 Вск 17:53:04 #119 №3034532 
>>3034482
Во-первых, есть if let. Как у тебя сопли из лямбд даже в джаваскрипте уже не пишут.
Во-вторых, пограничные случаи обычно проверяют вначале, чтобы не плодить лесенки из скобок. В том же сишарпе я бы сначала проверил if (a == null) и отвалился с ексепшеном, например. В расте я так сделать не могу.
Аноним 04/02/24 Вск 18:10:41 #120 №3034566 
>>3034532
> if let
Можно и его, есть разные варианты, я просто чаще так использую поскольку чаще нужно что-то получить из выражения и/или дальше что-то вызвать, а не печатать в консоль. Можно и match использовать, как в примере выше вообще размотать до конкретных значений. Короче варианты разные есть.

> Как у тебя сопли из лямбд даже в джаваскрипте уже не пишут.
В жс теперь сопли из "тегов" компонентов jsx пишут

>Во-вторых, пограничные случаи обычно проверяют вначале, чтобы не плодить лесенки из скобок.
Во-вторых всё зависит от того что тебе нужно, если надо просто проверить как ты привык в шарпе бери match, if let или вообще .is_some(). Если надо еще что-то бери методы которые есть в enum Option, там полно всякого на разные случаи жизни. Если у тебя руки из жопы и получаются лесенки из скобок или выглядит не так как в шарпе, то не бери эти методы.
Аноним 04/02/24 Вск 18:31:30 #121 №3034591 
>>3034435
> Это не мусор, это сахар.
У тебя хуита вместо сахара, если вместо простого чека опционала надо городить паттерн матчинг с нечитаемой лапшой из скобочек.
> в расте работают на общих принципах
> в других языках, которые приделаны сбоку
Тем не менее я не вижу в твоём коде этого. Ты чекаешь что в конкретном енуме лежит такой-то тип. Читающий код как должен понять с какой целью это делается? Никакими общими принципами даже и не пахнет. А для того чтобы поменять опционал на другой хотя бы на абсолютно идентичный самописный тебе надо переписывать код паттерн матчинга, потому что паттерн изменился, ведь ты чекал какую-то хуиту. Т.е. у тебя реализация этой срани лежит на конкретном типе, а не язык предоставляет инструмент. Такая же проблема, как и про то что писали тут раньше - надо разбирать типы на запчасти и собирать из них то что тебе надо, никакой консистенции в обработке ошибок, даже если брать Option/Result - нет единого способа проверить валидность значения в них. Даже дженерики не спасут, если ты захочешь чекнуть в одном месте их, потому что разные API у них.
>>3034482
Проблема всё в том же - вместо простого чека ты городишь костыли. Покажи как средствами языка выразить "если опционал имеет значение, то выполнить то-то", какие ещё мапы, блять.
Аноним 04/02/24 Вск 18:31:37 #122 №3034592 
>>3034482
>>3034532
>>3034566
о чем вы вообще спорите?



>>3034153 вот так пишите, зачем усложнять мэпами
Аноним 04/02/24 Вск 18:39:31 #123 №3034602 
>>3034591
эталонный долбоёб итт, боже мой

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

Другое дело что анон >>3034435 хуйню написал с вложенными опциями, так не принято делать, но от криворукости никто не застрахован.

>Проблема всё в том же - вместо простого чека ты городишь костыли.
>паттерн матчинг
>костыль

мужики и не в курсе

Уёбывай из треда, у тебя деградация головного мозга, расскажи нам ещё про то что лучше чем while(1) для лупов ещё не придумали, олень
Аноним 04/02/24 Вск 18:53:24 #124 №3034622 
>>3034167
В фп не пишу, но во время изучения в унике мы изучали его на примере Лиспа и очень понравилось. Это будто совсем другой способ делать привычные вещи, начинаешь по-другому мыслить.
В общем как упражнение для мозга заебись, а вот как в проде с ним работать - хуй знает. Чем большая макака понимает написанное - тем лучше.
Аноним 04/02/24 Вск 18:55:57 #125 №3034627 
Screenshot from 2024-02-04 19-54-19.webp
>>3034591

>>3034591
>чтобы поменять опционал на другой хотя бы на абсолютно идентичный самописный тебе надо переписывать код паттерн матчинга
См. пик. Многое изменилось, по-твоему?

>как средствами языка выразить "если опционал имеет значение, то выполнить то-то", какие ещё мапы, блять.
То, что я показал, это пример того, как можно работать с Option. А так, да сколько угодно - можно if let, можно чекнуть на is_some()/is_ok(), полно вариантов.
Аноним 04/02/24 Вск 19:00:27 #126 №3034635 
1673991796685.png
>>3034602
> чекай ифами
Покажи как чекнуть их средствами языка. Ты пиздишь про общие принципы, но почему нельзя сделать пикрилейтед в твоём расте?
>>3034627
> Многое изменилось, по-твоему?
Да, ты полез переписывать паттерн. Пикрилейтед сможешь повторить даже с дженериками?
Аноним 04/02/24 Вск 19:16:01 #127 №3034654 
>>3034592
Мы не спорим, а рассказываем вкатуну из шарпа про то какие варианты есть
Аноним 04/02/24 Вск 19:22:51 #128 №3034669 
Screenshot 2024-02-04 at 5.13.10 PM.png
>>3034635
тебе выше показали некоторые из средств языка, доступных для этого, о чём ты вообще? ЧТО ТЫ ОТ МЕНЯ ХОЧЕШЬ?

>общие принципы
про общие принципы говорил другой анон, но давай я попытаюсь тебе объяснить про них в любом случае, если твой узкий лоб тебе этого не позволяет погуглить и понять самостоятельно ты вообще программист? интересуешься чем-то кроме плюсов?:
общие принципы это про у нас есть условная монада option, она может быть либо some либо none, мы можем растягивать монаду через условный map столько - сколько нам захочется (если совсем просто) - результатом будет всё та же монада. Терминология в контексте раста не совсем правильна, но раст очевидно взял Option из ФП, так что пойдёт.

Вот тебе пример, как это работает (пикрил)

Несмотря на то, что мы мэпим None - у нас ничего не падает с null pointer error или другой парашей.

В твоём случае на плюсах это выглядело бы так: допустим нам надо обработать возможно нулловое значение дважды:

if a ? (( a + 1 ) ? a + 2 : option(0)) : option(0) //типа того
в расте или другом фп-inclined языке

a.map(|x| x+1 ).map(|x| x + 2)

Об этих принципах, почему-то неизвестных тебе, вероятнее всего говорил тот анон
Аноним 04/02/24 Вск 19:26:38 #129 №3034676 
>>3034591
>Проблема всё в том же - вместо простого чека ты городишь костыли. Покажи как средствами языка выразить "если опционал имеет значение, то выполнить то-то", какие ещё мапы, блять.
Тебе 3 разных варианта показали match, if let и map. Все 3 делают то что ты говоришь если есть значение, то выполняют что-то. Все это средства языка. Тебе надо напечатать значение из структуры в терминал или сделать таким же точно способом как в другом языке? Ты хочешь поныть что тут не так как ты привык? Я понять не могу тебя, если тебе надо доебаться, то есть множество других вещей до которых действительно можно доебаться
Аноним 04/02/24 Вск 19:28:55 #130 №3034678 
>>3034669
Двачаю, тоже не понимаю чего ему надо вынул бы хуй изо рта для начала
Аноним 04/02/24 Вск 19:29:10 #131 №3034679 
>>3034669
> пик
Даже не собираюсь твой высер читать, пока не покажешь как сделать чек как в крестах. То что у тебя для каждого типа свой чек не значит что в языке есть хоть какой-то функционал для этого. Вот и получается, что даже обработку ошибок не завезли, только какие-то костыли на енумах.
Аноним 04/02/24 Вск 19:47:54 #132 №3034711 
>>3034679
ой всё отъебись тупица, больше не буду тебя кормить, заебал ейбогу
Аноним 04/02/24 Вск 19:52:43 #133 №3034716 
>>3034679
> Даже не собираюсь твой высер читать
Он даже не читает, я думаю рациональнее ему и подобным им шизам не отвечать. Меньше кормишь, меньше пасутся. Тем более маркер виден "ря фсё ни так как в C/C++C/C#Cobol/JS/PHP”, пусть хуй сосёт в МБР треде
Аноним 04/02/24 Вск 19:59:32 #134 №3034733 
>>3034669
> в расте или другом фп-inclined языке
Ты сейчас пошутил или что? Потому что в крестах ты так же можешь сделать вермишель из монад:
> a.transform([](auto a) { return a + 1; }).transform([](auto a) { return a + 2; })
Аноним 04/02/24 Вск 20:16:02 #135 №3034768 
>>3034711
>>3034716
Т.е. я засчитываю победу крестов в контексте "общих принципов" работы с вложенными типами? Потому что всё что я увидел - пять способов использования монад для конкретного типа и ни одного примера именно изначального вопроса - проверки валидности вложенного значения средствами языка. Только сплошные маневрирования в стиле "а давайте вместо проверки кинем лямбду", заебись решение нашли просто перепрыгнув задачу. И это при том что в самом начале я нахуй посылал с мапами, которые вообще к сути вопроса не имеют отношения. Особенно забавно что после того как аргументов не осталось просто скатились в траллинг.
Аноним 04/02/24 Вск 20:48:11 #136 №3034822 
изображение.png
>>3031750
Как же это охуенно, что наконец-то запилили, столько лет ждали. Завтра повыкидываю нахуй все костыли #[async_trait]
Аноним 04/02/24 Вск 20:50:57 #137 №3034824 
>>3034822
Я надеюсь ты пишешь для веба, а иначе придушим всем тредом за такое.
Аноним 04/02/24 Вск 20:53:40 #138 №3034828 
>>3034034
В таком синтаксисе можно забыть проверить на отсутствие значения. В Расте так тоже можно, но не из коробки. И зачем?
Аноним 04/02/24 Вск 20:56:02 #139 №3034831 
>>3034822
Это Найтли Или что? Скинь ссылку на апдейт
Аноним 04/02/24 Вск 20:57:35 #140 №3034833 
>>3034831
Это релиз 1.75
https://doc.rust-lang.org/nightly/releases.html#version-1750-2023-12-28
Аноним 04/02/24 Вск 20:57:39 #141 №3034834 
image.png
>>3034669
В расте вот так. И, заметь, в расте я точно знаю, что пришло опциональное значение, которое обязательно нужно проверить.
А ты со своими плюсами взвёл курок и лихо заправил револьвер в штаны с претензией "А вы так могёте?" Слава Б-гу, нет.
Аноним 04/02/24 Вск 20:59:44 #142 №3034836 
>>3034833
А бля не та ссылка, вот эта на стейбл https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
Аноним 04/02/24 Вск 21:12:11 #143 №3034865 
>>3034834
> В расте вот так.
Траллишь тупостью уже? Зачем ты три раза один тип сделал?
Аноним 04/02/24 Вск 21:33:05 #144 №3034908 
Screenshot from 2024-02-04 22-31-40.webp
>>3034865
Ну не 3, а 2. Конечно, недоработка с моей стороны в плане наглядности, но вот то, что ты в счёте до 3х путаешься, уже диагноз.
Ну вот те ещё один тип.
Аноним 04/02/24 Вск 21:35:02 #145 №3034913 
Не кормите крестового уебана плиз
Аноним 04/02/24 Вск 21:37:02 #146 №3034917 
>>3034908
Ты реально траллишь. Ещё раз - используй разные типы монад, а не вложенных типов. Ты хоть видел что я тебе показывал? Речь про использование Option/Result в одном месте, кого вообще ебёт какой тип в них.
Аноним 04/02/24 Вск 21:50:45 #147 №3034945 
>>3034917
А, понял, о чём ты. Что ты скармливаешь Oprion, Result, просто null и непосредственно значение одной функции и "она просто работает".
Дак это ж то самое говно, которое отличает низкоуровневые языки от высокоуровневых. На ассемблере можно чары друг на друга умножать - плюсовики посрамлены и унижены. Раст просто выше уровень и не даёт тебе насрать себе же в тапок, смирись с этим.

Проблема-то в чём? Что если у тебя изменился Option на Result и надо полазить по коду и поменять распаковку? Ну да, где-то придётся, охуеть, какая проблема. А если распаковка через .map(), то даже и не придётся.
Аноним 04/02/24 Вск 22:39:13 #148 №3035045 
>>3034945
> Проблема-то в чём?
В том что у тебя нет "общих принципов" для работы с монадами. На этом все разговоры можно закончить. А ведь после этого я могу доебаться до того что bind не завезли, хотя это одна из базовых вещей в монаде.
> монады дам
> функциональный синтаксис и инструменты для работы с ними не дам
Даже в джава-говне до такого распиздяйства не додумались.
Аноним 04/02/24 Вск 22:44:12 #149 №3035056 
>>3034945
Не корми шизика, представь что это то самое злое существо из книги Алена Карра, чем меньше ты его кормишь, тем быстрее оно сдохнет
Аноним 04/02/24 Вск 23:38:10 #150 №3035161 
Есть and_then, который хаскельный bind/скала flatMap, шизик ебанутый, жри говно
Аноним 05/02/24 Пнд 00:12:10 #151 №3035215 
>>3035161
Ты совсем припизднутый? В расте в каждой монаде надо руками биндить. А в хаскеле бинд на уровне языка реализован, как и положено.
Аноним 05/02/24 Пнд 00:36:06 #152 №3035246 
>>3035161
Хватит позорить растанов, из-за тебя он продолжает тут траллить, потому что с каждым разом ты всё тупее и тупее перлы выдаёшь. Наличие монадных операций ещё не делает тип монадой, с таким же успехом можно на ГО написать ручные операции и сказать что это теперь монада. По дефолту у енумов нет никаких монадных свойств, а то что ты пытаешься выдать за монады - пять ручных типов на всю std.
Аноним 05/02/24 Пнд 00:43:28 #153 №3035251 
>>3035246
Че вообще такое эти ваши монады, заебете. Объясните просто
Аноним 05/02/24 Пнд 00:55:36 #154 №3035257 
>>3035246
Ну давай разберем все тобой по частям тут написаное.
Какими свойствами должна обладать монада?
Left identity, right identity и associativity. Можешь погуглить что это такое.

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

На го можно тоже написать монаду наверное. Хоть на небе, хоть на Аллахе. Удивлен? В этом нет ничего магического.

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

Енам тут при чем вообще?

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

Другое дело что раст не энфорсит тебя знать про монады и писать код в таком стиле. Он просто взял лучшее/практичное из мира фп. В этом был мой тейк.

>>3035215
Кыш отсюда. Что ты несешь вообще.
Аноним 05/02/24 Пнд 01:02:36 #155 №3035263 
>>3035251
Паттерн делающий возможной композицию функций которые возвращают обернутые значения. В расте эту функцию выполняют option и result, их можно чейнить (композировать) и не ссать что отстрелишь себе очко.
Аноним 05/02/24 Пнд 01:05:10 #156 №3035266 
Мы бы про монадическую обработку нуллов и не начинали бы, есть темы поважнее. Просто еблан с крестов пришел и начал спрашивать за Some
Аноним 05/02/24 Пнд 01:08:06 #157 №3035271 
>>3035257
>Что в итоге сказать хотел, брат? Ты давай сам лучше не тупи и иди образовывайся прежде чем срать в треде.
>Другое дело что раст не энфорсит тебя знать про монады и писать код в таком стиле. Он просто взял лучшее/практичное из мира фп. В этом был мой тейк.
Раунд!
Аноним 05/02/24 Пнд 01:42:48 #158 №3035307 
>>3030908 (OP)
Меня смущает слово "системное".

Покажите ключи компилятора.
Есть ли аналог ключа -nostdlib ?
Аноним 05/02/24 Пнд 02:02:27 #159 №3035333 
>>3035246
> с таким же успехом можно на ГО написать ручные операции и сказать что это теперь монада
Это и есть монада, просто расписываешь всё вручную.
>>3035257
>он просто взял лучшее/практичное из мира фп.
Взял, да не добрал. Получилось почти как в го: вроде есть, но в таком виде, что нахуй бы нужно.
Аноним 05/02/24 Пнд 02:09:07 #160 №3035339 
>>3035307
>Есть ли аналог ключа -nostdlib ?
https://docs.rust-embedded.org/book/intro/no-std.html
Аноним 05/02/24 Пнд 02:17:22 #161 №3035351 
>>3035339
Bare Metal Environments

Вопрос снят. Спасибо. Да, его можно использоваь для системного программирования.

А с чем можно линковать? Он умеет в ELF объектиники?
Аноним 05/02/24 Пнд 07:26:19 #162 №3035465 
>>3035351
>А с чем можно линковать?
С си естественно https://doc.rust-lang.org/std/keyword.extern.html В теории можно и с си ++ через стороннюю либу https://cxx.rs/

>Он умеет в ELF объектиники?
Он умеет в LLVM объектники. Потому что сам компилятор Rust на базе LLVM.
Аноним 05/02/24 Пнд 10:48:03 #163 №3035651 
>>3035257
> Какими свойствами должна обладать монада?
По классике:
- монадный тип
- юнит-операция
- бинд-операция
Ну и то что ты написал, для полного соответствия определению монады.
Вообще по факту в расте функциональщины столько же, сколько и в ванильной джаве или крестах, там тоже есть ручные типы-монады с юнит/бинд-операциями. Разница лишь в том что в расте есть паттерн-матчинг, это единственное отличие.
> Енам тут при чем вообще?
При том что в фп-языках ты можешь монадные операции над любым типом выполнять, не надо вручную их реализовывать для каждого типа, потому что они часть языка. В расте нет монад, если убрать ручные реализации из std.
Аноним 05/02/24 Пнд 12:44:39 #164 №3035748 
>>3035651
>По классике:
>- монадный тип
>- юнит-операция
>- бинд-операция
Что ты высрал тут, тупица? Из кодов выложенных анонами выше непонятно что все три свойства уже удовлетворены? Или ты пиздишь тут типа "ну да я в теме, прочитал на википедии статью и щас надо показать что я ШАРЮ ЗА МОНАДЫ" ебанько.

За них шарить не надо, надо ими пользоватсья а расте ебя в рот теорию категорий, потому что ФП говно по факту для software engineering писать на ЧИСТОМ ФП перформант код - ад, хайрить тяжело, ВСЕГДА будут люди умнее тебя, которые специально усложняют код по фану и потом съебут в закат, потом приходится писать всё на джаве лол с нуля, learning curve ещё выше чем в расте, я потратил около полугода когда изучал скалу чтобы разобраться во всех этих функторах и семигруппах в котах в контексте их применения, в расте я начал писать код через 2-3 дня ленивого чтения растбука

>Ну и то что ты написал, для полного соответствия определению монады.

то что я написал это MONAD LAWS, а не просто properties; без них твоя (семантически) монадка полупокерская будет просто тупым синтаксическим сахаром который нихуя не делает.

Ручные монады или нет - до пизды абсолютно как они интегрированы в язык, если они решают проблемы, мы в раст треде и обсуждаем раст, а не "почему в хачкеле так а в расте нет?? СОСО!!", "А В КРИСТАХ-ДРИСТАХ Я МОГУ САМ У СЕБЯ СОСНУТЬ НЕ ЛОМАЯ СВОИ РЕБРА!!! КАКАЯ ГИБКОСТЬ!".

>в фп-языках ты можешь монадные операции над любым типом выполнять
И? Раст ФП язык? Вот пиздуй отсюда тогда, мы не об этом спорим вообще тут. Перечитай предыдущий параграф, мы не обсужадем ФП тут, мы обсуждаем РАСТ. И его monadic-style error and null handling.

>в расте функциональщины столько же, сколько и в ванильной джаве или крестах
А ещё в джаве и крестах есть нулы и можно на эти монады хуй забить и брать в рот у вложенных if x == null


Короче, чё ты доебался?
Мы (растаны) не будем требовать у тебя тут извинений или включение съебатора потому что по незнанке не шкварятся (а за фп и монады ты очевидно шаришь так же как и я за политику), простим тебя просто без задней мысли. Но с одним условием: харош тут пиздеть и качать лодку по левым топикам которых не знаешь и которые не имеют отношения к теме. Енамы какие-то, автоматические бинлды, вообще ахуеть.

Спроси если есть вопросы лучше - аноны пояснять тебе.


соре всем анонам итт за монадосрач, я кончил, давайте лучше за раст



Аноним 05/02/24 Пнд 13:56:36 #165 №3035802 
>>3034822
Автохуй, пока в токио похоже не готово, в tokio::spawn не передать нормально такое, говорит давай мне огород из impl Future

>>3034824
>Я надеюсь ты пишешь для веба
Да, там почти везде нужна асинхронность
Аноним 05/02/24 Пнд 14:19:56 #166 №3035840 
Ебаный рот этого казино! В токио пока не будут добавлять поддержку асинхронных трейтов из-за обратной совместимости.
https://github.com/tokio-rs/tokio/issues/6173#issuecomment-1829561084
Аноним 05/02/24 Пнд 14:25:08 #167 №3035843 
>>3034822
Оно не готово ещё, там подробно расписано что работает, а что нет. Но начало положено.
Аноним 05/02/24 Пнд 15:37:22 #168 №3035926 
>>3035802
Открою тебе страшный секрет: асинхронность нахуй не нужна. Она нужна только в кривом джаваскрипте, где всего один поток. Обычный пул потоков работает быстрее, чем новомодное говно с асинками. Для защиты от ддоса используются прокси, в типичном облаке на кубере между твоим сервером и интернетом будет три прокси.
Аноним 05/02/24 Пнд 15:53:46 #169 №3035950 
>>3035748
> до пизды абсолютно как они интегрированы в язык
Они никак не интегрированы в язык. В ядре ОС без std как предлагаешь ими пользоваться?
> мы не обсужадем ФП тут, мы обсуждаем РАСТ
Это не я тут хвалился наличием функционалищины в расте и возможностями, которых якобы нет у других. Про то что в расте правильные монады, а в джаве/крестах нет - это тоже не мои высеры.
> А ещё в джаве и крестах есть нулы
А в расте есть ансейф, который в любой низкоуровневой либе горой навален, в том числе в std.
> Спроси если есть вопросы лучше - аноны пояснять тебе.
Уже второй день не можете пояснить как сделать if(a) для любой монады. Мне хватило бы одной строчки кода, вместо десятка шизоидных простынь текста и оправданий почему оно не нужно. Зачем это надо уже пояснено - сделать проверки до того как соберёшься использовать вложенное значение.
Аноним 05/02/24 Пнд 16:02:07 #170 №3035965 
>>3030948
>unwrap
Кстати проиграно, это что получается, если я вставлю макрос для Си, который будет делать exit(1) при ненулевом результате вызванной фукнции, или возвращать результат, это же будет буквально 99% кода на пидорасте.
Аноним 05/02/24 Пнд 16:07:47 #171 №3035980 
Игнорируем опуща ^

>>3035926
Все так. Наигрался с Футурамы, к сожалению без контроля тредов и пула сложно написать гибко конкарррент апп. Но для среднего проекта с Футурамы сложнее отстрелить себе жопу. Как обычно трейдофы
Аноним 05/02/24 Пнд 16:26:06 #172 №3036013 
>>3035965
> это же будет буквально 99% кода на пидорасте
Ты забыл про разворачивание стека при панике. В расте паника будет дольше чем просто exit().
Аноним 05/02/24 Пнд 17:25:45 #173 №3036195 
>>3033924
>древнейшие опшены
Мой любимый пример того, насколько усложняют жизнь null и упрощают жизнь Option это методы Dictionary.TryGetValue в C# и HashMap::get в расте соответственно. Посмотри, насколько нужно изворачиваться в первом случае через bool и out-параметр потому, что через систему типов невозможно выразить, что возвращаемого значения типа T? может и не быть. Это даже не проблема из-за требования совместимости с кодом, написанным до nullable references, эта проблема была бы всегда. А, и в случае return=false у тебя полюбасу остается переменная с бесполезным дефолтным значением, которая будет засорять скоуп, даже если ты вызвал метод в условии ифа. Эта хуйня укусила не раз на практике. (Предполагаю что утечка во внешний скоуп сделана чтобы работал early return/exception с этим же методом, мол если return=false то возвращай из метода или выкидывай исключение, а иначе вот тебе осмысленная переменная в твой внешний скоуп, всё ок)

В расте ты просто получаешь значение которое можно недвусмысленно заматчить через match/if-let/let-else на все возможные исходы, в т.ч. когда само значение в мапе/словаре - Option<T>. Протечек из ифа также нет - благодаря let-else такое поведение уже не нужно.

По сути разница в том, что в C# нельзя выразить что-то типа T??, что позволило бы сделать красивый апи.

В первом случае нулл это отдельная фича языка, во втором - просто очередной тип. В ту же серию, но менее критично, идет специальный тип void который нельзя использовать в дженериках, против вполне рядового () aka unit type - иногда вижу два метода с одинаковыми телами, но разница в возвращаемом значении аля Task vs Task<T>.

t. шарпист по профессии
Аноним 05/02/24 Пнд 18:01:45 #174 №3036266 
>>3036195
Добавить одну строку в шарпе или добавить три строки с матчем в расте - что же выбрать? Алсо не забудь написать unwrap, напиши его снова.
Аноним 05/02/24 Пнд 21:15:44 #175 №3036625 
1705775197739.png
1550923637255.png
1551472103590.png
1591862832908.png
>>3036195
> насколько нужно изворачиваться в первом случае через bool и out-параметр потому
Но зачем и кто вообще так делает в здравом уме? Паттерн-матчинг работает даже в if, пик1. Или пик2 как в расте с match. Или можно разобрать структуру/контейнер как на пик3.
Или как тут любят:
> list.Where(x => x is not null).ToList().ForEach(x => Console.WriteLine($"it's {x}"));
Или с LINQ декларативно выкинуть все null:
> var filtered = from x in list where x is not null select x;
В шарпе уж полный порядок с выбором как работать с null, можно ещё несколько способов без language-ext придумать, например эксепшены.
А если хочется совсем упороться функциональщиной по полной, то есть language-ext, пик4. Буквально всё что в расте есть и даже то что тебе не снилось, причём реализация Option какой ты её видишь в расте там существовала ещё с 2014.
И вообще о каком пердолинге с null идёт речь в шарпе, когда nullable можно запретить на уровне компилятора, если боишься выстрелить себе в ногу.
Аноним 05/02/24 Пнд 21:20:40 #176 №3036636 
>>3035926
> асинхронность нахуй не нужна
Особенно когда вхолостую ждешь ответ от сторонней апи или БД
Аноним 05/02/24 Пнд 21:26:32 #177 №3036653 
>>3036636
а кто тебе запрещает отдавать управление на блоке IO? Есть куча механик как этого избежать. В условном эрланге отдельный тредпул на уровне beam (или как оно называется) для IO, там гоняется все что с ним связано чтобы акторы не лочились.

Можно реализовать шедулер который будет забирать управление при блоке ио (привет java virtual threads и горутины)

Короче варики есть
Аноним 05/02/24 Пнд 21:27:03 #178 №3036658 
>>3036636
Все нормальные люди освобождают поток и оставляют коллбек/чекают прогресс операции асинхронщина это под капотом и делает. Неблокирующие операции IO есть везде. Нормальный многопоток всегда будет быстрее скакания по стеку, оставляя фрейм висеть где-то там в ожидании когда к нему вернётся выполнение.
Аноним 05/02/24 Пнд 21:28:14 #179 №3036662 
>>3036653
по эрлангу мог спиздеть, сам не тестировал, читал в книжке когда эликсир тыкал, так что возможно там роль отдельного ИО пула в том чтобы тупо не забить ИО если каждый актор будет в ио биться (лимиты ядра/драйверов итд)
Аноним 05/02/24 Пнд 21:41:17 #180 №3036707 
>>3036653
>а кто тебе запрещает отдавать управление на блоке IO?
Лишняя писанина, тут взял tokio и за меня уже всё что нужно сделано, все библиотеки вокруг веба заточены под асинхронщину axum, actix, sqlx, redis, lapin (для rabbitmq) везде async/await и я поверх этого буду делать свои самопальные говнорутины или использовать какой-то тред пулл и ебаться скрещивать ужа с носорогом
Аноним 05/02/24 Пнд 21:59:13 #181 №3036751 
>>3036707
Я выше писал что для среднего аппа вполне себе решение.
Если проект более менее нагруженный и сложный, в том плане что не просто параллельно отрабатывает запросы а что-то гораздо сложнее типа чат сервера с лямом юзеров, где еще надо учитывать особенности цпу кешей в cpu bound hot path чтобы быстрее крутить данные - заебешься тюнить и дебажить асинк код. Наелся говна в свое время со скала футурами теми же. Переписали в итоге все на продюсер консюмер и виртуальные треды.
Аноним 05/02/24 Пнд 22:19:40 #182 №3036783 
1586465889852.png
>>3036625
> Паттерн-матчинг работает даже в if, пик1.
А ведь это то, о чём мечтал шизик с крестами, ещё и приправленное чем растовик хвалился, лол.
Можно написать проверку и тут же разобрать структуру с возможностью использовать проверенное значение, все счастливы.
Я даже полез проверять, реально работает.
Аноним 05/02/24 Пнд 22:32:32 #183 №3036810 
>>3036751
Слова не мальчика, но мужа.
Аноним 05/02/24 Пнд 22:51:08 #184 №3036852 
image.png
image.png
image.png
>>3036625
>>3036783
По-моему вы путаете var с { }/not null, потому что паттерн expr is var x безусловный, это просто создание переменной (пик 1), так что я предположу что вы имеете в виду { }.

А делать так приходится, чтобы банально достать значение из словаря и воспользоваться им за одну операцию вместо dict.Contains(key) + dict[key].
>И вообще о каком пердолинге с null идёт речь в шарпе, когда nullable можно запретить на уровне компилятора, если боишься выстрелить себе в ногу.
Как? Одно дело - включить nullable references, может быть даже сделать несоответствие статусов nullable ошибкой при компиляции, но это не помешает стандартной библиотеке в рантайме пихнуть куда-то нулл где он не ожидается, например, при загрузке appsettings.json который не ругается если отсутствует ключ, а выдумывает значение - null для всех референс-типов или 0 для TimeSpan который ты пробрасываешь в метод .Timeout() и ну никак не хочешь, чтобы он неожиданно был 0 (сори, наболело).

Даже если мы представим, что (каким-то образом) нулл не бывает там, где его не ждут, проблема с кривыми апишками в стандартной библиотеке всё еще остается. Представь себе аналог метода HashMap::get в C#, который возвращает null если ключа нет, и T если ключ есть. В таком раскладе через такой метод нельзя доставать значения, если в твоей модели они нуллабл - как понять, почему тебе вернулся нулл, отсутствие ключа или это и есть значение по твоему ключу? Метод вроде HashMap::get невозможно полнценно выразить в системе типов шарпа (пик 3).
Да и даже в случаях где твой T не предполагается нуллабл, биндинги через maybeNullValue is { } nonNullValue всё равно протекут наружу и оставят бесполезные переменные во внешнем скоупе.

Про language-ext слышал, но им же не пользуется экосистема C#, которой, в свою очередь, пользуюсь я.
Аноним 05/02/24 Пнд 22:52:20 #185 №3036855 
>>3036751
>Если проект более менее нагруженный и сложный
И разумеется ты на таком работаешь не последним человеком раз всё знаешь и рассказываешь тут
Аноним 05/02/24 Пнд 23:30:10 #186 №3036922 
>>3036855
Да. Вопросы?
Аноним 05/02/24 Пнд 23:43:25 #187 №3036939 
>>3036653
> а кто тебе запрещает отдавать управление на блоке IO?
Когда тред сам отдает управление, а не шедулер его забирает, это и есть асинхронность как бы

>>3035926
> Открою тебе страшный секрет: асинхронность нахуй не нужна. Она нужна только в кривом джаваскрипте, где всего один поток. Обычный пул потоков работает быстрее, чем новомодное говно с асинками. Для защиты от ддоса используются прокси, в типичном облаке на кубере между твоим сервером и интернетом будет три прокси.
Ты походу вообще не понимаешь о чем говоришь.
Суть перфа то как раз в корутинах на множестве системных потоков, то есть когда потоки могут и сами отдать управление, и когда они шедулятся при этом. В го это горутины, например
Аноним 05/02/24 Пнд 23:48:06 #188 №3036944 
>>3036939
> то есть когда потоки могут и сами отдать управление
Он прав.
А вот на тебя ещё надо повнимательнее посмотреть.
Аноним 05/02/24 Пнд 23:50:50 #189 №3036950 
>>3036944
Аргументы будут?
Аноним 05/02/24 Пнд 23:53:51 #190 №3036957 
>>3035965
То есть моя программа будет выходить с ошибкой на ~10мс дольше.
Аноним 05/02/24 Пнд 23:54:20 #191 №3036960 
>>3036013 сюда >>3036957
Аноним 05/02/24 Пнд 23:58:27 #192 №3036968 
>>3036950
> то есть когда потоки могут и сами отдать управление
В современных системах потоки переключаются при системных вызовах. Если поток переключает ядро ОС, то значит программу написал рукожоп.
Аноним 05/02/24 Пнд 23:59:39 #193 №3036974 
>>3036968
>Если поток переключает ядро ОС, то значит программу написал рукожоп.
Разумеется если это происходит вне систеного вызова.
Аноним 05/02/24 Пнд 23:59:56 #194 №3036975 
>>3035950
>А в расте есть ансейф, который в любой низкоуровневой либе горой навален, в том числе в std.
Если одно и то же повторять, то когда-нибудь дойдет:
- Подчеркни слово "низкоуровневой", и подумай почему низкоуровневое это ансейф.
- Налл это идиоматично в тех языках. Ансейф - напротив, считается дурным тоном где его можно обойти (не низкоуровневый код).
- По налл никто загрепать не может, и не делает так. Потому что он может быть неявным, т.к. является нормой.
Даже если ты тролль, все равно читающий и вникающий мимокрок нас рассудит. Для него пишу, не для тебя, потому что ты и так все это знаешь.
Аноним 06/02/24 Втр 00:08:06 #195 №3036987 
>>3036968
Причем тут системные потоки, если речь про виртуальные потоки и корутины внутри абстракции языка?

> Если поток переключает ядро ОС, то значит программу написал рукожоп.
Вут? Ядро будет прерывать и переключать выполнение физическими потоками системных потоков и тебя не спросит даже. Вроде в посикс тредах можно выставить критическую секцию, чтобы в ней не было прерывания через системные вызовы, точно не помню. Но это не имеет никакого отношения к написанию высокопроизводительного веб сервиса. Там у тебя есть абстрактные виртуальные потоки, написанные поверх посикс тредов, которые в корутинах обрабатывают запросы пользователей, и как там ось переключает выполнение посикс тредов ты не думаешь
Аноним 06/02/24 Втр 00:17:24 #196 №3037003 
>>3036987
>Причем тут системные потоки, если речь про виртуальные потоки и корутины внутри абстракции языка?

Эти абстракции это уже третий уровень. Это вообще другое. Такое будет работать и без ОС.

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


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

И я такого не помню. Ты наверное слышал звон, да не знаешь где он и рассказываешь про SpinLock.
Аноним 06/02/24 Втр 00:39:59 #197 №3037035 
>>3037003
> Эти абстракции это уже третий уровень. Это вообще другое. Такое будет работать и без ОС.
А ты на уровне ядра собираешься писать веб сервис, что ли? Юзер спейс и программы в нем это уже третий уровень и будет

> Такое будет работать и без ОС.
Ват

> Да, это называется защита от дураков и кривых рук. Это ненормальная ситуация с точки зрения ядра.
Нигде не видел и никогда не слышал, чтобы кто-то пытался изнутри программы объяснить оси, как ей шедулить потоки, и это был нормальный продакшен код. Это стрельба из пушки по воробьям. Общие настройки шедулинга - ок, какие-нибудь специальные риал таймовые сборки оси - ок, но пытаться переуправлять потоками ось это бред - ей лучше знать, как ей шедулить, на это потрачены миллионы человекочасов. Может какие-нибудь нфт фирмы бы стали таким заниматься, но им приходить жить в одном облаке с биржой и жить в юзер спейсе линукса

> И я такого не помню. Ты наверное слышал звон, да не знаешь где он и рассказываешь про SpinLock.
Причем тут вообще спин лок, если речь про прерывания потока со стороны оси?
И такой есть да https://stackoverflow.com/questions/2865047/can-i-prevent-a-linux-user-space-pthread-yielding-in-critical-code
А вот вообще прерывания нельзя отключить из юзер спейка, да
Аноним 06/02/24 Втр 00:52:02 #198 №3037051 
>>3036266
Проблема в том, что вы о разных вещах говорите.

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

Мне понравился такой ответ: В раст и так if-else возвращает значение. Не так уж трудно написать let get_my_a = if Some(foo.a) {a} else { ... не могу вернуть НИЧТО. ошибка компиляции };
Разница с тернарным оператором минимальна, при том еще и дает возможность безопасной инициализации.

Засорять лишним синтаксистом когда и так есть... зачем? Унификация без потери читаемости. При этом я не раз видел код, когда делают cond1 ? expr1: cond2 ? expr2: expr3 .. какое же это уродство! Боже упаси от тернарных операторов. Писателя не остановишь, пока перо не отберешь.

Вот еще. Когда тебе захочется вместо одного экспрешона два - в if-else это будет тривиальный перенос строки, а тернарник придется переписывать.
Аноним 06/02/24 Втр 00:55:02 #199 №3037056 
>>3037035
> Ват
Bare Metal Environments


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

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

> И такой есть да https://stackoverflow.com/questions/2865047/can-i-prevent-a-linux-user-space-pthread-yielding-in-critical-code

А это уже интересно. Да, это не спинлок. Только за всю мою мою практику не встречался с потребностью.
Аноним 06/02/24 Втр 01:00:34 #200 №3037060 
>>3037056
> Речь не об этом, а о том, что до принудительного переключения потоков почти любая программа успевает сделать системный вызов. А там его встречает планировщик.
Что за бред
Если у тебя программа упихана системным вызовами и постоянно проваливается в кернел спейс, это пиздец и очень плохо. Никто так не пишет (по возможности). Так что планировщик быстрее заберет управление у потока
Аноним 06/02/24 Втр 01:07:42 #201 №3037065 
>>3037060
>Если у тебя программа упихана системным вызовами и постоянно проваливается в кернел спейс, это пиздец и очень плохо.

Что значит "постоянно"? Ты представляешь сколько успевает сделать программа между системными вызовами? Реальная программа.
Аноним 06/02/24 Втр 04:00:44 #202 №3037136 
1670451873160.png
>>3036852
> как понять, почему тебе вернулся нулл
> невозможно полнценно выразить в системе типов шарпа (пик 3)
Совсем кукухой поехал?
Аноним 06/02/24 Втр 06:56:40 #203 №3037165 
>>3036852
>dict.Contains(key) + dict[key]
Откуда вы лезете, наркоманы? Где-то открылся портал с перлом?
Такое говно потом невозможно читать и хуй разберешь, что хотел сделать автор. То джуники напердолят абстрактных фабрик, то мамкины саентисты насрут монадами, а ты сидишь потом и разгребаешь эту шизу.
Аноним 06/02/24 Втр 07:05:08 #204 №3037167 
>>3037035
>Asked 13 years, 8 months ago
Ты б еще про перфокарты нашел вопрос.
Аноним 06/02/24 Втр 07:13:41 #205 №3037173 
>>3036939
Суть в том, что асинки работают медленнее пула потоков. Я проверял на сишарпе, на го и на расте через токио, везде асинки сосут. Чемпионом оказался го, там с горутинами показало на треть меньше рпс. Можешь сам проверить, а не вестись на пиздабольство маркетологов.
Аноним 06/02/24 Втр 07:52:07 #206 №3037182 
>>3037173
Выложи результаты, чтобы перепроверить и понять в чем твоя ошибка. Так твое сообщение тонет в 100500+1 результате других подобных бенчей, которые заявляют обратное. Причем это не от компаний каких-то на рандомных сайтах, а просто на гитхабе люди тестируют.

А так ты просто Анон с двачей.
Аноним 06/02/24 Втр 09:07:19 #207 №3037215 
>>3037182
Я не встречал бенчмарки, где асинки выдают больше рпс. Маркетологи напирают на экономию памяти, но тактично "забывают" указать, что, прежде чем закончится память, ты упрешься в производительность бд или в лимит подключений на сокетах.
В расте асинки тем более нахуй не нужны. Для системного программирования есть liburing, а прикладной код на расте никто писать не будет, язык не для этого. Чулочники придумали: если код на расте будет похож на код на нодежс, то раст станет таким же популярным, как нодежс. Шизофрения как есть. Лучше бы довели до ума стандартную библиотеку, а не как сейчас 100500 либ от разных авторов и все они нерабочие.
Аноним 06/02/24 Втр 09:37:22 #208 №3037244 
>>3037173
>токио, горутины
Это неблокирующее ио с шедулером для smp, пул потоков - это чё вообще ты имеешь в виду?
Аноним 06/02/24 Втр 10:25:44 #209 №3037275 
>>3037173
>маркетологов
Шиз не палится
Аноним 06/02/24 Втр 10:27:17 #210 №3037277 
>>3037182
Он тебе ничего не выложит
Аноним 06/02/24 Втр 10:35:45 #211 №3037289 
>>3037215
Если у тебя баунд по ИО, то асинки и тредпул должны показать примерно равную произвольность.
Аноним 06/02/24 Втр 10:37:44 #212 №3037291 
>>3037173
Кей ворд асинк делает из функции корутину. Горутины это корутины на пуле потоков. Так что у тебя там медленнее работает
И вообще тебе даже в школе должны были рассказывать, что создавать на каждое соединение к веб сервису по потоку, который будет 1 к 1 к системному, это мертвый путь.
Короче ты вообще не понимаешь, что пишешь. Тебя однопоточной нодой трахнули когда-то и ты до сих пор тупишь в терминах
Аноним 06/02/24 Втр 11:01:20 #213 №3037303 
>>3037215
Если ты сравнивал liburing с асинками на epoll, то ясен хер юринг будет быстрее. Они создавались для разного в разное время. Но фьюча - это просто стейт-машина, она к реализацию экзекутора вообще не привязана.
Аноним 06/02/24 Втр 11:56:34 #214 №3037357 
>>3037289
>>3037291
>>3037303
Тем не менее, асинки самые медленные. Вангую, что это связано с памятью: когда процесс загружается на ядро, линукс загружает в кэш нужные страницы, такая себе оптимизация. А процесс с корутинами начинает ебать общую память через волатайл переменные, ведь ему надо прверить таски из общей очереди. Это мои предположения, глубоко я еще не разбирался.
Аноним 06/02/24 Втр 12:16:25 #215 №3037388 
>>3036783
Шарп неплохой язык, платформа говно.

Попробуй теперь провернуть то же самое, но с опциональной вложенной структурой, как здесь >>3034435

А ещё у нас есть .. для пропуска ненужных полей, бе-бе-бе.
Аноним 06/02/24 Втр 12:21:35 #216 №3037393 
Screenshot from 2024-02-06 13-20-23.webp
Аноны, тут гугл решил очень серьёзно вложиться в раст, а именно в тему переписывания с плюсов.
Плюсовик в треде? Пусть порадуется с нами.

https://foundation.rust-lang.org/news/google-contributes-1m-to-rust-foundation-to-support-c-rust-interop-initiative/
Аноним 06/02/24 Втр 12:24:00 #217 №3037396 
Анончики, вы каким цветом чулки покупаете, когда собираетесь очередной хеллоу ворлд делать?
Аноним 06/02/24 Втр 12:28:54 #218 №3037409 
>>3037388
>Шарп неплохой язык, платформа говно.
А можешь сказать почему платформа говно или ты просто повторяешь древние тейки пиздаболов джавистов?
Аноним 06/02/24 Втр 12:33:21 #219 №3037417 
>>3037409
Джава тоже говно, но меньшее. Скажем, это мой опыт: если встречаю на гитхабе проект на .net , в 90% случаев на линухе хуй запустишь.
Аноним 06/02/24 Втр 12:36:53 #220 №3037425 
изображение.png
>>3037396
Аноним 06/02/24 Втр 12:37:01 #221 №3037426 
>>3037396
Обычно ебу шарпистов в чем прийдут. Они ребята взрослые, не бедствуют, могут и сами себя обеспечить тем, что им нравится.
Аноним 06/02/24 Втр 12:45:48 #222 №3037435 
>>3037417
>>3037417
Какой тебе проект "запустить" на Линуксе?
Для Winforms есть был Mono.
С напильником можно запустить.

Core проекты обычно запускаются без проблем, если программист не костылил платформозависимые фичи.
Аноним 06/02/24 Втр 12:59:29 #223 №3037452 
>>3037435
Ну вот, например. Сейчас уже не актуально сагрил и убил бородатого кузнеца, сцук
https://github.com/MarkH221/DarkSoulsSaveEditor
Аноним 06/02/24 Втр 13:07:02 #224 №3037458 
image.png
>>3037452

Это Winforms. Такое без труда собиралось в Monodevelop и работало под Linux, если устрановлены необходимые библиотеки.
Аноним 06/02/24 Втр 13:07:34 #225 №3037459 
>>3037425
Уважаемо
Аноним 06/02/24 Втр 13:28:39 #226 №3037503 
>>3037458
>Monodevelop
Спасибо, попробую как-нибудь. Но джава просто собирается mvn/gradle, хватает установленной jdk.
Аноним 06/02/24 Втр 13:42:13 #227 №3037540 
>>3037393
> гугл
> плюсов
Гугл никогда не писал на нормальных плюсах, у них в гайдлайнах прям написано писать на си с классами.
> в тему переписывания с плюсов
Не вижу где это написано. Они вложились только в совместимость раста с плюсами, ни слова про то что собираются что-то переписывать. Более того, это какая-то частная инвестиция одного из владельцев гугла, а не бабла самого гугла, к разработке оно никакого отношения не имеет. Как обычно желтизну разводите, как уже было с "майки переходят на раст", а на деле там веб-макаки из субстрата что-то в облаках пердолят на микросервисах.
Аноним 06/02/24 Втр 13:47:27 #228 №3037550 
>>3037540
>частная инвестиция одного из владельцев гугла
Ёр инглиш из ворст
Аноним 06/02/24 Втр 15:30:44 #229 №3037636 
Пиздец вы тут срач устроили, один про Фому другой про Ерёму.

На примере жму/пинуса:
- в ос есть потоки
- ос потоки есть а. kernel space (которое шедулит само ядро, вытесняющий принцип многозаданости), для них нет конкретного API, вы ниче с ними сделать не можете
- b. user space: это как раз та самая хрень которую обычно имеют в виду, в жму пинусе это обычно сделано через NPTL с мапингом 1:1 к кернел треду
- потоки в конкретной среде исполнения (руби, jvm, etc). Тут где как. Где-то есть поддержка и нативных тредов (тип b) где-то реализованы свои костыли поверх тредов типа b, в простонароде их часто называют GREEN THREADS/VIRTUAL THREADS

по пунктам:

>>3036939
>Когда тред сам отдает управление, а не шедулер его забирает, это и есть асинхронность как бы

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

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

>>3036968
ты вероятно путаешь так называемые зеленые (виртуальные) треды и треды ОС. У ОС тредов есть только одна гарантия - никаких гарантий.

>>3036987
>Вут? Ядро будет прерывать и переключать выполнение физическими потоками системных потоков и тебя не спросит даже
вот этот все правильно говорит если под физическими потоками имеет в виду kernel threads а системными потоками = user space threads, но звучит все равно туговато

>>3037003
>Эти абстракции это уже третий уровень. Это вообще другое. Такое будет работать и без ОС.
да, я недавно лупой выжег потоки на деревце. Что ты несешь?
Вот этот челик какие-то странные вещи говорит короче. ^

>>3037035
>Нигде не видел и никогда не слышал, чтобы кто-то пытался изнутри программы объяснить оси, как ей шедулить потоки
всё по фактам, да

>>3037173
Медленнее/быстрее, это всё зависит от кейса. Давайте постаим задачу, напишем примеры кода и выясним, хули спорить без дела

>>3037215
>В расте асинки тем более нахуй не нужны. Для системного программирования есть liburing, а прикладной код на расте никто писать не будет, язык не для этого.

1. я пишу прикладной код на расте, я любой код на нём пишу, мне очень нравится. Вопросы?

2. системное программирование не всегда жму/пинус к слову, юринга может и не быть


>>3037291
>И вообще тебе даже в школе должны были рассказывать, что создавать на каждое соединение к веб сервису по потоку, который будет 1 к 1 к системному, это мертвый путь.
>Короче ты вообще не понимаешь, что пишешь.

поддвачну

>>3037357
>Тем не менее, асинки самые медленные
ой иди нахуй заебал уже, выложи хоть код на который ссылаешься
Аноним 06/02/24 Втр 15:35:42 #230 №3037646 
>>3037540
>Они вложились только в совместимость раста с плюсами, ни слова про то что собираются что-то переписывать.
Чел, ты...
В такие вещи вкладываются, чтобы постепенно переписывать существующий код.
Аноним 06/02/24 Втр 15:38:01 #231 №3037650 
>>3037646
> постепенно переписывать существующий код
А при чём тут плюсы? Переписывать можно и джаву на ведре, для этого как раз и будет нужна interop между растом и крестами. Как будет нормальная инфа, так и приходи, не надо фантазировать.
Аноним 06/02/24 Втр 16:30:01 #232 №3037710 
>>3037393
Пчел, 1лям это работа 9 топ программистов за год, но так как я не видел отчетов фонда раста, то скорее всего эти деньги уйдут на премию менеджерам и работу маркетинга.


да, по ссылке лям, а не лярд
Аноним 06/02/24 Втр 16:44:34 #233 №3037720 
>>3037710
Ну, был бы у раста хуёвый фаундейшн с непрозрачным менеджментом, никто бы ничего не отсыпал. Тем более, что это не первая подачка от гугла, они знают, кому дают.

повёлся, повёлся, лох -))
Аноним 06/02/24 Втр 16:46:44 #234 №3037723 
16476376078490.jpg
>>3037646
Мне думается, это прикормка на место в фонде. Это инвестиции на будущее, вдруг выстрелит и нужно будет залочиться на вендере.

С++ спец очень дорог в плане ресурсов и вопрос не в деньгах, а числе самих спецов и в том, что количество не увеличивается. Раст же предлагает идею, что можно посадить зумера и он начнет кодить как плюсовик 30+лет стажем, без сигфолтов.
Аноним 06/02/24 Втр 17:36:44 #235 №3037830 
>>3037393
https://killedbygoogle.com/
Аноним 06/02/24 Втр 17:55:46 #236 №3037873 
>>3037393
> а именно в тему переписывания с плюсов.
А как же карбон? Его ждать на кладбище? https://killedbygoogle.com/
Аноним 06/02/24 Втр 17:56:12 #237 №3037874 
>>3037723
>пикрил
О, это же тот хуй, который малварь запихал в жсовский пакет, который по русским и беларусам пытался отработать. Ууууууу бля!
Аноним 06/02/24 Втр 18:03:56 #238 №3037893 
>>3037873
Думаю, таки да, как и дарт. Смотри: игла в яйце, яйцо в утке, утка в раст в ядре линуха, ядро линуха в андроиде. Выстраивается очень красивая схема, когда один язык для всего - от низкоуровневой системщины до, возможно утилит и сервисов. Тащить в эту схему ещё и карбон, ну как-то не очень.
Вдобавок, гугл тоже не дурак и не рассчитывает тянуть проекты уровня языка с тулингом и репозиторием чисто на своём горбу, ему нужна поддержка сообщества. Карбон, в отличие от раста, особого энтузиазма не вызвал, поэтому вот.
Аноним 06/02/24 Втр 18:16:14 #239 №3037916 
>>3037893
> Карбон, в отличие от раста, особого энтузиазма не вызвал, поэтому вот.
Лол если честно то я на него не смотрел как раз по причине того что гугл любит внезапно и без объяснения причин закрывать свои проекты. Тоже самое и с дартом, как то он особо энтузиазма не вызвал
Аноним 06/02/24 Втр 18:42:25 #240 №3037958 
>>3037916
> гугл любит внезапно и без объяснения причин закрывать свои проекты
Ну, почему же, логика у него есть. Го взлетел как раз потому, что сообщество его приняло на ура - очень не хватало простого конпелируемого языка для веб-макак. А что никому не нужно, то он закрывает. Хотя, мог бы отдать в какой-нибудь фаундейшон и ебитесь, мол, сами, как хотите.
Аноним 06/02/24 Втр 23:32:19 #241 №3038381 
>>3037958
Логика может и есть, только вот закрытие продуктов происходит внезапно и почти всегда без объяснения причин, из-за этого у гугла соответствующая репутация. С го насколько помню там помимо гугла ещё и другие участники были и целая история с plan 9 и какой-то операционкой
Аноним 07/02/24 Срд 06:12:19 #242 №3038587 
>>3037874
Хз, был пик, чем история закончилась? Наказали или теперь малварить норм в штатах?
Аноним 07/02/24 Срд 06:12:48 #243 №3038588 
>>3037873
У гугла странный подход к своим проектам, эти самые проекты не являются какой-то общей идеей, а просто работа какой-то небольшой команды, мол, глядишь случиться чудо и выстрелит.
На примере дарта, как можно было пилить замену js без гарантии, что потом vm дарта не будет встроена в хром? Сейчас же дарт и флаттер вообще конкурирует с котлином, который в самом же гугле и приняли как основной язык. То есть, зачем вставлять палки в колеса для своего же проекта?

Проект карбон, а точнее язык с полным интеропом плюсов и еще удобнее чем плюсы (чтобы был резон их брать), это мега трудная задача требующая тонну ресов и объединение чуть ли не всего гугла. В итоге они там опубликовали дорожную карту и выяснилось, у этих ребят тамвсе очень медленно идет. А в условиях отсутствия стороннего наблюдателя, получиться какая-то экзотика в дизайне как у го (они там и так вдохновились стрелками из раста, ведь рисовать стрелочки буковками - это так весело).
Аноним 07/02/24 Срд 08:12:30 #244 №3038614 
>>3037893
> как и дарт
А что с дартом? Он уже давно ушёл от гугла, они не смогут убить его своими руками, на мобилках он вполне используется. В том числе Тенцентом, который сам как гугл.
> раст в ядре линуха
Ну пока поддержка просто номинальная, по факту его там нет.
> ядро линуха в андроиде
И линукс с запозданием приходит в ведро. Обратную совместимость с большинством устройств кто будет делать? В ведре так-то много лет проходит перед перекатом куда-то. Даже на котлин лет 5 катились, хотя не было таких проблем с обратной совместимостью как будет у раста.
Аноним 07/02/24 Срд 10:29:50 #245 №3038715 
>>3038614
>давно ушёл от гугла
Далеко ли ушёл? Покажи их фаундейшн и счёт для донатов. Вообще я в него не-ве-рю. Он, по факту, прибит к флаттеру, как руби к рельсам. Расползаться в стороны ему некуда - на бэке поджимает го, на фронте жс поскакал в светлое будущее ES6/7/8/9
Гугл плюнет и дарт сдохнет. Китайцы за своим фаерволлом смогут только поддерживать унылый форк для внутреннего рынка, будет как хуавэй, который вроде жив, но на который всему миру похуй.

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

>по факту его там нет
Китайцы запустили спутник, управляемый линухом с обвязками на расте на уровне ядра. ну вот, тоже привлёк китайцев для аргументирования позиции
Ну, ещё гугл переписывает модуль ядра binder на расте, а этот самый binder давно (с момента унификации) в основной кодовой базе линуха. Например, он нужен для активации прослоек типа waydroid на ПК.

То есть, гугл собрался писать на расте ядерную часть андроида плюс разные прочие вещи, для которых раньше использовался С++. Карбон в схему ну не вписывается.
Аноним 07/02/24 Срд 11:35:05 #246 №3038800 
>>3038715
> прибит к флаттеру
Рынок мобилок такой, что твоему расту даже и не снилось. Как я уже писал - Тенцент пишет на нём, что уже гарантирует жизнеспособность.
> там
Там это где? В гите? На мобилках самого гугла пиксель или что сейчас, которые занимают процент рынка околонулевой? За пределами гугла никто не пилит ведро под ролинг, даже на флагманах ядра устаревшие, на бюджетках вообще годовалые.
> запустили спутник
А ещё под спутники пишут на Аде, давай тогда на неё пересаживаться.
> То есть
То есть ты фантазируешь на ровном месте, выдавая необоснованные выводы за свершившуюся реальность.
Аноним 07/02/24 Срд 12:20:53 #247 №3038868 
>>3038800
>Рынок мобилок такой
Да, да, вот только срок жизни строки кода там мизерный. Вчера она на жабе, сегодня на дарте, завтра на котлине.

>Там это где? В гите?
https://github.com/torvalds/linux/blob/master/drivers/android/binder.c
пока он на си, скоро будет на расте. Тебе этого мало? Да, этот модуль используется только при конпеляции с поддержкой андроида, но это прям мэйнлайн, то есть, гарантирует поддержку раста в ядре при настойчивой поддержке гугла.
> даже на флагманах ядра устаревшие, на бюджетках вообще годовалые.
Ну пиздец, какой аргумент. Рано или поздно все будут на новых ядрах, никуда не денутся. Или что, хочешь сказать, что сяюми с сосунгом форкнут ядро и будут упорно сидеть на сишном биндере, лишь бы не иметь дело с растом? Что-то не было с их стороны возражений.

>А ещё под спутники пишут на Аде
Ты какой-то ёбнутый. Вот есть раст, вот он используется в ядре линуха, вот пример использования. При чём тут ада? У тебя шизофазия или около, походу.

Изначально речь шла о перспективах карбона, я показал, что гугл с Торвальдсом тащат раст в ядро, а карбон не тащат, в том числе поэтому андроид допиливают на расте, а не на карбоне, из чего я сделал вывод, что карбон не больно-то нужен самому гуглу, вот и всё. Ты же развёл какой-то срач не по теме (твои агрументы по дарту ещё туда-сюда).
Аноним 07/02/24 Срд 13:09:52 #248 №3038970 
>>3038868
>Вчера она на жабе, сегодня на дарте, завтра на котлине.
> Позовчера она на жабе, вчера на дарете, сегодня на дарте, завтра обратно на котлине.
Поправил) Не знаю почему, но многие после дарта уходят обратно на котлин
Аноним 07/02/24 Срд 13:14:09 #249 №3038981 
>>3038868
> Или что, хочешь сказать, что сяюми с сосунгом
Я хочу сказать что они не будут писать две разные реализации - с растом и без. Для мобилок норма что они ещё 2-3 года получают обновы наравне с текущими моделями. Ну ок, 3-4 года после того как реально начнут массово писать на расте в ядре - это самый реалестичный вариант когда в продакшене раст на мобилках появится.
Аноним 07/02/24 Срд 13:28:49 #250 №3039006 
Screenshot from 2024-02-07 14-22-59.webp
>>3038981
>в продакшене раст на мобилках появится
А карбон не появится, вот и весь сказ, что не опровергает мой первоначальный тейк посыл.

идём дальше

https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html
https://security.googleblog.com/2023/10/bare-metal-rust-in-android.html

раст уже в мобилках прямо сейчас, начиная 13 ведроида. Биндер ещё не переписали, но системную обвязку уже. Необязательно начинать с ядра, оказывается. Красивая схема раст в яйце, яйцо в утке, утка в ядре, в которой нет места карбону, таки вырисовывается, но не обязательно в последовательности снизу вверх.

как долго мне приходится отстаивать аргументы, подтверждающие и без того банальный факт, что карбон не нужен
Аноним 07/02/24 Срд 14:06:13 #251 №3039090 
1639034878629.png
1580334178101.png
1674989689735.png
1657912239627.png
>>3039006
> memory safe language
Это не обязательно раст, это жвм в первую очередь.
> но системную обвязку уже
Показать можешь в исходниках, лол? Пикрилейтед из текущих исходников AOSP.
Пик 1, ядро 6.7 - ни строчки на расте.
Пик 2, системные либы - на расте обёртки над куском внешнего API, 7 файлов, 1000 строк кода, ни одной строчки работающего кода.
Пик 3, SDK - ни строчки на расте.
Пик 4, основной код ведра - ни строчки на расте.
Аноним 07/02/24 Срд 14:22:39 #252 №3039140 
>>3039090
https://cs.android.com/android/platform/superproject/+/main:packages/modules/Virtualization/
зайди в любую диру, почти все на расте

плюс по мелочи раскидано https://cs.android.com/search?q=src%2F.%2B%5C.rs&sq=&ss=android%2Fplatform%2Fsuperproject:packages%2F - на данный момент 551 файл на расте
https://cs.android.com/search?q=src%2F.%2B%5C.c&ss=android%2Fplatform%2Fsuperproject:packages%2F - 790 файлов на плюсах и сишке, если искать по аналогичной маске

вообще, где-то был их стейтмент, что они начиная с 13 ведра почти весь новый системный код пишут на расте
Аноним 07/02/24 Срд 14:41:05 #253 №3039190 
>>3039140
> Android Virtualization Framework
А при чём он тут? Это даже не часть ОС ведра, не говоря уже про ядро. То речь про ядро была, то вдруг ты наскребаешь какое-то непонятное говно лишь бы показать 500 файликов.
Аноним 07/02/24 Срд 15:05:56 #254 №3039257 
>>3039190
>Это даже не часть ОС ведра
а што эта, по-твоему? Што такое ОС, по-твоему?

>То речь про ядро была
И? Ты не веришь, что гугл перепишет binder на расте, думаешь, соврали?

>лишь бы показать 500 файликов.
на расте vs 790 на сишке/++ - тебе это соотношение кажется недостаточно убедительным?

маня, ну ты просто серишь. Напомню, изначально речь шла не о том, что весь андроид уже переписан на расте - что ты почему-то пытаешься оспаривать (впрочем, не особо успешно), а о том, что карбон не нужен и гугл его, видимо, скоро закопает в пользу раста.
Аноним 07/02/24 Срд 15:34:27 #255 №3039317 
>>3037636
>ой иди нахуй заебал уже, выложи хоть код на который ссылаешься
Мне кажется, это обсуждение прямо хорошо показывает, почему всякие поползновения типо асинков плохи - челики из-за высоты абстракции/сахара нихуя не понимают, как эта параша устроена на самом деле, потом всюду трясут своим непониманием, типо как твой челик сравнивает неблок ио с тредпулами (мокрое со сладким).
Если бы был тупо луп с дерганьем шедулера (как уж он там устроен это дело второе) и вывозом неблокирующих функций, было бы куда лучше.

Мимо-зоонаблюдатель
Аноним 07/02/24 Срд 15:35:16 #256 №3039319 
>>3037646
>В такие вещи вкладываются, чтобы постепенно переписывать существующий код.
Зачем переписывать то, что работает?
Аноним 07/02/24 Срд 15:41:49 #257 №3039334 
>>3039317
Но ведь я писал асинки и виртуальные треды в вм, как я могу не знать, как они устроены
Аноним 07/02/24 Срд 16:05:05 #258 №3039374 
>>3039317
Долбоеб ты а не зоонаблюдатель.
Могу написать асинк хеллоу ворлд и сравнить его с тред пульным продюсер консбмером файл батч процессором. Потом серить везде что асинк быстрее. Понятно тебе все?
Аноним 07/02/24 Срд 16:24:33 #259 №3039394 
>>3039257
> а што эта, по-твоему?
Это виртуалька для запуска ведра, в андроид студии оно как раз используется. Ты траллишь тупостью, да? Зайди в репу AOSP, из которой этот самый андроид собирается и покажи мне код на расте.
> а о том, что карбон не нужен и гугл его, видимо, скоро закопает в пользу раста
Речь изначально была о том что раст вот прям уже скоро будет переписывать кресты, потом ты высрал что УЖЕ переписывает. Что фактически бред полнейший.
Аноним 07/02/24 Срд 16:31:05 #260 №3039397 
>>3039334
>>3039374
Продолжаю зоонаблюдать.
Аноним 07/02/24 Срд 16:36:44 #261 №3039401 
>>3039394
>Это виртуалька для запуска ведра
Пиздос, блять. Это AVD, а не AVF

AVF, это часть ОС, она вот прям в самой мобилке. И Bluetooth стек уже переписан на расте, по крайней мере в 14~15 ведре.
Аноним 07/02/24 Срд 16:46:39 #262 №3039413 
>>3039317
ты чё тут серишь, шизик? блокирующий ИО является проблемой как в синхронных так в асинхронных системах, чё ты сказать-то хотел мудила? Кто там где сравнивает тред пулы с ИО блокировкой? Выйди из-за комплюктера пробздись на улицу, а то уже в глаза ебёшься.
Аноним 07/02/24 Срд 16:47:17 #263 №3039414 
>>3039140
>зайди в любую диру, почти все на расте
Посмотрел исходники, педерастраст - многословная параша (из-за свистелок и перделок), тупо кал. Эти проекты точно закопают, ебало додиков, которым придётся потом это поддерживать.
Аноним 07/02/24 Срд 16:48:47 #264 №3039416 
>>3039413
>не мочь в чтение в 2к24
Тупо животное.
Аноним 07/02/24 Срд 16:51:45 #265 №3039417 
>>3039416
>не мочь в изложение мыслей в 2к24 и просто вонять на двощах своей тупостью
ты хуже залупного герписа, пиздуй с двощей уёбок
Аноним 07/02/24 Срд 16:54:56 #266 №3039420 
>>3039417
Зоонаблюдение продолжается.
Аноним 07/02/24 Срд 16:56:08 #267 №3039422 
>>3039417
>Если бы был тупо луп с дерганьем шедулера (как уж он там устроен это дело второе)

Ты вообще в курсе как шедулер работает? Ты хочешь заебашить бизи вейтинг и еще "шедулер дергать"? Анус себе дерни, ты ещё свои грин треды напиши иди.

>и вывозом неблокирующих функций
вызови мне неблокирующий HTTP запрос маня своим "лупом" дернув "шедулер" за анус
Аноним 07/02/24 Срд 16:56:49 #268 №3039424 
>>3039422
>>3039317
Аноним 07/02/24 Срд 16:57:52 #269 №3039425 
>>3039420
Молодец, продуктивно проводишь время, ещё двадцать раз напиши а потом выдай себе премию "ебанат года" LOL
Аноним 07/02/24 Срд 16:58:06 #270 №3039426 
1577594139806.png
>>3039257
> а што эта, по-твоему? Што такое ОС, по-твоему?
Непонятно используется ли этот avf на практике, ходит ли туда кто-нибудь в системе, или просто лежит параллельно, как секьюрная возможность
Аноним 07/02/24 Срд 17:00:25 #271 №3039429 
1570542515980.png
>>3039401
Ты дебил, блять? AVF работает только под гипервизором.
> AVF consists of the framework APIs, the hypervisor, and the Virtual Machine Manager. The hypervisor guarantees virtual machines (including Android) are isolated from each other, much like how the Linux kernel does it for processes.
Аноним 07/02/24 Срд 17:00:40 #272 №3039431 
>>3039422
>Ты хочешь заебашить бизи вейтинг и еще "шедулер дергать"?
>вызови мне неблокирующий HTTP запрос маня своим "лупом" дернув "шедулер"
Делаешь кучу сахара @ быдло высирается в интернете с ебалом иксперда. Во поэтому всякие асинки и зло.
Аноним 07/02/24 Срд 17:02:19 #273 №3039434 
>>3039426
> AVF is shipped in Pixel 6 and 6 Pro, but isn't enabled by default. To enable it, follow the instructions below:
А ну оно по дефолту выключено. Короче это ещё пока всё в процессе наработки
Аноним 07/02/24 Срд 17:03:41 #274 №3039436 
>>3039429
И что? Это работает (если включить) внутри телефона, это часть операционки
Аноним 07/02/24 Срд 17:03:50 #275 №3039437 
>>3039431
поясни?

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

В скале например можно ебашить всё футурами, если не нравится - перейти на уровень джава тредов и делать что хочешь как хочешь.

В расте я пока новичок, не особо понимаю чё там за асинки вообще и как они работают под капотом(пишу хеллоу консольные)
Аноним 07/02/24 Срд 17:04:20 #276 №3039438 
>>3039437
>на уровень ниже
поправил себя
Аноним 07/02/24 Срд 17:15:03 #277 №3039443 
>>3039437
Всякий сахар уровня асинков способствуют развитию магического мышления и в этом совершенно нет необходимости, когда речь заходит про ио. Дополнительно с этим возникает негативный эффект - армия хомяков начинает сувать эти асинки в жопу, т.е. применять там, где это не нужно, и тп.
Аноним 07/02/24 Срд 17:15:43 #278 №3039444 
>>3039436
> Это работает (если включить) внутри телефона
Нет. Ты для начала должен иметь железо, которое поддерживает pKVM, потом поставить pKVM и только потом ставить на него инстансы микродроида. Т.е. это не часть ОС, это виртуалка в ведре для запуска микродроидов. По умолчанию в ведре нет этого, а поддержка pKVM на текущий момент у полутора девайсов.
Аноним 07/02/24 Срд 17:22:47 #279 №3039454 
>>3039443
Двачую. Асинки должны использоваться только если нет многопоточности. В вебе их используют только потому что жс и нода однопоточные. А использовать их в низкоуровневом языке - быть адептом ГОвна. Даже в жвм асинхронные кортутины не сильно в почёте, а на нормальном языке в принципе должно быть зашквар использовать их во все стороны просто потому что не умеешь работать с IO.
Аноним 07/02/24 Срд 17:28:28 #280 №3039460 
>>3039444
Что за верчение жопой, лол. Собирается вместе с аоспом, ставится на телефон вместе с аоспом, буквально написано, что в Андроиде 14 оно есть по дефолту, хоть и не включено.
На каких девайсах это работает мы, кстати, не знаем, потому что хз как другие вендоры используют это или не используют, разрабы аоспа только на пикселях тестят

> Т.е. это не часть ОС, это виртуалка в ведре для запуска микродроидов
Что за логика
Это виртуалка внутри оси, чтобы секьюрно компилировать приложухи. По сути песочница. Для выполнения js кода, пролетающего от браузера, в андроиде тоже есть песочница. V8 это тоже уже не часть оси? Бред не пиши
Аноним 07/02/24 Срд 17:47:57 #281 №3039480 
>>3039454
>Двачую. Асинки должны использоваться только если нет многопоточности.

Я не совсем тебя понимаю. Почему, собственно? Насколько я понимаю (на ноде не пишу) в ноде есть event loop, который "переключает" выполнение "асинков" в стиле event-machine.
Но что мешает заебашить треды и так же переключать их лол? Это просто такой выбор абстракции по сути.

Давай развёрнуто, а то я нихуя не понял.
Аноним 07/02/24 Срд 18:14:47 #282 №3039506 
>>3039480
> Это просто такой выбор абстракции по сути.
И просто способ спустить производительность в унитаз.
Аноним 07/02/24 Срд 18:20:06 #283 №3039514 
>>3039454
>зашквар использовать их во все стороны просто потому что не умеешь работать с IO
У тебя переносимость отвалилась, братан. Работай с IO на низком уровне сколько угодно, но зачем мучить жопу, если можно использовать общие наработки, делая вещи проще и переносимее? Например, для любителей uring есть https://github.com/tokio-rs/tokio-uring и https://github.com/bytedance/monoio - подключай и используй.
А если очень хочешь выебнуться низкоуровневостью, то пиши сразу в двоичных кодах.
Аноним 07/02/24 Срд 18:20:15 #284 №3039515 
>>3039460
> буквально написано, что в Андроиде 14 оно есть по дефолту
Где написано, шизоид? Найди это говно в исходниках AOSP, лол. Что там у пикселей для разработчиков напихано никого не ебёт, да и то на пикселях нет pKVM из коробки, это просто факт.
Аноним 07/02/24 Срд 18:21:12 #285 №3039517 
>>3039480
>заебашить треды
Дорого выходит.
Аноним 07/02/24 Срд 18:22:50 #286 №3039520 
>>3039480
В джаваскрипте один поток. Когда делали жс, никто подумать не мог, что ебанаты через 30 лет будут писать на этом скрипте полноценные программы, а не просто показывать плашку по нажатию кнопки. Никто там ничего не переключает, просто в точке async код возвращает выполнение в вызывающий метод, а при повторном вызове продолжается с того же места. Это не переключение потоков по прерыванию, там пока один не дойдет до асинка, остальные стоят и ждут. Почему нельзя было просто сделать для нодежс виртуальную машину с многопоточностью - непонятно, у них там своя ебанутая атмосфера.
Аноним 07/02/24 Срд 18:24:39 #287 №3039526 
>>3039515
>Найди это говно в исходниках AOSP
https://android.googlesource.com/platform/packages/modules/Virtualization/

Целый день всем тредом кормим шиза говном, даже надоело
Аноним 07/02/24 Срд 18:25:26 #288 №3039527 
>>3039514
Какая переносимость? В 2024 году сервера бегут на линуксе.
Аноним 07/02/24 Срд 18:29:00 #289 №3039530 
>>3039517
Дорого если на каждый запрос создавать новый процесс. Никто не мешает сразу нафоркать 1024 процесса и повесить их на один сокет, а дальше линукс сам сделает лоад балансинг.
Аноним 07/02/24 Срд 18:37:50 #290 №3039544 
>>3039527
>В 2024 году сервера бегут на линуксе
А в 2025 придумают новую хуйню для асинхронного доступа к ресурсам. Этому самому uring без году неделя. Что легче - раз в 3-5 лет полностью код переписывать или рантайм сменить в пару строк?

>>3039530
>Никто не мешает сразу нафоркать 1024 процесса и повесить их на один сокет, а дальше линукс сам сделает лоад балансинг.
на асинках ты можешь буквально 100500 коннектов держать, а на тредах будешь послан.
Аноним 07/02/24 Срд 18:43:16 #291 №3039551 
>>3039520
Я все равно не понимаю че ты бомбишь, это просто архитектурное решение. В ноде не 1 тред. В ноде single threaded event pool, который когда лочится - берет тред из тредпула и отдает ему управление, а сам переходит к следующей таске из очереди.

https://www.digitalocean.com/community/tutorials/node-js-architecture-single-threaded-event-loop
Аноним 07/02/24 Срд 18:46:31 #292 №3039554 
>>3039544
>на асинках ты можешь буквально 100500 коннектов держать, а на тредах будешь послан.
Чего вдруг? Количество конектов не зависит от количества тредов.
Аноним 07/02/24 Срд 18:49:21 #293 №3039558 
>>3039514
> делая вещи проще и переносимее
Это не про асинхронность. Асинхронность усложняет код и вызывает баги из-за неявного control flow.
Аноним 07/02/24 Срд 18:51:35 #294 №3039561 
>>3039526
Ты всё продолжаешь траллить тупостью? Зайди в репу AOSP, а не ищи опциональные модули.
Аноним 07/02/24 Срд 19:00:36 #295 №3039569 
>>3039561
https://source.android.com/docs/setup/download/downloading
и там ссылки на https://android.googlesource.com/platform/

хуль те надо, долбоёбина? Хочешь сказать, что вот это https://android.googlesource.com/platform/packages/modules/Telephony/ - тоже не часть AOSP ? Ведь это тоже модуль. Пиздец, чувак, ну у тебя и манёвры, как спишь по ночам-то с таким неприятием реальности?
Аноним 07/02/24 Срд 19:05:24 #296 №3039574 
>>3039558
>баги из-за неявного control flow
Как мне видится, скорее проблема рантайма. Допилят / отполируют, не сцы, всё будет.
Аноним 07/02/24 Срд 19:28:07 #297 №3039614 
>>3039569
Какой же ты долбаёб. В ведре модули надо отдельно тянуть через пакетменеджер banchan и билдить. Их нет в репе AOSP.
https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/simpleperf-release/docs/getting_started.md
Можешь сам качнуть исходники AOSP по своей ссылке и попробовать найти этот модуль - его нет там.
Если лень качать исходники, то вот зеркало:
https://github.com/aosp-mirror
Рассказываешь тут про раст в ведре, при этом ведро видел только на картинках в гугле. Ещё раз повторю - покажи хоть одну строчку работающего кода в AOSP или пиздуй нахуй с своим толстым троллингом.
Аноним 07/02/24 Срд 19:42:15 #298 №3039640 
>>3039574
> Как мне видится
Без разницы какой рантайм, у тебя всё равно выполнение прерывается и возвращается обратно в неизвестный кодеру момент. Ты это никак не пофиксишь, потому что это сама суть асинхронности.
Ну и наличие какого-то рантайма там где его могло бы и не быть - это лишние прослойки, усложняющие код и дающие оверхед.
В бсд челики ещё жаловались на "заразность" этого говна - довольно пердольно использовать асинхронную либу, когда ты сам не используешь в коде асинхронность, т.е. оно вынуждает делать асинхронным всё.
Аноним 07/02/24 Срд 20:10:33 #299 №3039681 
>>3039574
А тебя не кажется странным, что асинхронщина не прижилась полноценно нигде кроме жс? В шарпе очень удобная асинхронщина уже больше 10 лет есть, но открываешь любой свежий проект, даже веб, и там нет её. В джаве тоже почти никто не пишет на ней. Только в котлине её используют, но там она и выглядит не так как у всех, слишком высокоуровнево. В плюсах она появилась, но тоже полнейшая тишина, насколько я знаю её используют только в однопоточных микроконтроллерах.
Я когда-то у ГОвнарей сидел и читал много ахуительных историй про то как чтобы выучить язык надо две недели, а чтобы научиться уверенно разбираться в каше горутин большого проекта и оно работало без багов - 5+ лет.
Аноним 07/02/24 Срд 20:28:52 #300 №3039697 
>>3039614
>модули надо отдельно тянуть через пакетменеджер banchan
>тянуть
Пиздецъ.
>banchan selects individual APEX modules to be built by the Android build system.
Смотри код, болезный, он ничего не качает
https://cs.android.com/android/platform/superproject/+/master:build/make/envsetup.sh;drc=721533e0d6c558083732f6a811085d1803529b3f;l=803

он использует уже закачанное по инструкции https://source.android.com/docs/setup/download/downloading и модули уже там, они часть AOSP

>https://github.com/aosp-mirror
какое-то кривое зеркало с протухшими репами вроде https://github.com/aosp-mirror/platform_system_bluetooth
Аноним 07/02/24 Срд 20:34:14 #301 №3039706 
>>3039640
>у тебя всё равно выполнение прерывается и возвращается обратно в неизвестный кодеру момент

по-моему, это может стать проблемой, только при flavor="current_thread" + тяжёлые вычисления в потоках. Ну или приведи реальный кейс.
Аноним 07/02/24 Срд 20:34:34 #302 №3039707 
>>3039614
> Рассказываешь тут про раст в ведре, при этом ведро видел только на картинках в гугле.
Найс троллинг, как раз ты и не скачивал аосп ни разу. Аосп это множество (больше тыщи насколько я помню) гит репозиториев, которые менеджатся через repo и манифест, который показывает куда какой репозиторий скачивать. И какой нах гитхаб, аосп через геррит ревьювится.
Скачай по инструкции и все платформ аппы и модули там будут: https://source.android.com/docs/setup/download/downloading

Вот манифест https://android.googlesource.com/platform/manifest/+/refs/heads/main/default.xml

1158 строка – путь, куда у тебя скачается Virtualization, когда ты repo sync пропишешь

Мимо разрабатывал Хармони в РФ Хуавее. Бтв уверен тут много коллег сидят
Аноним 07/02/24 Срд 20:48:37 #303 №3039727 
>>3039681
Не буду спорить, но тут есть выбор. Асинхрон в расте почти безальтернативен только при работе с http/websocket. Да и то, возможно есть синхронные варианты, я их не искал.
Аноним 07/02/24 Срд 22:46:47 #304 №3039939 
>>3039697
>>3039707
Я даже кинул инструкцию от гугла по AVF, где чётко написано что после сборки AOSP ставится отдельный пакет, а ты продолжаешь траллить тупостью?
Аноним 08/02/24 Чтв 00:17:39 #305 №3040033 
>>3039939

Цитирую тебя же
>>3039614
>Можешь сам качнуть исходники AOSP по своей ссылке и попробовать найти этот модуль - его нет там.

всё, обоссан, уёбывай.
Аноним 08/02/24 Чтв 07:28:38 #306 №3040115 
>>3040033
Ты только себе на лицо нассал, растошиз. AVF в отдельной репе лежит.
Аноним 08/02/24 Чтв 08:44:20 #307 №3040131 
>>3039681
>асинхронщина не прижилась полноценно нигде
В Си прижилась.
Аноним 08/02/24 Чтв 09:53:12 #308 №3040153 
17068809802360.png
РЯЯЯ АНСЕЙФТ!
Аноним 08/02/24 Чтв 10:05:40 #309 №3040155 
Screenshot from 2024-02-08 10-44-40.webp
Screenshot from 2024-02-08 10-45-39.webp
>>3040115
См. пик. Любишь унижения? Продолжаем.

https://cs.android.com/android/platform/superproject/+/main:packages/modules/Bluetooth/
>Fluoride Bluetooth stack
>Building and running on AOSP

>Just build AOSP - Fluoride is there by default.

Вкурил, нет? Bluetooth ведра зовётся Fluoride и собирается вместе с AOSP в дефолтной сборке.
Заглядываем в сорцы, ищем что-нибудь системное

https://cs.android.com/search?q=BLuetooth%5C%2F.%2B%5C.rs$&sq=&ss=android%2Fplatform%2Fsuperproject:packages%2Fmodules%2FBluetooth%2F

231 файл на расте. Например

https://cs.android.com/android/platform/superproject/+/main:packages/modules/Bluetooth/floss/hcidoc/src/parser.rs

Для сравнения https://cs.android.com/search?q=BLuetooth%5C%2F.%2B%5C.(c%7Ccc%7Ccpp)$&ss=android%2Fplatform%2Fsuperproject:packages%2Fmodules%2FBluetooth%2F - 1400 файлов остаётся на c/cpp


Короче, все новые мобилки с ведром 14+ идут с растом на борту при наличии у них bluetooth.
https://cs.android.com/android/platform/superproject/+/android14-release:packages/modules/Bluetooth/tools/rootcanal/rust/src/packets.rs
Аноним 08/02/24 Чтв 10:10:38 #310 №3040158 
Screenshot from 2024-02-08 11-10-02.webp
>>3040115
Вот, держи ещё.
>binder
>AOSP
Аноним 08/02/24 Чтв 11:07:26 #311 №3040198 
>>3040155
Молодец, спустя два дня наконец нашёл модуль, который включен по умолчанию везде, но всё равно обосрался.
> См. пик.
Тебе видимо самому надо глаза с мылом мыть, потому что внешние модули ставятся питон-скриптами или через пакет-менеджер при сборке. Ты зачем-то притащил скрины репы ведра, но там очевидно нет этого модуля. Ты бы хоть чекал перед тем как писать. Алсо, заебал в Code search рыться, там собрано вообще всё, в том числе и внешние модули. Склонируй уже репу AOSP и не позорься, это 5 минут времени.
>>3040158
> выделяет копирайт
Тут даже комментировать не надо.
Аноним 08/02/24 Чтв 12:46:43 #312 №3040274 
>>3040198
Вот ты ебанько, а. Давай тезисно.

Значит, тезис: софтварь на мобилке делится на ОС и приложения. С этим будешь спорить?

Если да, ну поспорь. Если нет, то вот это что, по-твоему:
https://cs.android.com/android/platform/superproject/+/android12L-release:frameworks/native/libs/binder/rust/src/proxy.rs
1. Часть ОС
2. Приложение

собсо, 2 стула, выбери.
>Склонируй уже репу AOSP
сам клонируй, мне диск жалко. Вот инструкция https://source.android.com/docs/setup/download/downloading
Зеркалом на гитхабе можешь подтереться, его там нет.
Аноним 08/02/24 Чтв 12:50:21 #313 №3040284 
>>3040274
> его там нет
С него AOSP на кастомках собирают, клован.
Аноним 08/02/24 Чтв 13:01:40 #314 №3040294 
Screenshot from 2024-02-08 14-00-05.webp
Screenshot from 2024-02-08 13-58-52.webp
>>3040284
И что, вот прям без https://cs.android.com/android/platform/superproject/+/android14-release:packages/modules/Bluetooth/ берут и собирают?

Давай проверим
https://github.com/LineageOS/android#getting-started
а там, внезапно, тот же repo с теми же модулями и тем же https://cs.android.com/android/platform/superproject/+/main:packages/modules/Bluetooth/ , который частично уже на расте

Не устал обсираться, мань?
Аноним 08/02/24 Чтв 15:48:58 #315 №3040458 
1701048672904.png
>>3040294
> Давай проверим
Давай. ГОвна в 10 раз больше, чем раста, лол. Откуда оно там вообще, блять?
Аноним 08/02/24 Чтв 16:17:35 #316 №3040505 
Screenshot from 2024-02-08 17-16-35.webp
>>3040458
Да там, походу, сорцы всего говна в external.
Посчитай всё, что кроме
Аноним 08/02/24 Чтв 17:35:25 #317 №3040640 
image.png
image.png
image.png
>>3040198
> AVF в отдельной репе лежит.
> Склонируй уже репу AOSP и не позорься, это 5 минут времени.
Ну я склонировал, всё есть. Хз откуда ты правда 5 минут взял, если учитывать, что сорсы 161G весят без блобов.
На ночь поставлю cloc - посмотрим сколько там раст строк от общего числа
Аноним 08/02/24 Чтв 18:48:09 #318 №3040796 
>>3040640
>161G
Используй repo --depth , Luke
Аноним 08/02/24 Чтв 18:51:19 #319 №3040804 
>>3040640
>cloc
Не забудь исключить обвязку. Те же исходники go, которые там за каким-то лешим присутствуют https://cs.android.com/android/platform/superproject/main/+/main:prebuilts/go/linux-x86/
Ну и от раста там тоже дохрена сторонних крейтов, видать, что-то типа кеша на случай leftpad, лул.
Аноним 08/02/24 Чтв 22:49:33 #320 №3041206 
>>3040796
Без истории там все равно достаточно много 60-70гб

>>3040804
Ты "обвязку" никак не отключишь все равно. Аосп это 1300+ репозиториев, в том числе многие из них опенсоурсные а-ля ядро линукс. Так сделано, потому что приходится вносить патчи и в них.
Так что чисто код, написанный разрабами аоспа, никак не посмотреть. Мб если только через гит блейм по комитам не идти и не фильтровать хз как откуда разраб
Аноним 09/02/24 Птн 12:24:01 #321 №3041565 
image.png
Только хотел начать учить раст, и увидев снова хеллоу ворд, вспомнил про макросы и чет все желание упало.
Аноним 09/02/24 Птн 12:27:56 #322 №3041566 
>>3041565
Можно в макросах реализовать сишку и писать на ней. Будешь говорить всем что ты растовик и при этом будешь писать на нормальном ЯП.
Аноним 09/02/24 Птн 12:57:03 #323 №3041591 
>>3041565
Поясни?
Че все так макро боятся?
Я щас посмотрел код, хз, вроде обычный кодогенератор. Понятно что с лисп макросами не сравнить, но тем не менее.
Аноним 09/02/24 Птн 14:53:53 #324 №3041754 
>>3041591
То что в них может любая магия происходить и отдебажить баг в макросе даже Аллах не осилит. В тех же крестах макросы это антипаттерн.
Аноним 09/02/24 Птн 15:33:44 #325 №3041821 
>>3041754
>В тех же крестах макросы это антипаттерн.
Ты говоришь о макросах препроцессора, это другое.
Шаблоны же, которые больше походят на макросистему, в крестах используются повсеместно.
Аноним 09/02/24 Птн 15:54:44 #326 №3041867 
>>3041566
Тотальная магия
Сложно читать и сопровождать
Сложно дебажить
Долго компилить
Кодогенарацию можно сделать проще.
Аноним 09/02/24 Птн 16:21:05 #327 №3041890 
>>3041867
с любыми макросами так, но макро/рефлексия неотъемлемая часть любого языка
Аноним 09/02/24 Птн 17:04:31 #328 №3041942 
Посмотрел видос, эти ппц, чтобы присвоить простое значение для ссылки в структуре нужно какой-то дереф, потом Rc<RefCell<>>, а потом какой-то refmut возвращается, жесть костыли на костыле, это точно самый любимый язык?
https://www.youtube.com/watch?v=Fqnwj04CQX4

после этого Го не выглядит таким говном
Аноним 09/02/24 Птн 17:07:47 #329 №3041944 
>>3041942
Ах да, RefCell еще проверяется в рантайме, а не компайлтайме.
Аноним 09/02/24 Птн 17:15:19 #330 №3041950 
>>3041867
>Тотальная магия
>Сложно читать и сопровождать
>Сложно дебажить
>Долго компилить
ПТСР от крестошаблонов? Потому что ты перечислил проблемы крестов.
А у раста не самая плохая макросистема.
>Кодогенарацию можно сделать проще.
Можно, но это тебе не лисп.
>>3041890
>но макро/рефлексия неотъемлемая часть любого языка
Щито?
Аноним 09/02/24 Птн 17:24:53 #331 №3041957 
>>3041950
Шиз, я не спорю чье говно лучше, что ты возбудился. Меня спросили, я ответил. Даже нормальные растеры не отрицают проблему макросов.
Аноним 09/02/24 Птн 17:28:43 #332 №3041964 
>>3041942
Ты просто долбоёб, самый настоящий eblanus vulgaris. Твой случай не уникальный.

Как же достали уже нытики "штабы проста ссильку сделать на памить надо Rc<RefCell<i32>>!!! ТИЖИЛО"
Да иди пиши свои линкедлисты с нормальным синтаксисом в си/плюсах/где хочешь. Будто вас кто-то заставляет писать на расте, уговаривает прям. Если вы не в состоянии прочитать растбук и понять в чем суть этих абстракций - то этот язык не для вас, очевидно. Вам о другом думать надо - о ригидности своего мышления и как это исправить, а не о рефцелах.

По рефцелам и другим абстракциям "каторые слажна четать!" идея проста:
Раст гарантирует тебе безопасность при работе с памятью и тредами.

Условие только одно: пользоваться предоставленными абстракциями.

Если ты ими не пользуешься - что не проблема, unsafe это неотъемлемая часть языка - то язык тебе этого не гарантирует и ты ловишь сегфолты если у тебя кривые руки.

Дереф это трейт, который нужно имплементить, внимание, для правильного дереференса растом твоей абстракции.
МояАбстракцияСтроки.deref() превращается в указательНаСтрокуХранящуюсяВАбстракции, то есть когда ты делаешь МояАбстракцияСтроки ты получаешь собственно строку, ибо под капотом это выглядит как (МояАбстракцияСтроки.deref()) Иначе раст не поймет как твою парашу задереферить.

>после этого Го не выглядит таким говном

Как же легко макаку заставить отказаться от своих убеждений.

Во-первых: го безусловно не говно. Это инструмент, причем относительно успешно решающий бизнес задачи. Язык безусловно менее гибкий, нежели раст, но от этого ниразу не "говно", хотя мне он и не нравится.

Говно у тебя в голове, болезный.
Аноним 09/02/24 Птн 17:30:50 #333 №3041971 
Да ебаные вы кочегары, заебало читать ваши высеры о том какой он пиздатый или какой он конченый
Аноним 09/02/24 Птн 17:33:25 #334 №3041974 
>>3041950
>но макро/рефлексия неотъемлемая часть любого языка
>Щито?

Чё тебе непонятно? Дурак что ли?

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

Если хочешь максимально тупой язык, чтобы тебя ограничивали во всём и ничего там не было лишнего - пиздуй в гоу, там только 1 го вей как можно писать правильно. но вообще даже там есть рефлексия
Аноним 09/02/24 Птн 17:35:02 #335 №3041975 
>>3041964
>Самый лучше и самый нужный, линукс перепишем!
пять минут спустя
>Что вы ноете? Не нравится есть говно, не ешьте, что вы приходите и ноете.

Я понял, спасибо.
Аноним 09/02/24 Птн 17:35:30 #336 №3041976 
>>3041974
Да-да, долбаебы обвешаются тысячами самописных макросов, а потом оракл или перл не могут переработать, потому что заебешься переделывать говномакросы, которые удобны, ага?
Аноним 09/02/24 Птн 17:36:02 #337 №3041978 
>>3041964
>когда ты делаешь МояАбстракцияСтроки ты получаешь собственно строку, ибо под капотом это выглядит как (МояАбстракцияСтроки.deref()) Иначе раст не поймет как твою парашу задереферить.

когда ты делаешь <звездочка>МояАбстракцияСтроки ты получаешь собственно строку, ибо под капотом это выглядит как <звездочка>(МояАбстракцияСтроки.deref())
Иначе раст не поймет как твою парашу задереферить.

Пофиксил себя, макаба съела звездочки
Аноним 09/02/24 Птн 17:40:16 #338 №3041980 
>>3041976
ты чё тут про перл вспомнил-то? Там без макросов минус ебало, это как раз антипример

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

Раст в принципе сложный язык, как по твоему там должны выглядеть макросы? Или ты считаешь, что их там не должно вообще быть только потмоу что они "сложные" для тебя?
Аноним 09/02/24 Птн 17:43:57 #339 №3041983 
>>3041975
Да-да, уёбывай давай, отличную аналогию придумал, очень остроумно

ешь своё не говно, парашник

>перепишем линукс

А линукс безусловно будут дописывать на расте переписать его вряд ли получится. Потмоу что раст безопаснее и предсказуемее сишки и крестов для большей части аудитории, которая наигралась в это дерьмо в сосничестве и не прикасалась к нему никогда больше.
Аноним 09/02/24 Птн 17:50:32 #340 №3041992 
>>3041980
>все просто пользуются ими и кайфуют. Хотя они там выглядят как полный пиздец
А ты любишь пощекотать себе анус, любитель макросов
Аноним 09/02/24 Птн 17:52:31 #341 №3041994 
>>3041983
>перепишем линукс
https://www.youtube.com/shorts/_qYZ7U_yTWo
Аноним 09/02/24 Птн 17:55:57 #342 №3041995 
>>3041992
если хочешь могу и тебе пощекотать.
по делу есть что сказать?
Аноним 09/02/24 Птн 17:57:00 #343 №3041996 
Сколько нужно ОЗУ и места на диске, для сборки средних проектов? Насколько разработка требовательна к железу?
Аноним 09/02/24 Птн 17:59:56 #344 №3041999 
>>3041996
Гигов 5 на сборку зависимостей на диске. ОЗУ должно быть поебать если в один поток собираешь.
Аноним 09/02/24 Птн 18:13:34 #345 №3042014 
>>3041974
О чем ты, школьник? В куче языков нет и намёка на интроспекцию и макросы.
Аноним 09/02/24 Птн 18:15:15 #346 №3042015 
>>3041957
>Меня спросили, я ответил.
Мог бы честно сказать, что просто не знаешь или не осилил.
Аноним 09/02/24 Птн 18:26:31 #347 №3042021 
>>3042014
>интроспекция
Во-первых, интроспекция != рефлексия, хоть часто и применяется в одном контексте.

Во-вторых, вот и пиздуй пиши на них, чё там на вскидку? Фортран, кобол, чистый асм, наверное ещё паскаль (но тут неуверен). Флаг в руки и пиздуй, даун. Надеюсь ты найдёшь там своё счастье.
Аноним 09/02/24 Птн 18:42:17 #348 №3042044 
>>3041950
У крестов нет проблем.
Проблемы у тех, кто на них пишет
Аноним 09/02/24 Птн 19:03:56 #349 №3042080 
>>3041950
> крестошаблонов
> проблемы крестов
А при чём тут они? С шаблонами как раз нет этих проблем, их сделали для того чтобы выкинуть сишные макросы.
> у раста не самая плохая макросистема
И чем она отличается от сишных макросов? Только тем что унифицированы имена через ! и оно не протекает как min/max в сишке? Всё так же нет никакой стандартизации синтаксиса внутри макроса и там может быть хоть код SQL, всё так же невозможно дебажить их. Как было говно, так и осталось в расте.
Аноним 09/02/24 Птн 19:31:10 #350 №3042137 
>>3042080
>дебажить макросы
честно говоря я хуй знает как их дебажить даже в лиспе, где макросистема лучшая в мире

>макросы в си не отличаются от раста
Ты вообще ебанутый?
си макросы макросами называть нельзя, просто препроцессор который заменяет текст

в расте макросы понимают АСТ и работают с токенами, могут генерировать код, а не просто заменять текст
Аноним 09/02/24 Птн 19:44:59 #351 №3042183 
>>3042137
> понимают АСТ и работают с токенами
В чём принципиальная разница для тех кто потом использует их? Больше магии внутри - это наоборот хуже.
Аноним 09/02/24 Птн 20:22:19 #352 №3042247 
>>3042183
Никакой, но писать и сапортить безопаснее. Иди нахуй короче, зачем я тебе это объясняю если ты своей бошкой допереть не можешь. Спроси еще зачем обувь снимать когда заходишь домой если все равно потом убираться.
Аноним 09/02/24 Птн 20:28:01 #353 №3042253 
>>3042247
> безопаснее
Что за болезнь? Уже втыкаете это слово даже туда где ему не место.
Аноним 09/02/24 Птн 20:32:25 #354 №3042256 
>>3042253
Жаль твоя мама его не знала, иначе бы обязательно натянула своему юбарю гандон и ты в итоге тут не серил бы
Аноним 09/02/24 Птн 20:49:08 #355 №3042267 
>>3042021
А теперь возвращаемся к тому, с чего начали
>но макро/рефлексия неотъемлемая часть любого языка
ЩИТО БЛЯТЬ?
Аноним 09/02/24 Птн 20:50:05 #356 №3042269 
>>3042247
> растошиз рассказывает как срать макросами безопасно
Пока что лучший высер дня.
Аноним 09/02/24 Птн 22:21:04 #357 №3042387 
>>3042267
Перечитай тред пиздоглазый
Аноним 09/02/24 Птн 22:21:56 #358 №3042388 
>>3042269
Я рад что тебе понравилось
Аноним 10/02/24 Суб 02:28:07 #359 №3042496 
Лиспопетух порвался, какая трагедия.
Аноним 10/02/24 Суб 02:40:30 #360 №3042505 
Лиспопе^H^Hэлита в треде, задавайте свои ответы.

А пока небольшая стори.
Такой фейл произошел со мной. Моя училка по Python узнала, что я к ней неровно дышу. Она пришла с ВМК несколько лет назад, ей 25 и она очень хороша собой. В жизни она лучше чем на фото.
Небольшое отступление. Ее зовут Ева Борисовна, но так как в английском языке нету такого формального обращения как в русском, то она нас просит называть ее Eva Lu Ator. По ее словам это помогает наладить дружескую атмосферу и еще чего-то там. Ну в общем чувствуем себя с ней на равных.
Наша группа по scheme небольшая (7 человек), остальные обсоски учат Lisp, и еще одна группа мудачков учит Haskell. Мы частенько всей группой остаемся в классе и программируем с ней всякие задачи AI. (В среду и пятницу наш урок последний) Она спрашивает у нас как прошел наш день, интересуется пробелами или табами мы пользуемся при написании функций. Я ей особо не рассказываю про свои exception, но остальные любят с ней обсудить свой быдлокод, а я сижу и листаю маны по Hadoop MapReduce. И вот как-то в один из таких дней нас осталось только трое, я и еще двое одноклассников. Остальные либо болели, либо съебались по делам. И вот сидим мы беззаботно болтаем. Я разговорился, хуле, народу то меньше чем обычно, я и посмелел. Расспрашиваю ее о процедурах, а у самого уже чуть ли не стоит. Я ведь общаюсь с НЕЙ. Она достает что-то из сумочки, присмотрелся – это ее нетбук.
— Что делать будете?
— Почитаю Lambda Calculus and Combinators. Обожаю! Читаю практический каждый день.
— Комбинаторы? лямбда? Странно как-то. (я императивщик блджад)
— Ну да. Может быть. Но я стараюсь читать здоровую литературу. Харрисон, Филд и все такое.
— Да, прикольно (лицопальма)
Пока она употребляла свои словечки о рекурсии и Y-комбинаторах, она попросила меня разобраться с ее компом. Она не могла выйти в сеть. Я как бравый парень сажусь за комп, лезу в настройки TCP/IP чего-то там курочу, перезагружаюсь, она пытается войти под своим логином и паролем, выдает ошибку. Пиздец пиздец. Стою краснею. Она говорит: «Спасибо тебе за пустую услугу». Блжад . Она спрашивает мой логин и пароль, чтобы попробовать войти под моим аккаунтом. Я называю логин(инициалы) и пароль: Evaluatorissexy. Назвал чисто машинально, не задумываясь. И только потом понял что ляпнул. Она просит называть ее Evaluator, хочет неформального общения, вот оно блядь! Во всей красе. Пиздец я от стыда чуть под пол не провалился. Собрался уже было съебывать, но думаю надо извиниться. Стою перед ней, взор потупил. И тут-то я высрал кирпичей. Кусочки пазла стали собираться воедино:

Она просит называть ее Eva Lu Ator , т.е. эвалуатор
Любит здоровую литературу – Харрисон, Филд
Говорила про «пустую услугу»

Ева Борисовна – ЛИСПОПЕТУШОК,замаскировавшийся под нормального человека.
ЛИСПОПЕТУШОК сразу же заметил что я его раскусил и набросился на меня. Я еле увернулся от его ручищ и сразу же выбежал из кабинета. ЛИСПОПЕТУШОК бросился в погоню, сметя все на своем пути. Я побежал к выходу, ЛИСПОПЕТУШОК бежал за мной. Он сбил уборщицу, и она полетела как exeption в моих программах. Я выбежал на улицу и побежал к перекрестку. Пока я соображал как перейти дорогу чтобы не удариться об машину, ЛИСПОПЕТУШОК просто перескакивал через них. Водители бросились разъезжаться в разные стороны дабы не столкнуться с ЛИСПОПЕТУШКОМ. Он нагонял меня. У меня не было выбора кроме как спрятаться в ближайшем здании. Это был детский сад. Я уже забежал в само здание садика, как ЛИСПОПЕТУШОК ворвался в него, проломив стену. Нескольких детишек он раскидал своими кривыми руками, а каких-то придавил мерзким дыханием. Но эти детишки спасли мне жизнь. ЛИСПОПЕТУШОК с каждым прыжком ко мне пробирался все ближе. Я воспользовался тем драгоценным временем, которое мне подарили эти детишки, и запрыгнул на лестницу. Оттуда по трубе я мог добраться до дерева, и уже оттуда мог залезть на крышу детского сада. Возможно, там я бы смог запросить помощи у вертолета, пролетающего мимо.
Аноним 10/02/24 Суб 08:04:13 #361 №3042545 
изображение.png
Ну и в чем я не прав?

https://vc.ru/dev/1019377-kak-ya-napisal-zagruzchik-video-na-rust
Аноним 10/02/24 Суб 10:43:22 #362 №3042640 
>>3042545
>К сожалению, нативной реализации библиотек yt-dlp и FFmpeg для Rust нет
>Код пишется довольно медленно,
Мыши плакали, кололись, но продолжали грызть кактус

>однако компилятор предостерегает от потенциальных проблем, что делает его прекрасным выбором для создания производительного и надежного кода на века.Не случайно в настоящее время Rust решили использовать в коде ядра Linux, а Google внедряют Rust в платформу Android.
Обязательная часть при заказе статьи? Что за слащавый маркетинг пошел? Волосы шелковистее не стали?
Аноним 10/02/24 Суб 10:46:38 #363 №3042644 
image.png
>>3042545
Лол
Аноним 10/02/24 Суб 10:52:33 #364 №3042647 
>>3042545
>В итоге я принял решение разработать бэкенд на Rust с использованием веб-фреймворка Axum. Выбор этого стека обусловили впечатляющие результаты бенчмарков, где Axum обгоняет по производительности практически все фреймворки.

Теперь в этом рейтинге axum где-то вперде, что теперь на какой-то faf переходить? Или же вообще на го, шарп и V?
https://www.techempower.com/benchmarks/#hw=ph&test=plaintext&section=data-r22
Аноним 10/02/24 Суб 10:53:41 #365 №3042648 
>>3042545
Как переписать либу с опасного языка С/С++ на безопасный Раст:
1) берём либу
2) пишем обёртку
3) готово
Аноним 10/02/24 Суб 11:02:28 #366 №3042655 
>>3042644
Для тех кто растер.
Чел тупо вынес дробилку из приложения на сервер и не упомянул об этом, при этом слащаво ратует за раст, мол как стало с ним все круто, хоть и скорость разработки упала.

Это какой-то технический сюр.

Что не так с деврелами? То недавно переписывает ядро винды, хотя там вообще не мягкие и вообще не ядро, то эта статья?
Аноним 10/02/24 Суб 11:03:43 #367 №3042658 
>>3042655
А нахуя читать что то с wc ру?
Аноним 10/02/24 Суб 11:11:49 #368 №3042667 
>>3042658
Покушать же принесли.
Аноним 10/02/24 Суб 12:40:19 #369 №3042705 
>>3042655
Чулочники просто ебанутые. Там неиронично диагноз по шизе, they/them и самовыпил в 30.
Я немного пописал на расте и мне эта хуйня очень не понравилась. Документации нет, надо лазить по исходникам и там в комментариях искать примеры. Весь код или засран Box dyn Error, или ехал unwrap через unwrap. Шиза с владением - это просто за гранью разума, в программе на сотню строк я и сам уберу мусор, особенно, когда его нет.
Аноним 10/02/24 Суб 12:59:51 #370 №3042712 
>>3042640
Скуф пиздуй отсюда со своими шутками из прошлого столетия
Аноним 10/02/24 Суб 13:01:39 #371 №3042714 
>>3042705
>документации нет
Да ты охуел
Аноним 10/02/24 Суб 13:03:09 #372 №3042717 
>>3042705
> Шиза с владением
Немного попердолился и всё работает без фиксов мемориликов и сегфлолтов в будущем. Не понимаю проблемы. Или просто сложно? Ну извините, уебывай назад в питон.
Аноним 10/02/24 Суб 13:17:09 #373 №3042722 
>>3042714
Но ведь всё верно пишет. Автогенерация списка API - это с трудом тянет на документацию. Я вот недавно с hickory-dns связался, так там вообще нихуя нет, сам блять разбирайся как использовать их либу, куча каких-то структур, нихуя не понятно как всё это говно связано и какие методы что делают. Ни примеров, и доков - хули ебало скривил, код же безопасный, а на остальное забить можно. Причём на docs.rs есть кусок примера, но в гите таких структур в принципе нет что они в примере используют, ахуеть теперь. Я в итоге взял первую попавшуюся сишную либу с 20-ю процедурами и сделал хуяк-хуяк всё - там всё сразу понятно было.
Аноним 10/02/24 Суб 13:19:51 #374 №3042728 
>>3042722
А раст тут причем? Я в скале тоже охуеваю от отсутствия доков к некоторым библиотекам.
В самом расте шикарная документация.
Аноним 10/02/24 Суб 14:17:02 #375 №3042769 
>>3042722
Это проблема опенсорса в целом, в руби также ебался
Аноним 10/02/24 Суб 14:46:00 #376 №3042782 
>>3042712
Ты о чем, маленький?
Аноним 10/02/24 Суб 14:49:46 #377 №3042785 
>>3042728
>>3042769
Это не проблема опенсорса, это проблема экзотических перделок, хайпанули тут, хайпанули там, надоело, побежали в следующий проект.
Аноним 10/02/24 Суб 15:00:53 #378 №3042801 
>>3042785
Ну сходи на npm там тоже охуеешь от объема документации у некоторых библиотек
Аноним 10/02/24 Суб 15:51:50 #379 №3042857 
>>3042655
Там написано, что раньше всё делало приложение, а теперь добавился сервер. Ты просто читать не умеешь.
Аноним 10/02/24 Суб 16:00:32 #380 №3042872 
>>3042801
Аргументы типа - сходи в интернет и сам найди что кто-то неправ, такое себе.
Аноним 10/02/24 Суб 16:03:49 #381 №3042877 
>>3042857
Его спросили как он добился снижения размера с 90мб до 10мб, он сказал что вытащили видео-дробилку с клиента на сервер.
То есть, раст там вообще не причем, но статья завуалированно намекает на достижения раста.
Аноним 10/02/24 Суб 16:45:25 #382 №3042926 
>>3042872
Ты студент? Вот когда пару лет поработаешь и столкнешься с опенсоросом, то увидишь что часто с библиотеками бывает плохо если туда не вписываются какие-нибудь спонсоры. Я с таким на разных языках сталкивался
Аноним 10/02/24 Суб 16:57:40 #383 №3042945 
>>3042926
Ну раз у тебя столько опыта, то наверное можешь не трепаться языком, а взять и показать пример где у топ языков и топ либ проблемы с доками?
Аноним 10/02/24 Суб 17:08:40 #384 №3042963 
изображение.png
>>3042945
>не трепаться языком
А по-другому никак, потому что это субъективное понятие. Больше языком треплешься здесь ты выдавая библиотеку с 4 сотнями загрузок как за данность в языке

>топ либ
Покажи проблемы у раста с топ либами и вообще в чём критерий топовости?

покромил
Аноним 10/02/24 Суб 17:09:34 #385 №3042964 
>>3042705
>Box dyn Error
Так делают только вкатуны
Аноним 10/02/24 Суб 17:12:55 #386 №3042968 
>>3042877
Нет, достижения у раста всё же есть.
Низкое потребление ресурсов и скорость.
Если бы я написал этот сервис на Python'e или жаве,то не вывес бы расходы на содержание облака.

мимо автор статьи
Аноним 10/02/24 Суб 17:39:53 #387 №3042998 
>>3042968
>Низкое потребление ресурсов и скорость.
Ты вроде как сказал что дергаешь через консоль нужную команду?

>Если бы я написал этот сервис на Python'e или жаве
Вот когда напишешь тогда и приноси.
Хотя не нужно, ты скорее всего не понимаешь как резервируется память в этих жабо/шарпах.
Епись теперь на расте, особенно когда придется расти и нанимать кодера, тогда прочувствуешь всю оптимизацию раста.
Аноним 10/02/24 Суб 17:42:38 #388 №3043003 
>>3042963
>Кококо, у меня столько опыта, всех переопычаю.
>Так покажи
>Пук среньк
Я все понял, молодец, возьми конфетку с полки.
Аноним 10/02/24 Суб 18:40:24 #389 №3043046 
>>3043003
Ты зачем обосрался?
Аноним 10/02/24 Суб 19:35:25 #390 №3043137 
>>3043003
Хватит серить
Аноним 11/02/24 Вск 18:17:53 #391 №3043975 
Что за проблема в асинках? Мечусь межу го или растом, пока не могу определиться, нужна хорошая асинхронная основа.
Аноним 11/02/24 Вск 18:58:38 #392 №3044021 
>>3043975
>Что за проблема в асинках?
Нет никаких проблем. Есть одна проблема, она называется "руки из жопы".
Аноним 11/02/24 Вск 19:14:08 #393 №3044055 
>>3044021
А можно конкретнее?
Аноним 11/02/24 Вск 19:19:19 #394 №3044075 
>>3043975
Они не нужны. Для джейсономешалок есть более подходящие языки, а для системных вещей токио медленное говно без задач.
Аноним 11/02/24 Вск 19:31:18 #395 №3044111 
>>3043975
Если у тебя строго один интерес и для этого подходит го, бери его.
Если хочешь один язык "для всего", то бери раст.
Аноним 11/02/24 Вск 19:41:57 #396 №3044131 
>>3044111
Я спрашиваю, что не так с асинхронностью в расте.
Аноним 11/02/24 Вск 20:02:32 #397 №3044168 
>>3044131
Всё так, те же проблемы, что у других языков.
Аноним 11/02/24 Вск 20:22:44 #398 №3044198 
>>3044168
Такое ощущение, что у тебя просто потребность во внимании. Надеюсь ты тут не один.
Аноним 11/02/24 Вск 20:39:04 #399 №3044209 
>>3044055
А чё конкретнее-то? У раста есть все инструменты. Есть tokio, есть futures (если токио не устраивает), есть actix на базе токио. Если акторы не устраивают, можно просто сделать thread::spawn. Я не знаю чё ты пришёл сюда и жалуешься на выдуманные проблемы. Ты фьючерсы пробовал? Токио пробовал? Вот когда попробуешь тогда и приходи. А щас это просто выдуманные проблемы рукожопов.
Аноним 11/02/24 Вск 23:02:01 #400 №3044348 
>>3044131
Coloring problem как и везде где есть асинх/ждать
Аноним 12/02/24 Пнд 10:14:20 #401 №3044562 
>>3044348
>coloring

очередная выдуманная хуйня, это как жаловаться почему "я нем могу сделать "penis".to string ???".

Да, приходится думать иногда какие дергаешь функии, лол.
Аноним 12/02/24 Пнд 10:32:04 #402 №3044578 
>>3044131
https://blog.hugpoint.tech/avoid_async_rust.html
Аноним 12/02/24 Пнд 11:33:47 #403 №3044713 
>>3044562
бля хуйню написал, конечно же я имел в виду "penis".toInt
Аноним 12/02/24 Пнд 11:57:20 #404 №3044768 
>>3044578
ну всё, поулчается расходимся? Раст говно. В какой тред пойдём серить теперь?
Аноним 12/02/24 Пнд 12:01:25 #405 №3044776 
>>3044578
Благодарю.
Аноним 12/02/24 Пнд 12:52:01 #406 №3044904 
>>3044768
Очевидно в го тред, зеленные функции для слабаков!
Аноним 12/02/24 Пнд 13:08:16 #407 №3044937 
>>3044768
Го, я создал https://2ch.hk/pr/res/3044934.html
Аноним 12/02/24 Пнд 13:16:17 #408 №3044962 
>>3044562
Из-за coloring problem получается что либы с асинхронным АПИ не могут вызываться блокирующим способом ну если не затаскивать в зависимости вызывающего кода асинхронный рантайм. Несущественно по-твоему?
Аноним 12/02/24 Пнд 13:32:48 #409 №3044999 
>>3044962
Да. Это несущественно.

Во-первых это возможно, используй await.

Во-вторых это как жаловаться на невозможность работы с каким-нибудь ArrayBuffer в жабе в мультитредном окружении. Надо мутекс пихать!!!!!! Ну нет...

ПРОСТО берешь либу без асинков тогда и вперёд, вопросы?

Это предъява по вонючести уровня "бойкот дженериков в го".
Аноним 12/02/24 Пнд 14:04:59 #410 №3045062 
Есть кто перекатывался с перла/питона/руби на раст? Не в профессиональном плане, а просто хочется что-то новое попробовать
Аноним 12/02/24 Пнд 14:19:57 #411 №3045110 
>>3045062
я во всех смыслах перекатываюсь с руби
Аноним 12/02/24 Пнд 14:37:43 #412 №3045159 
>>3045062
Зачем? Не думаю, что раст не станет прикладным инструментом.
Ты делаешь тоже самое, но дольше. Твой супер код все равно будет 90% проседать на i/o. Я смотрел на размер бинаря и потребление памяти, но оказалось го делает тоже самое и не нужно костылить с Rc/Refcell и лайфтаймами.

С такой компиляцией попробуй какой-нибудь ui подвигать и шрифтами поиграться.
Хороший системный язык, для дробилок, для узких мест, но никак не прикладной.
Аноним 12/02/24 Пнд 15:47:43 #413 №3045247 
>>3045159
>Твой супер код все равно будет 90% проседать на i/o
Не везде есть IO, болезный.

>размер бинаря и потребление памяти, но оказалось го делает тоже самое
..а ещё есть потребление CPU и тут мы скромно промолчим.
Аноним 12/02/24 Пнд 16:41:22 #414 №3045301 
>>3045247
Чулки постирай.
Аноним 12/02/24 Пнд 17:10:27 #415 №3045341 
>>3045247
>..а ещё есть потребление CPU и тут мы скромно промолчим.
В конце девяностых многие писали cgi на всяких плюсах, бюджетные серваки были вообще на селеронах, и тут люди начинают вдруг писать на перл, пхп. А почему? Да потому что пинг, запросы с базы, файловое i/o пожирали всю мощь твоих плюсов, говноскрипта хватало чтобы высрать html'ку, а когда пхп стал модулем апача, плюсы вообще соснули, так как проигрывали именно по i/o и тупезне cgi технологии.

Так что срать потребление, мы по i/o стоим больше. Смешно, но раст планировали же с зелеными тредами, а теперь он нахер не нужен в прикладных задачах, когда у тебя за десяток ядер.
Аноним 12/02/24 Пнд 17:36:05 #416 №3045393 
>>3045341
>В конце девяностых
Мощности CPU росли быстрее, чем стартап сына мамкиной подруги, поэтому всякое скриптовое говно и повылазило, что как ты ни пиши, через перу лет менять парк компов на х3-4 раз мощнее.

>тупезне cgi
не проблема языка и давно уже порешано тем же нжынксом.

>плюсы вообще соснули, так как проигрывали именно по i/o
ты не понимаешь, о чём пишешь. Они проигрывали по скорости ответа из-за кривости CGI. i/o, это когда у тебя висит 100500 процессов того же апача 1.3 и ждёт, когда же клиенты с 2G мобилок скачают свои гифки.


>раст планировали же с зелеными тредами
и правильно сделали, что выкинули. Иначе это был бы ешё один язык с неотключаемым рантаймом, а там и до сборки мусора недалеко.
>мы по i/o стоим больше.
стойте, хуй с вами, есть полно других задач, где это не актуально.
Аноним 12/02/24 Пнд 18:26:44 #417 №3045501 
>>3045301
Опять серишь?
Аноним 12/02/24 Пнд 18:27:44 #418 №3045504 
>>3045393
>а там и до сборки мусора недалеко.
Там в соседнем треде, лобстер, судя по заявлению сам расставляет лайфтаймы и когда не может накидывает Rc. Чем это отличается от того же раста, где тоже самое делает чулочник, но уже руками и через мат?

>и правильно сделали, что выкинули.
Тогда же язык многие и дропнули, людям нужен был го с вменяемым дизайном, а не враперка для плюсов.
Аноним 12/02/24 Пнд 19:22:21 #419 №3045677 
>>3045504
>Чем это отличается от того же раста, где тоже самое делает чулочник, но уже руками и через мат?
Тем, что в расте управление памятью, всё-таки, ручное. Ты можешь не оборачивать в Rc, а подправить ручками.

>го с вменяемым дизайном
Много народу пользует тот же V ? https://vlang.io/compare#go а ведь это оно - бери и пользуйся. Ответ прост - без поддержки крупного корпа мелкие не рискнут писать на нём свои, как метко выразился некто, джейсономешалки.
Аноним 12/02/24 Пнд 20:07:09 #420 №3045770 
16893508335672.png
>>3045677
>Ты можешь не оборачивать в Rc, а подправить ручками.
Аноним 12/02/24 Пнд 20:18:59 #421 №3045789 
>>3045677
>Много народу пользует тот же V ?
Да причем тут это, когда мы про судьбу раста.
Вместо еще одного конкурентного современного языка, получили очередной врапер с/с++ под финансированием. Причем судя по вкату рубистов и питонщиков, финансируют явно не в язык, а в поддув.

ты походу не знаешь основную фичу го и что такое зеленные треды, иди гугли уже
Аноним 12/02/24 Пнд 20:42:56 #422 №3045825 
IMG20240212214017.jpg
>>3045789
>ты походу не знаешь основную фичу го и что такое зеленные треды, иди гугли уже
мимокрокодил
Аноним 12/02/24 Пнд 21:05:28 #423 №3045874 
>>3045789

V это и есть удобный современный, нахрен никому не нужный конкурентный язык.
Правда, зелёные треды пока только планируют, действительно
https://github.com/vlang/v/discussions/11649

У конкурентных языков весьма узкая ниша, а геморроя из-за необходимости держать конкурентный движ заведённым, они тоже доставляют знатно. Дженерики в го неспроста так долго затаскивали.
Аноним 12/02/24 Пнд 21:30:24 #424 №3045919 
>>3045825
Тоже мимо
Половина списка - говно какое-то без задач.
Другая половина не позволяют также нативно и легко их использовать, как в го
я не гошер, честно
Аноним 12/02/24 Пнд 21:31:47 #425 №3045921 
>>3045874
>Дженерики в го неспроста так долго затаскивали.
Какая тут связь, зачем фантазировать? Дженерики там больше про скорость компиляции. Там идея была, что го уже весь готовый и туда больше ничего не надо, поэтому с трудом что-то продвигалось (кроме внутренних хотелок гугла, типа алиасов). Го больше напоминает внутренний язык, поэтому такой и странный и так долго пакетный менеджер рожали.

>У конкурентных языков весьма узкая ниша
А у враперов очень широкая? С 90х годов от плюсов отожрали все кто могли, а там где остался, ничего другого не нужно, потому что никто уже не будет все это легаси говно переписывать.

То что раст натягивают не на системных, а на прикладных кодеров, не плюсовиков, а рубистов, говорит об языке очень плохо (буквально агрессивный маркетинг ради доли рынка и пофиг где, главное "продать").
Аноним 12/02/24 Пнд 21:36:09 #426 №3045930 
>>3045919
В любом случае даже название они получили от джавы, а не го.
Аноним 12/02/24 Пнд 21:40:28 #427 №3045941 
>>3045874
>У конкурентных языков весьма узкая ниша
Если в гитхламе поставить сортировку проектов больше 1000 звезд, то у го будет 2,9К реп, у джавы для сравнения 3,4К
Причем эту позиции он занял очень давно, от чего даже я прифигел.
Аноним 12/02/24 Пнд 21:41:30 #428 №3045947 
>>3045941
https://github.com/search?q=stars%3A%3E1000&type=repositories
Аноним 12/02/24 Пнд 22:15:39 #429 №3046035 
>>3045941
Узкая ниша, это не про число проектов, это про направленность. Там здоровенная часть, это различные tcp/http/upnp/etc-сервисы , а остальное, это полезные либы для написания таких сервисов. Ессно, из-за того, что куча вебмакак выучила го, они используют его для пет-прожектов. Я даже игровой движок видел, вот только надо ли оно?

>То что раст натягивают не на системных, а на прикладных кодеров
Что такое системное, а что прикладное? Раст разрабатывался под написание браузерного движка - по-моему вполне себе прикладное направление. Или всё, что не веб и не аппликухи для мобилок, это у нас системщина?

>главное "продать"
и кто же его "продаёт"? Вон, гуглу даже продали, в хром пихает, в андроид. Иллюминаты, не иначе.
Аноним 12/02/24 Пнд 22:22:24 #430 №3046043 
>>3046035
>и кто же его "продаёт"? Вон, гуглу даже продали
Ну вот, ты почти понял как работает сфера b2b.
Аноним 13/02/24 Втр 00:00:06 #431 №3046169 
>>3046043
Ёбнутый шизик, везде заговоры мерещатся
Аноним 13/02/24 Втр 00:15:59 #432 №3046184 
>>3046043
>b2b
Тебе конечно же из дурки виднее как оно там устроено
Аноним 13/02/24 Втр 00:19:57 #433 №3046187 
>>3045921
>(буквально агрессивный маркетинг ради доли рынка и пофиг где, главное "продать").
Кто кому что продаёт? Ты уже тридесятый пост в тридевятом треде пишешь про маркетинг и продажи, а так и конкретики не назвал. У тебя от доработки битрикса 24 перед глазами эти лиды и воронки продаж?
Аноним 13/02/24 Втр 00:54:12 #434 №3046197 
>>3046187
Объяснял несколько раз, один даже подробно, но неудобные моменты же просто игнорятся.

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

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

продавать (толкать продукт) - там не просто так кавычки, но уровень интеллекта многих удивляет
Аноним 13/02/24 Втр 01:21:18 #435 №3046237 
>>3046197
>Объяснял несколько раз, один даже подробно, но неудобные моменты же просто игнорятся.
Если ты объяснял также как ниже написал, то не удивительно что тебя игнорят. Опять налил воды из базвордов. По факту можешь пояснить как происходит монетизация? Как и кому что продают? Я понимаю там оракл зарабатывает на экосистеме жабы, майкрософт вокруг шарпа, там как бы очевидная монетизация. А тут что?
Только без твоих гейских штучек и женской одежды, вижу у тебя ЛГБТ больная тема, за живое задевает. Но всё же мы говорим не о твоих внутренних проблемах
Аноним 13/02/24 Втр 01:41:30 #436 №3046254 
>>3046237
Ты такой наивный, как девочка в чулках
Манагеру поебать, откуда берутся деньги. Главное, что он получает зарплату за свой проект. Пусть проект хоть трижды убыточный, пока капает зп, для менеджера все заебись. Вон, микрософт до сих пор делает свой бесплатный браузер, который буквально никому нахуй не нужен, вот прям совсем. Как происходит монетизация - да похуй как, лишь бы зарплату платили.
Аноним 13/02/24 Втр 01:52:50 #437 №3046259 
image.png
>>3046254
> Вон, микрософт до сих пор делает свой бесплатный браузер, который буквально никому нахуй не нужен, вот прям совсем.

Это ты о каком? У меня вот этот основной и ещё пара других.
Аноним 13/02/24 Втр 02:25:21 #438 №3046268 
>>3046254
Я не понял, выходит некие менеджеры из раст фаундейшен (?) обвели вокруг пальца наивных дурачков из бигтеха которые решили попробовать себе раст затащить в свои хуитки?

мимо
Аноним 13/02/24 Втр 02:39:02 #439 №3046272 
>>3046237
> оракл зарабатывает на экосистеме жабы
На облаках и базе данных. Джава у оракла чёт на уровне самоокупаемости.
Аноним 13/02/24 Втр 03:09:39 #440 №3046283 
>>3046254
>откуда берутся деньги
>Как происходит монетизация - да похуй как, лишь бы зарплату платили.
Так откуда они берутся-то? Кто платит? Аллах даёт? Хули ты тут воду льёшь я тебя конкретно спросил как монетезируется работа маркетологов. А потом плачешь что тебя никто не слушает и что аж тушь по щекам растеклась.
Аноним 13/02/24 Втр 08:23:12 #441 №3046374 
>>3046254
> который буквально никому нахуй не нужен, вот прям совсем
Почему же он тогда выебал все остальные хромиумы, кроме самого хрома? Ты может ещё вспомнил бы бесплатный жпт-4, встроенный в винду и браузер?
Аноним 13/02/24 Втр 08:46:28 #442 №3046397 
>>3046268
Да еще и рубистов подсадили на ржавую иглу!!!
Аноним 13/02/24 Втр 08:59:26 #443 №3046406 
>>3046268
Тут всё ещё хитрее: эти менеджеры получают зарплату из кармана тех самых корпораций, которые спонсируют раст фаундейшн.
Облапошили гугл за деньги самого гугла!
Аноним 13/02/24 Втр 14:24:39 #444 №3046826 
>>3046237
Че как дети, ей-богу.
Тебе объяснили корреляцию, хай + отчисления в фонд. Там же была какая-то драма с менегерами мозилы, пацаны обмазывались премиями.
Аноним 13/02/24 Втр 15:38:04 #445 №3046918 
>>3046826
Иди отсюда, вонючка. И теорию заговора забери свою. Покажи по факту где кто кому и за что заплатил, а не фантазиями своими тут делись, идиот.
Аноним 13/02/24 Втр 16:33:47 #446 №3047024 
>>3046826
>Кококо, язык на продажу
>Так покажи кто платит
>Пук среньк
Я все понял, молодец, возьми конфетку с полки.

Процитирую одного шиза выше, возможно тебя
Аноним 13/02/24 Втр 16:47:35 #447 №3047041 
>>3046918
>>3047024
Постирай чулки.
Аноним 13/02/24 Втр 17:09:01 #448 №3047093 
>>3047041
Ты обиделась?
Аноним 13/02/24 Втр 17:58:05 #449 №3047190 
>>3047041
постирай трусы
Аноним 13/02/24 Втр 22:51:18 #450 №3047597 
>>3034622
Между прочим, самая большая программа, написанная на хаскеле - он сам
мимо
Аноним 14/02/24 Срд 08:16:19 #451 №3047803 
Я на работе в офисе, ходил в женский туалет, самоидентифицируя себя как женщину. У меня есть все необходимые качества для Rust-разработчика?
Аноним 14/02/24 Срд 10:59:37 #452 №3047956 
>>3047803
Нужно еще крашенные волосы, тугие чулки и не осилить хаскель. Раст это канализационный слив тех, кто хотел самоутвердиться за счет языка, но не осилил хаскель. Этакий хаскель для тупеньких.
Аноним 14/02/24 Срд 11:09:58 #453 №3047971 
image.png
>>3045393
>и правильно сделали, что выкинули. Иначе это был бы ешё один язык с неотключаемым рантаймом, а там и до сборки мусора недалеко.
Если бы

До раста я знал что такое синтаксический сахар, после раста я узнал что такое синтаксический мусор.
Аноним 14/02/24 Срд 12:06:22 #454 №3048037 
>>3047956
Ты сам-то хотя бы одну строчку на хачкеле/расте написал, или просто сидишь серишь тут в треде?

Мимо осилил скалу, перешел на раст. Харкаю в ебало тебе, ссанина бомжа.

Хаскель это ни что иное как способ ментальной мастурбации.
Если я вижу человека который не имеет математического бекграунда и чето пиздит за теорию категорий и хачкель - харкаю ему в ебало, типичный каргокультист.

Раст - практичный язык для решения реальных проблем в разных областях.

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

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

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

Раст вообще другой язык, и вкатываться в него гораздо легче чем в хачкель или скалу, твой высер невалиден.
Аноним 14/02/24 Срд 12:10:24 #455 №3048043 
Screenshot 2024-02-14 at 10.08.16 AM.png
>>3047971
Хуй знает братишка, везде этого мусора хватает, другое дело хватит ли тебе ума чтобы понять этот мусор (пикрил). Окей в питоне, жс и прочих рубях этого нет, но мы на них и непишем.

В расте, на мой взгляд, этот мусор понять гораздо проще чем абстрактную писанину, пускай эта писанина и выглядит элегантнее.
Аноним 14/02/24 Срд 12:21:40 #456 №3048061 
>>3047956
https://www.youtube.com/watch?v=SPwnfSmyAGI
Аноним 14/02/24 Срд 12:23:49 #457 №3048066 
>>3047956
Уже постирала трусы? Ты походу реально обиделась, раз уж начала говном кидаться
Аноним 14/02/24 Срд 12:30:10 #458 №3048074 
>>3048061
И он таки перекатился в краба?
Аноним 14/02/24 Срд 12:33:49 #459 №3048079 
>>3048037
Ну не осилил и не осилил, что шуму подымать.
Аноним 14/02/24 Срд 12:39:51 #460 №3048084 
>>3048079
А ты сама какие языки осилила? Получилось на хаскеле хэлоуворд запустить?
Аноним 14/02/24 Срд 12:48:13 #461 №3048093 
>>3048074
В том числе. Краб у него на +-втором месте после сишечки. На расте он писал сервис для индексирования и поиска по html (вроде) докам. Бота с хачкеля переписывает на го.
Аноним 14/02/24 Срд 14:19:01 #462 №3048180 
>>3047971
>>3048043
Когда смотрю на синтаксис раста, то сразу же начинаю любить сишечку.
Аноним 14/02/24 Срд 15:06:54 #463 №3048238 
>>3048180
Такие, как ты, 30 лет назад глядя на сишечку начинали любить BASIC.
Аноним 14/02/24 Срд 15:16:02 #464 №3048255 
>>3048180
Этот тот самый языкт без NULL?

А что там тогда делает None?
Аноним 14/02/24 Срд 15:38:10 #465 №3048288 
>>3048255
Ты не понимаешь. Если тебя каждый раз заставляют проверять на NULL, то он становится безопасным.
Аноним 14/02/24 Срд 16:07:29 #466 №3048340 
>>3048180
второй скрин это скала вообще
Аноним 14/02/24 Срд 16:15:13 #467 №3048351 
>>3048043
Чё скалу-то уже закопали кстати?
Аноним 14/02/24 Срд 16:36:11 #468 №3048387 
>>3048238
Это другое.

>>3048255
>>3048288
Не представляю как вообще можно писать код, который содержит какие-то ошибки или какие-то указатели не туда. Что вы там такое нахуй программируете-то? Это как вообще?

Не понимаю, серьёзно, может на расте программируют люди которые пришли из JS и Java и по этому какие-то ошибки пишут?
Аноним 14/02/24 Срд 16:42:05 #469 №3048390 
>>3048387
а ты откуда сам пришел что такие вопросы задаешь?
Аноним 14/02/24 Срд 16:44:12 #470 №3048393 
>>3048351
Да сам не понимаю, хайп ушел, работы нет, многие компании от скалы отказываются, по причине того что СЛОЖНА и ДОРАГА, но с другой стороны если ты хороший скалист то всегда найдётся высокооплачиваемая работа в общем как и в любой области
Аноним 14/02/24 Срд 16:53:17 #471 №3048400 
>>3048393
Что тут понимать, на Котлин все перешли. До него только шкалка и была альтернативой голой жабе. Котлин нашёл идеальный баланс между императивщиной с ооп и функциональщиной, шкалка стала ненужна.
Аноним 14/02/24 Срд 17:07:41 #472 №3048425 
>>3048390
Из /b/ пришёл
йобафейс.жпг
Аноним 14/02/24 Срд 17:18:12 #473 №3048448 
>>3048387
>Не представляю как вообще можно писать код, который содержит какие-то ошибки или какие-то указатели не туда.
Чтобы не было багов - нужно писать без багов.
Чтобы начать представлять как это, для начала надо просто написать что-то больше хэлоу ворда и лабораторной в 100 строк. Когда начинаешь что-то крупное писать, ещё и в команде, ещё и под воздействием внешних факторов типа дедлайнов и резких переключений между задачами, то такие ситуации будут неизбежно появляться. А когда много людей работает с репозиторием и все друг у друга черри пикают, то вероятность ошибок повышается в разы
Аноним 14/02/24 Срд 17:28:39 #474 №3048477 
>>3048387
>Не представляю как вообще можно писать код, который содержит какие-то ошибки или какие-то указатели не туда. Что вы там такое нахуй программируете-то? Это как вообще?
Вся идея раста для бизнеса, что можно посадить зумера в чулках и он будет писать код по уровню сишника с овер 20 лет стажем. Но реальность оказалось немного суровее.
Аноним 14/02/24 Срд 17:29:51 #475 №3048482 
>>3048400
Да, тоже думаю что котлин прибил скалу.
Аноним 14/02/24 Срд 17:42:01 #476 №3048510 
>>3048448
> то вероятность ошибок повышается в разы
Ну тогда палю совершенно ультимативную йоба-фичу. Нужно использовать архитектуру!
Это волшебное слово избавляет от 99% всех багов и неоднозначного поведения, которое возникает из-за того что множество пользователей пишут хуйню. Сам код разбивается на маленькие-маленькие функции-модули, которые тестируются просто замечательно! Конечно же они должны быть понятными ещё.
Ядро же пишется математиками, которые дрочат математическую доказанность алгоритмов.

>>3048477
> Но реальность оказалось немного суровее.
А какие в целом ошибки у этого сценария? Понятно что чулочники и фурри ничего хорошего написать не могут, но в целом, в чем обосрамс? Слышал что там ансейф в core-либах есть, а в других либах он вообще повсеместен, подвспшикнул конечно с этого, но кажется это не то.
Аноним 14/02/24 Срд 17:44:28 #477 №3048512 
>>3048400
>>3048482
Доля правды в этом есть. Но тем не менее вокруг скалки довольно большое комьюнити энтузиастов, стабильные экосистемы (зио, тайпсейф), но сложность отпугнула стартапы и компании которые не могут себе позволить платить много денег за бонусы которые дает фп дает ли хуй знает на самом деле
Аноним 14/02/24 Срд 17:48:55 #478 №3048524 
>>3048510
В голос с этого архитектора.
Где же ты раньше был?
Как же мы раньше-то не додумались до этого?!
Уебывай отсюда, школьник.
Аноним 14/02/24 Срд 18:00:45 #479 №3048550 
>>3048524
Не, ну серьёзно, понятно дело что архитектура это долго и сложно. Но это всё ещё лучше раста, когда взаимоблокировка потоков буквально фича языка.
Аноним 14/02/24 Срд 18:05:58 #480 №3048561 
>>3048510
>Ну тогда палю совершенно ультимативную йоба-фичу. Нужно использовать архитектуру!
>Это волшебное слово избавляет от 99% всех багов и неоднозначного поведения, которое возникает из-за того что множество пользователей пишут хуйню. Сам код разбивается на маленькие-маленькие функции-модули, которые тестируются просто замечательно! Конечно же они должны быть понятными ещё.
Ты сначала доучись в своей шараге, найди работу и тогда снимешь свои розовые очки.

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

>>3048524
Он либо студент, либо тот кто много читает литературу, но реальный код не пишет, например какой-нибудь препод тот же Столяров он на лоре такую же шизу выдает https://www.linux.org.ru/people/Croco/profile ни на что не намекаю
Это прям в каждом посте чувствуется что шизик сидит в своих розовых очках, любит носить женское бельё далёк от реальной разработки и имеет свое идеалистическое представление о том как тут все устроено.
Аноним 14/02/24 Срд 18:11:37 #481 №3048579 
>>3048561
>тот же Столяров он на лоре такую же шизу выдает

Первый комментарий: 23.12.10 18:33:21 MSK
Хех. Так он салага.
Моя вторая регистрация на лоре на 10 лет раньше.
Аноним 14/02/24 Срд 18:15:58 #482 №3048589 
>>3048561
>Ты сначала доучись в своей шараге, найди работу и тогда снимешь свои розовые очки.
>Он либо студент, либо тот кто много читает литературу, но реальный код не пишет, например какой-нибудь препод
Да вы заебали, чулочники, я гейдев просто. В смысле не на расте пишу, а игры разрабатываю, серверные приложения всякие, ещё всё такое.

Чужих либ не использую, всё самописаное, но недавно предложили установить какую-то хуйню на расте которая статистику решает, вот сижу раздумываю нужен ли покупать чулки использовать это или нет...
Аноним 14/02/24 Срд 18:39:00 #483 №3048648 
>>3048589
>Чужих либ не использую, всё самописаное
Нашёл чем гордиться лол
Аноним 14/02/24 Срд 18:39:27 #484 №3048651 
>>3048589
И что, в одно рыло гейдевишь или вас двое?
Аноним 14/02/24 Срд 18:59:00 #485 №3048679 
16893508335621.png
>>3048510
>А какие в целом ошибки у этого сценария?
Просто, для примера, были попытки фронтендера жсника посадить на бэкенд и не вышло толком ничего путного, а тут вообще другой мир.

Сам по себе раст не дает возможность писать высококачественный оптимизированный код. Ну то есть нельзя взять что-то около плюсов и начать писать оптимизировано.
Аноним 14/02/24 Срд 19:46:57 #486 №3048725 
>>3048589
>серверные приложения всякие
>всё самописаное
Круто! Скажи что ты еще сам реализацию http написал? И своя база данных наверное?
Аноним 14/02/24 Срд 19:48:20 #487 №3048727 
>>3048648
Да пусть побольше гордится
Аноним 14/02/24 Срд 19:52:03 #488 №3048735 
>>3048648
Всё лучше, чем чулками и фурри-костюмом

>>3048651
Скриптописак человек 5, каждый стрипт однопоточный, так что всё в порядке. Ядро нописано и не требует отладки, всё что требуется писать функции по интерфейсам и акторы.
Аноним 14/02/24 Срд 20:04:19 #489 №3048757 
>>3048679
> Сам по себе раст не дает возможность писать высококачественный оптимизированный код. Ну то есть нельзя взять что-то около плюсов и начать писать оптимизировано.
Хм, ну с этих позиций понятно дело что

>>3048725
Да, всё это самописное, это же гейдев, тут так принято. Свой протокол с гарантированной доставкой и бд своя тоже.

Ты же не хочешь сказать для тебя проблема написать свой протокол или свою бд? А это точно тред системного языка?
Аноним 14/02/24 Срд 20:05:35 #490 №3048760 
Кроме срачей в треде что то бывает?
Тут кто то хоть на расте пишет, или в треде внимание привлекает?
Аноним 14/02/24 Срд 20:07:58 #491 №3048766 
>>3048757
> Свой протокол с гарантированной доставкой
Очередной монстр на udp?
Аноним 14/02/24 Срд 20:09:37 #492 №3048772 
Стикер
>>3048760
>Тут кто то хоть на расте пишет
Новенький? Раст не для этого создавался.
Аноним 14/02/24 Срд 20:34:03 #493 №3048812 
>>3048772
> Раст не для этого создавался.
Скорее аноны больше любят срать в треде чем программировать
Аноним 14/02/24 Срд 20:49:17 #494 №3048826 
>>3048766
Смысле монстр, там 5 строк кода. Это же игрокал.
Аноним 14/02/24 Срд 20:51:42 #495 №3048829 
>>3048757
>Ты же не хочешь сказать для тебя проблема написать свой протокол или свою бд?
Написать свой васянский протокол и сделать свою колхозную БД не проблема, послушать порт и насрать в консоль вообще 3,5 строчки кода, тоже и с записью и чтением фалов. А вот сделать что-то на уровне нормальных баз данных и реализацию http - задача на долгие годы. Тут с библиотеками для clickhouse пришлось ковыряться несколько недель чтобы найти нужную и доработать для реализации нужных нам типов там была БД для хранения транзакций эфира, а сама БД разрабатывается уже несколько лет в яндексе. А про постгрес вообще молчу, там код пишут быстрее чем ты сможешь его прочитать.
У вас в гейдеве наоборот стоят другие задачи вам нужен минимальный функционал, но в приоритете быстрое время отклика. И сравнивать теплое с мягким что кто-то на бекенде не колхозит свои решения как в гейдеве, а берет готовое, это мягко говоря признак вкатуна или дегенерата. Ты весь тред это пытаешься всем доказать
Аноним 14/02/24 Срд 21:27:57 #496 №3048870 
>>3048735
Значит на ядре ты один? В том плане, что твои наивные рассуждения про то, что достаточно заебашить правильно архитектуру, а там хоть на голях сях пиши - это работает только в коллективах до 3х человек. Дальше оказывается, что каждый понимает архитектуру по-своему и понеслась.
Аноним 14/02/24 Срд 21:37:45 #497 №3048886 
>>3048826
Как раз таки в игрокале в свое время монстра и встречал

по классике никто нихуя не знал, кто писал уже пропал
Аноним 14/02/24 Срд 21:44:57 #498 №3048892 
Вот я чо думаю-то. А вот бы! Вот бы безопасность как в расте. Но без раста! Синтаксис как в си, но немного безопасности, значит, накинуть сверху, как-то там замутить значит, чтобы короче и ансейф был, и оверхеда как в расте не было. Заебись бы, а бы? Вот бы, да кабы! Тогда и я бы чулочки надел. Хотя стоп, это были бы не чулочки, а валенки.

>>3048829
> И сравнивать теплое с мягким
Да я не сравниваю, я просто посрать сюда зашёл, кхм. Энивей, нормальная архитектура и нормальные специалисты закрывают 99% проблем с утечками памяти, а остальные проблемы есть и в расте.
> не колхозит свои решения как в гейдеве, а берет готовое
Мои сожаления потерпевшим.

>>3048870
> Значит на ядре ты один?
Ето да, не спорю. В основном архитектуру должен держать в голове один-два человека, по-другому это просто не работает. Но так-то именно так это в компаниях и работает!
> это работает только в коллективах до 3х человек.
Да. Архитектор и два помощника архитектора. Или три архитектора, которые хуячат что-то гейниальное нахуй.
> Дальше оказывается, что каждый понимает архитектуру по-своему и понеслась.
Дальше все пишут свою архитектуру, а потом тесты чья архитектура лучше и почему, доказывают это с пруфами и уже по обстоятельствам.
Аноним 14/02/24 Срд 21:46:59 #499 №3048895 
>>3048886
Это да, монстры в игрокале тоже присутствуют в огромных колличествах почти все движки это тырпрайс и СОСАТЬ БЛЯДЬ БЕЗОПАСНОСТЬ СОСАТЬ НАХУЙ ПРОТЕЧКИ ААА САСААААААААААААААААААТЬ ПЕРЕЗАГРУЗКА РЕШАЕТ ВСЁ
Аноним 14/02/24 Срд 21:47:40 #500 №3048896 
1707936458780.mp4
>>3048892
> нормальная архитектура и нормальные специалисты закрывают 99% проблем с утечками памяти
Аноним 14/02/24 Срд 21:51:49 #501 №3048903 
>>3048896
Карлсн бля, хуле ты лыбишься, иди варенье мне принеси на своём вертолёте нахуй
Аноним 14/02/24 Срд 21:56:40 #502 №3048908 
>>3048892
>Да. Архитектор и два помощника архитектора. Или три архитектора, которые хуячат что-то гейниальное нахуй.
И вот смотри: есть линукс, гениальный Торвальдс, архитектура, куча сеньоров пилит на полную ставку. И, тем не менее, Линус так заебался с кривыми дровами, от которых не спасает даже архитектура, тесты и ревью, что он согласился на внедрение второго языка программирования в ядро - и этим языком оказался раст.
Теперь прикинь, что гениальных архитекторов, способных тащить крупные проекты, настолько мало, что платить им нужно 10 мидловых ставок, прибавь к этому то, что архитектура, это, всё же, не панацея - и ты получишь, что без раста никуда везде, где управляемыми языками не обойтись.
Аноним 14/02/24 Срд 22:03:59 #503 №3048915 
>>3048892
>Да я не сравниваю, я просто посрать сюда зашёл, кхм. Энивей, нормальная архитектура и нормальные специалисты закрывают 99% проблем с утечками памяти, а остальные проблемы есть и в расте.
Вот ты как раз с позиции гейдев разработчика смотришь на всё, одно дело когда вы выебали каждый байтик в своем коде и само собой знаете что и где у вас с памятью. Другое дело когда у тебя в приоритете бизнес-логика, большие объемы данных, где каждое неправильное число стоит довольно дорого в настоящих деньгах, а не кристаликах, плюсом ко всему много сторонних сервисов с которыми нужно взаимодействовать и всегда сжатые сроки из-за которых некоторые решения приходится делать не всегда оптимальными с точки зрения байтоёба. Раст очень помогает избежать множества ошибок если на нем нормально писать, а не как ты .unwrap() Rc<> да Box<dyn Zalupa>.
У нас разные приоритеты и разные задачи, но ты пытаешься свой гейдев распространить на другие сферы.

>Мои сожаления потерпевшим.
Ты лучше себя пожалей, каждый раз колхозить то что уже сделано другими из-за экономии каких-то наносекунд
Аноним 14/02/24 Срд 22:38:47 #504 №3048945 
>>3048908
>гениальный Торвальдс
Что в это хуйле гениального???
Везунчик - оказался в нужное время в нужном месте, харизматичный, пиздобол-зайтеник, сквернослов.

И ещё он спиздил minixfs у Таненбаума.
Аноним 14/02/24 Срд 22:53:32 #505 №3048961 
>>3048892
Стадия торга
Аноним 14/02/24 Срд 22:53:36 #506 №3048962 
>>3048945
> у Таненбаума
не получилось, у Столламана не получилось (HURD) , а у Торвальдса получилось. Как думаешь, почему? Как раз потому, что будучи программистом, он в то же время оказался неплохим менеджером и архитектором, сумевшим найти баланс между шашечками и ехать.
А такое редко, успешные инженеры-организаторы наперечёт. Илоний Маск, например. Даже Джобс не считается, он инженером не был.
Аноним 14/02/24 Срд 23:11:42 #507 №3048992 
>>3048962
> и архитектором
Наверное ты мало заглядывал в исходики ядра.
Аноним 14/02/24 Срд 23:57:19 #508 №3049050 
>>3048992
Туда смысла не заглядывать, там бывает в некоторые дни десятки коммитов с тысячами строк https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/ ты это даже прочитать толком не сможешь.
А вот гит смотрел, да. Там адовый говнокод, но им пользуется весь мир.
Аноним 15/02/24 Чтв 01:33:55 #509 №3049111 
>>3048908
>И вот смотри: есть линукс, гениальный Торвальдс, архитектура, куча сеньоров пилит на полную ставку.
На сколько я понимаю, там нет архитектуры в классическом понимании. Вернее есть, но это другое, там не архитектура, а набор апи, аби, плюс всякие гайды по тому как делать хорошо, а как делать нельзя, куда в текущую "архитектуру" что добавлять, а куда нет. Скорее набор рекомендаций, чем архитектура, хуй знает как это описать. Свалка говна нахуй. Для ядра это норм конечно на самом деле, если бы не кол-во говна в ядре которое нужно срочно переписать и перепроектировать, то даже заебись.
> Линус так заебался с кривыми дровами, от которых не спасает даже архитектура, тесты и ревью, что он согласился на внедрение второго языка программирования в ядро - и этим языком оказался раст.
Погоди, и как это связано? Кто-то собрался 70% ядра переписать? И он согласился на это разве не потому что его ЛГБТК+++33см травить начали?

>>3048915
>Другое дело когда у тебя в приоритете бизнес-логика, большие объемы данных, где каждое неправильное число стоит довольно дорого в настоящих деньгах, а не кристаликах, плюсом ко всему много сторонних сервисов с которыми нужно взаимодействовать и всегда сжатые сроки из-за которых некоторые решения приходится делать не всегда оптимальными с точки зрения байтоёба.
Тогда такая хуйня должна писать на скриптокале. Жава там какая, жаваскрипт, может быть скала или котлин. Ну и если совсем всё сложно - ерланг или хаскель.
>У нас разные приоритеты и разные задачи, но ты пытаешься свой гейдев распространить на другие сферы.
Дя, у меня бизнес-логика находится в игровом движке, на отдельном бекенде. Работает хорошо, правда там не реалтайм, а 120герц и меньше. Зато можно выдерживать без сбоев нагрузку в 60 раз превышающую обычную. По кайфу жиесть.
> из-за экономии каких-то наносекунд
Если не экономить наносекунды, то вместо раста можно писать на жаве.
Аноним 15/02/24 Чтв 06:31:47 #510 №3049157 
>>3049050
Надо новое ядро писать на расте без исторического говнокода
Аноним 15/02/24 Чтв 06:36:18 #511 №3049159 
>>3048829
>дегенерата
Так и есть.
Аноним 15/02/24 Чтв 06:57:12 #512 №3049163 
>линукс драйвера говнокод
Как сделана эта оценка? Какой опыт у тебя лично в разработке драйверов и вообще в писании чего-либо не в юзерспейсе?
>ряя говнокод на расте не будет говнокодом
Где пруф, что по этой причине сделали поддержку раста в дереве ядра?
Аноним 15/02/24 Чтв 09:23:14 #513 №3049221 
image.png
Аноним 15/02/24 Чтв 09:31:15 #514 №3049223 
>>3049221
А я делал еще один тип, который одновременно UTF-8 и null-terminated, в отличие от Сstr
Аноним 15/02/24 Чтв 10:18:26 #515 №3049255 
>>3049163
>Как сделана эта оценка?
https://typeset.io/questions/what-research-papers-that-claim-linux-device-drivers-are-the-3ekhngiprx

>Где пруф
пруф хотя бы в том, что единственный, помимо обвязки, кусок кода на расте в ядре сейчас, это драйвер https://github.com/torvalds/linux/blob/master/drivers/net/phy/ax88796b_rust.rs - типа, смотрите, как надо.

>>3049111
>он согласился на это разве не потому что его ЛГБТК+++33см
От ядра линуха слишком многое зависит, чтобы ЛГБТ там могли на что-то повлиять.
Гугл, вон, сразу начал биндер переписывать, он и продавил.
Аноним 15/02/24 Чтв 10:54:44 #516 №3049286 
>>3049255
> ers/net/phy/ax88796b_rust.rs
> макросы
> коды ошибок
> vtable
Осталось ещё сырые указатели сделать и будет бинго. Сплошной синтаксический мусор.
Аноним 15/02/24 Чтв 10:57:02 #517 №3049289 
>>3049255
> От ядра линуха слишком многое зависит, чтобы ЛГБТ там могли на что-то повлиять.
Они явно травили некоторых мейнтернеров.
> Гугл, вон, сразу начал биндер переписывать, он и продавил.
Короче кто-то продавил.

> what-research-papers-that-claim-linux-device-drivers-are-the-3ekhngiprx
> 640 real concurrency use-after-free bugs
Теперь будут баги c блокировками потоков и живыми блокировками, ведь в расте нет ничего чтобы их избежать. Даже в clang есть инструменты для этого, а растошизики на разработчиках горят с этого и рассказывают что это всё врёти и вообще нормальная ситуация.
Алсо, такие баги проще эксплуатировать, потому что целые секции ядра могут нахуй ложится.
Аноним 15/02/24 Чтв 11:19:41 #518 №3049315 
>>3049255
Заебись оценка, без примеров без нихуя.
>addressing common bugs like use-after-free
Только непонятно, как пидораст будет решать подобное в кернел спейсе.
>типа, смотрите, как надо
Ты версию на си посмотри для начала, лол.
Аноним 15/02/24 Чтв 11:24:46 #519 №3049319 
>>3049289
>Теперь будут баги c блокировками потоков и живыми блокировками

Раст в ядре, это не тот раст, который std, и даже не core, там дофига чего своего накостылили, в том числе https://github.com/torvalds/linux/blob/master/rust/kernel/sync/lock/mutex.rs https://github.com/torvalds/linux/blob/master/rust/kernel/sync/arc.rs

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

>>3049289
>ведь в расте нет ничего чтобы их избежать
Всё будет, не переживай. Вон, в сторонней либе уже есть
https://amanieu.github.io/parking_lot/parking_lot/deadlock/index.html
Аноним 15/02/24 Чтв 12:10:01 #520 №3049366 
>>3049111
>Тогда такая хуйня должна писать на скриптокале.
Не тебе нам указывать на чём написать.

>Жава
Ты запусти для начала хэлоуворд на спринге какой-нибудь туду лист, охуеешь от количества лишних действий на пустом месте

>жаваскрипт
Я пишу и на нем тоже, он у нас второй язык, только поверх прикручиваю ts не всегда спасает, но это обычно небольшие проекты типа ботов для телеги, всякие мелкие внутренние сервисы. Писать на этом говне что-то большее настоящая боль, раст отлавливает 95% ошибок, которые я бы допустил в js еще на этапе компиляции. А ебучий npm это сборище говна, огромное количество кривых пакетов и всё написано через жопу. На нем быстро и на коленке можно только высирать реакты и небольшие проекты, которые умрут через год-другой. Плюс там память улетает в небеса, мы тупо раз в сутки перезагружаем контейнеры с js

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

>котлин
Тоже неплохо, но для этого надо собирать другую команду

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

>хаскель
Код чаще читают чем пишут, эта хуйня нечитабельна. Мы не математики.

Странно что ты не упомянул go он как раз нам тоже подошел бы, мы пилим сервисы, которые между собой общаются через кролик, нам нужно переваривать много данных и много взаимодействовать со сторонними апи, плюс вся эта хуйня типичная для веба: апи, БД, редис, иногда graphql для фронта и всё это крутится в докерах. Собственно мы занимаемся примерно тем же самым что и большинство гоферов, только на расте. В этой сфере языки похожи как 2 капли воды, а выбор именно раста это просто субъективный фактор, нравится больше чем го.
Аноним 15/02/24 Чтв 12:17:13 #521 №3049372 
>>3049319
> Вон, в сторонней либе уже есть
Пиздец костыли. Язык-костыль.
Аноним 15/02/24 Чтв 12:18:38 #522 №3049373 
image.png
>>3049319
> /mutex.rs
> unsafe
> unsafe
> unsafe
> /arc.rs
> unsafe
> unsafe
> unsafe
Закашлял аш с этой хуйни.
> не ссы, про лочки в первую очередь подумали, как-нибудь разрулят.
Ну хуй знает....
> Вон, в сторонней либе уже есть
Да ебаный рот...
Аноним 15/02/24 Чтв 12:21:34 #523 №3049378 
>>3049286
Да ладно это ещё нормально. я бы только импорт со звездочкой убрал и vtable . Вообще когда вижу хуёво написанную библиотеку и начинаю смотреть чем занимается автор, то в большинстве случаев оказывается какой-то сишник
Аноним 15/02/24 Чтв 12:23:16 #524 №3049379 
>>3049366
>Сложно кого-то найти,
факт

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

Экосистема любая на выбор:
- императивная
- hardcore fp (typelevel)
- practical fp (zio)
везде есть свой асинк

>прикручивать жабу

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

мимо скалист
Аноним 15/02/24 Чтв 12:23:43 #525 №3049380 
>>3049372
о привет любитель goвна
Аноним 15/02/24 Чтв 12:25:26 #526 №3049384 
>>3049373
Проблемы? Ты в курсе что любой low level тулинг пишут ансейф? думаешь жвм написан на джаве лол и память там как-то сама выделается и освобождается для объектов? Или руби на руби?
Аноним 15/02/24 Чтв 12:34:20 #527 №3049394 
>>3049366
> Не тебе нам указывать на чём написать.
А кому, блядь, ещё? Чулочникам? Ты вот серьёзно думаешь что какой-то шизик, страдающей от депрессии и десериализации личности, работающий в ядре раста, вероятно сидящий на гормонах, сможет адекватно описать существующую реальность?
> Писать на этом говне что-то большее настоящая боль, раст отлавливает 95% ошибок, которые я бы допустил в js еще на этапе компиляции.
Сколько не писал на жс, ошибок не было вообще. Не представляю, как ты можешь там ошибаться? В чем нахуй? Где? Это же примитивный язык.
> Плюс там память улетает в небеса, мы тупо раз в сутки перезагружаем контейнеры с js
А это как нахуй? У меня GC в жс не работает вообще, что вы там нахуй пишете такого? Ебать, другой мир нахуй.
> Сложно кого-то найти,
> Тоже неплохо, но для этого надо собирать другую команду
Переучить сеньёра-жабиста не проблема.
> Это немного специфичная штука для высокой отказоустойчивости, там еще в плане девопса есть свои нюансы и синтаксис ебановатый, элексир в какой-то мере помогает. Для нас это не подходит.
> Код чаще читают чем пишут, эта хуйня нечитабельна. Мы не математики.
Пиздец у вас там дримтим без математического образования.
> апи, БД, редис, иногда graphql для фронта и всё это крутится в докерах. Собственно мы занимаемся примерно тем же самым что и большинство гоферов, только на расте.
Короче как понимаю у вас там команда мидлов которые горят жопой если нужно делать что-то сложное, плюс из-за того что постоянно ебут сроками делать нужно прямо завтра, а по-другому писать никто не умеет и не хочет. Неприятная хуйня.
В такой ситуации конечно раст неплох, наверное. В ядро и архитектуру такую хуйню я бы не завёл никогда.
Аноним 15/02/24 Чтв 12:41:27 #528 №3049400 
>>3049384
> Проблемы?
Проблемы будут в ядре, когда такое будет в ядре. Там, наверное, придётся вообще весь код именно так писать. Если раньше всё это было сложно понять, то теперь это говнище вообще никто не будет понимать, даже сам написавший.
> Ты в курсе что любой low level тулинг пишут ансейф?
Тогда, очевидно, никакой раст и не нужен, потому что он ничего не добавляет, только говна подкидывает.
> думаешь жвм написан на джаве лол и память там как-то сама выделается и освобождается для объектов? Или руби на руби?
Не знаю, объекты последний раз писал лет 10 назад, динамически выделял память примерно в то же время.
Аноним 15/02/24 Чтв 12:45:12 #529 №3049402 
>>3049394
>А кому, блядь, ещё? Чулочникам? Ты вот серьёзно думаешь что какой-то шизик, страдающей от депрессии и десериализации личности, работающий в ядре раста, вероятно сидящий на гормонах, сможет адекватно описать существующую реальность?

Гигачады старой школы скатили в говно целый OpenGL, так и не превратили OpenCL во что-то юзабельное и придумали Perl. Так что вообще минусов не вижу.
Аноним 15/02/24 Чтв 12:46:08 #530 №3049404 
>>3049394
>Сколько не писал на жс, ошибок не было вообще
Ну, если ты на этом пишешь без ошибок, то пиздуй в Калифорнию сеньором, да чего там, сразу лордом.

>Это же примитивный язык
Ты шо, ты шо, там же куча сахара. Например, есть "==" и "===" - круто, ведь, правда?
Аноним 15/02/24 Чтв 12:46:36 #531 №3049405 
j7662quidse71.jpg
>>3049221
Аноним 15/02/24 Чтв 12:52:51 #532 №3049407 
>>3049405
У Before юникод отвалился, но англоязычной публике простительно. Ты-то какого хрена это тащишь?
Аноним 15/02/24 Чтв 13:11:18 #533 №3049418 
>>3049407
>англоязычной публике простительно
Чулочный барин? Это что-то новое.
Аноним 15/02/24 Чтв 13:15:15 #534 №3049423 
>>3049400
>пок пок
>кукарек
>Не знаю ничего
Ну вот и пиздуй читай книжки и практикуйся, потом возвращайся в тред.
Аноним 15/02/24 Чтв 13:17:02 #535 №3049427 
>>3049405
а до всего этого были mov ah al eax и чего блядь? забери своё говно и затолкай себе его в жопу обратно
Аноним 15/02/24 Чтв 13:29:53 #536 №3049443 
>>3049427
Ты думаешь это эволюция, а это деградация.

Если раньше была проблема разноцветных функций, то лайфтаймы еще добавили разноцветные типы.
Аноним 15/02/24 Чтв 13:30:06 #537 №3049444 
>>3049405
Ты не понимаешь, это синтаксический сахар.
Аноним 15/02/24 Чтв 13:34:27 #538 №3049450 
>>3049394
> Десериализации личности
Проиграл, это типо расхуярил личность на строку LGBT HUI HUI PENIS 666 GENDER и обратно собрать не смог?
Аноним 15/02/24 Чтв 13:37:36 #539 №3049457 
>>3049443
деградация это про тебя, стареешь и становешься тупее, погугли термин такой "старческая ригидность мышления", это нормально, просто прекрати серить и иди на сишке дрочи байты, мы не против
Аноним 15/02/24 Чтв 13:46:52 #540 №3049469 
>>3049457
Странно такое слышать, от тех кто не осилил хаскель.
Аноним 15/02/24 Чтв 13:54:40 #541 №3049480 
>>3049402
Гигачады придумал ерланг и хаскель вообще-то. С опенгл конечно неудобно вышло.
Аноним 15/02/24 Чтв 13:58:51 #542 №3049485 
>>3049404
> сеньором
Просто я пишу пять строчек в день, в сеньёры таких не берут.
> Например, есть "==" и "===" - круто, ведь, правда?
Не знаю, я разные типы никогда не сравнивал. Наверное в ООП и расте такое полезно...
Аноним 15/02/24 Чтв 14:04:33 #543 №3049489 
>>3049469
странно такое слышать от тех, кто ничего сложнее клавиатуры не осилил
Аноним 15/02/24 Чтв 14:04:37 #544 №3049490 
>>3049450
Типичная ситуация в комьюнити раста, не знаю даже чему ты удивляешься. Возможно они пытались разобраться в типах строки SEX, но типов оказалось слишком много..........
Аноним 15/02/24 Чтв 14:05:39 #545 №3049492 
>>3049480
>erlang
хорошая технология, но в элексире опять все превернули, сделали ее веб ориентированной со своим ебучим фениксом, будет как руби, язык одного фреймворка и пары библиотек вангую

>хачкель
Ментальная мастурбация, но очень приятная

В целом соглашусь
Аноним 15/02/24 Чтв 14:28:44 #546 №3049514 
>>3049485
>пишу пять строчек в день
>ни разу не ошибался

ну и што ш ты своим примером тут всем тычешь? Жс и делали с прицелом на 5 строк кода для украшения динамикой страничек васей пупкиных, ни о каком бизнесе тогда и не помышляли.
Аноним 15/02/24 Чтв 14:29:45 #547 №3049516 
>>3049394
>Ты вот серьёзно думаешь что какой-то шизик, страдающей от депрессии и десериализации личности, работающий в ядре раста, вероятно сидящий на гормонах, сможет адекватно описать существующую реальность?
Не знаю кого ты там выдумал, но у нас решение писать на расте принимал соучредители он же и CTO, который сам колотит код и имеет больше 15 лет опыта, до этого писал на жабе и на плюсах, это его деньги и его ответственность. Вообще что-то мне подсказывает что как раз шизик со всеми страданиями это в первую очередь ты.

>Сколько не писал на жс, ошибок не было вообще.
Это ты похоже максимум форму "мы вам перезвоним" на жиквери писал, ошибки бывают в неожиданных местах и часто с приведением типов, там даже [] == "" тебе true выдаст, приходится поверх этого городить тайпскрипт и валидировать все json потому что со сторонних апи бывает прилетает много кривых типов и многое другое. Это постоянная ебля, когда небольшой проект это не так заметно, а когда он разрастается это пизда всему. А еще когда проект какое-то время живет, там начинают происходить всякие изменения сделанные разными людьми, вот тут у всей скриптопараши и начинается основная боль. Вот он реально полезен когда надо на коленке за 2 дня бота накидать и забыть про него.

>У меня GC в жс не работает вообще, что вы там нахуй пишете такого? Ебать, другой мир нахуй.
Бекенд уже почти избавились и чаты в телеге, оно когда работает постепенно кушает память и через несколько недель рантайма уже прилично так откусывает. Не забывай что в продакшн коде кроме своих библиотек есть много сторонних и как я выше писал npm еще та параша и ты хуй чего там отдебажишь, плюс с кодом постоянно работали разные люди.

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

>у вас там команда мидлов
Да

>которые горят жопой если нужно делать что-то сложное
Всякое делаем, жопа не горит, но сложных задач связанных с еблей байтиков и разматыванием памяти нет у нас в основном работа с данными из разных источников, агрегируем и предоставляем нашим клиентам. Вот данных большие объемы и бывают тоже свои сложности, особенно когда нужно организовать поиск приходиться иногда погружаться вглубь работы с БД. Миграция с постгреса на кликхаус тоже веселая тема, предстоит тут скоро. Короче всё как у всех, в основном рутина и перекладывания джсонов, иногда встречаются сложности, мы обычная средняя команда без выебонов.

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

>а по-другому писать никто не умеет и не хочет
По-другому это как? Ты про по-какому имеешь в виду? Ты даже кода не видел и уже рассуждаешь о том как мы там пишем лол

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

>ядро
Я говорю за себя
Аноним 15/02/24 Чтв 14:33:49 #548 №3049520 
>>3049485
>Просто я пишу пять строчек в день, в сеньёры таких не берут.
Лол, тогда понятно почему ты рассуждаешь как вкатун
Аноним 15/02/24 Чтв 14:51:41 #549 №3049540 
>>3049520
Расступись нахуй, я архитектор.
Аноним 15/02/24 Чтв 15:00:19 #550 №3049551 
>>3049480
>хаскел
Так это же проект родом из академии, где его развивают между парами по гендер стадис и марксисткой теории шахмат.
Аноним 15/02/24 Чтв 15:13:23 #551 №3049573 
И всё таки как раст чего-то там решит для тех же модулей в кернел спейсе, глядя на https://github.com/torvalds/linux/blob/master/drivers/net/phy/ax88796b_rust.rs можно сказать, что это лишь добавление нескучных обоевперделок и свистелок?
Аноним 15/02/24 Чтв 15:21:20 #552 №3049579 
>>3049404
>Ты шо, ты шо, там же куча сахара. Например, есть "==" и "===" - круто, ведь, правда?
Для самых извращенных можно сделать
parseInt = (n) => n + 1;
в глубине библиотеки и тогда придет пизда всему
Аноним 15/02/24 Чтв 15:32:49 #553 №3049592 
>>3049514
Ну а зачем писать больше пяти строк? Вся логика вполне умещается в пять строк. Если не умещается - наблюдается проблема с абстракциями.

>>3049516
> Не знаю кого ты там выдумал, но у нас решение писать на расте принимал соучредители он же и CTO,
да, точно, я вспомнил что я и есть соучредитель который принимает решения
>Вообще что-то мне подсказывает что как раз шизик со всеми страданиями это в первую очередь ты.
Это я взял из блога core разработчика раста. Он себя позиционирует как животное, кстати.
> и часто с приведением типов
Проблемы любителей объектов.
> А еще когда проект какое-то время живет, там начинают происходить всякие изменения сделанные разными людьми, вот тут у всей скриптопараши и начинается основная боль.
Нужно просто писать архитектуру в таком случае, разделение на данные и логику, всё такое.
> Бекенд уже почти избавились и чаты в телеге, оно когда работает постепенно кушает память и через несколько недель рантайма уже прилично так откусывает.
У меня чаты и бек работают с заранее выделенной памятью.
Чё тут сказать, советую навернуть https://www.dataorienteddesign.com/dodbook/ вот этого и наконец-то начать программировать, а не абстракции писать.
> С другой стороны ты себя еще раз перечитай, нанимать дорогого специалиста чтобы переучивать и если он по каким-то причинам уйдет повторять те же грабли, а всё это время работа будет стоять, кто в здравом уме это будет делать?
Подписываешь контракт на 5-7 лет и всё. Конечно, при условии что бизнес это не какая-то залупная хуйня которая обанкротится уже вчера.
> >у вас там команда мидлов
> Да
БИЛЯЯААААААААААААТЬ, не повезло, не повезло.
> у нас в основном работа с данными из разных источников, агрегируем и предоставляем нашим клиентам.
> Вот данных большие объемы и бывают тоже свои сложности, особенно когда нужно организовать поиск приходиться иногда погружаться вглубь работы с БД.
Кроме книжечки сверху ещё вот че. Можно ещё использовать ECS у меня такая хуйня на бизнес-логике работает, только S не как System, а как Sequence, последовательность задач, последовательность функций и систем. Заодно будет обеспечена тразакционность всех вычислений, что часто отсуствует в подходе с объектами. Эта хуйня как раз про работу с реляционными базами.
> Вот данных большие объемы и бывают тоже свои сложности
У меня сложность не зависит от объёма вообще. только от того говна что я там понапишу
> По-другому это как? Ты про по-какому имеешь в виду? Ты даже кода не видел и уже рассуждаешь о том как мы там пишем лол
По-другому это дата-ориентированный подходю. Вероятнее всего с таким подходом никакого раста не нужно будет.
> Да, раст неплох когда нужно работать с множеством сервисов, перемалывать данные и часто менять бизнес-логику
Компонентные архитектуры и всякие блекборды именно про это. Без раста.
Аноним 15/02/24 Чтв 15:41:54 #554 №3049601 
>>3049551
Тогда это язык товарищей-коммунистов, некоторым из которых нравятся мужские задницы. Не вот эти вот проклятущие западные геи, а наши, русские пидорасы! Всё в порядке.
Аноним 15/02/24 Чтв 16:47:28 #555 №3049704 
>>3049592
>да, точно, я вспомнил что я и есть соучредитель который принимает решения
Я вижу что ты жнец и на дуде игрец пиздабол

>У меня сложность не зависит от объёма вообще.
Ну возьми postgres собери ради эксперимента табличку с полем text, возми какой-нибудь фейкер и заберй разными фразами (имитируем описание товаров) примерно по 500-1000 символов на запись. Сделай 1000 записей и организуй полнотекстовый поиск по этому говну, не просто description LIKE '%залупа%' а норамальный description_tsvector @@ to_tsquery('залупа')
Если осили и работает, то потом попробуй прогнать скрипт до 50 млн записей в БД, этого уже будет достаточно чтобы опровергнуть твои слова.
Для скрипта можешь кстати взять js на котором ты не ошибаешься и где память не утекает)))
Аноним 15/02/24 Чтв 17:49:10 #556 №3049861 
>>3049592
>Нужно просто писать архитектуру в таком случае, разделение на данные и логику, всё такое.
Простой рецепт "Как нам обустроить IT индустрию" от опытного писателя хэлловорлдов.

У тебя любая архитектура исходит из каких-то ограничений. Делаем Х, наиболее оптимальным способом У, так как Й нам точно не понадобится. Потом через полгода разработки к тебе прибегает манагер мы тут посовещались и говорит: а вот надо Й, давайте ребята, вы сможете. И ты к своему ХУ приделываешь этот Й, раздвигая очко архитектуре. И вот в таком случае скриптопараша тебе не подскажет, что может пойти не так. А норм языки, да даже вроде той же жабы - вполне могут, за это её и полюбил кровавый ынтырпрайз.
Аноним 15/02/24 Чтв 17:52:02 #557 №3049873 
>>3049704
>Я вижу что ты жнец и на дуде игрец пиздабол
Ето да, не спорю. вместо предприятия просто ОООшка с 0 сотрудников и фрилансерами в серую
>Ну возьми postgres
Че я корпоблядь по твоему что ли.
>Для скрипта
Обхожу деревья на си.
>500-1000 символов на запись.
>description_tsvector @@ to_tsquery('залупа')
>Если осили и работает, то потом попробуй прогнать скрипт до 50 млн записей в БД
Так подожди, подожди. Это же всего лишь 50 гигабайт. БД хранится полностью в ОЗУ. В чем тут вообще может быть проблема? Просто ставишь VP дерево и обходишь как тебе угодно. 50 гигабайт это нихуя.
>прогнать скрипт
>Для скрипта можешь кстати взять js
Ебать вам там хуево с этими скриптами. Скрипты какие-то пишете для обхода 50 гигабайт. ПРОСТО берёшь VP дерево и ПРОСТО получаешь всё что ты там хочешь.
Аноним 15/02/24 Чтв 17:58:31 #558 №3049906 
>>3049861
Просто не стоит строить архитектуру на объектах. У тебя данные хранятся. И твои говнофункции, которые отвечают за Й, Х и У. Можешь сколько угодно говнофункций написать, да всем буквально поебать что там будет понаписано и что они будут брать. Если надо, то можешь несколько функций завести и собирать с них данных. По-ебать. Ну а архитектура менеджерит все подключения, исключения, приоритеты работы, зависимости и последовательности транзакций. В идеале, конечно, ирл такого монстра заебешься писать.
Что тут может пойти не так? Вот серьёзно, что?
> И вот в таком случае скриптопараша тебе не подскажет, что может пойти не так. А норм языки, да даже вроде той же жабы - вполне могут, за это её и полюбил кровавый ынтырпрайз.
То что ты описал это и есть проблемы жабы так-то, когда говянная архитектура на объектах, которую исповедуют в тырпрайзе, постоянно переписывается и обсикается в штанишки. Просто в жабе можно на это хуй положить.
Аноним 15/02/24 Чтв 18:04:33 #559 №3049924 
image.png
Надо признать интерес к расту растет, помимо SO, что мало что показывает, кроме интереса, есть еще показатели гитхаба среди тысячников (более 1000 звезд). Если за 6-7 лет было около 200-400 овер-тысячников, то где-то за год или два стало 1200 тысячников, от чего раст попал в топ 10 по гибхабу.

Так что наблюдаем, но не верю что он пригоден для промышленного кодинга, все еще думаю что останется как экзотика, посмотрим, я часто бываю неправ.
Аноним 15/02/24 Чтв 18:40:20 #560 №3050015 
>>3049906
У тебя всё равно должны быть какая-то модель данных. Структуры, енамы, это всё.

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

если у тебя функции отдельно, а архитектура со стрелочками на бумажке отдельно нарисована, то далеко такая конструкция не уедет.

> говянная архитектура на объектах,
очень хорошо подходит для коллективной разработки. Архитектор в калифорнии пишет интерфейсы, индусы пишут реализации под разные классы. Жаба потому и взлетела, что твоя лапша из функций и процедурок нежизнеспособна в таких условиях.
Аноним 15/02/24 Чтв 19:02:26 #561 №3050037 
>>3049873
Это в теории классно, а ты напиши.

>Че я корпоблядь по твоему что ли.
Задача поставлена работать именно с БД, она есть на проекте, она работает.

>БД хранится полностью в ОЗУ
Не хранится, есть еще другие поля и очень много других данных, я сказал про одно поле только. ОЗУ нужна для других запросов

> В чем тут вообще может быть проблема?
Сервер внезапно ребутнулся, как эти данные будут хранится в твоей васянской БД?
Как организовать crud в твоей хуйне?
Как со связями с другими таблицами?
Как быть с транзакциями?
Как твоя поделка работает если писать десяток записей в секунду 24/7, будет ли она все твои деревья перепердоливать?
Что если я захочу ещё одно поле добавить?
Как другие будут с твоей поделкой работать?
Кто эту хуйню будет поддерживать?
И еще сотни других проблем которые ты не решаешь тут, но они решены в постгресе на протяжении многих лет тысячами людей.

>Ебать вам там хуево с этими скриптами.
Не не, скрипт только для наполнения БД, остальное исключительно средставами постгреса.

Студент пиздбол ты ни дня ни работавший
Аноним 15/02/24 Чтв 19:09:16 #562 №3050044 
изображение.png
>>3049873
Я даже догадываюсь у кого ты учишься
для ценителей та самая цмс http://thalassa.croco.net/download/
Аноним 15/02/24 Чтв 19:12:37 #563 №3050050 
>>3049861
Двачаю, вкатуны не знают о том как происходит на самом деле, что иной раз приходится кардинально всё переделывать из-за изменений бизнеслогики и никакая архитектура не спасает
Аноним 15/02/24 Чтв 19:17:45 #564 №3050058 
>>3050044
>Я даже догадываюсь у кого ты учишься
>
Интернет тесен, возможно это он и есть. Но я не стал качать исходники, чтобы заценить.
Аноним 16/02/24 Птн 00:00:04 #565 №3050523 
>>3050015
> У тебя всё равно должны быть какая-то модель данных. Структуры, енамы, это всё.
Почти никаких структур не остается после нормализации так-то. Енамы только, но эт уже примитивы.
> если у тебя функции отдельно, а архитектура со стрелочками на бумажке отдельно нарисована, то далеко такая конструкция не уедет.
Вообще-то это почти что подход GraphQL, когда вместо сервера у тебя просто GraphQL стоит. Это может уехать очень, очень далеко.
>очень хорошо подходит для коллективной разработки. Архитектор в калифорнии пишет интерфейсы, индусы пишут реализации под разные классы. Жаба потому и взлетела, что твоя лапша из функций и процедурок нежизнеспособна в таких условиях.
Не, это скорее исторически так сложилось. Не обязательно объекты должны иметь именно такие нетривиальные связи, не обязательно они должна наследоваться и иметь вот всё эту хуйню. Просто когда-то зафорсили ООП как язык для манагеров, мол, АТВИЧАЮ ЧТО ПРОСТА БУДЕТ ЛЮБОЙ ИНДУС СМОЖЕТ АСИЛИТЬ!11 и каждая фирма стремилась его внедрять.

>>3050037
>Это в теории классно, а ты напиши.
Да, скоро буду писать бд новую, с существующими пердолями проблемки возникают небольшие такие. Может писать не буду и заведу Foundation, ещё и с драйверами под новые диски работает, такое я пердолить не готов.
> Задача поставлена работать именно с БД, она есть на проекте, она работает.
Там небось ставят задачи и скрипты писать.
> Не хранится, есть еще другие поля и очень много других данных, я сказал про одно поле только. ОЗУ нужна для других запросов
Нет, озу нужна для БД. Прошли времена кэшей и высокой стоимости озу, 500гб стоит дешевле говна.
> Сервер внезапно ребутнулся, как эти данные будут хранится в твоей васянской БД?
Это кластер. На диск скидывается когда нужно.
> Как организовать crud в твоей хуйне?
> Как быть с транзакциями?
STM либа.
> Как со связями с другими таблицами?
Есть таблица со связями индексами.
> Как твоя поделка работает если писать десяток записей в секунду 24/7, будет ли она все твои деревья перепердоливать?
Батчит и перепердоливает индексы.
> Что если я захочу ещё одно поле добавить?
Сколько угодно.
> Кто эту хуйню будет поддерживать?
Там 500 строчек, планирую сократить.
> И еще сотни других проблем которые ты не решаешь тут, но они решены в постгресе на протяжении многих лет тысячами людей.
Да и хуй с ними, нинужно. Идеальная БД жто Foundation. Но он всё ещё медленная.
> Студент пиздбол ты ни дня ни работавший
Да, я ни дня в интерпрайзе не работал.
Аноним 16/02/24 Птн 00:04:03 #566 №3050533 
>>3050044
>>3050058
Да заебали, я пту закончил на электрика, похуй мне на этого шизика с вебом 1.0 в голове.

Алсо, он какой-то порвак, то ли либертардианец, то ли анкап, подвспшикивал с его маняфантазий как нужно экономику строить.
Аноним 16/02/24 Птн 01:18:58 #567 №3050601 
>>3050523
>скоро буду писать бд новую
>Там 500 строчек
Как ты быстро 500 строчек накидал, не успев даже пост до конца написать лол.

А вообще мне интересно почему у сишников какая-то маниакальная тяга колхозить свое? Этот шиз эталонный пост накатал из палаты мер и весов, вместо проверенной годами БД, которая имеет довольно серьезный функционал, предлагает поделие на коленке да и еще какие-то либы натянуть, да еще весь код в 500 строк, который он запланировал и никогда не напишет На лоре гле-то под новостью о языке го тоже повылазили черти давай рассказывать как свои сервера писать круто, а в стандартной библиотеке там типа не свой код и хз как оно работает лол.
Аноним 16/02/24 Птн 01:21:04 #568 №3050603 
>>3050533
Ты еще и левак идиот
Аноним 16/02/24 Птн 07:11:45 #569 №3050642 
>>3049573
Бамп вопросу.
Аноним 16/02/24 Птн 08:06:32 #570 №3050660 
ava3.png
>решил установить консольный плеер на расте
>452 каких-то зависимостей из интернета
Это пиздец, товарищи...
Аноним 16/02/24 Птн 08:14:20 #571 №3050665 
image.png
image.png
image.png
image.png
>>3050660
Просто посмотрите на эту хуйню.
Аноним 16/02/24 Птн 08:15:42 #572 №3050666 
image.png
image.png
image.png
image.png
>>3050665
Аноним 16/02/24 Птн 08:16:42 #573 №3050667 
>>3050666
И там еще куча такого полотна. Это нормально для СИСТЕМНОГО язык?
Аноним 16/02/24 Птн 08:54:24 #574 №3050677 
Пакетный менеджер - это нормально.
Если пишешь под систему - нахуй тебе туда плеер ставить с ресодвом депенденсей? Не пользуйся вообще карго.

Ты же срать когда идешь домой - шубу не надеваешь? Хотя хуй знает, может ты еще и в раковину срешь вместо унитаза а судя по твоим постам потом еще свое дерьмо жрешь
Аноним 16/02/24 Птн 09:00:46 #575 №3050682 
>>3050660
Напиши свой без зависимостей
Аноним 16/02/24 Птн 09:00:54 #576 №3050683 
>>3050601
> А вообще мне интересно почему у сишников какая-то маниакальная тяга колхозить свое? Этот шиз эталонный пост накатал из палаты мер и весов, вместо проверенной годами БД, которая имеет довольно серьезный функционал, предлагает поделие на коленке да и еще какие-то либы натянуть, да еще весь код в 500 строк, который он запланировал и никогда не напишет
У тебя задача писать то скажет господин. Господин сказал писать на расте - ты пишешь на расте. Сказал использовать постгресс, ты киваешь головой и устанавливаешь постгресс. Господин сказал пятьсот зависимостей ставить и наблюдать пять часов за компиляцией раста - ты это делаешь.

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

Ну и конечно же интересно создавать алгоритмы которые в 700 раз эффективнее твоего кала и с лицом пепе наблюдать за тем как твоя фирма банкротится.

>>3050603
Работает на барина вечным мидлом, ещё и порвак который за барина сражается. Ну ты и куколд, чел
Аноним 16/02/24 Птн 09:03:11 #577 №3050685 
>>3050601
> А вообще мне интересно почему у сишников какая-то маниакальная тяга колхозить свое?
Ты ещё маленький чтобы понять
Когда станешь глыбой поймёшь, что наклепав своего говна который никто кроме тебя поддерживать не будет, ты становишься незаменимым в кампании со стабильной зепкой

Кабану останется только лапу сосать
Аноним 16/02/24 Птн 09:13:20 #578 №3050687 
>>3050685
Кстати да, это важно.
Слышал историю из варгейминга, там три человека написали какой-то дико нетривиальный код для клиентов и никто нахуй не понимает как и почему он работает. Им даже зп повысили после такой хуйни, чтобы не сбежали, когда эта история добралась до топов. В яндексе примерно то же слышал.
Аноним 16/02/24 Птн 09:41:54 #579 №3050711 
>>3050523
>нормализации
>GraphQL

Далеко не все задачи сводятся к взаимодействию с БД.
И даже так: мне вот понадобилось сделать отчёты для кабанчика на основе данных из БД. И я сделал на ООП. Есть базовый класс, есть наследуемые, разные для разных типов отчётов, где по-разному реализованы некоторые методы. В одном классе один метод, в других сразу несколько. Такой код очень легко читать: для каждого типа отчёта ты видишь, как и какие методы он переопределяет, соответственно, очень легко дописывать.
Я мог бы сделать и лапшу из функций, где if-ами бы разруливал всю логику, но вот проблема: у меня таких мелких задач десятки, такой код я через полгода сам не смогу прочитать и нормально править.

Похоже, что у тебя один проект, который ты постоянно держишь в памяти и помнишь в нём каждую запятую. Не удивлюсь, если это твой первый проект после лаб.
Аноним 16/02/24 Птн 10:15:42 #580 №3050738 
>>3050711
> Далеко не все задачи сводятся к взаимодействию с БД.
Все. Вообще все.
> Есть базовый класс, есть наследуемые, разные для разных типов отчётов, где по-разному реализованы некоторые методы.
Преобразование данных. Просто делаешь запрос который их в нужном порядке собирает.
> Такой код очень легко читать: для каждого типа отчёта ты видишь, как и какие методы он переопределяет, соответственно, очень легко дописывать.
Нет, в таком коде будет 500 зависимостей и переопределений. Просто путешествуя по ссылкам ты заебешься понимать все взаимоотношения классов.
> Я мог бы сделать и лапшу из функций, где if-ами бы разруливал всю логику, но вот проблема: у меня таких мелких задач десятки, такой код я через полгода сам не смогу прочитать и нормально править.
Тебе не нужна никакая лапша из функций, ты просто берёшь данные с бд в правильной последовательности и формируешь отчёт. Тут ничего не нужно кроме запросов из БД.
> Похоже, что у тебя один проект, который ты постоянно держишь в памяти и помнишь в нём каждую запятую. Не удивлюсь, если это твой первый проект после лаб.
Нет, просто у меня просто нет никакого ООП. Каждый тип отчёта это просто запросы к хранилищу, там нет наследований, там нет переопределений, там нет ничего кроме одной функции. Просто одна функция. Не знаю даже что может быть проще одной функции и нахуя ты там выдумал какие-то ебаные классы, лол. Ты ещё макросы напиши, ну точно будет удобнее.
Аноним 16/02/24 Птн 10:27:40 #581 №3050748 
>>3050738
> Просто делаешь запрос
Дык, я и сделал конструктор запросов на классах, который по методам собирает запрос.

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

>не нужна никакая лапша из функций, ты просто берёшь данные с бд в правильной
>просто
>просто
ему, блять )))

Вот небольшой пример: мне нужно выбрать топ сущностей по разным критериям X и Y.
В классе я определяю: поле, по которому делать сортировку в запросе к бд, название этого поля и хинт для кабанчика, если название не раскрыло ему сути. Я хуй знает, как бы выглядело тут твоё просто, но у меня это реально просто: есть общий базовый класс, а все отличия сгруппированы в подклассах. То есть, сразу зашёл и посмотрел, что будет при таком-то варианты отчёта.
Аноним 16/02/24 Птн 11:15:06 #582 №3050779 
>>3050748
> Дык, я и сделал конструктор
Зачем? Он не несёт никакого смысла. Всё то же самое что и с функциями.
> Но даже в худшем виде это будет слабо приближаться к тому бардаку, если делать лапшой.
Лапша это когда у тебя конструкторы на классах с десятками зависимостей и по этой хуйне нужно путешествовать в пятьдесят файлов.
> Я хуй знает, как бы выглядело тут твоё просто, но у меня это реально просто: есть общий базовый класс, а все отличия сгруппированы в подклассах. То есть, сразу зашёл и посмотрел, что будет при таком-то варианты отчёта.
Не ну если у тебя действительно класс в одном файле и всего лишь несколько функций - никаких проблем нет. ООП впринципе и работает вот в таких маленьких ситуациях, когда кода особо нет, всё просто и незамысловато. Правда оно бессмысленно в такой ситуации, ну да ладно, кому-то и говно вкусное.
Проблемы начинаются когда типов отчётов 50, классов 10-15, везде всё переопределяется и наследуется.
Аноним 16/02/24 Птн 11:34:49 #583 №3050788 
>>3050779
>Всё то же самое что и с функциями
Разница в читаемости. Классы избавляют тебя от необходимости обозревать логику с if/match/switch, об которую ломается мозг. Взял тип отчёта и пошёл смотреть только его методы.

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

Вообще, когда у тебя архитектура отражает бизнес логику кабанчика, это не прогнулся, лох, это хорошо. Нужен новый отчёт? Добавил компактный класс с 3-мя методами. Стал не нужен старый? Удалил его класс.

И да: не то, чтобы я топлю за ООП в раст треде, речь о том, что всякой абстракции своё место и на одних функциях с примитивами далеко не уедешь.
Аноним 16/02/24 Птн 12:03:47 #584 №3050807 
>>3050642
>Бамп вопросу.
Язык для веб-макак, какой кернелспейс нахуй.
Аноним 16/02/24 Птн 12:22:35 #585 №3050817 
>>3050788
>Разница в читаемости.
Это да. Функции читаются легко и просто, у них однозначные выводы. А в классах какое-то ебаное месиво, лапша из состояний и наследований которые везде.

>Классы избавляют тебя от необходимости обозревать логику с if/match/switch, об которую ломается мозг.
Ты серьезно говоришь что switch ломает мозг меньше чем наследование разных классов из разных файлов?

> Если всё так плохо на классах, то на функциях будет ещё хуже.
Нет, на функциях будут все то же что и всегда - изменение и модификация данных. Там нет ничего кроме этого. Там нет переопределений, виртуальных функций, наследований, изменения состояния которое происходит хуй знает где. Данные в одном месте. Изменения в другом месте. Всё нах.

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

> И да: не то, чтобы я топлю за ООП в раст треде, речь о том, что всякой абстракции своё место и на одних функциях с примитивами далеко не уедешь.
Ну как видишь целое ядро написали на функциях с примитивами. Даже шинда в ядре не использует ООП.

С ООП код обычно едет прямиком в парашу, после того как написали и оно своё отработало, думаю раст будет отъезжать в парашу ещё чаще чем объектный кал, с его-то синтаксисом и макросами.
Аноним 16/02/24 Птн 12:36:10 #586 №3050827 
>>3050817
>В ООП нельзя ничего удалять, потому что всё это чем-то и где-то и когда-то наследуется. Удалил класс? Молодец, всё приложение крашнулось. Переписывать это наследование никогда никогда не будет.

Буквально никто не делает больше трех уровней наследования, в 90% случаев не больше одного.

>как видишь целое ядро написали на функциях с примитивами
чел, там виртуальная таблица на таблице
Аноним 16/02/24 Птн 12:44:27 #587 №3050838 
>>3050827
>виртуальная таблица на таблице
Там одна виртуальная таблица макс.
Аноним 16/02/24 Птн 13:03:31 #588 №3050862 
>>3050827
>Буквально никто не делает больше трех уровней наследования, в 90% случаев не больше одного.
>чел, там виртуальная таблица на таблице
Ебать манямирк.
Аноним 16/02/24 Птн 13:20:01 #589 №3050879 
>>3050683
Найс подрыв с господином от безработного, не вчитывался в твой высер целиком
Аноним 16/02/24 Птн 13:23:04 #590 №3050883 
>>3050685
А кабан такой глупенький, такое работает до поры до времени пока это колхозное решение не столкнется с какими-нибудь трудностями
Аноним 16/02/24 Птн 13:46:18 #591 №3050907 
>>3050883
>>3050687
Это если что ироничный пост был, в реале так только мрази полные делают
Аноним 16/02/24 Птн 14:01:00 #592 №3050936 
>>3050879
> порвак
> рассказывает что порвались другие

>>3050907
Бедного барина наебывают? Как же так! Как они посмели твоего господина наебать! Скорее вставай на защиту господина, он сам себя не защитит!
Аноним 16/02/24 Птн 14:05:06 #593 №3050943 
>>3050907
> в реале так только мрази полные делают
То есть сишники пишущие свои базы данных и реализации http, используя функциональный говнокод
Аноним 16/02/24 Птн 14:11:13 #594 №3050954 
>>3050936
>Бедного барина наебывают?
Своих коллег, или кто будет твой говнокод поддерживать?
Аноним 16/02/24 Птн 14:16:17 #595 №3050963 
>>3050936
>господина
Почему ты думаешь что те кто имеет правые взгляды обязательно за господ? По мне наоборот генсеки при совке имели большее влияние на жизнь людей, а простой советский рабочий был в зависимости от директора предприятия больше чем сейчас рабочий от директора ООО "Рога и копыта". То есть при совке на работе решали где ты будешь жить, куда поедешь отдыхать и с кем будешь спать.
Вся эта шиза про баринов слышна от тех кто больше всего хочет себе государственного барина и сам преклоняется перед начальством. Вообще съеби в /po/ со свой грязноштаной хуйнёй, там любят на эту тему подискутировать.
Использование определенного стека технологий на определенном проекте прогонять через этот марксистский бред про баринов-эксплуататоров это конечно сильно.
Аноним 16/02/24 Птн 14:19:29 #596 №3050972 
>>3050954
Он ни дня не работал и не понимает что кроме него есть ещё и коллеги и задачи бизнеса которые должны приносить прибыль чтобы ему же и платить зарплату. Но начитался алгоритмов с теорией шахмат по Марксу и начинает тут бред нести.
Аноним 16/02/24 Птн 14:57:44 #597 №3051027 
>>3050963
> Почему ты думаешь что те кто имеет правые взгляды обязательно за господ?
Потому что иерархия, любой правый будет защищать барина потому что он манямечтает как сам станет барином. Он как бы уже БАРИН, но просто не подфартило и ему приходится 10 часов своей жизни тратить на других людей.
> По мне наоборот генсеки при совке имели большее влияние на жизнь людей, а простой советский рабочий был в зависимости от директора предприятия больше чем сейчас рабочий от директора ООО "Рога и копыта". То есть при совке на работе решали где ты будешь жить, куда поедешь отдыхать и с кем будешь спать.
Почему мне не должно быть похуй что там было в совке, шиз? Нахуй ты эту методичку высрал?
> Вся эта шиза про баринов слышна от тех кто больше всего хочет себе государственного барина и сам преклоняется перед начальством.
Как видишь в этом итт треде порвачки работают на барина, а я успешный частный предприниматель. Показательно.
> Вообще съеби в /po/ со свой грязноштаной хуйнёй, там любят на эту тему подискутировать.
Высрал целый пост какой-то хуеты порашной и рассказывает про порашу. Всё хорошо с тобой?
> Использование определенного стека технологий на определенном проекте прогонять через этот марксистский бред про баринов-эксплуататоров это конечно сильно.
Ещё скажи что всё хорошо когда ты по 8 часов работаешь мидлом, а твой код и все твои алгоритмы тебе даже не принадлежат.

>>3050954
>>3050972
Никто не будет подобные системы поддерживать, кроме специалиста который это создал. 80% говнокода никогда не рефракторится и поддерживается написавшими его. Техдолг в компаниях доходит до 40%. Каждые 5 лет половина кода переписывается, потому что поддерживать или модифицировать такое старое говно становится невозможно.

Хуй знает где вы там работаете, наверное в своих манямечтах, если не в курсе про базу интерпрайаса.
Аноним 16/02/24 Птн 15:20:24 #598 №3051063 
>>3051027
>я успешный частный предприниматель
Я вижу лол, ты наверное предприниматель как со своей БД, которую собирался написать и там всего 500 строк кода. Как бы ОООшку собрался открывать, но там у неё оборот небольшой 500 тыс. в месяц.

>Никто не будет подобные системы поддерживать, кроме специалиста который это создал. 80% говнокода никогда не рефракторится и поддерживается написавшими его. Техдолг в компаниях доходит до 40%. Каждые 5 лет половина кода переписывается, потому что поддерживать или модифицировать такое старое говно становится невозможно.
Твои васянские поделки еще быстрее в негодность придут, а код тяжело поддерживать из-за его постоянных изменений, которые в известной всем коллегам экосистеме поддерживать проще чем в самописной хуйне.

>Хуй знает где вы там работаете, наверное в своих манямечтах, если не в курсе про базу интерпрайаса.
Вот ты как раз в курсе только из книжек
Аноним 16/02/24 Птн 16:45:02 #599 №3051235 
Screenshot from 2024-02-16 17-41-32.png
>>3050817
>наследование разных классов из разных файлов?
>В ООП нельзя ничего удалять, потому что всё это чем-то и где-то и когда-то наследуется.

Идрит, у тебя манямирок
1. Даже если из разных файлов, как в жабе, то это не так страшно. Просто привыкаешь пользоваться боковой панелькой в IDE. Конкретно у меня в моём пример всё в одном.

2. Если тебе не нужен какой-то класс, то тебе не нужно и всё, что от него наследуется, так как наследуемые классы реализуют какие-то частные случаи основного.

Классы, это не помойка для функций, это способ разделить архитектуру на блоки. Для каких-то вещей хорошо подходящий способ, для каких-то не очень.
На пике примерно показано, как я их использую.
Аноним 16/02/24 Птн 17:18:02 #600 №3051286 
>>3051063
> Я вижу лол, ты наверное предприниматель как со своей БД, которую собирался написать и там всего 500 строк кода. Как бы ОООшку собрался открывать, но там у неё оборот небольшой 500 тыс. в месяц.
Че высрал вообще?
> Твои васянские поделки еще быстрее в негодность придут
Там нечему приходить в негодность, код минималистичен.
> а код тяжело поддерживать из-за его постоянных изменений
Нормализацию делай, перестань писать объекты, вот и изменений не будет.
> которые в известной всем коллегам экосистеме поддерживать проще чем в самописной хуйне.
Это же не ООП которую нужно поддерживать, когда кто-то в очередной раз говнокод написал и класс удалил. Каждая функция самодостаточна, а изменения данных линейны или вообще данные неизменяемы.
> Вот ты как раз в курсе только из книжек
Тут не я рассказываю про ООП которое легко поддерживать, лол.

>>3051235
> 1. Даже если из разных файлов, как в жабе, то это не так страшно.
Всего лишь проебёшь весь проект.
> Просто привыкаешь пользоваться боковой панелькой в IDE.
Открой какой-нибудь говнокод с гитхаба, увидишь что там в твоей панеле будет, лол.
> Конкретно у меня в моём пример всё в одном.
Это код на уровне вкатуна.
> 2. Если тебе не нужен какой-то класс, то тебе не нужно и всё, что от него наследуется, так как наследуемые классы реализуют какие-то частные случаи основного.
Нет, не верно. Наследования класса может происходить где угодно в системе. Ты можешь сломать что угодно. Например эти репорты может наследовать какой-то веб-интерфейс, который почему-то кто-то воткнул и сказал "эта техдолг, я пометил". Удалил класс? Молодец, переписывай пол проекта.
> Классы, это не помойка для функций, это способ разделить архитектуру на блоки.
> На пике примерно показано, как я их использую.
Когда ты пишешь вкатунский код - да, конечно, всё заебись. Просто открой реальный проект и посмотри сколько там наследований и куда они уходят.
Аноним 16/02/24 Птн 17:24:35 #601 №3051290 
>>3051286
>Че высрал вообще?
То что ты пиздишь, никакой ты нахуй не предприниматель, у меня даже сомнения что ты вообще хотя бы день проработал. А аналогия с БД потому что ты тут >>3050523 забавно напиздел про то как собрался писать и дальше по тексту уже 500 строк появилось. Но ты слишком тугой чтобы понять иронию, либо не запоминаешь что пишешь.

>поток бреда от вкатуна про нормально делай
Не читал
Аноним 16/02/24 Птн 17:28:50 #602 №3051295 
>>3051290
> Но ты слишком тугой чтобы понять иронию, либо не запоминаешь что пишешь.
Нет, просто эта шизофрения связана только у тебя в голове, как бы ООО 500 тысяч, что это вообще? Это всё точно ирония, а не шизофрения погорельца?

> Не читал
Конечно, а то вдруг ты ещё проиграешь в аргументации, неприятно будет. Лучшее вообще на мейлча не заходи, тут неприятное постят...
Аноним 16/02/24 Птн 17:37:40 #603 №3051313 
>>3051286
>Это код на уровне вкатуна.
Это не сам код, это я для тебя пример набацал. Видишь, как все различия по классам сгруппированы? Вот то-то же.

>Открой какой-нибудь говнокод с гитхаба, увидишь что там в твоей панеле будет, лол.

дохрена 1000+ проектов с таким подходом, как на ООП, так не на ООП. Сишных проектов дохрена с файликами по паре строчек.
Аноним 16/02/24 Птн 17:42:45 #604 №3051320 
>>3051295
>Нет, просто эта шизофрения связана только у тебя в голове, как бы ООО 500 тысяч, что это вообще? Это всё точно ирония, а не шизофрения погорельца?
Например такая:
>>3049873
>вместо предприятия просто ОООшка с 0 сотрудников и фрилансерами в серую

Открою секрет ООО вообще может быть нулевка

>проиграешь в аргументации
С тобой играть как в шахматы с голубем, уронит все фигуры, насрёт на доску и полетит своим рассказывать как он всех уделал
Аноним 16/02/24 Птн 18:01:37 #605 №3051332 
>>3051313
> Это не сам код, это я для тебя пример набацал.
Пример я могу посмотреть на гитхабе, как там наследование через пять файлов минимум проходит.
> дохрена 1000+ проектов с таким подходом, как на ООП, так не на ООП. Сишных проектов дохрена с файликами по паре строчек.
Так это и есть проблема ООП. Приходит сеньёр говнописака и думает что сейчас сделает лучше.

Можно и на жабе писать норм, самое знаменитое - композиция вместо наследования. Вот тут заебок, ещё бы данные нахуй высрать из классов, тогда совсем всё хорошо будет. Просто это всё непопулярно. Популярно это хуячить говнокод с наследованиями.

>>3051320
> Открою секрет ООО вообще может быть нулевка
И что дальше? К чему это вообще высрал-то?
> С тобой играть как в шахматы с голубем, уронит все фигуры, насрёт на доску и полетит своим рассказывать как он всех уделал
Как же ты ловко меня уделал, ух! Поздравь себя с победой через самоотсос.
Аноним 16/02/24 Птн 18:09:15 #606 №3051338 
>>3051332
>И что дальше? К чему это вообще высрал-то?
Да так ни к чему, для общего развития. Ну и как там ваша ОООшка с 0 сотрудниками поживает?
Аноним 16/02/24 Птн 18:15:17 #607 №3051351 
>>3051338
Всё хорошо, спасибо что поинтересовался.
Аноним 16/02/24 Птн 18:21:47 #608 №3051365 
>>3051351
Прям совсем 0 сотрудников? И обороты больше 500 тыс. в месяц (6млн. в год)?
Аноним 16/02/24 Птн 18:53:24 #609 №3051414 
image.png

"ПОЧЕМУ У ВАС Х"
@
НАПИШИ САМ
@
ЭТО НОРМАЛЬНО, А ТЫ ГОВНОЕД


Понял, вопросов не имею. Вы в растолобби, видимо, все долбоебы.
Аноним 16/02/24 Птн 18:56:40 #610 №3051419 
>>3051414
> Искренне удивляется говну в опенсорсе
С пробуждением
Аноним 16/02/24 Птн 19:25:15 #611 №3051431 
>>3050660
>>3050667
Даже если предположить что зависимости это ужасно плохо и надо самому всё писать чтобы хомячок с двача похвалил, то...

Там одни и те же либы (tokio, libc, parking_lot, proc-macro, log, tracing, mio, cfg-if, bitflags, rand, futures и т.д.) хуй знает сколько раз повторяются потому что разные зависимости одну и ту же либу могут хотеть в разных версиях

>Это нормально для СИСТЕМНОГО язык?
>консольный плеер
А этот твой плеер это точно системный софт? Если нет то к чему тогда этот заход? На т.н. системном языке, внезапно, можно и прикладной софт писать
Аноним 16/02/24 Птн 19:39:18 #612 №3051452 
>>3051365
Это игнорируем, оно и понятно, пиздабол боится спалиться
Аноним 16/02/24 Птн 19:39:42 #613 №3051453 
>>3051414
> - РЯЯЯЯ РАСТ НЕ ЖС, ОН КАК СИ ТОЛЬКО ЛУЧШЕ И БЕЗОПАСНЕЕ!11
@
> ЗАВИСИМОСТЕЙ БОЛЬШЕ ЧЕМ В ЖС
@
> КОМПИЛЯЕТСЯ 8 ЧАСОВ
@
> В ПАКЕТАХ СБОРКИ СЛОВО UNSAFE ЗАМЕЧЕНО 624 547 РАЗА
Аноним 16/02/24 Птн 19:43:33 #614 №3051458 
>>3051365
>>3051452
Да не трясись ты, шизло. Не ответили ему вовремя, а он аж затрясся, бегает по треду, ищет меня.
Сотрудников там нет , а я за сотрудника работаю. Что там с 500 тысячами вообще не ебу, ты таблетки не выпил, порвак? Выпей.
Аноним 16/02/24 Птн 19:51:50 #615 №3051470 
>>3051458
> с 500 тысячами
Да согласен, невнимательно тебя прочитал, показалось что ты выразился про "погорельца" что это мало. Не внимательно читал твой бред, проехали.

> а я за сотрудника работаю
Погоди так ты же соучредитель или успешный предприниматель, а тут уже работаешь.
Аноним 16/02/24 Птн 20:00:56 #616 №3051486 
>>3051470
> Не внимательно читал твой бред, проехали.
Сильно больно, да? Пынямаю, когда-то и мне было так же, когда только на двачь пришёл, троляки, ска!
>Погоди так ты же соучредитель или успешный предприниматель, а тут уже работаешь.
Таково законодательство.
Аноним 16/02/24 Птн 20:08:39 #617 №3051493 
>>3051486
>Сильно больно, да?
Нет, ваще похую, бывает ошибаюсь и в этом ничего страшного нет. Страшно когда кто-то ошибается, знает что он ошибся, но и из треда в тред продолжает на чем-то настаивать чтобы не признавать свою неправоту, вот на таких смотреть больно. Не знаешь таких?

>мне было так же, когда только на двачь пришёл, троляки, ска!
Лол, пы походу до сих пор обижаешься

>Таково законодательство.
Директором тебя сделали?
Аноним 16/02/24 Птн 20:21:49 #618 №3051526 
image.png
image.png
>>3051431
>А этот твой плеер это точно системный софт?
Лол конечно же нет, этом это полноценный плеер для спотифай, который умеет текст песен находить и еще прочие плюшки-ватрушки.
https://github.com/aome510/spotify-player/tree/master
Там кстати виден корень всего зла в зависимостях, кое что сделать и их станет меньше.
Аноним 16/02/24 Птн 20:54:30 #619 №3051563 
>>3051493
>Нет, ваще похую, бывает ошибаюсь и в этом ничего страшного нет. Страшно когда кто-то ошибается, знает что он ошибся, но и из треда в тред продолжает на чем-то настаивать чтобы не признавать свою неправоту, вот на таких смотреть больно. Не знаешь таких?
Нах ты оправдываешься? Я не твой барин чтобы оправдываться. Чел, перед другими людьми можно не оправдываться, а просто хуй забить.
> Лол, пы походу до сих пор обижаешься
Дя, я очень обижаюсь когда меня тролят. Потом не могу успокоиться и десятки постов оптравляю, мониторю треды там, спрашиваю почему мне не отвечают, представляю что кому-то неудобно. Всё так и есть.
> Директором тебя сделали?
Ещё и работником, вот пидоры.
Аноним 16/02/24 Птн 21:15:19 #620 №3051596 
>>3051563
>Нах ты оправдываешься
Много чести будет, я тут на одного шиза намекаю который всех заебал лол

>Ещё и работником, вот пидоры.
Молодец, гуглить умеешь
Аноним 16/02/24 Птн 21:58:53 #621 №3051672 
>>3051563
>спрашиваю почему мне не отвечают
А ты спроси почему тебе не отвечают, может быть расскажут.
Аноним 19/02/24 Пнд 16:10:45 #622 №3054674 
Чего затихли пидорасты?
Аноним 19/02/24 Пнд 18:44:29 #623 №3054866 
И в плюсотреде подозрительно тихо, даже дед затих
Аноним 19/02/24 Пнд 19:30:59 #624 №3054932 
>>3054866
Развлекай нас тупыми вопросами, петушок
Аноним 19/02/24 Пнд 20:25:30 #625 №3055016 
>>3054866
>>3054932
Двачаю, давай танцуй, обезьяна ебучая, я в цирк просто так пришёл что ли? Давай пиздуй сюда https://crates.io/ ищи чего нибудь и потом выкладывай скриншоты
Аноним 19/02/24 Пнд 20:53:25 #626 №3055052 
1654766685331.png
1654271627939.png
>>3055016
Да там в первый же крейт тыкаешь и наблюдаешь пикрилейтеды, в 10 строчках которых можно бинго составлять.
Аноним 19/02/24 Пнд 21:07:40 #627 №3055080 
>>3055052
> в 10 строчках которых можно бинго составлять
Составляй хули
Аноним 19/02/24 Пнд 21:53:58 #628 №3055152 
Какие есть компактные стили кода? Раздражает фигурная скобка на отдельной строк, и что весь код лесенкой идет.
Аноним 19/02/24 Пнд 22:08:03 #629 №3055187 
>>3055152
Только если нечитаемой лапшой писать до края экрана. С лесенками ничего не поделать, только если избавляться от всей функциональщины и писать в процедурном стиле. Не зря в настоящей функциональщине делают специальный синтаксис чтоб писать столбиком, а иначе ебанёшься.
Либо можно эмулировать goto дробить код с лямбдами в переменных/отдельными функциями под каждую лесенку, чтоб например после => всегда был только одиночный вызов функции и никакого кода. Анкл Боб так и учил в чистом коде - всё что можно вынести в отдельную функцию, надо выносить. Тогда уже будет пародия на красивую функциональщину столбиком без лесенок в ад. Но тут уже надо быть немного архитектором и уметь внятно объяснять в названиях функций что она делает, чтоб не проиграть в факторио.
Аноним 20/02/24 Втр 00:14:44 #630 №3055354 
>>3055052
А что там? Поясните гоферу.
Аноним 20/02/24 Втр 00:34:53 #631 №3055378 
>>3055052
Какой же кал
Аноним 20/02/24 Втр 00:51:24 #632 №3055396 
>>3055354
Этот шизик обычно накидывает скриншоты без ссылок, поэтому буду гадать без контекста.

> 1 скрин
.unwrap() вызывает панику это как в го написать
if err != nil {
panic(err)
}

такое надо писать если ты действительно хочешь чтобы программа аварийно завершилась.

В match слишком сложная конструкция, обычно принято там немного писать. Чисто вкусовщина, но все же дурной тон

Метод new2, может быть какая-то обратная совместимость оставлена и с новым именем не парились.

Какие-то странные DisplayAttrStyle и DisplayPath, причем непонятно это что структура такая или метод по-уебански назван. Вообще для того чтобы что-то напечатать нужно имплементировать Display из стандартной библиотеки (аналог fmt.Stringer в go)

> 2 скрин
Представляет из себя кодогенерицию в компайлтайме, я как понимаю тут пытаются сделать имплементацию Sync и Size для работы с многопоточностью или асинхронностью. Once нужно чтобы гарантировано вызвать его один раз не зависимо от количество потоков. А вот что именно неизвестно, что-то в выражении init которого нет на скрине, которое обернуто в Box (указатель на память в куче).

Тут скорее этот шизик наверное хочет доебаться до кодогенерации, unsafe и Box, об этих вещах он ноет тут не первый тред, но он так и бинго не составил чего хочет, лол.
Аноним 20/02/24 Втр 00:55:37 #633 №3055409 
1632555187404.png
Аноним 20/02/24 Втр 00:59:44 #634 №3055415 
>>3055409
О, твоя любима тема подъехала, вижу ты не ровно дышишь к трансам и геям, давай накидывай ещё
Аноним 20/02/24 Втр 01:08:10 #635 №3055429 
>>3055396
благодарю
Аноним 20/02/24 Втр 01:13:20 #636 №3055431 
>>3055409
Мне противно от этого и это даже не смешно.
Аноним 20/02/24 Втр 01:26:17 #637 №3055437 
image.png
>>3055409
Аноним 20/02/24 Втр 06:41:41 #638 №3055483 
>>3055187
>Анкл Боб так и учил в чистом коде - всё что можно вынести в отдельную функцию, надо выносить.
Стоит ли стремиться к процедурному стилю, отбросив ооп?
Аноним 20/02/24 Втр 06:42:45 #639 №3055484 
>>3055187
>и уметь внятно объяснять в названиях функций что она делает, чтоб не проиграть в факторио.
комментарии, чел
Аноним 20/02/24 Втр 06:47:46 #640 №3055485 
>>3055409
Сильно будут полыхать трансы, геи и прочие фрики, если раст возьмут на вооружение какие-нибудь праваки?
Аноним 20/02/24 Втр 07:34:07 #641 №3055501 
>>3055484
Очень хуёвая практика, когда вместо чтения кода ты читаешь шизоидные опусы.
Алсо, рекомендую всем растанам посмотреть на исходники Unreal Engine, чтоб увидеть как может выглядеть качественный низкоуровневый код на крестах, у вас реально будет шок после того что тут в тред кидают. А кода там поболее чем в ядре линукса, например.
Аноним 20/02/24 Втр 07:58:22 #642 №3055508 
>>3055501
>исходники Unreal Engine
Что там, процедурный стиль?
Аноним 20/02/24 Втр 09:21:21 #643 №3055595 
>>3055501
Вкинь примеры топ кода хули
Аноним 20/02/24 Втр 09:57:00 #644 №3055613 
Здравствуйте, я тут начал изучать rust (самостоятельно).
Скажите, пожалуйста, для доступа к метаданным видеофайлов (интересует битрейт) нужна отдельная библиотека или можно это реализовать средствами языка rust?
Аноним 20/02/24 Втр 10:05:33 #645 №3055619 
>>3055613
Смотришь описание интересующего формата и можешь сам распарсить файл. Но делать самому универсальное решение дикий гемор.
Аноним 20/02/24 Втр 10:30:18 #646 №3055652 
>>3055409
Как раз вчера прочитал ПВО Искусство легких касаний.
Аноним 20/02/24 Втр 10:52:32 #647 №3055694 
>>3055485
Праваки на Zig!
Аноним 20/02/24 Втр 11:25:49 #648 №3055744 
>>3055483
>Стоит ли стремиться к процедурному стилю, отбросив ооп?
В чулочнике нет ООП.
Аноним 20/02/24 Втр 11:50:51 #649 №3055779 
>>3055508
>>3055595
Да но троллит, там надо запрос какой-то отправлять https://www.unrealengine.com/en-US/ue-on-github
Аноним 20/02/24 Втр 12:08:26 #650 №3055803 
>>3055437
Чел, это компрессионные чулки. Их носят те у кого проблемы с сосудами
Аноним 20/02/24 Втр 12:14:50 #651 №3055811 
1704956400892.png
1614624023123.png
>>3055595
Вот держи довольно большие куски кода, относительно высокоуровневый кусок и байтоёбство, там весь код примерно в таком стиле написан. Всё что можно обёрнуто в абстракции, методы везде очень мелкие, обычно 10-20 строк, синтаксически всё максимально просто описано и низкоуровневые вещи не лезут в высокоуровневые абстракции. Ты там нигде не увидишь чтоб, например, управление памятью соседствовало с логикой. При этом где применимо и фичи С++20 используются, нет боязни современных крестов как у гугла.
Для примера как такое же байтоёбство с base64 выглядит в расте, почувствуй разницу, вот как такие письмена вообще можно за код принимать:
https://docs.rs/base64/latest/src/base64/engine/general_purpose/mod.rs.html
https://docs.rs/base64/latest/src/base64/encode.rs.html
Аноним 20/02/24 Втр 13:19:24 #652 №3055881 
>>3055803
Вам чулочникам виднее.
Аноним 20/02/24 Втр 13:33:34 #653 №3055920 
>>3055881
опять дед пришел серить в тред, давно не виделись, когда ты уже поймешь что
1. пидарасам похуй на чулки, они уже пидарасы
2. на тебя никто не триггерится потому что ты уже даже не скуф, а маразматик
3. и растоёбы с тебя тут просто рофлят

придумай новые шутки или уёбывай, заебал уже со своей заезженной пластинкой в чулках тут LOL
Аноним 20/02/24 Втр 13:34:49 #654 №3055922 
>>3055744
съеби
Аноним 20/02/24 Втр 13:40:00 #655 №3055934 
>>3055811
Как такому можно научиться, в software engineering это изучают?


>выглядит в расте
Наверно, сам язык тут никак не виноват, всё зависит от прогера?
Аноним 20/02/24 Втр 13:41:02 #656 №3055940 
>>3055811
А код MAME можешь заценить?
Аноним 20/02/24 Втр 14:35:30 #657 №3056070 
>>3055811
> Полдня искал по интернету лучшие куски кода на плюсах
> Высирает портянку на сотню строк
> Смотрите на эталонный код
> Точно такой же код на расте говно потому что написан в другом стиле
Ясн
Аноним 20/02/24 Втр 14:55:26 #658 №3056110 
>>3055811
На плюсах можно писать красиво, но ты принёс какую-ту лапшу в лучших традициях этнтерпрайзной жавы. Кек.
Аноним 20/02/24 Втр 15:09:23 #659 №3056129 
>>3055811
код выглядит лучше мешанины из указателей и логики, это соглашусь
но в целом что здесь такого пиздатого? как выше анон высказался - выглядит как джава код, ничего "хорошего" тут я не увидел, и это явно не лучше раст когда, раст просто реализует другую парадигму. Это если я сюда щас на скале/хаскеле/окамле ФП код принесу и скажу "ляяя красота" - и буду прав, И другие аноны будут правы, когда накормят меня говном лол. Потому что никакого мерила "стандарта красоты" тут нет.

Короче пока моя теория подтверждается: плюсобляди, с явно выраженной ригидностью мышления + нежеланием обучаться или хотя бы попытаться понять подход отличный от того, который они дрочат десятилетиями - соснули.
Аноним 20/02/24 Втр 15:32:20 #660 №3056161 
>>3055811
>base64
У растопидорах лучше написано лол.
Аноним 20/02/24 Втр 15:39:14 #661 №3056174 
>>3056110
>писать красиво
Ебать долбичи, нахуй вам красиво писать? Нужно просто и понятно чтобы было.
Аноним 20/02/24 Втр 16:11:51 #662 №3056224 
>>3056174
Нечего сказать по существу, решил доебаться до слова? Просто и понятно — это тоже не про код в стиле жавы.
Аноним 20/02/24 Втр 16:42:50 #663 №3056251 
>>3056174
>Нужно просто и понятно чтобы было
>Приводит в пример кресты
Уже достаточно
>Первый пример код с неймингом в стиле жаба-спринг, где автору платили за количество строк
>Второй - портянка из сотни строчек кода сранины из шифт операторов
>Ряяя ну тут же легко читается
Продолжай, мартышка, не зря мы в цирк приходим
Аноним 21/02/24 Срд 06:29:08 #664 №3057132 
>>3056161
Долбоёб тупорылый, вот мой пост >>3056251
Аноним 21/02/24 Срд 10:45:55 #665 №3057251 
>>3056110
Посмотрел только первый скриншот.
Там всё красиво.
Аноним 21/02/24 Срд 10:47:48 #666 №3057255 
>>3056110
Второй скриншот тоже охуенен.
И красиво, и понятно.
Более того, код написан так, что легко можно представить как будет выглядеть машиный код. Но это ещё не всё - оптимизатору компилятора будет легко оптимизировать эти функции.
Аноним 21/02/24 Срд 11:31:35 #667 №3057325 
>>3057255
проиграл с тебя лох
Аноним 21/02/24 Срд 12:02:10 #668 №3057373 
Screenshot from 2024-02-21 13-00-23.webp
Screenshot from 2024-02-21 13-01-11.webp
Screenshot from 2024-02-21 13-01-22.webp
>>3057255
>>3057251

Вот так ваще заебись, а у вас фигня со скобочками.
Аноним 21/02/24 Срд 12:30:21 #669 №3057427 
>>3057373
Бейсик охуенен. Собираюсь подумываю написать его интерпретатор. Но на таргет платформе нет ничего кроме ассемблера. Конечно это не беда, я и на ассемблере Бейсик за недельку захуячу. Беда в том, что на таргете нет FPU. А вот написать математику с плавающей запятой на ассемблере я не возьмусь. А Бейсик без плавающей запятой нахуй не нужен.

На плюсах интерпретатор Бейсика за день написал бы. Ну ладно, за выходные.
Аноним 21/02/24 Срд 12:58:15 #670 №3057500 
Screenshot from 2024-02-21 13-57-39.webp
>>3057427
Плюсист - латентный бейсикист.. бейсиковист.. бейсикодел!
Аноним 21/02/24 Срд 13:03:23 #671 №3057511 
>>3057500
Хех. Возможен деанон, но Бейсик мой первый язык, который выучил не имея компьютера по журналу "Наука и жизнь". Цикл статей "Школа начинающего программиста". Год эдак 1987.
Программировал ручкой на бумаге.

Как можно не любить Бейсик???? При этом никто не заставляет на нём писать. Его можно просто любить.
Аноним 21/02/24 Срд 15:09:48 #672 №3057777 
>>3057251
>>3057255
Ок, пускай чувство вкуса у вас с автором этого вброса отсутствует. Но что в этом коде особенного, чего нельзя сделать на расте? Можно же по сути просто скопировать его почти один в один. Семантически ничего не изменится. Более того, машинный код в результате будет скорее всего практически идентичным, если плюсовый код компилировать шлангом. Естественно будут небольшие отличия в синтаксисе, например ! при применении макросов или обязательное использование self для полей объекта. Раст заставляет делать всё явно, и это хорошо. Иначе не понятно UE_LOG() это макрос или всё-таки функция, что будет если PreTickCommands == nullptr, где объявлены TickDelayLengthInFrames и Metronome, что будет если под Dest выделили недостаточно памяти и т.д.
Аноним 21/02/24 Срд 15:11:27 #673 №3057780 
Странный союз
https://www.youtube.com/watch?v=6bi_Qhm_gEE
Аноним 21/02/24 Срд 15:33:22 #674 №3057853 
>>3057777

А про Rust я ничего и не говорил.

>UE_LOG() это макрос или всё-таки функция,

Очевидно что это макрос, потому как есть соглашение записывать макросы в верхнем регистре.
Аноним 21/02/24 Срд 16:19:36 #675 №3057978 
>>3057853
Какое соглашение? Кого с кем и где это зафиксировано? Смотрю код линукса там повсюду container_of() применяется, который макрос и в нижнем регистре.
Аноним 21/02/24 Срд 17:00:17 #676 №3058035 
>>3057978
> Смотрю код линукса
Поделка финского студента это как бы не образец для подражания.
Посмотри хидеры Windows DDK (WDK) - вот где мощь и образец для подражания.
sage[mailto:sage] Аноним 21/02/24 Срд 17:16:27 #677 №3058053 
>>3057511
Похуй на тебя всем тут. Бейсик свой в жопу засунь себе. Хвастался бы еще тут тем что питон выучил или жс
Аноним 21/02/24 Срд 17:27:31 #678 №3058062 
>>3058035
>Windows
>>3058035
>мощь и образец для подражания
Толсто.
Аноним 21/02/24 Срд 17:39:57 #679 №3058075 
Планирую выбрать раст в качестве первого яп. Какие подводные? Может лучше c/c++?
Аноним 21/02/24 Срд 17:40:35 #680 №3058077 
>>3058062
Ты просто не заглядывал во внутренности DDK и не имеешь представления о чём речь.
Аноним 21/02/24 Срд 17:46:35 #681 №3058081 
image
>>3058035
А чё там?
Аноним 21/02/24 Срд 17:56:28 #682 №3058091 
image
>>3058077
Тебе виднее.
Аноним 21/02/24 Срд 18:30:42 #683 №3058133 
>>3058081
Ух бля, уел. Не всё

Тем не менее - там всё охуительно.
Аноним 21/02/24 Срд 18:38:25 #684 №3058142 
>>3058075
Может.
Аноним 21/02/24 Срд 19:16:56 #685 №3058222 
>>3058081
is_odd есть?
Аноним 21/02/24 Срд 19:53:19 #686 №3058260 
>>3058075
Не сможешь определиться с гендером и выпилишься в 30
Аноним 21/02/24 Срд 19:55:44 #687 №3058263 
Есть какая-то годная статья, чтобы понять раз и навсегда ссылки, значения, .clone(), .to_owned() и прочее?
Я как бы абстрактно понимаю, что это и для чего нужно, но когда пишу код возникают сложности, которые решаю обычно методом полуслепой замены одних подходов на другие.
Устал спрашивать у ChatGPT, какую комбинацию ссылок и клонов нужно использовать чтобы
error[E0507]: cannot move out of...
error[E0521]: borrowed data escapes outside of function...
уже наконец от меня отъебались.
Аноним 21/02/24 Срд 20:00:42 #688 №3058271 
>>3058263
Может, если кто-то сильно шарящий объяснит простыми словами вкратце где, как и в каких случаях использовать вот это все, то тоже буду очень благодарен.
Аноним 21/02/24 Срд 20:04:40 #689 №3058277 
>>3058263
Возьми го, зачем вы жрете кактус? Когда уже начнете отличать хайп от прагматичного кодинга.
Аноним 21/02/24 Срд 20:14:29 #690 №3058292 
Screenshot 2024-02-21 at 6.13.30 PM.png
>>3058263
что "вот это всё"? какой ответ ты хочешь получить?
скачай книгу по расту и вдумчиво читай. На самом деле растбука достаточно, там всё понятно.

Компилируй простой код (строка-две) и дебаж lldb, я ебу что ли какие вопросы у тебя? разжевать всё и в рот положить? охуел?

Для начала сформулируй нормально что тебе непонятно.
Аноним 21/02/24 Срд 20:23:48 #691 №3058300 
>>3058277
Хватит жрать кактус, жри Goвно, проиграл с тебя, чепуха

Но соглашусь, если ты туповат (что нормально если ты вкатун или действительно не обделён айсикью), то лучше уж писать на го/жс, наху тебе все эти стэки/хипы/рефы/дерефы/трейты, братан?

>Когда уже начнете отличать хайп от прагматичного кодинга.

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

Да и что плохого в хайпе, даже если возьмем за истину, что раст это хайп что конечно же не так, хайповать 10 лет ееее, или сколько там расту? Я вот на хайпе залетел в руби в свое время, поднял нереальное количество денег, связей, опыта, фана - хайп прошел, ливнул. Вопросы? Почему это плохо? Почему у ригидных дедов так горит от того, что кто-то смеет писать на других языках, особенно на тех, которые они не одобряют?
Аноним 21/02/24 Срд 20:36:56 #692 №3058314 
перекатите тред и https://github.com/rust-lang/rustlings в шапку ебаните
Аноним 21/02/24 Срд 20:57:00 #693 №3058350 
>>3058292
Так я и говорю, что абстрактно мне все понятно, но вот на около-реальном примере, мне нужно провести code: str по такому маршруту с функциями с замыканиями:

fn f1() {
code = some_text.to_string();
move {
f2(&code);
}
}

fn f2(code: &str) {
f3(code);
}

fn f3(code: &str) {
code = code.to_owned();
move {
code = code.clone();
move {
f4(&code);
}
}
}

fn f4(code: &str) {
print(code)
}

По отдельности я понимаю принципы работы этих замыканий, clone, to_owned, to_string, и ссылки со значениями тоже понимаю, но почему оно все стакается так криво, не понимаю (опять же, по-любому есть какая-то логика, и это не криво, но я ухватить эту нить не могу).
То есть я не могу один раз создать ссылку на значение (&code), а потом вести эту ссылку куда нужно.
Почему в f3 я опять должен передавать ссылку?
Почему я клонирую тремя разными методами?
Почему если в f3 передать code, а не &code, то ошибка expected `&str`, found `String` (откуда там вообще String?)?
Аноним 21/02/24 Срд 20:57:12 #694 №3058351 
Прогуливаясь по вымышленному лесу, вы встречаете трех троллей, охраняющих мост. Каждый из них либо рыцарь , который всегда говорит правду, либо лжец , который всегда лжет. Тролли не пропустят вас, пока вы правильно не идентифицируете каждого как рыцаря или лжеца. Каждый тролль делает одно заявление:
Тролль 1: Если я лжец, то рыцарей здесь ровно два.

Тролль 2: Тролль 1 лжёт.

Тролль 3: Либо мы все лжецы, либо хотя бы один из нас рыцарь.

Какой тролль какой?
Аноним 21/02/24 Срд 21:14:13 #695 №3058375 
>>3058350
Я не понял, у тебя тип ф3 &str, почему ты удивляешься что функция не принимает String?
Аноним 21/02/24 Срд 21:22:48 #696 №3058391 
>>3058375
Если передавать из f3 в f4 &code, то приходит &str.
Если передавать из f3 в f4 code, то приходит String.
Вроде бы логично, но откуда f3 вообще взяла String, когда в нее пришло только &str? Изначально передается только невладеющая неизменяющая ссылка.
Аноним 21/02/24 Срд 21:34:18 #697 №3058416 
>>3058375
>>3058391
Мне вообще в принципе не нужно нигде ни владеть значением ни изменять его, по логике мне и клонировать то его не обязательно, просто получить значение в другом месте.
Чутье подсказывает, что нужно сделать один раз let code = some_text.as_str() - то есть получить ссылку на строку, а потом передавать куда угодно ее без клонирования и без ссылания. А получается, что нужно клонировать клон клона и ссылаться на ссылку.
Опять же, я понимаю, что это все сделано из-за областей видимости, владения значением и прочее. Понимаю, что String, на которую ссылается &str уже может и не существовать к моменту получения значения, но я не понимаю почему где-то передается ссылка, а где-то значение, где-то нужно клонировать, а где-то нет. Какая-то неконсистентность кода получается.
Аноним 21/02/24 Срд 21:51:11 #698 №3058463 
Я понял, что to_owned создает владеющую копию, которая должна дальше передаваться ссылкой, а без нее почему-то не работает. Беда...
Аноним 21/02/24 Срд 21:57:34 #699 №3058476 
>>3058300
>Но соглашусь, если ты туповат
Странно это слышать от тех, кто не осилил хаскель.
Аноним 21/02/24 Срд 22:02:53 #700 №3058481 
>>3058350
>>3058391
>>3058416
ты вообще хуйню скинл какую-то, кинь рабочий код для начала
Аноним 21/02/24 Срд 22:23:35 #701 №3058513 
>>3058481
Весь файл на 130 строк кидать стремно, а минимально-воспроизводимый аналог я не могу написать, потому что тут специфичные api вызовы.
В любом случае пускай пока работает, может кто подскажет из анонов подсказку как это все правильно разворачивать.
Аноним 21/02/24 Срд 22:24:56 #702 №3058517 
>>3058350
Во-первых, &str - это ссылка на строковой срез, а String - это контейнер, который динамически выделяет память.

>То есть я не могу один раз создать ссылку на значение (&code), а потом вести эту ссылку куда нужно.
Можешь.
>Почему в f3 я опять должен передавать ссылку?
Потому что в заголовке f3 ты сам написал &str

>Почему я клонирую тремя разными методами?
clone, to_owned - это методы трейтов, которые нужны, чтобы работала стандартная либа, а to_string родной метод &str. Из той же серии Deref, AsRef и Borrow. Не думай об этом, короч.

>Почему если в f3 передать code, а не &code, то ошибка expected `&str`, found `String` (откуда там вообще String?)?
to_owned делает из среза String. Кстати, твой код даже не соберется бнз let.

опставь rust-analyzer и всё сам увидишь
Аноним 21/02/24 Срд 23:06:45 #703 №3058605 
Простите, что мешаю, но у меня есть тупой вопрос.

Eсть набор интов (u32) и просто инт(u32). Надо найти к какому инту из набора он ближе всего. Как написать самому понимаю, но уверен, что есть iter() в стандартной библиотеке.
Аноним 22/02/24 Чтв 00:04:38 #704 №3058676 
>>3058350
Скинь более полный пример на play.rust-lang.org что-ли, а то непонятно в чём конкретно у тебя затык, уж больно много ты всего выкинул. Пока могу только сообщить такие факты:
1. String это вектор (Vec<T>), только для букв. Состоит из трех чисел: указатель на данные, длину данных и вместимость. Может быть произвольной длины и меняться по ходу выполнения программы.
2. str это как слайс ([T]), только для букв. Поэтому каждая такая строка по сути имеет свой собственный отдельный тип, который зависит от длины строки. Из-за этого нельзя использовать этот тип напрямую, раст не может выполнять свои гарантии не зная размеров переменных на этапе компиляции. Это так называемый dynamically sized type (DST).
3. Указатели на DST, такие как &str, в два раза больше чем указатели на обычные sized типы. Указатели на слайсы состоят из указателя на данные и их размер. Поэтому &str можно использовать напрямую.
4. Ссылки на &String и указатели &str это разные типы, но в расте есть такая фича - deref coercion. Это неявное приведение ссылки одного типа на ссылку другого типа если в функцию передан неподходящий тип и можно построить цепочку deref'ов. Если посмотреть код String, то можно увидеть, что он имплементирует Deref для Target = str. Можно написать это всё явно, например как-то так: f2(&(*code)[..]); Т.е. code у нас имеет тип String, который мы разыменовываем в слайс и берём указатель на весь слайс. Сам слайс нельзя передать просто так, см п.2.
5. move у тебя тут как-то не к месту, как раз не хватает остального кода. Он нужен для корректной работы борроу чекера в замыканиях. Если очень просто объяснить, то когда ты объявляешь замыкание раст создаёт структуру в которую помещает указатель на лямбду и кладёт рядом с ним данные для этой лямбды. Все данные по умолчанию заимствуются (т.е. передаются по ссылке), если не изменяются. Если изменяются, то будут переданы по &mut. Ну и если тебе нужно передать владение, то используется слово move. Обычно это нужно когда замыкание должно пережить переданное значение, например при создании потока.
6. Все эти to_string(), to_owned() и clone() это чуть разные способы создать копию данных. Можешь посмотреть исходники в стандартной библиотеке. to_string() создаёт пустую новую String и печатает в неё str. to_owned() клонирует вектор который внутри String и создаёт новую String на его основе. clone() делает то же самое.

Хз, надеюсь это чем-то тебе поможет.
Аноним 22/02/24 Чтв 00:42:30 #705 №3058691 
image
>>3058605
Ну можешь как-то так сделать, если хочешь через итераторы. Но я бы не выёбывался и просто использовал обычный пролетарский for.
Аноним 22/02/24 Чтв 12:34:08 #706 №3058972 
Screenshot 2024-02-22 at 10.32.25 AM.png
>>3058691
согласен, нахуй тут итератор, плюс мэп лишнюю коллекцию создает которую ты снова итерируешь
Аноним 22/02/24 Чтв 13:15:36 #707 №3059040 
>>3058972
Коллекция создаётся когда ты вызываешь collect(). map() просто описывает, как трансформировать входные данные.
Аноним 22/02/24 Чтв 14:07:55 #708 №3059112 
>>3059040
да, чёт я проебался, мэп оборачивает итератор в Map структуру и имплементит Iterator трейт, который потом fold'ит значения применяя замыкание, ебать охуенно сделали они ленивые мэпы

мимо раст ньюфаг
Аноним 23/02/24 Птн 12:31:55 #709 №3060193 
>>3060192 (OP)
перекат
comments powered by Disqus

Отзывы и предложения