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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 709 102 82
Rust #30 /rust/ Аноним 02/02/24 Птн 01:48:52 3030908 1
изображение.png 52Кб, 400x400
400x400
Добро пожаловать в тред гарантий, обещаний, владения, заимствования и тайных знаков

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

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

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

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

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

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

Вывод очевиден: зиг пилят 5 разрабов на полную ставку от спонсора, остальные сосут писос за идею.
Аноним 03/02/24 Суб 14:27:50 3032870 56
>>3032444
Нет, ты не прав. Не существует операции + над типами слева int и справа float. Все арифметические операции производятся над унарными типами. Компилятор добавляет неявных преобразований типов, пока типы не будут совпадать.
Это вообще проблема языка большая, что очень много вещей происходит без ведома пользователя.
Аноним 03/02/24 Суб 14:30:44 3032874 57
>>3032851
Сколько попенсорсников сосет писос у раста? И сколько там уже заброшено либ?
Аноним 03/02/24 Суб 14:51:24 3032900 58
>>3032870
В нормальных языках существует. Нет никаких проблем написать реализацию сложения двух чисел. Особенно если эти типы не надо конвертить и сложение можно выполнить при компиляции.
> Это вообще проблема языка большая, что очень много вещей происходит без ведома пользователя.
Ты лучше расскажи как раст в консольку пишет, нахуя он перекодирует текст из utf-8 в кодировку консольки, даже если не просишь. На той же винде можно просто попросить консольку выводить текст в utf-8 и консолька выведет его, но в расте всё равно идёт конвертация в wide string. Единственный способ в расте вывести utf-8 в виндовую консольку - дёрнуть через ансейф winapi.
Аноним 03/02/24 Суб 15:02:03 3032911 59
>>3032900
> В нормальных языках существует. Нет никаких проблем написать реализацию сложения двух чисел. Особенно если эти типы не надо конвертить и сложение можно выполнить при компиляции.
Ни в каких не существует, ты не можешь складывать числа с плавающей точкой и целые типы без конвертаций, ты чё ебанутый?
Аноним 03/02/24 Суб 15:02:08 3032912 60
>>3032870
Слева от знака присваивания.
Аноним 03/02/24 Суб 15:07:43 3032919 61
1562482956181.png 123Кб, 1207x1297
1207x1297
>>3032911
А как насчёт пикрилейтеда? Вы сосем ебанулись от долбёжки в сраку? Даже на уровне ассемблера эта операция валидна. Что за театр абсурда?
Аноним 03/02/24 Суб 15:16:33 3032925 62
Аноним 03/02/24 Суб 15:17:53 3032927 63
>>3032919
Супер безопасность же, зато есть затенение переменной, что может привести к такой неуловимой логической ошибке, что ub покажется сказкой.
Аноним 03/02/24 Суб 15:31:48 3032937 64
1687292510109.png 20Кб, 843x107
843x107
1660463043695.png 14Кб, 437x90
437x90
>>3032925
Покажешь её в расте? Даже в дебаге без оптимизаций там просто 2, т.е. он при компиляции посчитал 1 + 1 при одинаковых типах.
При этом u8 в расте занимает весь 32-битный регистр, т.е. там даже в теории не может быть сдвига знакового бита, как ты уверяешь.
Аноним 03/02/24 Суб 15:35:55 3032939 65
>>3032919
У тебя запрещены имплисит касты, что не так?
Аноним 03/02/24 Суб 16:01:21 3032962 66
1603317531831.png 94Кб, 1544x484
1544x484
1572211869580.png 108Кб, 1580x518
1580x518
1585002779902.png 126Кб, 1986x520
1986x520
>>3032925
> Там вставляется инструкция
Пикрилейтеды из сишки, всё ещё не вижу чтоб байт куда-то конвертировался отдельной инструкцией. Вот с float есть конверсия.
Аноним 03/02/24 Суб 16:03:58 3032967 67
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 3032984 68
>>3032962
>всё ещё не вижу чтоб байт куда-то конвертировался отдельной инструкцией
movsx
Аноним 03/02/24 Суб 16:19:00 3032988 69
>>3032937
u8 занимает регистр? Тогда очевидно конверсия тут не нужна. Именно поэтому.
Аноним 03/02/24 Суб 16:19:03 3032989 70
>>3032984
Так это инструкция чтения в регистр. Я сильно сомневаюсь что есть разница между обычным mov по задержке.
Аноним 03/02/24 Суб 16:19:27 3032990 71
>>3032919
Опенсорс же. Если не нравится, сделай МР. Здесь даже систему типов не надо усложнять. Тебя либо компетентно обоссут, либо даже примут.
Аноним 03/02/24 Суб 16:21:23 3032993 72
>>3032989
Это перенос значения с расширением. Значения разной размерности в ассемблере складывать нельзя.
Аноним 03/02/24 Суб 16:25:17 3033001 73
Аноним 03/02/24 Суб 16:46:10 3033029 74
>>3032993
> разной размерности
Самое смешное что это только в крестах она разная, у раста там просто mov, а u8 хранится в 32 битах. В контексте х86 уже обсер с этим оправданием, там одинаковые значения с идентичными инструкциями.
Аноним 03/02/24 Суб 20:57:56 3033396 75
>>3033029
Это очень частный случай, который можно подпереть таким костылём:
Если примитивное число меньшей размерности вступает в арифметические отношения с примитивным числом большей размерности и тип результата задан явно как тип соответствующий типу числа большей размерности, то автоматически кастовать число меньшей размерности к большей.
Хз, может когда-нибудь и сделают.
Аноним 03/02/24 Суб 21:07:56 3033408 76
>>3033396
В плане костыль, в крестах так и работает
Аноним 04/02/24 Вск 03:25:51 3033747 77
>>3033396
Забытые технологии древних.
Там перегрузку функций то не осилили. А это просто приписать постфикс к функции.
Аноним 04/02/24 Вск 03:30:33 3033749 78
>>3033396
Примитивное число? Это ты так целые обозвал?
Аноним 04/02/24 Вск 03:31:46 3033750 79
>>3033747
Хех. Вижу человека который копался в компиляторах.
Аноним 04/02/24 Вск 04:04:30 3033759 80
>>3030347 →
>Чел разбирается в энергетике, экономике, астрофизике и программировании. Это абсолютно точно не бумер-шизик, ага.
Хрюкни, пидор. Финка все помнит и ждет.
Аноним 04/02/24 Вск 04:05:33 3033760 81
>>3030402 →
>Да похуй, его будут только в облаке использовать. Как до винды доберётся, так и приходите.
У меня для тебя плохие новости - винда уже переезжает в облако.
Аноним 04/02/24 Вск 04:06:50 3033761 82
Аноним 04/02/24 Вск 05:39:17 3033777 83
>>3033761
Там же первым реддит постом обоссали и в том треде тоже, но хомяки за бесплатно продолжают разносить фейл ссмщиков раста.
Аноним 04/02/24 Вск 07:02:16 3033793 84
>>3032919
А почему случилось так, что у тебя целочисленные типы разной размерности?

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

Приведи конкретный пример посмотреть.
Аноним 04/02/24 Вск 07:23:21 3033796 85
>>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 3033798 86
>>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 3033800 87
>>3033793
>Приведи конкретный пример посмотреть.
>Не язык говно, это вы плохо прогаете.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>ФП для других задач, простенькие круды писать на нём смысла нет. Круды вообще писать смысла нет. Это как на ассемблере писать сайт визитку
Я знаю. Я люблю ФП, но не с позиции промышленного программирования, а академического. Написал, чтобы выбирающие ФП задумолись и не пихали его, куда не стоит. ведь один раз уже напихали
Аноним 04/02/24 Вск 15:09:40 3034153 112
Screenshot 2024[...].png 87Кб, 1120x734
1120x734
>>3034034
на расте мне код более понятен например, но я не писал на плюсах лет 10
распаковывать Optionals так нельзя, смысл в явной и элегантной обработке отсутствия значения в том числе, иначе опшеналы смысла не имеют
Аноним 04/02/24 Вск 15:09:42 3034154 113
сочинение Почему мне нравится 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 3034167 114
>>3034146
потому раст и не ФП язык;
вообще фп как дисциплина хорош тем, что оттуда можно понапиздить ништяков и немного улучшить императивную парашу чтобы меньше страдать (замыкания, некоторые монады (result, option например), паттерн матчинг, иммутабельность и прочее.
но макаки все равно будут дергать Option(x).value не ведая зачем оно вообще

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

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

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

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

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

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

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

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

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

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

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

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

>как средствами языка выразить "если опционал имеет значение, то выполнить то-то", какие ещё мапы, блять.
То, что я показал, это пример того, как можно работать с Option. А так, да сколько угодно - можно if let, можно чекнуть на is_some()/is_ok(), полно вариантов.
Аноним 04/02/24 Вск 19:00:27 3034635 126
1673991796685.png 189Кб, 1648x1744
1648x1744
>>3034602
> чекай ифами
Покажи как чекнуть их средствами языка. Ты пиздишь про общие принципы, но почему нельзя сделать пикрилейтед в твоём расте?
>>3034627
> Многое изменилось, по-твоему?
Да, ты полез переписывать паттерн. Пикрилейтед сможешь повторить даже с дженериками?
Аноним 04/02/24 Вск 19:16:01 3034654 127
>>3034592
Мы не спорим, а рассказываем вкатуну из шарпа про то какие варианты есть
Аноним 04/02/24 Вск 19:22:51 3034669 128
Screenshot 2024[...].png 93Кб, 1120x734
1120x734
>>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 3034676 129
>>3034591
>Проблема всё в том же - вместо простого чека ты городишь костыли. Покажи как средствами языка выразить "если опционал имеет значение, то выполнить то-то", какие ещё мапы, блять.
Тебе 3 разных варианта показали match, if let и map. Все 3 делают то что ты говоришь если есть значение, то выполняют что-то. Все это средства языка. Тебе надо напечатать значение из структуры в терминал или сделать таким же точно способом как в другом языке? Ты хочешь поныть что тут не так как ты привык? Я понять не могу тебя, если тебе надо доебаться, то есть множество других вещей до которых действительно можно доебаться
Аноним 04/02/24 Вск 19:28:55 3034678 130
>>3034669
Двачаю, тоже не понимаю чего ему надо вынул бы хуй изо рта для начала
Аноним 04/02/24 Вск 19:29:10 3034679 131
>>3034669
> пик
Даже не собираюсь твой высер читать, пока не покажешь как сделать чек как в крестах. То что у тебя для каждого типа свой чек не значит что в языке есть хоть какой-то функционал для этого. Вот и получается, что даже обработку ошибок не завезли, только какие-то костыли на енумах.
Аноним 04/02/24 Вск 19:47:54 3034711 132
>>3034679
ой всё отъебись тупица, больше не буду тебя кормить, заебал ейбогу
Аноним 04/02/24 Вск 19:52:43 3034716 133
>>3034679
> Даже не собираюсь твой высер читать
Он даже не читает, я думаю рациональнее ему и подобным им шизам не отвечать. Меньше кормишь, меньше пасутся. Тем более маркер виден "ря фсё ни так как в C/C++C/C#Cobol/JS/PHP”, пусть хуй сосёт в МБР треде
Аноним 04/02/24 Вск 19:59:32 3034733 134
>>3034669
> в расте или другом фп-inclined языке
Ты сейчас пошутил или что? Потому что в крестах ты так же можешь сделать вермишель из монад:
> a.transform([](auto a) { return a + 1; }).transform([](auto a) { return a + 2; })
Аноним 04/02/24 Вск 20:16:02 3034768 135
>>3034711
>>3034716
Т.е. я засчитываю победу крестов в контексте "общих принципов" работы с вложенными типами? Потому что всё что я увидел - пять способов использования монад для конкретного типа и ни одного примера именно изначального вопроса - проверки валидности вложенного значения средствами языка. Только сплошные маневрирования в стиле "а давайте вместо проверки кинем лямбду", заебись решение нашли просто перепрыгнув задачу. И это при том что в самом начале я нахуй посылал с мапами, которые вообще к сути вопроса не имеют отношения. Особенно забавно что после того как аргументов не осталось просто скатились в траллинг.
Аноним 04/02/24 Вск 20:48:11 3034822 136
изображение.png 37Кб, 557x475
557x475
>>3031750
Как же это охуенно, что наконец-то запилили, столько лет ждали. Завтра повыкидываю нахуй все костыли #[async_trait]
Аноним 04/02/24 Вск 20:50:57 3034824 137
>>3034822
Я надеюсь ты пишешь для веба, а иначе придушим всем тредом за такое.
Аноним 04/02/24 Вск 20:53:40 3034828 138
>>3034034
В таком синтаксисе можно забыть проверить на отсутствие значения. В Расте так тоже можно, но не из коробки. И зачем?
Аноним 04/02/24 Вск 20:56:02 3034831 139
>>3034822
Это Найтли Или что? Скинь ссылку на апдейт
Аноним 04/02/24 Вск 20:57:35 3034833 140
Аноним 04/02/24 Вск 20:57:39 3034834 141
image.png 59Кб, 1366x350
1366x350
>>3034669
В расте вот так. И, заметь, в расте я точно знаю, что пришло опциональное значение, которое обязательно нужно проверить.
А ты со своими плюсами взвёл курок и лихо заправил револьвер в штаны с претензией "А вы так могёте?" Слава Б-гу, нет.
Аноним 04/02/24 Вск 20:59:44 3034836 142
Аноним 04/02/24 Вск 21:12:11 3034865 143
>>3034834
> В расте вот так.
Траллишь тупостью уже? Зачем ты три раза один тип сделал?
Аноним 04/02/24 Вск 21:33:05 3034908 144
Screenshot from[...].webp 23Кб, 1366x397
1366x397
>>3034865
Ну не 3, а 2. Конечно, недоработка с моей стороны в плане наглядности, но вот то, что ты в счёте до 3х путаешься, уже диагноз.
Ну вот те ещё один тип.
Аноним 04/02/24 Вск 21:35:02 3034913 145
Не кормите крестового уебана плиз
Аноним 04/02/24 Вск 21:37:02 3034917 146
>>3034908
Ты реально траллишь. Ещё раз - используй разные типы монад, а не вложенных типов. Ты хоть видел что я тебе показывал? Речь про использование Option/Result в одном месте, кого вообще ебёт какой тип в них.
Аноним 04/02/24 Вск 21:50:45 3034945 147
>>3034917
А, понял, о чём ты. Что ты скармливаешь Oprion, Result, просто null и непосредственно значение одной функции и "она просто работает".
Дак это ж то самое говно, которое отличает низкоуровневые языки от высокоуровневых. На ассемблере можно чары друг на друга умножать - плюсовики посрамлены и унижены. Раст просто выше уровень и не даёт тебе насрать себе же в тапок, смирись с этим.

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

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

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

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

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

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

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

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

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

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

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

>Он умеет в ELF объектиники?
Он умеет в LLVM объектники. Потому что сам компилятор Rust на базе LLVM.
Аноним 05/02/24 Пнд 10:48:03 3035651 163
>>3035257
> Какими свойствами должна обладать монада?
По классике:
- монадный тип
- юнит-операция
- бинд-операция
Ну и то что ты написал, для полного соответствия определению монады.
Вообще по факту в расте функциональщины столько же, сколько и в ванильной джаве или крестах, там тоже есть ручные типы-монады с юнит/бинд-операциями. Разница лишь в том что в расте есть паттерн-матчинг, это единственное отличие.
> Енам тут при чем вообще?
При том что в фп-языках ты можешь монадные операции над любым типом выполнять, не надо вручную их реализовывать для каждого типа, потому что они часть языка. В расте нет монад, если убрать ручные реализации из std.
Аноним 05/02/24 Пнд 12:44:39 3035748 164
>>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 3035802 165
>>3034822
Автохуй, пока в токио похоже не готово, в tokio::spawn не передать нормально такое, говорит давай мне огород из impl Future

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

>>3035926
Все так. Наигрался с Футурамы, к сожалению без контроля тредов и пула сложно написать гибко конкарррент апп. Но для среднего проекта с Футурамы сложнее отстрелить себе жопу. Как обычно трейдофы
Аноним 05/02/24 Пнд 16:26:06 3036013 172
>>3035965
> это же будет буквально 99% кода на пидорасте
Ты забыл про разворачивание стека при панике. В расте паника будет дольше чем просто exit().
Аноним 05/02/24 Пнд 17:25:45 3036195 173
>>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 3036266 174
>>3036195
Добавить одну строку в шарпе или добавить три строки с матчем в расте - что же выбрать? Алсо не забудь написать unwrap, напиши его снова.
Аноним 05/02/24 Пнд 21:15:44 3036625 175
1705775197739.png 21Кб, 788x159
788x159
1550923637255.png 46Кб, 844x372
844x372
1551472103590.png 29Кб, 617x282
617x282
1591862832908.png 114Кб, 1038x1307
1038x1307
>>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 3036636 176
>>3035926
> асинхронность нахуй не нужна
Особенно когда вхолостую ждешь ответ от сторонней апи или БД
Аноним 05/02/24 Пнд 21:26:32 3036653 177
>>3036636
а кто тебе запрещает отдавать управление на блоке IO? Есть куча механик как этого избежать. В условном эрланге отдельный тредпул на уровне beam (или как оно называется) для IO, там гоняется все что с ним связано чтобы акторы не лочились.

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

Короче варики есть
Аноним 05/02/24 Пнд 21:27:03 3036658 178
>>3036636
Все нормальные люди освобождают поток и оставляют коллбек/чекают прогресс операции асинхронщина это под капотом и делает. Неблокирующие операции IO есть везде. Нормальный многопоток всегда будет быстрее скакания по стеку, оставляя фрейм висеть где-то там в ожидании когда к нему вернётся выполнение.
Аноним 05/02/24 Пнд 21:28:14 3036662 179
>>3036653
по эрлангу мог спиздеть, сам не тестировал, читал в книжке когда эликсир тыкал, так что возможно там роль отдельного ИО пула в том чтобы тупо не забить ИО если каждый актор будет в ио биться (лимиты ядра/драйверов итд)
Аноним 05/02/24 Пнд 21:41:17 3036707 180
>>3036653
>а кто тебе запрещает отдавать управление на блоке IO?
Лишняя писанина, тут взял tokio и за меня уже всё что нужно сделано, все библиотеки вокруг веба заточены под асинхронщину axum, actix, sqlx, redis, lapin (для rabbitmq) везде async/await и я поверх этого буду делать свои самопальные говнорутины или использовать какой-то тред пулл и ебаться скрещивать ужа с носорогом
Аноним 05/02/24 Пнд 21:59:13 3036751 181
>>3036707
Я выше писал что для среднего аппа вполне себе решение.
Если проект более менее нагруженный и сложный, в том плане что не просто параллельно отрабатывает запросы а что-то гораздо сложнее типа чат сервера с лямом юзеров, где еще надо учитывать особенности цпу кешей в cpu bound hot path чтобы быстрее крутить данные - заебешься тюнить и дебажить асинк код. Наелся говна в свое время со скала футурами теми же. Переписали в итоге все на продюсер консюмер и виртуальные треды.
Аноним 05/02/24 Пнд 22:19:40 3036783 182
1586465889852.png 31Кб, 1066x481
1066x481
>>3036625
> Паттерн-матчинг работает даже в if, пик1.
А ведь это то, о чём мечтал шизик с крестами, ещё и приправленное чем растовик хвалился, лол.
Можно написать проверку и тут же разобрать структуру с возможностью использовать проверенное значение, все счастливы.
Я даже полез проверять, реально работает.
Аноним 05/02/24 Пнд 22:32:32 3036810 183
>>3036751
Слова не мальчика, но мужа.
Аноним 05/02/24 Пнд 22:51:08 3036852 184
image.png 26Кб, 603x93
603x93
image.png 70Кб, 796x199
796x199
image.png 70Кб, 949x440
949x440
>>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 3036855 185
>>3036751
>Если проект более менее нагруженный и сложный
И разумеется ты на таком работаешь не последним человеком раз всё знаешь и рассказываешь тут
Аноним 05/02/24 Пнд 23:30:10 3036922 186
Аноним 05/02/24 Пнд 23:43:25 3036939 187
>>3036653
> а кто тебе запрещает отдавать управление на блоке IO?
Когда тред сам отдает управление, а не шедулер его забирает, это и есть асинхронность как бы

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

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

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

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


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

И я такого не помню. Ты наверное слышал звон, да не знаешь где он и рассказываешь про SpinLock.
Аноним 06/02/24 Втр 00:39:59 3037035 197
>>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 3037051 198
>>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 3037056 199
>>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 3037060 200
>>3037056
> Речь не об этом, а о том, что до принудительного переключения потоков почти любая программа успевает сделать системный вызов. А там его встречает планировщик.
Что за бред
Если у тебя программа упихана системным вызовами и постоянно проваливается в кернел спейс, это пиздец и очень плохо. Никто так не пишет (по возможности). Так что планировщик быстрее заберет управление у потока
Аноним 06/02/24 Втр 01:07:42 3037065 201
>>3037060
>Если у тебя программа упихана системным вызовами и постоянно проваливается в кернел спейс, это пиздец и очень плохо.

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

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

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

А ещё у нас есть .. для пропуска ненужных полей, бе-бе-бе.
Аноним 06/02/24 Втр 12:21:35 3037393 216
Screenshot from[...].webp 31Кб, 1124x602
1124x602
Аноним 06/02/24 Втр 12:24:00 3037396 217
Анончики, вы каким цветом чулки покупаете, когда собираетесь очередной хеллоу ворлд делать?
Аноним 06/02/24 Втр 12:28:54 3037409 218
>>3037388
>Шарп неплохой язык, платформа говно.
А можешь сказать почему платформа говно или ты просто повторяешь древние тейки пиздаболов джавистов?
Аноним 06/02/24 Втр 12:33:21 3037417 219
>>3037409
Джава тоже говно, но меньшее. Скажем, это мой опыт: если встречаю на гитхабе проект на .net , в 90% случаев на линухе хуй запустишь.
Аноним 06/02/24 Втр 12:36:53 3037425 220
изображение.png 809Кб, 750x1000
750x1000
Аноним 06/02/24 Втр 12:37:01 3037426 221
>>3037396
Обычно ебу шарпистов в чем прийдут. Они ребята взрослые, не бедствуют, могут и сами себя обеспечить тем, что им нравится.
Аноним 06/02/24 Втр 12:45:48 3037435 222
>>3037417
>>3037417
Какой тебе проект "запустить" на Линуксе?
Для Winforms есть был Mono.
С напильником можно запустить.

Core проекты обычно запускаются без проблем, если программист не костылил платформозависимые фичи.
Аноним 06/02/24 Втр 12:59:29 3037452 223
Аноним 06/02/24 Втр 13:07:02 3037458 224
image.png 37Кб, 677x535
677x535
>>3037452

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

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


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

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

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

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

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

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

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

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

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

Изначально речь шла о перспективах карбона, я показал, что гугл с Торвальдсом тащат раст в ядро, а карбон не тащат, в том числе поэтому андроид допиливают на расте, а не на карбоне, из чего я сделал вывод, что карбон не больно-то нужен самому гуглу, вот и всё. Ты же развёл какой-то срач не по теме (твои агрументы по дарту ещё туда-сюда).
Аноним 07/02/24 Срд 13:09:52 3038970 248
>>3038868
>Вчера она на жабе, сегодня на дарте, завтра на котлине.
> Позовчера она на жабе, вчера на дарете, сегодня на дарте, завтра обратно на котлине.
Поправил) Не знаю почему, но многие после дарта уходят обратно на котлин
Аноним 07/02/24 Срд 13:14:09 3038981 249
>>3038868
> Или что, хочешь сказать, что сяюми с сосунгом
Я хочу сказать что они не будут писать две разные реализации - с растом и без. Для мобилок норма что они ещё 2-3 года получают обновы наравне с текущими моделями. Ну ок, 3-4 года после того как реально начнут массово писать на расте в ядре - это самый реалестичный вариант когда в продакшене раст на мобилках появится.
Аноним 07/02/24 Срд 13:28:49 3039006 250
Screenshot from[...].webp 19Кб, 1124x602
1124x602
>>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 3039090 251
1639034878629.png 30Кб, 731x372
731x372
1580334178101.png 28Кб, 739x331
739x331
1674989689735.png 34Кб, 747x392
747x392
1657912239627.png 27Кб, 743x321
743x321
>>3039006
> memory safe language
Это не обязательно раст, это жвм в первую очередь.
> но системную обвязку уже
Показать можешь в исходниках, лол? Пикрилейтед из текущих исходников AOSP.
Пик 1, ядро 6.7 - ни строчки на расте.
Пик 2, системные либы - на расте обёртки над куском внешнего API, 7 файлов, 1000 строк кода, ни одной строчки работающего кода.
Пик 3, SDK - ни строчки на расте.
Пик 4, основной код ведра - ни строчки на расте.
Аноним 07/02/24 Срд 14:22:39 3039140 252
>>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 3039190 253
>>3039140
> Android Virtualization Framework
А при чём он тут? Это даже не часть ОС ведра, не говоря уже про ядро. То речь про ядро была, то вдруг ты наскребаешь какое-то непонятное говно лишь бы показать 500 файликов.
Аноним 07/02/24 Срд 15:05:56 3039257 254
>>3039190
>Это даже не часть ОС ведра
а што эта, по-твоему? Што такое ОС, по-твоему?

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

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

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

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

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

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

>и вывозом неблокирующих функций
вызови мне неблокирующий HTTP запрос маня своим "лупом" дернув "шедулер" за анус
Аноним 07/02/24 Срд 16:56:49 3039424 268
Аноним 07/02/24 Срд 16:57:52 3039425 269
>>3039420
Молодец, продуктивно проводишь время, ещё двадцать раз напиши а потом выдай себе премию "ебанат года" LOL
Аноним 07/02/24 Срд 16:58:06 3039426 270
1577594139806.png 39Кб, 850x442
850x442
>>3039257
> а што эта, по-твоему? Што такое ОС, по-твоему?
Непонятно используется ли этот avf на практике, ходит ли туда кто-нибудь в системе, или просто лежит параллельно, как секьюрная возможность
Аноним 07/02/24 Срд 17:00:25 3039429 271
1570542515980.png 41Кб, 958x463
958x463
>>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 3039431 272
>>3039422
>Ты хочешь заебашить бизи вейтинг и еще "шедулер дергать"?
>вызови мне неблокирующий HTTP запрос маня своим "лупом" дернув "шедулер"
Делаешь кучу сахара @ быдло высирается в интернете с ебалом иксперда. Во поэтому всякие асинки и зло.
Аноним 07/02/24 Срд 17:02:19 3039434 273
>>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 3039436 274
>>3039429
И что? Это работает (если включить) внутри телефона, это часть операционки
Аноним 07/02/24 Срд 17:03:50 3039437 275
>>3039431
поясни?

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

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

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

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

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

Давай развёрнуто, а то я нихуя не понял.
Аноним 07/02/24 Срд 18:14:47 3039506 282
>>3039480
> Это просто такой выбор абстракции по сути.
И просто способ спустить производительность в унитаз.
Аноним 07/02/24 Срд 18:20:06 3039514 283
>>3039454
>зашквар использовать их во все стороны просто потому что не умеешь работать с IO
У тебя переносимость отвалилась, братан. Работай с IO на низком уровне сколько угодно, но зачем мучить жопу, если можно использовать общие наработки, делая вещи проще и переносимее? Например, для любителей uring есть https://github.com/tokio-rs/tokio-uring и https://github.com/bytedance/monoio - подключай и используй.
А если очень хочешь выебнуться низкоуровневостью, то пиши сразу в двоичных кодах.
Аноним 07/02/24 Срд 18:20:15 3039515 284
>>3039460
> буквально написано, что в Андроиде 14 оно есть по дефолту
Где написано, шизоид? Найди это говно в исходниках AOSP, лол. Что там у пикселей для разработчиков напихано никого не ебёт, да и то на пикселях нет pKVM из коробки, это просто факт.
Аноним 07/02/24 Срд 18:21:12 3039517 285
>>3039480
>заебашить треды
Дорого выходит.
Аноним 07/02/24 Срд 18:22:50 3039520 286
>>3039480
В джаваскрипте один поток. Когда делали жс, никто подумать не мог, что ебанаты через 30 лет будут писать на этом скрипте полноценные программы, а не просто показывать плашку по нажатию кнопки. Никто там ничего не переключает, просто в точке async код возвращает выполнение в вызывающий метод, а при повторном вызове продолжается с того же места. Это не переключение потоков по прерыванию, там пока один не дойдет до асинка, остальные стоят и ждут. Почему нельзя было просто сделать для нодежс виртуальную машину с многопоточностью - непонятно, у них там своя ебанутая атмосфера.
Аноним 07/02/24 Срд 18:24:39 3039526 287
Аноним 07/02/24 Срд 18:25:26 3039527 288
>>3039514
Какая переносимость? В 2024 году сервера бегут на линуксе.
Аноним 07/02/24 Срд 18:29:00 3039530 289
>>3039517
Дорого если на каждый запрос создавать новый процесс. Никто не мешает сразу нафоркать 1024 процесса и повесить их на один сокет, а дальше линукс сам сделает лоад балансинг.
Аноним 07/02/24 Срд 18:37:50 3039544 290
>>3039527
>В 2024 году сервера бегут на линуксе
А в 2025 придумают новую хуйню для асинхронного доступа к ресурсам. Этому самому uring без году неделя. Что легче - раз в 3-5 лет полностью код переписывать или рантайм сменить в пару строк?

>>3039530
>Никто не мешает сразу нафоркать 1024 процесса и повесить их на один сокет, а дальше линукс сам сделает лоад балансинг.
на асинках ты можешь буквально 100500 коннектов держать, а на тредах будешь послан.
Аноним 07/02/24 Срд 18:43:16 3039551 291
>>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 3039554 292
>>3039544
>на асинках ты можешь буквально 100500 коннектов держать, а на тредах будешь послан.
Чего вдруг? Количество конектов не зависит от количества тредов.
Аноним 07/02/24 Срд 18:49:21 3039558 293
>>3039514
> делая вещи проще и переносимее
Это не про асинхронность. Асинхронность усложняет код и вызывает баги из-за неявного control flow.
Аноним 07/02/24 Срд 18:51:35 3039561 294
>>3039526
Ты всё продолжаешь траллить тупостью? Зайди в репу AOSP, а не ищи опциональные модули.
Аноним 07/02/24 Срд 19:00:36 3039569 295
>>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 3039574 296
>>3039558
>баги из-за неявного control flow
Как мне видится, скорее проблема рантайма. Допилят / отполируют, не сцы, всё будет.
Аноним 07/02/24 Срд 19:28:07 3039614 297
>>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 3039640 298
>>3039574
> Как мне видится
Без разницы какой рантайм, у тебя всё равно выполнение прерывается и возвращается обратно в неизвестный кодеру момент. Ты это никак не пофиксишь, потому что это сама суть асинхронности.
Ну и наличие какого-то рантайма там где его могло бы и не быть - это лишние прослойки, усложняющие код и дающие оверхед.
В бсд челики ещё жаловались на "заразность" этого говна - довольно пердольно использовать асинхронную либу, когда ты сам не используешь в коде асинхронность, т.е. оно вынуждает делать асинхронным всё.
Аноним 07/02/24 Срд 20:10:33 3039681 299
>>3039574
А тебя не кажется странным, что асинхронщина не прижилась полноценно нигде кроме жс? В шарпе очень удобная асинхронщина уже больше 10 лет есть, но открываешь любой свежий проект, даже веб, и там нет её. В джаве тоже почти никто не пишет на ней. Только в котлине её используют, но там она и выглядит не так как у всех, слишком высокоуровнево. В плюсах она появилась, но тоже полнейшая тишина, насколько я знаю её используют только в однопоточных микроконтроллерах.
Я когда-то у ГОвнарей сидел и читал много ахуительных историй про то как чтобы выучить язык надо две недели, а чтобы научиться уверенно разбираться в каше горутин большого проекта и оно работало без багов - 5+ лет.
Аноним 07/02/24 Срд 20:28:52 3039697 300
>>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 3039706 301
>>3039640
>у тебя всё равно выполнение прерывается и возвращается обратно в неизвестный кодеру момент

по-моему, это может стать проблемой, только при flavor="current_thread" + тяжёлые вычисления в потоках. Ну или приведи реальный кейс.
Аноним 07/02/24 Срд 20:34:34 3039707 302
>>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 3039727 303
>>3039681
Не буду спорить, но тут есть выбор. Асинхрон в расте почти безальтернативен только при работе с http/websocket. Да и то, возможно есть синхронные варианты, я их не искал.
Аноним 07/02/24 Срд 22:46:47 3039939 304
>>3039697
>>3039707
Я даже кинул инструкцию от гугла по AVF, где чётко написано что после сборки AOSP ставится отдельный пакет, а ты продолжаешь траллить тупостью?
Аноним 08/02/24 Чтв 00:17:39 3040033 305
>>3039939

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

всё, обоссан, уёбывай.
Аноним 08/02/24 Чтв 07:28:38 3040115 306
>>3040033
Ты только себе на лицо нассал, растошиз. AVF в отдельной репе лежит.
Аноним 08/02/24 Чтв 08:44:20 3040131 307
>>3039681
>асинхронщина не прижилась полноценно нигде
В Си прижилась.
Аноним 08/02/24 Чтв 09:53:12 3040153 308
17068809802360.png 283Кб, 1592x1703
1592x1703
РЯЯЯ АНСЕЙФТ!
Аноним 08/02/24 Чтв 10:05:40 3040155 309
Screenshot from[...].webp 19Кб, 970x509
970x509
Screenshot from[...].webp 20Кб, 970x509
970x509
>>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 3040158 310
Screenshot from[...].webp 44Кб, 845x868
845x868
>>3040115
Вот, держи ещё.
>binder
>AOSP
Аноним 08/02/24 Чтв 11:07:26 3040198 311
>>3040155
Молодец, спустя два дня наконец нашёл модуль, который включен по умолчанию везде, но всё равно обосрался.
> См. пик.
Тебе видимо самому надо глаза с мылом мыть, потому что внешние модули ставятся питон-скриптами или через пакет-менеджер при сборке. Ты зачем-то притащил скрины репы ведра, но там очевидно нет этого модуля. Ты бы хоть чекал перед тем как писать. Алсо, заебал в Code search рыться, там собрано вообще всё, в том числе и внешние модули. Склонируй уже репу AOSP и не позорься, это 5 минут времени.
>>3040158
> выделяет копирайт
Тут даже комментировать не надо.
Аноним 08/02/24 Чтв 12:46:43 3040274 312
>>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 3040284 313
>>3040274
> его там нет
С него AOSP на кастомках собирают, клован.
Аноним 08/02/24 Чтв 13:01:40 3040294 314
Screenshot from[...].webp 13Кб, 736x425
736x425
Screenshot from[...].webp 10Кб, 1625x79
1625x79
>>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 3040458 315
1701048672904.png 271Кб, 2420x2160
2420x2160
>>3040294
> Давай проверим
Давай. ГОвна в 10 раз больше, чем раста, лол. Откуда оно там вообще, блять?
Аноним 08/02/24 Чтв 16:17:35 3040505 316
Screenshot from[...].webp 20Кб, 893x442
893x442
>>3040458
Да там, походу, сорцы всего говна в external.
Посчитай всё, что кроме
Аноним 08/02/24 Чтв 17:35:25 3040640 317
image.png 146Кб, 2344x460
2344x460
image.png 20Кб, 1784x104
1784x104
image.png 17Кб, 770x120
770x120
>>3040198
> AVF в отдельной репе лежит.
> Склонируй уже репу AOSP и не позорься, это 5 минут времени.
Ну я склонировал, всё есть. Хз откуда ты правда 5 минут взял, если учитывать, что сорсы 161G весят без блобов.
На ночь поставлю cloc - посмотрим сколько там раст строк от общего числа
Аноним 08/02/24 Чтв 18:48:09 3040796 318
>>3040640
>161G
Используй repo --depth , Luke
Аноним 08/02/24 Чтв 18:51:19 3040804 319
Аноним 08/02/24 Чтв 22:49:33 3041206 320
>>3040796
Без истории там все равно достаточно много 60-70гб

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>однако компилятор предостерегает от потенциальных проблем, что делает его прекрасным выбором для создания производительного и надежного кода на века.Не случайно в настоящее время Rust решили использовать в коде ядра Linux, а Google внедряют Rust в платформу Android.
Обязательная часть при заказе статьи? Что за слащавый маркетинг пошел? Волосы шелковистее не стали?
Аноним 10/02/24 Суб 10:46:38 3042644 363
image.png 133Кб, 1029x849
1029x849
Аноним 10/02/24 Суб 10:52:33 3042647 364
>>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 3042648 365
>>3042545
Как переписать либу с опасного языка С/С++ на безопасный Раст:
1) берём либу
2) пишем обёртку
3) готово
Аноним 10/02/24 Суб 11:02:28 3042655 366
>>3042644
Для тех кто растер.
Чел тупо вынес дробилку из приложения на сервер и не упомянул об этом, при этом слащаво ратует за раст, мол как стало с ним все круто, хоть и скорость разработки упала.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>3048915
>Другое дело когда у тебя в приоритете бизнес-логика, большие объемы данных, где каждое неправильное число стоит довольно дорого в настоящих деньгах, а не кристаликах, плюсом ко всему много сторонних сервисов с которыми нужно взаимодействовать и всегда сжатые сроки из-за которых некоторые решения приходится делать не всегда оптимальными с точки зрения байтоёба.
Тогда такая хуйня должна писать на скриптокале. Жава там какая, жаваскрипт, может быть скала или котлин. Ну и если совсем всё сложно - ерланг или хаскель.
>У нас разные приоритеты и разные задачи, но ты пытаешься свой гейдев распространить на другие сферы.
Дя, у меня бизнес-логика находится в игровом движке, на отдельном бекенде. Работает хорошо, правда там не реалтайм, а 120герц и меньше. Зато можно выдерживать без сбоев нагрузку в 60 раз превышающую обычную. По кайфу жиесть.
> из-за экономии каких-то наносекунд
Если не экономить наносекунды, то вместо раста можно писать на жаве.
Аноним 15/02/24 Чтв 06:31:47 3049157 510
>>3049050
Надо новое ядро писать на расте без исторического говнокода
Аноним 15/02/24 Чтв 06:36:18 3049159 511
>>3048829
>дегенерата
Так и есть.
Аноним 15/02/24 Чтв 06:57:12 3049163 512
>линукс драйвера говнокод
Как сделана эта оценка? Какой опыт у тебя лично в разработке драйверов и вообще в писании чего-либо не в юзерспейсе?
>ряя говнокод на расте не будет говнокодом
Где пруф, что по этой причине сделали поддержку раста в дереве ядра?
Аноним 15/02/24 Чтв 09:23:14 3049221 513
image.png 606Кб, 680x760
680x760
Аноним 15/02/24 Чтв 09:31:15 3049223 514
>>3049221
А я делал еще один тип, который одновременно UTF-8 и null-terminated, в отличие от Сstr
Аноним 15/02/24 Чтв 10:18:26 3049255 515
>>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 3049286 516
>>3049255
> ers/net/phy/ax88796b_rust.rs
> макросы
> коды ошибок
> vtable
Осталось ещё сырые указатели сделать и будет бинго. Сплошной синтаксический мусор.
Аноним 15/02/24 Чтв 10:57:02 3049289 517
>>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 3049315 518
>>3049255
Заебись оценка, без примеров без нихуя.
>addressing common bugs like use-after-free
Только непонятно, как пидораст будет решать подобное в кернел спейсе.
>типа, смотрите, как надо
Ты версию на си посмотри для начала, лол.
Аноним 15/02/24 Чтв 11:24:46 3049319 519
>>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 3049366 520
>>3049111
>Тогда такая хуйня должна писать на скриптокале.
Не тебе нам указывать на чём написать.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А вообще мне интересно почему у сишников какая-то маниакальная тяга колхозить свое? Этот шиз эталонный пост накатал из палаты мер и весов, вместо проверенной годами БД, которая имеет довольно серьезный функционал, предлагает поделие на коленке да и еще какие-то либы натянуть, да еще весь код в 500 строк, который он запланировал и никогда не напишет На лоре гле-то под новостью о языке го тоже повылазили черти давай рассказывать как свои сервера писать круто, а в стандартной библиотеке там типа не свой код и хз как оно работает лол.
Аноним 16/02/24 Птн 01:21:04 3050603 568
>>3050533
Ты еще и левак идиот
Аноним 16/02/24 Птн 07:11:45 3050642 569
Аноним 16/02/24 Птн 08:06:32 3050660 570
ava3.png 230Кб, 506x667
506x667
>решил установить консольный плеер на расте
>452 каких-то зависимостей из интернета
Это пиздец, товарищи...
Аноним 16/02/24 Птн 08:14:20 3050665 571
image.png 104Кб, 945x980
945x980
image.png 64Кб, 710x921
710x921
image.png 61Кб, 658x940
658x940
image.png 65Кб, 676x950
676x950
>>3050660
Просто посмотрите на эту хуйню.
Аноним 16/02/24 Птн 08:15:42 3050666 572
image.png 104Кб, 1156x983
1156x983
image.png 111Кб, 1119x1029
1119x1029
image.png 111Кб, 1023x1039
1023x1039
image.png 105Кб, 827x1047
827x1047
Аноним 16/02/24 Птн 08:16:42 3050667 573
>>3050666
И там еще куча такого полотна. Это нормально для СИСТЕМНОГО язык?
Аноним 16/02/24 Птн 08:54:24 3050677 574
Пакетный менеджер - это нормально.
Если пишешь под систему - нахуй тебе туда плеер ставить с ресодвом депенденсей? Не пользуйся вообще карго.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

>Ещё и работником, вот пидоры.
Молодец, гуглить умеешь
Аноним 16/02/24 Птн 21:58:53 3051672 621
>>3051563
>спрашиваю почему мне не отвечают
А ты спроси почему тебе не отвечают, может быть расскажут.
Аноним 19/02/24 Пнд 16:10:45 3054674 622
Чего затихли пидорасты?
Аноним 19/02/24 Пнд 18:44:29 3054866 623
И в плюсотреде подозрительно тихо, даже дед затих
Аноним 19/02/24 Пнд 19:30:59 3054932 624
>>3054866
Развлекай нас тупыми вопросами, петушок
Аноним 19/02/24 Пнд 20:25:30 3055016 625
>>3054866
>>3054932
Двачаю, давай танцуй, обезьяна ебучая, я в цирк просто так пришёл что ли? Давай пиздуй сюда https://crates.io/ ищи чего нибудь и потом выкладывай скриншоты
Аноним 19/02/24 Пнд 20:53:25 3055052 626
1654766685331.png 161Кб, 1208x1104
1208x1104
1654271627939.png 112Кб, 1086x1223
1086x1223
>>3055016
Да там в первый же крейт тыкаешь и наблюдаешь пикрилейтеды, в 10 строчках которых можно бинго составлять.
Аноним 19/02/24 Пнд 21:07:40 3055080 627
>>3055052
> в 10 строчках которых можно бинго составлять
Составляй хули
Аноним 19/02/24 Пнд 21:53:58 3055152 628
Какие есть компактные стили кода? Раздражает фигурная скобка на отдельной строк, и что весь код лесенкой идет.
Аноним 19/02/24 Пнд 22:08:03 3055187 629
>>3055152
Только если нечитаемой лапшой писать до края экрана. С лесенками ничего не поделать, только если избавляться от всей функциональщины и писать в процедурном стиле. Не зря в настоящей функциональщине делают специальный синтаксис чтоб писать столбиком, а иначе ебанёшься.
Либо можно эмулировать goto дробить код с лямбдами в переменных/отдельными функциями под каждую лесенку, чтоб например после => всегда был только одиночный вызов функции и никакого кода. Анкл Боб так и учил в чистом коде - всё что можно вынести в отдельную функцию, надо выносить. Тогда уже будет пародия на красивую функциональщину столбиком без лесенок в ад. Но тут уже надо быть немного архитектором и уметь внятно объяснять в названиях функций что она делает, чтоб не проиграть в факторио.
Аноним 20/02/24 Втр 00:14:44 3055354 630
>>3055052
А что там? Поясните гоферу.
Аноним 20/02/24 Втр 00:34:53 3055378 631
Аноним 20/02/24 Втр 00:51:24 3055396 632
>>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 3055409 633
1632555187404.png 130Кб, 1061x968
1061x968
Аноним 20/02/24 Втр 00:59:44 3055415 634
>>3055409
О, твоя любима тема подъехала, вижу ты не ровно дышишь к трансам и геям, давай накидывай ещё
Аноним 20/02/24 Втр 01:08:10 3055429 635
Аноним 20/02/24 Втр 01:13:20 3055431 636
>>3055409
Мне противно от этого и это даже не смешно.
Аноним 20/02/24 Втр 01:26:17 3055437 637
image.png 1133Кб, 900x1200
900x1200
Аноним 20/02/24 Втр 06:41:41 3055483 638
>>3055187
>Анкл Боб так и учил в чистом коде - всё что можно вынести в отдельную функцию, надо выносить.
Стоит ли стремиться к процедурному стилю, отбросив ооп?
Аноним 20/02/24 Втр 06:42:45 3055484 639
>>3055187
>и уметь внятно объяснять в названиях функций что она делает, чтоб не проиграть в факторио.
комментарии, чел
Аноним 20/02/24 Втр 06:47:46 3055485 640
>>3055409
Сильно будут полыхать трансы, геи и прочие фрики, если раст возьмут на вооружение какие-нибудь праваки?
Аноним 20/02/24 Втр 07:34:07 3055501 641
>>3055484
Очень хуёвая практика, когда вместо чтения кода ты читаешь шизоидные опусы.
Алсо, рекомендую всем растанам посмотреть на исходники Unreal Engine, чтоб увидеть как может выглядеть качественный низкоуровневый код на крестах, у вас реально будет шок после того что тут в тред кидают. А кода там поболее чем в ядре линукса, например.
Аноним 20/02/24 Втр 07:58:22 3055508 642
>>3055501
>исходники Unreal Engine
Что там, процедурный стиль?
Аноним 20/02/24 Втр 09:21:21 3055595 643
>>3055501
Вкинь примеры топ кода хули
Аноним 20/02/24 Втр 09:57:00 3055613 644
Здравствуйте, я тут начал изучать rust (самостоятельно).
Скажите, пожалуйста, для доступа к метаданным видеофайлов (интересует битрейт) нужна отдельная библиотека или можно это реализовать средствами языка rust?
Аноним 20/02/24 Втр 10:05:33 3055619 645
>>3055613
Смотришь описание интересующего формата и можешь сам распарсить файл. Но делать самому универсальное решение дикий гемор.
Аноним 20/02/24 Втр 10:30:18 3055652 646
>>3055409
Как раз вчера прочитал ПВО Искусство легких касаний.
Аноним 20/02/24 Втр 10:52:32 3055694 647
Аноним 20/02/24 Втр 11:25:49 3055744 648
>>3055483
>Стоит ли стремиться к процедурному стилю, отбросив ооп?
В чулочнике нет ООП.
Аноним 20/02/24 Втр 11:50:51 3055779 649
Аноним 20/02/24 Втр 12:08:26 3055803 650
>>3055437
Чел, это компрессионные чулки. Их носят те у кого проблемы с сосудами
Аноним 20/02/24 Втр 12:14:50 3055811 651
1704956400892.png 269Кб, 1759x1709
1759x1709
1614624023123.png 124Кб, 1011x1577
1011x1577
>>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 3055881 652
>>3055803
Вам чулочникам виднее.
Аноним 20/02/24 Втр 13:33:34 3055920 653
>>3055881
опять дед пришел серить в тред, давно не виделись, когда ты уже поймешь что
1. пидарасам похуй на чулки, они уже пидарасы
2. на тебя никто не триггерится потому что ты уже даже не скуф, а маразматик
3. и растоёбы с тебя тут просто рофлят

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Да и что плохого в хайпе, даже если возьмем за истину, что раст это хайп что конечно же не так, хайповать 10 лет ееее, или сколько там расту? Я вот на хайпе залетел в руби в свое время, поднял нереальное количество денег, связей, опыта, фана - хайп прошел, ливнул. Вопросы? Почему это плохо? Почему у ригидных дедов так горит от того, что кто-то смеет писать на других языках, особенно на тех, которые они не одобряют?
Аноним 21/02/24 Срд 20:36:56 3058314 692
Аноним 21/02/24 Срд 20:57:00 3058350 693
>>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 3058351 694
Прогуливаясь по вымышленному лесу, вы встречаете трех троллей, охраняющих мост. Каждый из них либо рыцарь , который всегда говорит правду, либо лжец , который всегда лжет. Тролли не пропустят вас, пока вы правильно не идентифицируете каждого как рыцаря или лжеца. Каждый тролль делает одно заявление:
Тролль 1: Если я лжец, то рыцарей здесь ровно два.

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

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

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

Eсть набор интов (u32) и просто инт(u32). Надо найти к какому инту из набора он ближе всего. Как написать самому понимаю, но уверен, что есть iter() в стандартной библиотеке.
Аноним 22/02/24 Чтв 00:04:38 3058676 704
>>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 3058691 705
image 224Кб, 3648x1988
3648x1988
>>3058605
Ну можешь как-то так сделать, если хочешь через итераторы. Но я бы не выёбывался и просто использовал обычный пролетарский for.
Аноним 22/02/24 Чтв 12:34:08 3058972 706
Screenshot 2024[...].png 170Кб, 1282x1068
1282x1068
>>3058691
согласен, нахуй тут итератор, плюс мэп лишнюю коллекцию создает которую ты снова итерируешь
Аноним 22/02/24 Чтв 13:15:36 3059040 707
>>3058972
Коллекция создаётся когда ты вызываешь collect(). map() просто описывает, как трансформировать входные данные.
Аноним 22/02/24 Чтв 14:07:55 3059112 708
>>3059040
да, чёт я проебался, мэп оборачивает итератор в Map структуру и имплементит Iterator трейт, который потом fold'ит значения применяя замыкание, ебать охуенно сделали они ленивые мэпы

мимо раст ньюфаг
Аноним 23/02/24 Птн 12:31:55 3060193 709
Ответить в тред Ответить в тред

Check this out!

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