Двач.hk не отвечает.
Вы видите копию треда, сохраненную 3 мая в 00:54.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
изображение.png52 Кб, 400x400
Rust #30 /rust/ 3030908 В конец треда | Веб
Добро пожаловать в тред гарантий, обещаний, владения, заимствования и тайных знаков

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)
2 3030911
C++ лучше чем раст.
3 3030913
>>30911
Молодец, двже по ночам дежуришь
изображение.png197 Кб, 2211x593
4 3030915
Кстати из предыдущего треда, там довольно забавную сигнатуру кто-то высрал. На сколько я понял это нужно чтобы в трейт добавить синхронный метод, где-то когда-то мелькала новость что собирались завести поддержку async в трейтах, чтобы не костыльть сторонним крейтом, кому-то попадалось это на глаза?
А вообще это боль, особенно если что-то с лайфтаймами, странно что до сих пор не завезли
5 3030942
>>30913
Но он прав.
Каждый раз, когда вижу эту тему, бегу в Википедию, поттому что не различаю ваши Rust и Ruby, смотрю на синтаксис и охуеваю.
6 3030943
>>30915

>забавную сигнатуру кто-то высрал



Не надо искать смысл там, где его нет. У него кошка по клавиатуре пробежала, а ты принял это за программу.
7 3030948
>>30908 (OP)
Этот язык надо было назвать unwrap.
Screenshot22.png95 Кб, 1207x441
8 3030949
>>30915
Не поленился для тебя распаковать троллинг
9 3030950
>>30948

>grep unwrap


пофиксил
10 3030952
>>30942
Но ведь если ты не понимаешь что это, для чего оно нужно, то почему оно так выглядит ты тоже не сможешь понять. Альтернативы нет.
11 3030959
Спасибо за критику, тоже вдохновился всеми этим постами про лучший раст, но увидел что он не очень то и хорошо для меня подходит. Читаемость кода для меня важна, да и макросы то еще недооцененное зло.
Спасибо за сэкономленое время.
12 3030962
>>30959

>не хочу не буду


Да похуй мне, щенок
13 3031030
>>30942
Ну оно и понятно, ты же глупый ригидный скуф, которого как в универе научили писать на плюсах он так и серит везде ими. У тебя уже мозг забыл как это - учиться новому. Даже руби от раста отличить не можешь.
14 3031158
>>31030

>руби от раста отличить не можешь


Сомнительные по необходимости знания.
15 3031229
>>31158
Это нормально, скуф
Все кроме того что ты уже знаешь - нинужно и сомнительно. Так оно обычно и начинается.
16 3031260
>>31229
Ты бы еще перл и делфи принес, зумерок. Нашел чем гордиться.
17 3031333
>>30915
Это и есть размотка функции трейта, аннотированного async_trait
18 3031411
>>31260

>и делфи


Что не так?
19 3031518
>>31333
Вот, я и говорю как-то собирались избавить нас от этого костыля
20 3031528
>>30942
Дело не в том прав или нет, а в том что тред не успел толком появится и уже он тут как тут, сейчас чуть ниже найдет крейт с говнокодом и будет сюда постить или запостит то что макрос сгенерировал и будет жаловаться на синтаксис.
21 3031596
А что это нельзя даже 2* 2.0 сделать? Или 4.5 -2? Неужели и тут небезопасная операция?
22 3031601
>>31260

>perl


Очередной неосилятор.
23 3031750
>>31518
Так они и избавляют, в самой последней версии вон залили изначальную поддержку async в трейтаз.
24 3031774
>>31750
Ну наконец-то запилили
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
25 3031779
>>31596
Приводи всё к одному типу f32 или f64, операции с разными типами нельзя проводить
26 3031797
Ваши прогнозы, когда на расте будет нормальная экосистема без макакинга с сдиранием репозитории, которые делали 1.5 пидораса?
848.png205 Кб, 659x525
27 3031816
Кто сказал перл?!
28 3031853
>>31260
скуф даже сравнить нормально не может, давай ещё кобол сравни с рубями
29 3031932
>>31596
2.0*2.0 или 4.5-2.0 пиши
30 3032123
>>31797
Когда за какой-нибудь фреймворк или за сам язык возьментся кто-нибудь из FAANG, а не нищая мозила и трапики
31 3032151
>>32123
боже упаси
а что тебе не нравится? раст охуенен и без паршивых фаангов
32 3032168
>>32151
Но на нем нихуя же нету!
33 3032191
>>32168
прямо как и на си.
И?
вопросы?
17056065261990.png115 Кб, 668x349
34 3032202
>>32191
Но на си дохуя всего написано. А что написано на расте???
35 3032231
>>32123
Дак раст итак сейчас трогают всякие хуйавеи, амазоны и мелкомягкие
36 3032270
>>32151

>а что тебе не нравится? раст охуенен и без паршивых фаангов


Проблема в том что дохуя библиотек, которые поддерживаются васянами и на часть из них давно положили хуй, ситуация прям как с руби
37 3032333
>>32270
Как эта же проблема решена в го или сишечке?
38 3032346
>>31932
Ха ха, язык в котором нельзя целое число умножить на число с плавающей запятой.
Пиздец.
39 3032416
>>32346
В крестах тоже нельзя, о чем ты? Там просто число без спроса приводится к нужному типу.
40 3032444
>>32416

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



Так это не в крестах. Это CPU сначала приводит тип к плавающей запятой, а затем уже затем производится арифметическую операцию. Компилятор просто это прячет.
41 3032448
>>32333

>го


Гугл

>сишечке


Никак, но на нём много всего написано что будут поддерживать ещё долгие годы
42 3032449
>>32346
И что ты пытаешься этим сказать?
Вот и пришёл этот шиз в тред похоже
image.png21 Кб, 228x150
43 3032481
>>31797
Лучшее что случиться, это займет какую-то нишу, например как котлин мобилы, или го микросервисы, будет очередным языком для перделки.
Но в реале, любой подобный язык, который будет выпущен под крупным финансированием и у которого будет лучше читаемость кода и скорость написания, обгонит раст.

Просто посмотри как можно легко работу с ошибками и нуллами в том же зиге. И как скоупы памяти и деферы, намного проще выглядят костылей владения и лайфтаймов и как легко выглядит кодогенерация вместо макросов, как-будто рефлексия.
44 3032497
>>32481
Тоже вырвиглазное говно, так что хуй знает.
45 3032500
>>32481

>зиге


Те же яйца только в профиль, чуть исправили ошибки раста, но нахуевертили своего всратого синтаксиса
46 3032502
>>32497
Для питонорожденных есть моджо.
Но все они без крупной поддержки. Хотя я офигел что оборот зига полмиллиона долларов в год. Фонд раста публикует расходы, как они кормятся?
47 3032504
>>32497
>>32500
Мне срать на зиг, я просто как пример привел, что можно лучше.
48 3032505
>>32504

> что можно лучше.


Можно, но это далеко не зиг, там похоже такие же трансы пишут
49 3032647
>>32448

>Гугл


Что гугл? Любой шаг в сторону от веба и там такие же васянские пакеты. Да ещё и хостится это всё где попало, в любой момент можно устроить новый leftpad - насколько я понял, бегло погуглив, гугл не имеет репозитория для го. А с crates.io так просто не удалишь, например.

>на нём много всего написано что будут поддерживать ещё долгие годы


Кто будет поддерживать и как? Репозитория-то нет. Я тебе скажу, как: корпорация просто берёт кусок васянской либы и включает в свой проект методом Ctrl+C - Ctrl+V и там её поддерживает, периодически высирая изменения для gpl либ в виде архива в разделе corpsite.com/opensource/.
Screenshot from 2024-02-03 11-30-39-1.webp58 Кб, 885x500
50 3032656
>>32502

>оборот зига полмиллиона долларов в год

51 3032810
>>32656
Что мы должны понять исходя из информации предоставленной на этом графике?
52 3032811
>>32810
Что пидоРастам платят меньше чем ГОвночистам или перлам, например. Отсюда делаем вывод кто нужнее на рынке труда.
53 3032838
>>32811
Брехня! Мне платят ровно те же нихуя, что и всем остальным в этом ИТТ треде.
54 3032849
>>32838
Надо тогда собрать статистику по потёртым постам и банам на доске, так поймём на какой язык больше уходит модерских ресурсов - т.е. кто сжирает больше всех бюджет доски.
55 3032851
>>32810

>оборот зига полмиллиона долларов в год


>ЗП зигуна 100к в год



Вывод очевиден: зиг пилят 5 разрабов на полную ставку от спонсора, остальные сосут писос за идею.
56 3032870
>>32444
Нет, ты не прав. Не существует операции + над типами слева int и справа float. Все арифметические операции производятся над унарными типами. Компилятор добавляет неявных преобразований типов, пока типы не будут совпадать.
Это вообще проблема языка большая, что очень много вещей происходит без ведома пользователя.
57 3032874
>>32851
Сколько попенсорсников сосет писос у раста? И сколько там уже заброшено либ?
58 3032900
>>32870
В нормальных языках существует. Нет никаких проблем написать реализацию сложения двух чисел. Особенно если эти типы не надо конвертить и сложение можно выполнить при компиляции.

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


Ты лучше расскажи как раст в консольку пишет, нахуя он перекодирует текст из utf-8 в кодировку консольки, даже если не просишь. На той же винде можно просто попросить консольку выводить текст в utf-8 и консолька выведет его, но в расте всё равно идёт конвертация в wide string. Единственный способ в расте вывести utf-8 в виндовую консольку - дёрнуть через ансейф winapi.
59 3032911
>>32900

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


Ни в каких не существует, ты не можешь складывать числа с плавающей точкой и целые типы без конвертаций, ты чё ебанутый?
60 3032912
>>32870
Слева от знака присваивания.
1562482956181.png123 Кб, 1207x1297
61 3032919
>>32911
А как насчёт пикрилейтеда? Вы сосем ебанулись от долбёжки в сраку? Даже на уровне ассемблера эта операция валидна. Что за театр абсурда?
62 3032925
>>32919
На ассемблере невалидно. Там вставляется инструкция https://www.felixcloutier.com/x86/cbw:cwde:cdqe

Это если про х86 и не углубляться.
63 3032927
>>32919
Супер безопасность же, зато есть затенение переменной, что может привести к такой неуловимой логической ошибке, что ub покажется сказкой.
64 3032937
>>32925
Покажешь её в расте? Даже в дебаге без оптимизаций там просто 2, т.е. он при компиляции посчитал 1 + 1 при одинаковых типах.
При этом u8 в расте занимает весь 32-битный регистр, т.е. там даже в теории не может быть сдвига знакового бита, как ты уверяешь.
65 3032939
>>32919
У тебя запрещены имплисит касты, что не так?
66 3032962
>>32925

> Там вставляется инструкция


Пикрилейтеды из сишки, всё ещё не вижу чтоб байт куда-то конвертировался отдельной инструкцией. Вот с float есть конверсия.
67 3032967
https://en.wikipedia.org/wiki/ATS_(programming_language)

>By using theorem proving and strict type checking, the compiler can detect and prove that its implemented functions are not susceptible to bugs such as division by zero, memory leaks, buffer overflow, and other forms of memory corruption by verifying pointer arithmetic and reference counting before the program compiles. Additionally, by using the integrated theorem-proving system of ATS (ATS/LF), the programmer may make use of static constructs that are intertwined with the operative code to prove that a function conforms to its specification.


Ну и чем раст лучше?
68 3032984
>>32962

>всё ещё не вижу чтоб байт куда-то конвертировался отдельной инструкцией


movsx
69 3032988
>>32937
u8 занимает регистр? Тогда очевидно конверсия тут не нужна. Именно поэтому.
70 3032989
>>32984
Так это инструкция чтения в регистр. Я сильно сомневаюсь что есть разница между обычным mov по задержке.
71 3032990
>>32919
Опенсорс же. Если не нравится, сделай МР. Здесь даже систему типов не надо усложнять. Тебя либо компетентно обоссут, либо даже примут.
72 3032993
>>32989
Это перенос значения с расширением. Значения разной размерности в ассемблере складывать нельзя.
73 3033001
74 3033029
>>32993

> разной размерности


Самое смешное что это только в крестах она разная, у раста там просто mov, а u8 хранится в 32 битах. В контексте х86 уже обсер с этим оправданием, там одинаковые значения с идентичными инструкциями.
75 3033396
>>33029
Это очень частный случай, который можно подпереть таким костылём:
Если примитивное число меньшей размерности вступает в арифметические отношения с примитивным числом большей размерности и тип результата задан явно как тип соответствующий типу числа большей размерности, то автоматически кастовать число меньшей размерности к большей.
Хз, может когда-нибудь и сделают.
76 3033408
>>33396
В плане костыль, в крестах так и работает
77 3033747
>>33396
Забытые технологии древних.
Там перегрузку функций то не осилили. А это просто приписать постфикс к функции.
78 3033749
>>33396
Примитивное число? Это ты так целые обозвал?
79 3033750
>>33747
Хех. Вижу человека который копался в компиляторах.
80 3033759
>>3030347 →

>Чел разбирается в энергетике, экономике, астрофизике и программировании. Это абсолютно точно не бумер-шизик, ага.


Хрюкни, пидор. Финка все помнит и ждет.
81 3033760
>>3030402 →

>Да похуй, его будут только в облаке использовать. Как до винды доберётся, так и приходите.


У меня для тебя плохие новости - винда уже переезжает в облако.
82 3033761
83 3033777
>>33761
Там же первым реддит постом обоссали и в том треде тоже, но хомяки за бесплатно продолжают разносить фейл ссмщиков раста.
84 3033793
>>32919
А почему случилось так, что у тебя целочисленные типы разной размерности?

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

Приведи конкретный пример посмотреть.
85 3033796
>>33747
>>33750
Придется это скушать. Создатели языка решили что перегрузка функции затрудняет чтение кода, путает людей.

в 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 Статья-пушка.
86 3033798
>>33796
Мислинк. Это для 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 (нет)
87 3033800
>>33793

>Приведи конкретный пример посмотреть.


>Не язык говно, это вы плохо прогаете.



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

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

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

Чувак, чтобы ты понимал, они половина того что не успели впихнули в макросы и забили, потому как надо было релизиться, а ты сидишь сейчас и пытаешься с умным видом рассказать что это не яп сырой, а тот чел неправильный код пишет.
88 3033801
>>33796
>>33798
Сколько надо ума чтобы сравнивать неуправляемые язык с управляемым, да еще и с ГЦ? Ты не то чудо, которое в прошлом треде с котлином сравнивал?
89 3033803
>>33798
Что там тебя напугало, там большая часть про статик поля. В раст давно классы завезли?

Я бы остерегался сравнивать раст с топ языками, там по фичастости шарп порвет твой сырой раст как тузик грелку.
90 3033837
>>33803

>топ язык


>фичи


>шарп порвет


Откуда вы только беретесь
91 3033859
>>33837
У котлина вообще свой статический DLS на базе языка, у всеми любимого раста даже дефолтных аргументов нет. Но зато есть затрах с опшенами и мегакостыльные пользовательские ошибки.
92 3033888
>>33749
Примитивный числовой тип, f32/f64 туда же.
93 3033892
>>33859
Ты о чем вообще дурачок? Опшены тебе не нравятся? Да мало ли что тебе не нравится.
Иди на котлине пиши и не еби серьезным дядям тут мозг.
Проблема макак Итт в том, что они почему-то думают что в их языке все реализовано правильно, следовательно в условном расте это должно быть тоже.
Хотя по факту это просто необучаемость и старческая ригидность мышления. Вы хотите чтобы вам было удобно, а язык от вас требует времени для изучения других концептуально вещей.
Вместо того, чтобы изучить язык, открыться для других идей, мы начинаем вонять что А ВОТ В СИ КОТЛИНЕ ЖАБЕ ЭТО ЕСТЬ ХАХА СОСИТЕ ОПШЕНЫ НИНУЖНЫ. Допустим оно все в расте есть. Так и зачем тогда вам он нужен? Ведь есть уже котлин.
Безусловно есть вещи которых в расте не хватает. Но серьезно хуесосить систему типов за то, что она не позволяет проводить операции над разными типами - нонсенс.
94 3033895
>>33892

>когда чулки передавили кровоток

95 3033900
>>33747
Опять шиз с перегрузками выполз
96 3033903
>>33895
Вот и гринтекст пошёл
97 3033924
>>33892
Я не пойму как вы накрутили рейтинг любимого языка, если на SO доля вопросов и сторонников раста стремиться к нулю.

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

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

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

Серьезный дядя, сними чулки!
1562816415582.png94 Кб, 1081x1053
98 3033926
>>33892

> не позволяет проводить операции над разными типами - нонсенс


Ну если тебе не нравится пример с интами, то что скажешь про Result и Option. Это же банально неудобное говно, когда тебе всё надо в Ok оборачивать, а разные Ок не кастуются друг в друга. Вот в крестах они оба умеют кастоваться из ок-типа, просто возвращаешь значение. И эксепшены тут можно использовать - можно даже не чекать Ок там или ошибка, при обращении оно скастуется к Ок, а ошибка кинет эксепшен. Это в расте мало того что надо прописывать unwrap, так ещё и нет возможности сделать что-то с паникой выше уровнем.
Screenshot from 2024-02-04 13-51-54.webp8 Кб, 443x252
99 3033944
>>33924

>накрутили рейтинг любимого языка,


Это делается так: назови, какие языки знаешь, среди них выбери любимый. Раст на первом месте у тех, кто вообще знает раст, только и всего.

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


>как вообще жить без GOTO



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


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

>древнейшие опшены


Ты долбоёб, нулл ещё древнее, а

> сахар с нуллабл типами


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

>надо прописывать unwrap


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

>раз в крестах есть то и в расте ДОЛЖНО быть


>будто если есть в плюсах — априори самое лучшее решение


Что и требовалось доказать.
Кому-то memcpy удобно руками вызывать и указатели складывать. Что теперь?

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

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

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

Ну да, FPU поддерживает арифметические операции между целыми числами и числами с плавающей запятой. Во всяком случае на x86.
103 3033952
>>33946

> нормально обработать


Нормально обработать - это вот эта >>33944 лапша? Option кастануть к bool по какой причине нельзя?
>>33949

> монады


Как только появится вменяемый синтаксис под это говно, так и приходи. Лапшу из монад и в крестовом optional можно сделать.
104 3033960
>>33952

>Лапшу из монад и в крестовом optional можно сделать.


Монаду error с ручным закатом солнца и в ГО можно нужно делать
image.png63 Кб, 1324x439
105 3033961
>>33952

>Option кастануть к bool


Итить, ты ни хуя не понял, а. Это сразу распаковка значения из структуры напрямую в мэтчинге.
106 3034026
Кекаю с местных срачей про FP. За 2 месяца сказал команде переписать простенький сервис с переусложненного fp-говна на скале на простенький круд на джаве. Пофиксили все баги, разблокировали найм, удешевили поддержку и разработку, снизили риски ухода сотрудников. Брат жив и счастлив.

мимо-манагер
1681656339458.png85 Кб, 1063x1137
107 3034034
>>33961
Да, я нихуя не понял зачем столько много синтаксического мусора.
108 3034080
>>33924

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


Никак, не пиши на нём апи и вообще лучше не пиши код

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


>когда есть сахар с нуллабл типами


Как сказать что ты ничего кроме хэлоуворда на расте не писал, не говоря об этом прямо лол
109 3034116
>>33801
Я сравниваю не синтаксис, а семантику. Это разные вещи.

>неуправляемые язык с управляемым


Тут получается что ты либо в M$ работаешь, и двачуешь на перекурах. Или кроме .net никогда ничего не видел. На будущее просто. Чтобы люди тебя понимали, что ты пишешь.

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

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

>манагер



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

>дебилы для простого круда накрутили монады функторы и прочие залупы


>нахуя?


>следовательно всё ФП плохое



ФП для других задач, простенькие круды писать на нём смысла нет. Круды вообще писать смысла нет. Это как на ассемблере писать сайт визитку
111 3034146
>>34125

>иди анализируй бёрндаун чарт


кекнул, а ведь правда

>ФП для других задач, простенькие круды писать на нём смысла нет. Круды вообще писать смысла нет. Это как на ассемблере писать сайт визитку


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

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

сорян зря быканул на тебя, не в настроении сегодня
115 3034171
>>34153
токио игнорьте, я просто в существующий код вставил сниппет, поленился
116 3034185
>>34154
я люблю раст за
- хайп (это весело)
- комьюнити, это для меня значит много, можно и похоливарить, и пообщаться, и поучаствовать в совместном проекте just for fun
- за возможность писать быстрый код без гц не отстреливая себе очко, ибо основной альтернативой тут является только цпп (no go zone)

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

Годы гребли выбили из меня всю спесь и я превратился в раба энтерпрайза, раст в этом смысле освобождает
Screenshot from 2024-02-04 18-09-35.webp22 Кб, 1625x464
117 3034435
>>34034
Это не мусор, это сахар. Так ты можешь любой енум распаковать.
В том смысле, что Option и Result в расте работают на общих принципах, в отличие от null и nullable в других языках, которые приделаны сбоку.
изображение.png39 Кб, 677x476
118 3034482
>>34034
Можно тоже самое сделать, в чём у тебя проблема?
119 3034532
>>34482
Во-первых, есть if let. Как у тебя сопли из лямбд даже в джаваскрипте уже не пишут.
Во-вторых, пограничные случаи обычно проверяют вначале, чтобы не плодить лесенки из скобок. В том же сишарпе я бы сначала проверил if (a == null) и отвалился с ексепшеном, например. В расте я так сделать не могу.
120 3034566
>>34532

> if let


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

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


В жс теперь сопли из "тегов" компонентов jsx пишут

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


Во-вторых всё зависит от того что тебе нужно, если надо просто проверить как ты привык в шарпе бери match, if let или вообще .is_some(). Если надо еще что-то бери методы которые есть в enum Option, там полно всякого на разные случаи жизни. Если у тебя руки из жопы и получаются лесенки из скобок или выглядит не так как в шарпе, то не бери эти методы.
121 3034591
>>34435

> Это не мусор, это сахар.


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

> в расте работают на общих принципах


> в других языках, которые приделаны сбоку


Тем не менее я не вижу в твоём коде этого. Ты чекаешь что в конкретном енуме лежит такой-то тип. Читающий код как должен понять с какой целью это делается? Никакими общими принципами даже и не пахнет. А для того чтобы поменять опционал на другой хотя бы на абсолютно идентичный самописный тебе надо переписывать код паттерн матчинга, потому что паттерн изменился, ведь ты чекал какую-то хуиту. Т.е. у тебя реализация этой срани лежит на конкретном типе, а не язык предоставляет инструмент. Такая же проблема, как и про то что писали тут раньше - надо разбирать типы на запчасти и собирать из них то что тебе надо, никакой консистенции в обработке ошибок, даже если брать Option/Result - нет единого способа проверить валидность значения в них. Даже дженерики не спасут, если ты захочешь чекнуть в одном месте их, потому что разные API у них.
>>34482
Проблема всё в том же - вместо простого чека ты городишь костыли. Покажи как средствами языка выразить "если опционал имеет значение, то выполнить то-то", какие ещё мапы, блять.
122 3034592
>>34482
>>34532
>>34566
о чем вы вообще спорите?

>>34153 вот так пишите, зачем усложнять мэпами
123 3034602
>>34591
эталонный долбоёб итт, боже мой

>чек опционала


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

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

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


>паттерн матчинг


>костыль



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

Уёбывай из треда, у тебя деградация головного мозга, расскажи нам ещё про то что лучше чем while(1) для лупов ещё не придумали, олень
124 3034622
>>34167
В фп не пишу, но во время изучения в унике мы изучали его на примере Лиспа и очень понравилось. Это будто совсем другой способ делать привычные вещи, начинаешь по-другому мыслить.
В общем как упражнение для мозга заебись, а вот как в проде с ним работать - хуй знает. Чем большая макака понимает написанное - тем лучше.
Screenshot from 2024-02-04 19-54-19.webp26 Кб, 1625x562
125 3034627
>>34591

>>34591

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


См. пик. Многое изменилось, по-твоему?

>как средствами языка выразить "если опционал имеет значение, то выполнить то-то", какие ещё мапы, блять.


То, что я показал, это пример того, как можно работать с Option. А так, да сколько угодно - можно if let, можно чекнуть на is_some()/is_ok(), полно вариантов.
1673991796685.png189 Кб, 1648x1744
126 3034635
>>34602

> чекай ифами


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

> Многое изменилось, по-твоему?


Да, ты полез переписывать паттерн. Пикрилейтед сможешь повторить даже с дженериками?
127 3034654
>>34592
Мы не спорим, а рассказываем вкатуну из шарпа про то какие варианты есть
Screenshot 2024-02-04 at 5.13.10 PM.png93 Кб, 1120x734
128 3034669
>>34635
тебе выше показали некоторые из средств языка, доступных для этого, о чём ты вообще? ЧТО ТЫ ОТ МЕНЯ ХОЧЕШЬ?

>общие принципы


про общие принципы говорил другой анон, но давай я попытаюсь тебе объяснить про них в любом случае, если твой узкий лоб тебе этого не позволяет погуглить и понять самостоятельно ты вообще программист? интересуешься чем-то кроме плюсов?:
общие принципы это про у нас есть условная монада 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)

Об этих принципах, почему-то неизвестных тебе, вероятнее всего говорил тот анон
129 3034676
>>34591

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


Тебе 3 разных варианта показали match, if let и map. Все 3 делают то что ты говоришь если есть значение, то выполняют что-то. Все это средства языка. Тебе надо напечатать значение из структуры в терминал или сделать таким же точно способом как в другом языке? Ты хочешь поныть что тут не так как ты привык? Я понять не могу тебя, если тебе надо доебаться, то есть множество других вещей до которых действительно можно доебаться
130 3034678
>>34669
Двачаю, тоже не понимаю чего ему надо вынул бы хуй изо рта для начала
131 3034679
>>34669

> пик


Даже не собираюсь твой высер читать, пока не покажешь как сделать чек как в крестах. То что у тебя для каждого типа свой чек не значит что в языке есть хоть какой-то функционал для этого. Вот и получается, что даже обработку ошибок не завезли, только какие-то костыли на енумах.
132 3034711
>>34679
ой всё отъебись тупица, больше не буду тебя кормить, заебал ейбогу
133 3034716
>>34679

> Даже не собираюсь твой высер читать


Он даже не читает, я думаю рациональнее ему и подобным им шизам не отвечать. Меньше кормишь, меньше пасутся. Тем более маркер виден "ря фсё ни так как в C/C++C/C#Cobol/JS/PHP”, пусть хуй сосёт в МБР треде
134 3034733
>>34669

> в расте или другом фп-inclined языке


Ты сейчас пошутил или что? Потому что в крестах ты так же можешь сделать вермишель из монад:

> a.transform([](auto a) { return a + 1; }).transform([](auto a) { return a + 2; })

135 3034768
>>34711
>>34716
Т.е. я засчитываю победу крестов в контексте "общих принципов" работы с вложенными типами? Потому что всё что я увидел - пять способов использования монад для конкретного типа и ни одного примера именно изначального вопроса - проверки валидности вложенного значения средствами языка. Только сплошные маневрирования в стиле "а давайте вместо проверки кинем лямбду", заебись решение нашли просто перепрыгнув задачу. И это при том что в самом начале я нахуй посылал с мапами, которые вообще к сути вопроса не имеют отношения. Особенно забавно что после того как аргументов не осталось просто скатились в траллинг.
изображение.png37 Кб, 557x475
136 3034822
>>31750
Как же это охуенно, что наконец-то запилили, столько лет ждали. Завтра повыкидываю нахуй все костыли #[async_trait]
137 3034824
>>34822
Я надеюсь ты пишешь для веба, а иначе придушим всем тредом за такое.
138 3034828
>>34034
В таком синтаксисе можно забыть проверить на отсутствие значения. В Расте так тоже можно, но не из коробки. И зачем?
139 3034831
>>34822
Это Найтли Или что? Скинь ссылку на апдейт
image.png59 Кб, 1366x350
141 3034834
>>34669
В расте вот так. И, заметь, в расте я точно знаю, что пришло опциональное значение, которое обязательно нужно проверить.
А ты со своими плюсами взвёл курок и лихо заправил револьвер в штаны с претензией "А вы так могёте?" Слава Б-гу, нет.
142 3034836
>>34833
А бля не та ссылка, вот эта на стейбл https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
143 3034865
>>34834

> В расте вот так.


Траллишь тупостью уже? Зачем ты три раза один тип сделал?
Screenshot from 2024-02-04 22-31-40.webp23 Кб, 1366x397
144 3034908
>>34865
Ну не 3, а 2. Конечно, недоработка с моей стороны в плане наглядности, но вот то, что ты в счёте до 3х путаешься, уже диагноз.
Ну вот те ещё один тип.
145 3034913
Не кормите крестового уебана плиз
146 3034917
>>34908
Ты реально траллишь. Ещё раз - используй разные типы монад, а не вложенных типов. Ты хоть видел что я тебе показывал? Речь про использование Option/Result в одном месте, кого вообще ебёт какой тип в них.
147 3034945
>>34917
А, понял, о чём ты. Что ты скармливаешь Oprion, Result, просто null и непосредственно значение одной функции и "она просто работает".
Дак это ж то самое говно, которое отличает низкоуровневые языки от высокоуровневых. На ассемблере можно чары друг на друга умножать - плюсовики посрамлены и унижены. Раст просто выше уровень и не даёт тебе насрать себе же в тапок, смирись с этим.

Проблема-то в чём? Что если у тебя изменился Option на Result и надо полазить по коду и поменять распаковку? Ну да, где-то придётся, охуеть, какая проблема. А если распаковка через .map(), то даже и не придётся.
148 3035045
>>34945

> Проблема-то в чём?


В том что у тебя нет "общих принципов" для работы с монадами. На этом все разговоры можно закончить. А ведь после этого я могу доебаться до того что bind не завезли, хотя это одна из базовых вещей в монаде.

> монады дам


> функциональный синтаксис и инструменты для работы с ними не дам


Даже в джава-говне до такого распиздяйства не додумались.
149 3035056
>>34945
Не корми шизика, представь что это то самое злое существо из книги Алена Карра, чем меньше ты его кормишь, тем быстрее оно сдохнет
150 3035161
Есть and_then, который хаскельный bind/скала flatMap, шизик ебанутый, жри говно
151 3035215
>>35161
Ты совсем припизднутый? В расте в каждой монаде надо руками биндить. А в хаскеле бинд на уровне языка реализован, как и положено.
152 3035246
>>35161
Хватит позорить растанов, из-за тебя он продолжает тут траллить, потому что с каждым разом ты всё тупее и тупее перлы выдаёшь. Наличие монадных операций ещё не делает тип монадой, с таким же успехом можно на ГО написать ручные операции и сказать что это теперь монада. По дефолту у енумов нет никаких монадных свойств, а то что ты пытаешься выдать за монады - пять ручных типов на всю std.
153 3035251
>>35246
Че вообще такое эти ваши монады, заебете. Объясните просто
154 3035257
>>35246
Ну давай разберем все тобой по частям тут написаное.
Какими свойствами должна обладать монада?
Left identity, right identity и associativity. Можешь погуглить что это такое.

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

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

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

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

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

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

>>35215
Кыш отсюда. Что ты несешь вообще.
155 3035263
>>35251
Паттерн делающий возможной композицию функций которые возвращают обернутые значения. В расте эту функцию выполняют option и result, их можно чейнить (композировать) и не ссать что отстрелишь себе очко.
156 3035266
Мы бы про монадическую обработку нуллов и не начинали бы, есть темы поважнее. Просто еблан с крестов пришел и начал спрашивать за Some
157 3035271
>>35257

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


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


Раунд!
158 3035307
>>30908 (OP)
Меня смущает слово "системное".

Покажите ключи компилятора.
Есть ли аналог ключа -nostdlib ?
159 3035333
>>35246

> с таким же успехом можно на ГО написать ручные операции и сказать что это теперь монада


Это и есть монада, просто расписываешь всё вручную.
>>35257

>он просто взял лучшее/практичное из мира фп.


Взял, да не добрал. Получилось почти как в го: вроде есть, но в таком виде, что нахуй бы нужно.
160 3035339
>>35307

>Есть ли аналог ключа -nostdlib ?


https://docs.rust-embedded.org/book/intro/no-std.html
161 3035351
>>35339
Bare Metal Environments

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

А с чем можно линковать? Он умеет в ELF объектиники?
162 3035465
>>35351

>А с чем можно линковать?


С си естественно https://doc.rust-lang.org/std/keyword.extern.html В теории можно и с си ++ через стороннюю либу https://cxx.rs/

>Он умеет в ELF объектиники?


Он умеет в LLVM объектники. Потому что сам компилятор Rust на базе LLVM.
163 3035651
>>35257

> Какими свойствами должна обладать монада?


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

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


При том что в фп-языках ты можешь монадные операции над любым типом выполнять, не надо вручную их реализовывать для каждого типа, потому что они часть языка. В расте нет монад, если убрать ручные реализации из std.
164 3035748
>>35651

>По классике:


>- монадный тип


>- юнит-операция


>- бинд-операция


Что ты высрал тут, тупица? Из кодов выложенных анонами выше непонятно что все три свойства уже удовлетворены? Или ты пиздишь тут типа "ну да я в теме, прочитал на википедии статью и щас надо показать что я ШАРЮ ЗА МОНАДЫ" ебанько.

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

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



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

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

>в фп-языках ты можешь монадные операции над любым типом выполнять


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

>в расте функциональщины столько же, сколько и в ванильной джаве или крестах


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

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

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

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

>По классике:


>- монадный тип


>- юнит-операция


>- бинд-операция


Что ты высрал тут, тупица? Из кодов выложенных анонами выше непонятно что все три свойства уже удовлетворены? Или ты пиздишь тут типа "ну да я в теме, прочитал на википедии статью и щас надо показать что я ШАРЮ ЗА МОНАДЫ" ебанько.

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

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



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

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

>в фп-языках ты можешь монадные операции над любым типом выполнять


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

>в расте функциональщины столько же, сколько и в ванильной джаве или крестах


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

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

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

соре всем анонам итт за монадосрач, я кончил, давайте лучше за раст
165 3035802
>>34822
Автохуй, пока в токио похоже не готово, в tokio::spawn не передать нормально такое, говорит давай мне огород из impl Future

>>34824

>Я надеюсь ты пишешь для веба


Да, там почти везде нужна асинхронность
166 3035840
Ебаный рот этого казино! В токио пока не будут добавлять поддержку асинхронных трейтов из-за обратной совместимости.
https://github.com/tokio-rs/tokio/issues/6173#issuecomment-1829561084
167 3035843
>>34822
Оно не готово ещё, там подробно расписано что работает, а что нет. Но начало положено.
168 3035926
>>35802
Открою тебе страшный секрет: асинхронность нахуй не нужна. Она нужна только в кривом джаваскрипте, где всего один поток. Обычный пул потоков работает быстрее, чем новомодное говно с асинками. Для защиты от ддоса используются прокси, в типичном облаке на кубере между твоим сервером и интернетом будет три прокси.
169 3035950
>>35748

> до пизды абсолютно как они интегрированы в язык


Они никак не интегрированы в язык. В ядре ОС без std как предлагаешь ими пользоваться?

> мы не обсужадем ФП тут, мы обсуждаем РАСТ


Это не я тут хвалился наличием функционалищины в расте и возможностями, которых якобы нет у других. Про то что в расте правильные монады, а в джаве/крестах нет - это тоже не мои высеры.

> А ещё в джаве и крестах есть нулы


А в расте есть ансейф, который в любой низкоуровневой либе горой навален, в том числе в std.

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


Уже второй день не можете пояснить как сделать if(a) для любой монады. Мне хватило бы одной строчки кода, вместо десятка шизоидных простынь текста и оправданий почему оно не нужно. Зачем это надо уже пояснено - сделать проверки до того как соберёшься использовать вложенное значение.
170 3035965
>>30948

>unwrap


Кстати проиграно, это что получается, если я вставлю макрос для Си, который будет делать exit(1) при ненулевом результате вызванной фукнции, или возвращать результат, это же будет буквально 99% кода на пидорасте.
171 3035980
Игнорируем опуща ^

>>35926
Все так. Наигрался с Футурамы, к сожалению без контроля тредов и пула сложно написать гибко конкарррент апп. Но для среднего проекта с Футурамы сложнее отстрелить себе жопу. Как обычно трейдофы
172 3036013
>>35965

> это же будет буквально 99% кода на пидорасте


Ты забыл про разворачивание стека при панике. В расте паника будет дольше чем просто exit().
173 3036195
>>33924

>древнейшие опшены


Мой любимый пример того, насколько усложняют жизнь 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. шарпист по профессии
174 3036266
>>36195
Добавить одну строку в шарпе или добавить три строки с матчем в расте - что же выбрать? Алсо не забудь написать unwrap, напиши его снова.
175 3036625
>>36195

> насколько нужно изворачиваться в первом случае через 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 можно запретить на уровне компилятора, если боишься выстрелить себе в ногу.
176 3036636
>>35926

> асинхронность нахуй не нужна


Особенно когда вхолостую ждешь ответ от сторонней апи или БД
177 3036653
>>36636
а кто тебе запрещает отдавать управление на блоке IO? Есть куча механик как этого избежать. В условном эрланге отдельный тредпул на уровне beam (или как оно называется) для IO, там гоняется все что с ним связано чтобы акторы не лочились.

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

Короче варики есть
178 3036658
>>36636
Все нормальные люди освобождают поток и оставляют коллбек/чекают прогресс операции асинхронщина это под капотом и делает. Неблокирующие операции IO есть везде. Нормальный многопоток всегда будет быстрее скакания по стеку, оставляя фрейм висеть где-то там в ожидании когда к нему вернётся выполнение.
179 3036662
>>36653
по эрлангу мог спиздеть, сам не тестировал, читал в книжке когда эликсир тыкал, так что возможно там роль отдельного ИО пула в том чтобы тупо не забить ИО если каждый актор будет в ио биться (лимиты ядра/драйверов итд)
180 3036707
>>36653

>а кто тебе запрещает отдавать управление на блоке IO?


Лишняя писанина, тут взял tokio и за меня уже всё что нужно сделано, все библиотеки вокруг веба заточены под асинхронщину axum, actix, sqlx, redis, lapin (для rabbitmq) везде async/await и я поверх этого буду делать свои самопальные говнорутины или использовать какой-то тред пулл и ебаться скрещивать ужа с носорогом
181 3036751
>>36707
Я выше писал что для среднего аппа вполне себе решение.
Если проект более менее нагруженный и сложный, в том плане что не просто параллельно отрабатывает запросы а что-то гораздо сложнее типа чат сервера с лямом юзеров, где еще надо учитывать особенности цпу кешей в cpu bound hot path чтобы быстрее крутить данные - заебешься тюнить и дебажить асинк код. Наелся говна в свое время со скала футурами теми же. Переписали в итоге все на продюсер консюмер и виртуальные треды.
1586465889852.png31 Кб, 1066x481
182 3036783
>>36625

> Паттерн-матчинг работает даже в if, пик1.


А ведь это то, о чём мечтал шизик с крестами, ещё и приправленное чем растовик хвалился, лол.
Можно написать проверку и тут же разобрать структуру с возможностью использовать проверенное значение, все счастливы.
Я даже полез проверять, реально работает.
183 3036810
>>36751
Слова не мальчика, но мужа.
184 3036852
>>36625
>>36783
По-моему вы путаете 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#, которой, в свою очередь, пользуюсь я.
185 3036855
>>36751

>Если проект более менее нагруженный и сложный


И разумеется ты на таком работаешь не последним человеком раз всё знаешь и рассказываешь тут
186 3036922
>>36855
Да. Вопросы?
187 3036939
>>36653

> а кто тебе запрещает отдавать управление на блоке IO?


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

>>35926

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


Ты походу вообще не понимаешь о чем говоришь.
Суть перфа то как раз в корутинах на множестве системных потоков, то есть когда потоки могут и сами отдать управление, и когда они шедулятся при этом. В го это горутины, например
188 3036944
>>36939

> то есть когда потоки могут и сами отдать управление


Он прав.
А вот на тебя ещё надо повнимательнее посмотреть.
189 3036950
>>36944
Аргументы будут?
190 3036957
>>35965
То есть моя программа будет выходить с ошибкой на ~10мс дольше.
191 3036960
>>36013 сюда >>36957
192 3036968
>>36950

> то есть когда потоки могут и сами отдать управление


В современных системах потоки переключаются при системных вызовах. Если поток переключает ядро ОС, то значит программу написал рукожоп.
193 3036974
>>36968

>Если поток переключает ядро ОС, то значит программу написал рукожоп.


Разумеется если это происходит вне систеного вызова.
194 3036975
>>35950

>А в расте есть ансейф, который в любой низкоуровневой либе горой навален, в том числе в std.


Если одно и то же повторять, то когда-нибудь дойдет:
- Подчеркни слово "низкоуровневой", и подумай почему низкоуровневое это ансейф.
- Налл это идиоматично в тех языках. Ансейф - напротив, считается дурным тоном где его можно обойти (не низкоуровневый код).
- По налл никто загрепать не может, и не делает так. Потому что он может быть неявным, т.к. является нормой.
Даже если ты тролль, все равно читающий и вникающий мимокрок нас рассудит. Для него пишу, не для тебя, потому что ты и так все это знаешь.
195 3036987
>>36968
Причем тут системные потоки, если речь про виртуальные потоки и корутины внутри абстракции языка?

> Если поток переключает ядро ОС, то значит программу написал рукожоп.


Вут? Ядро будет прерывать и переключать выполнение физическими потоками системных потоков и тебя не спросит даже. Вроде в посикс тредах можно выставить критическую секцию, чтобы в ней не было прерывания через системные вызовы, точно не помню. Но это не имеет никакого отношения к написанию высокопроизводительного веб сервиса. Там у тебя есть абстрактные виртуальные потоки, написанные поверх посикс тредов, которые в корутинах обрабатывают запросы пользователей, и как там ось переключает выполнение посикс тредов ты не думаешь
196 3037003
>>36987

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



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

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


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

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



И я такого не помню. Ты наверное слышал звон, да не знаешь где он и рассказываешь про SpinLock.
197 3037035
>>37003

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


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

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


Ват

> Да, это называется защита от дураков и кривых рук. Это ненормальная ситуация с точки зрения ядра.


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

> И я такого не помню. Ты наверное слышал звон, да не знаешь где он и рассказываешь про SpinLock.


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

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

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

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

Вот еще. Когда тебе захочется вместо одного экспрешона два - в if-else это будет тривиальный перенос строки, а тернарник придется переписывать.
199 3037056
>>37035

> Ват


Bare Metal Environments

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



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

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



А это уже интересно. Да, это не спинлок. Только за всю мою мою практику не встречался с потребностью.
200 3037060
>>37056

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


Что за бред
Если у тебя программа упихана системным вызовами и постоянно проваливается в кернел спейс, это пиздец и очень плохо. Никто так не пишет (по возможности). Так что планировщик быстрее заберет управление у потока
201 3037065
>>37060

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



Что значит "постоянно"? Ты представляешь сколько успевает сделать программа между системными вызовами? Реальная программа.
1670451873160.png86 Кб, 1299x420
202 3037136
>>36852

> как понять, почему тебе вернулся нулл


> невозможно полнценно выразить в системе типов шарпа (пик 3)


Совсем кукухой поехал?
203 3037165
>>36852

>dict.Contains(key) + dict[key]


Откуда вы лезете, наркоманы? Где-то открылся портал с перлом?
Такое говно потом невозможно читать и хуй разберешь, что хотел сделать автор. То джуники напердолят абстрактных фабрик, то мамкины саентисты насрут монадами, а ты сидишь потом и разгребаешь эту шизу.
204 3037167
>>37035

>Asked 13 years, 8 months ago


Ты б еще про перфокарты нашел вопрос.
205 3037173
>>36939
Суть в том, что асинки работают медленнее пула потоков. Я проверял на сишарпе, на го и на расте через токио, везде асинки сосут. Чемпионом оказался го, там с горутинами показало на треть меньше рпс. Можешь сам проверить, а не вестись на пиздабольство маркетологов.
206 3037182
>>37173
Выложи результаты, чтобы перепроверить и понять в чем твоя ошибка. Так твое сообщение тонет в 100500+1 результате других подобных бенчей, которые заявляют обратное. Причем это не от компаний каких-то на рандомных сайтах, а просто на гитхабе люди тестируют.

А так ты просто Анон с двачей.
207 3037215
>>37182
Я не встречал бенчмарки, где асинки выдают больше рпс. Маркетологи напирают на экономию памяти, но тактично "забывают" указать, что, прежде чем закончится память, ты упрешься в производительность бд или в лимит подключений на сокетах.
В расте асинки тем более нахуй не нужны. Для системного программирования есть liburing, а прикладной код на расте никто писать не будет, язык не для этого. Чулочники придумали: если код на расте будет похож на код на нодежс, то раст станет таким же популярным, как нодежс. Шизофрения как есть. Лучше бы довели до ума стандартную библиотеку, а не как сейчас 100500 либ от разных авторов и все они нерабочие.
208 3037244
>>37173

>токио, горутины


Это неблокирующее ио с шедулером для smp, пул потоков - это чё вообще ты имеешь в виду?
209 3037275
>>37173

>маркетологов


Шиз не палится
210 3037277
>>37182
Он тебе ничего не выложит
211 3037289
>>37215
Если у тебя баунд по ИО, то асинки и тредпул должны показать примерно равную произвольность.
212 3037291
>>37173
Кей ворд асинк делает из функции корутину. Горутины это корутины на пуле потоков. Так что у тебя там медленнее работает
И вообще тебе даже в школе должны были рассказывать, что создавать на каждое соединение к веб сервису по потоку, который будет 1 к 1 к системному, это мертвый путь.
Короче ты вообще не понимаешь, что пишешь. Тебя однопоточной нодой трахнули когда-то и ты до сих пор тупишь в терминах
213 3037303
>>37215
Если ты сравнивал liburing с асинками на epoll, то ясен хер юринг будет быстрее. Они создавались для разного в разное время. Но фьюча - это просто стейт-машина, она к реализацию экзекутора вообще не привязана.
214 3037357
>>37289
>>37291
>>37303
Тем не менее, асинки самые медленные. Вангую, что это связано с памятью: когда процесс загружается на ядро, линукс загружает в кэш нужные страницы, такая себе оптимизация. А процесс с корутинами начинает ебать общую память через волатайл переменные, ведь ему надо прверить таски из общей очереди. Это мои предположения, глубоко я еще не разбирался.
215 3037388
>>36783
Шарп неплохой язык, платформа говно.

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

А ещё у нас есть .. для пропуска ненужных полей, бе-бе-бе.
Screenshot from 2024-02-06 13-20-23.webp31 Кб, 1124x602
216 3037393
Аноны, тут гугл решил очень серьёзно вложиться в раст, а именно в тему переписывания с плюсов.
Плюсовик в треде? Пусть порадуется с нами.

https://foundation.rust-lang.org/news/google-contributes-1m-to-rust-foundation-to-support-c-rust-interop-initiative/
217 3037396
Анончики, вы каким цветом чулки покупаете, когда собираетесь очередной хеллоу ворлд делать?
218 3037409
>>37388

>Шарп неплохой язык, платформа говно.


А можешь сказать почему платформа говно или ты просто повторяешь древние тейки пиздаболов джавистов?
219 3037417
>>37409
Джава тоже говно, но меньшее. Скажем, это мой опыт: если встречаю на гитхабе проект на .net , в 90% случаев на линухе хуй запустишь.
изображение.png809 Кб, 750x1000
220 3037425
221 3037426
>>37396
Обычно ебу шарпистов в чем прийдут. Они ребята взрослые, не бедствуют, могут и сами себя обеспечить тем, что им нравится.
222 3037435
>>37417
>>37417
Какой тебе проект "запустить" на Линуксе?
Для Winforms есть был Mono.
С напильником можно запустить.

Core проекты обычно запускаются без проблем, если программист не костылил платформозависимые фичи.
223 3037452
>>37435
Ну вот, например. Сейчас уже не актуально сагрил и убил бородатого кузнеца, сцук
https://github.com/MarkH221/DarkSoulsSaveEditor
image.png37 Кб, 677x535
224 3037458
>>37452

Это Winforms. Такое без труда собиралось в Monodevelop и работало под Linux, если устрановлены необходимые библиотеки.
225 3037459
>>37425
Уважаемо
226 3037503
>>37458

>Monodevelop


Спасибо, попробую как-нибудь. Но джава просто собирается mvn/gradle, хватает установленной jdk.
227 3037540
>>37393

> гугл


> плюсов


Гугл никогда не писал на нормальных плюсах, у них в гайдлайнах прям написано писать на си с классами.

> в тему переписывания с плюсов


Не вижу где это написано. Они вложились только в совместимость раста с плюсами, ни слова про то что собираются что-то переписывать. Более того, это какая-то частная инвестиция одного из владельцев гугла, а не бабла самого гугла, к разработке оно никакого отношения не имеет. Как обычно желтизну разводите, как уже было с "майки переходят на раст", а на деле там веб-макаки из субстрата что-то в облаках пердолят на микросервисах.
228 3037550
>>37540

>частная инвестиция одного из владельцев гугла


Ёр инглиш из ворст
229 3037636
Пиздец вы тут срач устроили, один про Фому другой про Ерёму.

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

по пунктам:

>>36939

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



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

>Ты походу вообще не понимаешь о чем говоришь.


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

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

>>36987

>Вут? Ядро будет прерывать и переключать выполнение физическими потоками системных потоков и тебя не спросит даже


вот этот все правильно говорит если под физическими потоками имеет в виду kernel threads а системными потоками = user space threads, но звучит все равно туговато

>>37003

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


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

>>37035

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


всё по фактам, да

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

>>37215

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



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

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

>>37291

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


>Короче ты вообще не понимаешь, что пишешь.



поддвачну

>>37357

>Тем не менее, асинки самые медленные


ой иди нахуй заебал уже, выложи хоть код на который ссылаешься
229 3037636
Пиздец вы тут срач устроили, один про Фому другой про Ерёму.

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

по пунктам:

>>36939

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



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

>Ты походу вообще не понимаешь о чем говоришь.


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

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

>>36987

>Вут? Ядро будет прерывать и переключать выполнение физическими потоками системных потоков и тебя не спросит даже


вот этот все правильно говорит если под физическими потоками имеет в виду kernel threads а системными потоками = user space threads, но звучит все равно туговато

>>37003

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


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

>>37035

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


всё по фактам, да

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

>>37215

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



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

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

>>37291

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


>Короче ты вообще не понимаешь, что пишешь.



поддвачну

>>37357

>Тем не менее, асинки самые медленные


ой иди нахуй заебал уже, выложи хоть код на который ссылаешься
230 3037646
>>37540

>Они вложились только в совместимость раста с плюсами, ни слова про то что собираются что-то переписывать.


Чел, ты...
В такие вещи вкладываются, чтобы постепенно переписывать существующий код.
231 3037650
>>37646

> постепенно переписывать существующий код


А при чём тут плюсы? Переписывать можно и джаву на ведре, для этого как раз и будет нужна interop между растом и крестами. Как будет нормальная инфа, так и приходи, не надо фантазировать.
232 3037710
>>37393
Пчел, 1лям это работа 9 топ программистов за год, но так как я не видел отчетов фонда раста, то скорее всего эти деньги уйдут на премию менеджерам и работу маркетинга.

да, по ссылке лям, а не лярд
233 3037720
>>37710
Ну, был бы у раста хуёвый фаундейшн с непрозрачным менеджментом, никто бы ничего не отсыпал. Тем более, что это не первая подачка от гугла, они знают, кому дают.

повёлся, повёлся, лох -))
16476376078490.jpg184 Кб, 640x370
234 3037723
>>37646
Мне думается, это прикормка на место в фонде. Это инвестиции на будущее, вдруг выстрелит и нужно будет залочиться на вендере.

С++ спец очень дорог в плане ресурсов и вопрос не в деньгах, а числе самих спецов и в том, что количество не увеличивается. Раст же предлагает идею, что можно посадить зумера и он начнет кодить как плюсовик 30+лет стажем, без сигфолтов.
236 3037873
>>37393

> а именно в тему переписывания с плюсов.


А как же карбон? Его ждать на кладбище? https://killedbygoogle.com/
237 3037874
>>37723

>пикрил


О, это же тот хуй, который малварь запихал в жсовский пакет, который по русским и беларусам пытался отработать. Ууууууу бля!
238 3037893
>>37873
Думаю, таки да, как и дарт. Смотри: игла в яйце, яйцо в утке, утка в раст в ядре линуха, ядро линуха в андроиде. Выстраивается очень красивая схема, когда один язык для всего - от низкоуровневой системщины до, возможно утилит и сервисов. Тащить в эту схему ещё и карбон, ну как-то не очень.
Вдобавок, гугл тоже не дурак и не рассчитывает тянуть проекты уровня языка с тулингом и репозиторием чисто на своём горбу, ему нужна поддержка сообщества. Карбон, в отличие от раста, особого энтузиазма не вызвал, поэтому вот.
239 3037916
>>37893

> Карбон, в отличие от раста, особого энтузиазма не вызвал, поэтому вот.


Лол если честно то я на него не смотрел как раз по причине того что гугл любит внезапно и без объяснения причин закрывать свои проекты. Тоже самое и с дартом, как то он особо энтузиазма не вызвал
240 3037958
>>37916

> гугл любит внезапно и без объяснения причин закрывать свои проекты


Ну, почему же, логика у него есть. Го взлетел как раз потому, что сообщество его приняло на ура - очень не хватало простого конпелируемого языка для веб-макак. А что никому не нужно, то он закрывает. Хотя, мог бы отдать в какой-нибудь фаундейшон и ебитесь, мол, сами, как хотите.
241 3038381
>>37958
Логика может и есть, только вот закрытие продуктов происходит внезапно и почти всегда без объяснения причин, из-за этого у гугла соответствующая репутация. С го насколько помню там помимо гугла ещё и другие участники были и целая история с plan 9 и какой-то операционкой
242 3038587
>>37874
Хз, был пик, чем история закончилась? Наказали или теперь малварить норм в штатах?
243 3038588
>>37873
У гугла странный подход к своим проектам, эти самые проекты не являются какой-то общей идеей, а просто работа какой-то небольшой команды, мол, глядишь случиться чудо и выстрелит.
На примере дарта, как можно было пилить замену js без гарантии, что потом vm дарта не будет встроена в хром? Сейчас же дарт и флаттер вообще конкурирует с котлином, который в самом же гугле и приняли как основной язык. То есть, зачем вставлять палки в колеса для своего же проекта?

Проект карбон, а точнее язык с полным интеропом плюсов и еще удобнее чем плюсы (чтобы был резон их брать), это мега трудная задача требующая тонну ресов и объединение чуть ли не всего гугла. В итоге они там опубликовали дорожную карту и выяснилось, у этих ребят тамвсе очень медленно идет. А в условиях отсутствия стороннего наблюдателя, получиться какая-то экзотика в дизайне как у го (они там и так вдохновились стрелками из раста, ведь рисовать стрелочки буковками - это так весело).
244 3038614
>>37893

> как и дарт


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

> раст в ядре линуха


Ну пока поддержка просто номинальная, по факту его там нет.

> ядро линуха в андроиде


И линукс с запозданием приходит в ведро. Обратную совместимость с большинством устройств кто будет делать? В ведре так-то много лет проходит перед перекатом куда-то. Даже на котлин лет 5 катились, хотя не было таких проблем с обратной совместимостью как будет у раста.
245 3038715
>>38614

>давно ушёл от гугла


Далеко ли ушёл? Покажи их фаундейшн и счёт для донатов. Вообще я в него не-ве-рю. Он, по факту, прибит к флаттеру, как руби к рельсам. Расползаться в стороны ему некуда - на бэке поджимает го, на фронте жс поскакал в светлое будущее ES6/7/8/9
Гугл плюнет и дарт сдохнет. Китайцы за своим фаерволлом смогут только поддерживать унылый форк для внутреннего рынка, будет как хуавэй, который вроде жив, но на который всему миру похуй.

>линукс с запозданием приходит в ведро


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

>по факту его там нет


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

То есть, гугл собрался писать на расте ядерную часть андроида плюс разные прочие вещи, для которых раньше использовался С++. Карбон в схему ну не вписывается.
246 3038800
>>38715

> прибит к флаттеру


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

> там


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

> запустили спутник


А ещё под спутники пишут на Аде, давай тогда на неё пересаживаться.

> То есть


То есть ты фантазируешь на ровном месте, выдавая необоснованные выводы за свершившуюся реальность.
247 3038868
>>38800

>Рынок мобилок такой


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

>Там это где? В гите?


https://github.com/torvalds/linux/blob/master/drivers/android/binder.c
пока он на си, скоро будет на расте. Тебе этого мало? Да, этот модуль используется только при конпеляции с поддержкой андроида, но это прям мэйнлайн, то есть, гарантирует поддержку раста в ядре при настойчивой поддержке гугла.

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


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

>А ещё под спутники пишут на Аде


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

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

>Вчера она на жабе, сегодня на дарте, завтра на котлине.


> Позовчера она на жабе, вчера на дарете, сегодня на дарте, завтра обратно на котлине.


Поправил) Не знаю почему, но многие после дарта уходят обратно на котлин
249 3038981
>>38868

> Или что, хочешь сказать, что сяюми с сосунгом


Я хочу сказать что они не будут писать две разные реализации - с растом и без. Для мобилок норма что они ещё 2-3 года получают обновы наравне с текущими моделями. Ну ок, 3-4 года после того как реально начнут массово писать на расте в ядре - это самый реалестичный вариант когда в продакшене раст на мобилках появится.
Screenshot from 2024-02-07 14-22-59.webp19 Кб, 1124x602
250 3039006
>>38981

>в продакшене раст на мобилках появится


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

идём дальше

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 ведроида. Биндер ещё не переписали, но системную обвязку уже. Необязательно начинать с ядра, оказывается. Красивая схема раст в яйце, яйцо в утке, утка в ядре, в которой нет места карбону, таки вырисовывается, но не обязательно в последовательности снизу вверх.

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

> memory safe language


Это не обязательно раст, это жвм в первую очередь.

> но системную обвязку уже


Показать можешь в исходниках, лол? Пикрилейтед из текущих исходников AOSP.
Пик 1, ядро 6.7 - ни строчки на расте.
Пик 2, системные либы - на расте обёртки над куском внешнего API, 7 файлов, 1000 строк кода, ни одной строчки работающего кода.
Пик 3, SDK - ни строчки на расте.
Пик 4, основной код ведра - ни строчки на расте.
252 3039140
>>39090
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 ведра почти весь новый системный код пишут на расте
253 3039190
>>39140

> Android Virtualization Framework


А при чём он тут? Это даже не часть ОС ведра, не говоря уже про ядро. То речь про ядро была, то вдруг ты наскребаешь какое-то непонятное говно лишь бы показать 500 файликов.
254 3039257
>>39190

>Это даже не часть ОС ведра


а што эта, по-твоему? Што такое ОС, по-твоему?

>То речь про ядро была


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

>лишь бы показать 500 файликов.


на расте vs 790 на сишке/++ - тебе это соотношение кажется недостаточно убедительным?

маня, ну ты просто серишь. Напомню, изначально речь шла не о том, что весь андроид уже переписан на расте - что ты почему-то пытаешься оспаривать (впрочем, не особо успешно), а о том, что карбон не нужен и гугл его, видимо, скоро закопает в пользу раста.
255 3039317
>>37636

>ой иди нахуй заебал уже, выложи хоть код на который ссылаешься


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

Мимо-зоонаблюдатель
256 3039319
>>37646

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


Зачем переписывать то, что работает?
257 3039334
>>39317
Но ведь я писал асинки и виртуальные треды в вм, как я могу не знать, как они устроены
258 3039374
>>39317
Долбоеб ты а не зоонаблюдатель.
Могу написать асинк хеллоу ворлд и сравнить его с тред пульным продюсер консбмером файл батч процессором. Потом серить везде что асинк быстрее. Понятно тебе все?
259 3039394
>>39257

> а што эта, по-твоему?


Это виртуалька для запуска ведра, в андроид студии оно как раз используется. Ты траллишь тупостью, да? Зайди в репу AOSP, из которой этот самый андроид собирается и покажи мне код на расте.

> а о том, что карбон не нужен и гугл его, видимо, скоро закопает в пользу раста


Речь изначально была о том что раст вот прям уже скоро будет переписывать кресты, потом ты высрал что УЖЕ переписывает. Что фактически бред полнейший.
260 3039397
>>39334
>>39374
Продолжаю зоонаблюдать.
261 3039401
>>39394

>Это виртуалька для запуска ведра


Пиздос, блять. Это AVD, а не AVF

AVF, это часть ОС, она вот прям в самой мобилке. И Bluetooth стек уже переписан на расте, по крайней мере в 14~15 ведре.
262 3039413
>>39317
ты чё тут серишь, шизик? блокирующий ИО является проблемой как в синхронных так в асинхронных системах, чё ты сказать-то хотел мудила? Кто там где сравнивает тред пулы с ИО блокировкой? Выйди из-за комплюктера пробздись на улицу, а то уже в глаза ебёшься.
263 3039414
>>39140

>зайди в любую диру, почти все на расте


Посмотрел исходники, педерастраст - многословная параша (из-за свистелок и перделок), тупо кал. Эти проекты точно закопают, ебало додиков, которым придётся потом это поддерживать.
264 3039416
>>39413

>не мочь в чтение в 2к24


Тупо животное.
265 3039417
>>39416

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


ты хуже залупного герписа, пиздуй с двощей уёбок
266 3039420
>>39417
Зоонаблюдение продолжается.
267 3039422
>>39417

>Если бы был тупо луп с дерганьем шедулера (как уж он там устроен это дело второе)



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

>и вывозом неблокирующих функций


вызови мне неблокирующий HTTP запрос маня своим "лупом" дернув "шедулер" за анус
268 3039424
269 3039425
>>39420
Молодец, продуктивно проводишь время, ещё двадцать раз напиши а потом выдай себе премию "ебанат года" LOL
1577594139806.png39 Кб, 850x442
270 3039426
>>39257

> а што эта, по-твоему? Што такое ОС, по-твоему?


Непонятно используется ли этот avf на практике, ходит ли туда кто-нибудь в системе, или просто лежит параллельно, как секьюрная возможность
1570542515980.png41 Кб, 958x463
271 3039429
>>39401
Ты дебил, блять? 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.

272 3039431
>>39422

>Ты хочешь заебашить бизи вейтинг и еще "шедулер дергать"?


>вызови мне неблокирующий HTTP запрос маня своим "лупом" дернув "шедулер"


Делаешь кучу сахара @ быдло высирается в интернете с ебалом иксперда. Во поэтому всякие асинки и зло.
273 3039434
>>39426

> AVF is shipped in Pixel 6 and 6 Pro, but isn't enabled by default. To enable it, follow the instructions below:


А ну оно по дефолту выключено. Короче это ещё пока всё в процессе наработки
274 3039436
>>39429
И что? Это работает (если включить) внутри телефона, это часть операционки
275 3039437
>>39431
поясни?

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

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

В расте я пока новичок, не особо понимаю чё там за асинки вообще и как они работают под капотом(пишу хеллоу консольные)
276 3039438
>>39437

>на уровень ниже


поправил себя
277 3039443
>>39437
Всякий сахар уровня асинков способствуют развитию магического мышления и в этом совершенно нет необходимости, когда речь заходит про ио. Дополнительно с этим возникает негативный эффект - армия хомяков начинает сувать эти асинки в жопу, т.е. применять там, где это не нужно, и тп.
278 3039444
>>39436

> Это работает (если включить) внутри телефона


Нет. Ты для начала должен иметь железо, которое поддерживает pKVM, потом поставить pKVM и только потом ставить на него инстансы микродроида. Т.е. это не часть ОС, это виртуалка в ведре для запуска микродроидов. По умолчанию в ведре нет этого, а поддержка pKVM на текущий момент у полутора девайсов.
279 3039454
>>39443
Двачую. Асинки должны использоваться только если нет многопоточности. В вебе их используют только потому что жс и нода однопоточные. А использовать их в низкоуровневом языке - быть адептом ГОвна. Даже в жвм асинхронные кортутины не сильно в почёте, а на нормальном языке в принципе должно быть зашквар использовать их во все стороны просто потому что не умеешь работать с IO.
280 3039460
>>39444
Что за верчение жопой, лол. Собирается вместе с аоспом, ставится на телефон вместе с аоспом, буквально написано, что в Андроиде 14 оно есть по дефолту, хоть и не включено.
На каких девайсах это работает мы, кстати, не знаем, потому что хз как другие вендоры используют это или не используют, разрабы аоспа только на пикселях тестят

> Т.е. это не часть ОС, это виртуалка в ведре для запуска микродроидов


Что за логика
Это виртуалка внутри оси, чтобы секьюрно компилировать приложухи. По сути песочница. Для выполнения js кода, пролетающего от браузера, в андроиде тоже есть песочница. V8 это тоже уже не часть оси? Бред не пиши
281 3039480
>>39454

>Двачую. Асинки должны использоваться только если нет многопоточности.



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

Давай развёрнуто, а то я нихуя не понял.
282 3039506
>>39480

> Это просто такой выбор абстракции по сути.


И просто способ спустить производительность в унитаз.
283 3039514
>>39454

>зашквар использовать их во все стороны просто потому что не умеешь работать с IO


У тебя переносимость отвалилась, братан. Работай с IO на низком уровне сколько угодно, но зачем мучить жопу, если можно использовать общие наработки, делая вещи проще и переносимее? Например, для любителей uring есть https://github.com/tokio-rs/tokio-uring и https://github.com/bytedance/monoio - подключай и используй.
А если очень хочешь выебнуться низкоуровневостью, то пиши сразу в двоичных кодах.
284 3039515
>>39460

> буквально написано, что в Андроиде 14 оно есть по дефолту


Где написано, шизоид? Найди это говно в исходниках AOSP, лол. Что там у пикселей для разработчиков напихано никого не ебёт, да и то на пикселях нет pKVM из коробки, это просто факт.
285 3039517
>>39480

>заебашить треды


Дорого выходит.
286 3039520
>>39480
В джаваскрипте один поток. Когда делали жс, никто подумать не мог, что ебанаты через 30 лет будут писать на этом скрипте полноценные программы, а не просто показывать плашку по нажатию кнопки. Никто там ничего не переключает, просто в точке async код возвращает выполнение в вызывающий метод, а при повторном вызове продолжается с того же места. Это не переключение потоков по прерыванию, там пока один не дойдет до асинка, остальные стоят и ждут. Почему нельзя было просто сделать для нодежс виртуальную машину с многопоточностью - непонятно, у них там своя ебанутая атмосфера.
287 3039526
>>39515

>Найди это говно в исходниках AOSP


https://android.googlesource.com/platform/packages/modules/Virtualization/

Целый день всем тредом кормим шиза говном, даже надоело
288 3039527
>>39514
Какая переносимость? В 2024 году сервера бегут на линуксе.
289 3039530
>>39517
Дорого если на каждый запрос создавать новый процесс. Никто не мешает сразу нафоркать 1024 процесса и повесить их на один сокет, а дальше линукс сам сделает лоад балансинг.
290 3039544
>>39527

>В 2024 году сервера бегут на линуксе


А в 2025 придумают новую хуйню для асинхронного доступа к ресурсам. Этому самому uring без году неделя. Что легче - раз в 3-5 лет полностью код переписывать или рантайм сменить в пару строк?

>>39530

>Никто не мешает сразу нафоркать 1024 процесса и повесить их на один сокет, а дальше линукс сам сделает лоад балансинг.


на асинках ты можешь буквально 100500 коннектов держать, а на тредах будешь послан.
291 3039551
>>39520
Я все равно не понимаю че ты бомбишь, это просто архитектурное решение. В ноде не 1 тред. В ноде single threaded event pool, который когда лочится - берет тред из тредпула и отдает ему управление, а сам переходит к следующей таске из очереди.

https://www.digitalocean.com/community/tutorials/node-js-architecture-single-threaded-event-loop
292 3039554
>>39544

>на асинках ты можешь буквально 100500 коннектов держать, а на тредах будешь послан.


Чего вдруг? Количество конектов не зависит от количества тредов.
293 3039558
>>39514

> делая вещи проще и переносимее


Это не про асинхронность. Асинхронность усложняет код и вызывает баги из-за неявного control flow.
294 3039561
>>39526
Ты всё продолжаешь траллить тупостью? Зайди в репу AOSP, а не ищи опциональные модули.
295 3039569
>>39561
https://source.android.com/docs/setup/download/downloading
и там ссылки на https://android.googlesource.com/platform/

хуль те надо, долбоёбина? Хочешь сказать, что вот это https://android.googlesource.com/platform/packages/modules/Telephony/ - тоже не часть AOSP ? Ведь это тоже модуль. Пиздец, чувак, ну у тебя и манёвры, как спишь по ночам-то с таким неприятием реальности?
296 3039574
>>39558

>баги из-за неявного control flow


Как мне видится, скорее проблема рантайма. Допилят / отполируют, не сцы, всё будет.
297 3039614
>>39569
Какой же ты долбаёб. В ведре модули надо отдельно тянуть через пакетменеджер 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 или пиздуй нахуй с своим толстым троллингом.
298 3039640
>>39574

> Как мне видится


Без разницы какой рантайм, у тебя всё равно выполнение прерывается и возвращается обратно в неизвестный кодеру момент. Ты это никак не пофиксишь, потому что это сама суть асинхронности.
Ну и наличие какого-то рантайма там где его могло бы и не быть - это лишние прослойки, усложняющие код и дающие оверхед.
В бсд челики ещё жаловались на "заразность" этого говна - довольно пердольно использовать асинхронную либу, когда ты сам не используешь в коде асинхронность, т.е. оно вынуждает делать асинхронным всё.
299 3039681
>>39574
А тебя не кажется странным, что асинхронщина не прижилась полноценно нигде кроме жс? В шарпе очень удобная асинхронщина уже больше 10 лет есть, но открываешь любой свежий проект, даже веб, и там нет её. В джаве тоже почти никто не пишет на ней. Только в котлине её используют, но там она и выглядит не так как у всех, слишком высокоуровнево. В плюсах она появилась, но тоже полнейшая тишина, насколько я знаю её используют только в однопоточных микроконтроллерах.
Я когда-то у ГОвнарей сидел и читал много ахуительных историй про то как чтобы выучить язык надо две недели, а чтобы научиться уверенно разбираться в каше горутин большого проекта и оно работало без багов - 5+ лет.
300 3039697
>>39614

>модули надо отдельно тянуть через пакетменеджер 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
301 3039706
>>39640

>у тебя всё равно выполнение прерывается и возвращается обратно в неизвестный кодеру момент



по-моему, это может стать проблемой, только при flavor="current_thread" + тяжёлые вычисления в потоках. Ну или приведи реальный кейс.
302 3039707
>>39614

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


Найс троллинг, как раз ты и не скачивал аосп ни разу. Аосп это множество (больше тыщи насколько я помню) гит репозиториев, которые менеджатся через repo и манифест, который показывает куда какой репозиторий скачивать. И какой нах гитхаб, аосп через геррит ревьювится.
Скачай по инструкции и все платформ аппы и модули там будут: https://source.android.com/docs/setup/download/downloading

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

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

Мимо разрабатывал Хармони в РФ Хуавее. Бтв уверен тут много коллег сидят
303 3039727
>>39681
Не буду спорить, но тут есть выбор. Асинхрон в расте почти безальтернативен только при работе с http/websocket. Да и то, возможно есть синхронные варианты, я их не искал.
304 3039939
>>39697
>>39707
Я даже кинул инструкцию от гугла по AVF, где чётко написано что после сборки AOSP ставится отдельный пакет, а ты продолжаешь траллить тупостью?
305 3040033
>>39939

Цитирую тебя же
>>39614

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



всё, обоссан, уёбывай.
306 3040115
>>40033
Ты только себе на лицо нассал, растошиз. AVF в отдельной репе лежит.
307 3040131
>>39681

>асинхронщина не прижилась полноценно нигде


В Си прижилась.
17068809802360.png283 Кб, 1592x1703
308 3040153
РЯЯЯ АНСЕЙФТ!
309 3040155
>>40115
См. пик. Любишь унижения? Продолжаем.

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
Screenshot from 2024-02-08 11-10-02.webp44 Кб, 845x868
310 3040158
>>40115
Вот, держи ещё.

>binder


>AOSP

311 3040198
>>40155
Молодец, спустя два дня наконец нашёл модуль, который включен по умолчанию везде, но всё равно обосрался.

> См. пик.


Тебе видимо самому надо глаза с мылом мыть, потому что внешние модули ставятся питон-скриптами или через пакет-менеджер при сборке. Ты зачем-то притащил скрины репы ведра, но там очевидно нет этого модуля. Ты бы хоть чекал перед тем как писать. Алсо, заебал в Code search рыться, там собрано вообще всё, в том числе и внешние модули. Склонируй уже репу AOSP и не позорься, это 5 минут времени.
>>40158

> выделяет копирайт


Тут даже комментировать не надо.
312 3040274
>>40198
Вот ты ебанько, а. Давай тезисно.

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

Если да, ну поспорь. Если нет, то вот это что, по-твоему:
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
Зеркалом на гитхабе можешь подтереться, его там нет.
313 3040284
>>40274

> его там нет


С него AOSP на кастомках собирают, клован.
314 3040294
>>40284
И что, вот прям без 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/ , который частично уже на расте

Не устал обсираться, мань?
1701048672904.png271 Кб, 2420x2160
315 3040458
>>40294

> Давай проверим


Давай. ГОвна в 10 раз больше, чем раста, лол. Откуда оно там вообще, блять?
Screenshot from 2024-02-08 17-16-35.webp20 Кб, 893x442
316 3040505
>>40458
Да там, походу, сорцы всего говна в external.
Посчитай всё, что кроме
317 3040640
>>40198

> AVF в отдельной репе лежит.


> Склонируй уже репу AOSP и не позорься, это 5 минут времени.


Ну я склонировал, всё есть. Хз откуда ты правда 5 минут взял, если учитывать, что сорсы 161G весят без блобов.
На ночь поставлю cloc - посмотрим сколько там раст строк от общего числа
318 3040796
>>40640

>161G


Используй repo --depth , Luke
319 3040804
>>40640

>cloc


Не забудь исключить обвязку. Те же исходники go, которые там за каким-то лешим присутствуют https://cs.android.com/android/platform/superproject/main/+/main:prebuilts/go/linux-x86/
Ну и от раста там тоже дохрена сторонних крейтов, видать, что-то типа кеша на случай leftpad, лул.
320 3041206
>>40796
Без истории там все равно достаточно много 60-70гб

>>40804
Ты "обвязку" никак не отключишь все равно. Аосп это 1300+ репозиториев, в том числе многие из них опенсоурсные а-ля ядро линукс. Так сделано, потому что приходится вносить патчи и в них.
Так что чисто код, написанный разрабами аоспа, никак не посмотреть. Мб если только через гит блейм по комитам не идти и не фильтровать хз как откуда разраб
image.png1,3 Мб, 1280x720
321 3041565
Только хотел начать учить раст, и увидев снова хеллоу ворд, вспомнил про макросы и чет все желание упало.
322 3041566
>>41565
Можно в макросах реализовать сишку и писать на ней. Будешь говорить всем что ты растовик и при этом будешь писать на нормальном ЯП.
323 3041591
>>41565
Поясни?
Че все так макро боятся?
Я щас посмотрел код, хз, вроде обычный кодогенератор. Понятно что с лисп макросами не сравнить, но тем не менее.
324 3041754
>>41591
То что в них может любая магия происходить и отдебажить баг в макросе даже Аллах не осилит. В тех же крестах макросы это антипаттерн.
325 3041821
>>41754

>В тех же крестах макросы это антипаттерн.


Ты говоришь о макросах препроцессора, это другое.
Шаблоны же, которые больше походят на макросистему, в крестах используются повсеместно.
326 3041867
>>41566
Тотальная магия
Сложно читать и сопровождать
Сложно дебажить
Долго компилить
Кодогенарацию можно сделать проще.
327 3041890
>>41867
с любыми макросами так, но макро/рефлексия неотъемлемая часть любого языка
328 3041942
Посмотрел видос, эти ппц, чтобы присвоить простое значение для ссылки в структуре нужно какой-то дереф, потом Rc<RefCell<>>, а потом какой-то refmut возвращается, жесть костыли на костыле, это точно самый любимый язык?
https://www.youtube.com/watch?v=Fqnwj04CQX4

после этого Го не выглядит таким говном
329 3041944
>>41942
Ах да, RefCell еще проверяется в рантайме, а не компайлтайме.
330 3041950
>>41867

>Тотальная магия


>Сложно читать и сопровождать


>Сложно дебажить


>Долго компилить


ПТСР от крестошаблонов? Потому что ты перечислил проблемы крестов.
А у раста не самая плохая макросистема.

>Кодогенарацию можно сделать проще.


Можно, но это тебе не лисп.
>>41890

>но макро/рефлексия неотъемлемая часть любого языка


Щито?
331 3041957
>>41950
Шиз, я не спорю чье говно лучше, что ты возбудился. Меня спросили, я ответил. Даже нормальные растеры не отрицают проблему макросов.
332 3041964
>>41942
Ты просто долбоёб, самый настоящий eblanus vulgaris. Твой случай не уникальный.

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

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

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

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

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

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



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

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

Говно у тебя в голове, болезный.
333 3041971
Да ебаные вы кочегары, заебало читать ваши высеры о том какой он пиздатый или какой он конченый
334 3041974
>>41950

>но макро/рефлексия неотъемлемая часть любого языка


>Щито?



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

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

Если хочешь максимально тупой язык, чтобы тебя ограничивали во всём и ничего там не было лишнего - пиздуй в гоу, там только 1 го вей как можно писать правильно. но вообще даже там есть рефлексия
335 3041975
>>41964

>Самый лучше и самый нужный, линукс перепишем!


пять минут спустя

>Что вы ноете? Не нравится есть говно, не ешьте, что вы приходите и ноете.



Я понял, спасибо.
336 3041976
>>41974
Да-да, долбаебы обвешаются тысячами самописных макросов, а потом оракл или перл не могут переработать, потому что заебешься переделывать говномакросы, которые удобны, ага?
337 3041978
>>41964

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



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

Пофиксил себя, макаба съела звездочки
338 3041980
>>41976
ты чё тут про перл вспомнил-то? Там без макросов минус ебало, это как раз антипример

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

Раст в принципе сложный язык, как по твоему там должны выглядеть макросы? Или ты считаешь, что их там не должно вообще быть только потмоу что они "сложные" для тебя?
339 3041983
>>41975
Да-да, уёбывай давай, отличную аналогию придумал, очень остроумно

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

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



А линукс безусловно будут дописывать на расте переписать его вряд ли получится. Потмоу что раст безопаснее и предсказуемее сишки и крестов для большей части аудитории, которая наигралась в это дерьмо в сосничестве и не прикасалась к нему никогда больше.
340 3041992
>>41980

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


А ты любишь пощекотать себе анус, любитель макросов
341 3041994
342 3041995
>>41992
если хочешь могу и тебе пощекотать.
по делу есть что сказать?
343 3041996
Сколько нужно ОЗУ и места на диске, для сборки средних проектов? Насколько разработка требовательна к железу?
344 3041999
>>41996
Гигов 5 на сборку зависимостей на диске. ОЗУ должно быть поебать если в один поток собираешь.
345 3042014
>>41974
О чем ты, школьник? В куче языков нет и намёка на интроспекцию и макросы.
346 3042015
>>41957

>Меня спросили, я ответил.


Мог бы честно сказать, что просто не знаешь или не осилил.
347 3042021
>>42014

>интроспекция


Во-первых, интроспекция != рефлексия, хоть часто и применяется в одном контексте.

Во-вторых, вот и пиздуй пиши на них, чё там на вскидку? Фортран, кобол, чистый асм, наверное ещё паскаль (но тут неуверен). Флаг в руки и пиздуй, даун. Надеюсь ты найдёшь там своё счастье.
348 3042044
>>41950
У крестов нет проблем.
Проблемы у тех, кто на них пишет
349 3042080
>>41950

> крестошаблонов


> проблемы крестов


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

> у раста не самая плохая макросистема


И чем она отличается от сишных макросов? Только тем что унифицированы имена через ! и оно не протекает как min/max в сишке? Всё так же нет никакой стандартизации синтаксиса внутри макроса и там может быть хоть код SQL, всё так же невозможно дебажить их. Как было говно, так и осталось в расте.
350 3042137
>>42080

>дебажить макросы


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

>макросы в си не отличаются от раста


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

в расте макросы понимают АСТ и работают с токенами, могут генерировать код, а не просто заменять текст
351 3042183
>>42137

> понимают АСТ и работают с токенами


В чём принципиальная разница для тех кто потом использует их? Больше магии внутри - это наоборот хуже.
352 3042247
>>42183
Никакой, но писать и сапортить безопаснее. Иди нахуй короче, зачем я тебе это объясняю если ты своей бошкой допереть не можешь. Спроси еще зачем обувь снимать когда заходишь домой если все равно потом убираться.
353 3042253
>>42247

> безопаснее


Что за болезнь? Уже втыкаете это слово даже туда где ему не место.
354 3042256
>>42253
Жаль твоя мама его не знала, иначе бы обязательно натянула своему юбарю гандон и ты в итоге тут не серил бы
355 3042267
>>42021
А теперь возвращаемся к тому, с чего начали

>но макро/рефлексия неотъемлемая часть любого языка


ЩИТО БЛЯТЬ?
356 3042269
>>42247

> растошиз рассказывает как срать макросами безопасно


Пока что лучший высер дня.
357 3042387
>>42267
Перечитай тред пиздоглазый
358 3042388
>>42269
Я рад что тебе понравилось
359 3042496
Лиспопетух порвался, какая трагедия.
360 3042505
Лиспопе^H^Hэлита в треде, задавайте свои ответы.

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

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

Ева Борисовна – ЛИСПОПЕТУШОК,замаскировавшийся под нормального человека.
ЛИСПОПЕТУШОК сразу же заметил что я его раскусил и набросился на меня. Я еле увернулся от его ручищ и сразу же выбежал из кабинета. ЛИСПОПЕТУШОК бросился в погоню, сметя все на своем пути. Я побежал к выходу, ЛИСПОПЕТУШОК бежал за мной. Он сбил уборщицу, и она полетела как exeption в моих программах. Я выбежал на улицу и побежал к перекрестку. Пока я соображал как перейти дорогу чтобы не удариться об машину, ЛИСПОПЕТУШОК просто перескакивал через них. Водители бросились разъезжаться в разные стороны дабы не столкнуться с ЛИСПОПЕТУШКОМ. Он нагонял меня. У меня не было выбора кроме как спрятаться в ближайшем здании. Это был детский сад. Я уже забежал в само здание садика, как ЛИСПОПЕТУШОК ворвался в него, проломив стену. Нескольких детишек он раскидал своими кривыми руками, а каких-то придавил мерзким дыханием. Но эти детишки спасли мне жизнь. ЛИСПОПЕТУШОК с каждым прыжком ко мне пробирался все ближе. Я воспользовался тем драгоценным временем, которое мне подарили эти детишки, и запрыгнул на лестницу. Оттуда по трубе я мог добраться до дерева, и уже оттуда мог залезть на крышу детского сада. Возможно, там я бы смог запросить помощи у вертолета, пролетающего мимо.
360 3042505
Лиспопе^H^Hэлита в треде, задавайте свои ответы.

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

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

Ева Борисовна – ЛИСПОПЕТУШОК,замаскировавшийся под нормального человека.
ЛИСПОПЕТУШОК сразу же заметил что я его раскусил и набросился на меня. Я еле увернулся от его ручищ и сразу же выбежал из кабинета. ЛИСПОПЕТУШОК бросился в погоню, сметя все на своем пути. Я побежал к выходу, ЛИСПОПЕТУШОК бежал за мной. Он сбил уборщицу, и она полетела как exeption в моих программах. Я выбежал на улицу и побежал к перекрестку. Пока я соображал как перейти дорогу чтобы не удариться об машину, ЛИСПОПЕТУШОК просто перескакивал через них. Водители бросились разъезжаться в разные стороны дабы не столкнуться с ЛИСПОПЕТУШКОМ. Он нагонял меня. У меня не было выбора кроме как спрятаться в ближайшем здании. Это был детский сад. Я уже забежал в само здание садика, как ЛИСПОПЕТУШОК ворвался в него, проломив стену. Нескольких детишек он раскидал своими кривыми руками, а каких-то придавил мерзким дыханием. Но эти детишки спасли мне жизнь. ЛИСПОПЕТУШОК с каждым прыжком ко мне пробирался все ближе. Я воспользовался тем драгоценным временем, которое мне подарили эти детишки, и запрыгнул на лестницу. Оттуда по трубе я мог добраться до дерева, и уже оттуда мог залезть на крышу детского сада. Возможно, там я бы смог запросить помощи у вертолета, пролетающего мимо.
изображение.png99 Кб, 480x270
361 3042545
362 3042640
>>42545

>К сожалению, нативной реализации библиотек yt-dlp и FFmpeg для Rust нет


>Код пишется довольно медленно,


Мыши плакали, кололись, но продолжали грызть кактус

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


Обязательная часть при заказе статьи? Что за слащавый маркетинг пошел? Волосы шелковистее не стали?
image.png133 Кб, 1029x849
363 3042644
>>42545
Лол
364 3042647
>>42545

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



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

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

Что не так с деврелами? То недавно переписывает ядро винды, хотя там вообще не мягкие и вообще не ядро, то эта статья?
367 3042658
>>42655
А нахуя читать что то с wc ру?
368 3042667
>>42658
Покушать же принесли.
369 3042705
>>42655
Чулочники просто ебанутые. Там неиронично диагноз по шизе, they/them и самовыпил в 30.
Я немного пописал на расте и мне эта хуйня очень не понравилась. Документации нет, надо лазить по исходникам и там в комментариях искать примеры. Весь код или засран Box dyn Error, или ехал unwrap через unwrap. Шиза с владением - это просто за гранью разума, в программе на сотню строк я и сам уберу мусор, особенно, когда его нет.
370 3042712
>>42640
Скуф пиздуй отсюда со своими шутками из прошлого столетия
371 3042714
>>42705

>документации нет


Да ты охуел
372 3042717
>>42705

> Шиза с владением


Немного попердолился и всё работает без фиксов мемориликов и сегфлолтов в будущем. Не понимаю проблемы. Или просто сложно? Ну извините, уебывай назад в питон.
373 3042722
>>42714
Но ведь всё верно пишет. Автогенерация списка API - это с трудом тянет на документацию. Я вот недавно с hickory-dns связался, так там вообще нихуя нет, сам блять разбирайся как использовать их либу, куча каких-то структур, нихуя не понятно как всё это говно связано и какие методы что делают. Ни примеров, и доков - хули ебало скривил, код же безопасный, а на остальное забить можно. Причём на docs.rs есть кусок примера, но в гите таких структур в принципе нет что они в примере используют, ахуеть теперь. Я в итоге взял первую попавшуюся сишную либу с 20-ю процедурами и сделал хуяк-хуяк всё - там всё сразу понятно было.
374 3042728
>>42722
А раст тут причем? Я в скале тоже охуеваю от отсутствия доков к некоторым библиотекам.
В самом расте шикарная документация.
375 3042769
>>42722
Это проблема опенсорса в целом, в руби также ебался
376 3042782
>>42712
Ты о чем, маленький?
377 3042785
>>42728
>>42769
Это не проблема опенсорса, это проблема экзотических перделок, хайпанули тут, хайпанули там, надоело, побежали в следующий проект.
378 3042801
>>42785
Ну сходи на npm там тоже охуеешь от объема документации у некоторых библиотек
379 3042857
>>42655
Там написано, что раньше всё делало приложение, а теперь добавился сервер. Ты просто читать не умеешь.
380 3042872
>>42801
Аргументы типа - сходи в интернет и сам найди что кто-то неправ, такое себе.
381 3042877
>>42857
Его спросили как он добился снижения размера с 90мб до 10мб, он сказал что вытащили видео-дробилку с клиента на сервер.
То есть, раст там вообще не причем, но статья завуалированно намекает на достижения раста.
382 3042926
>>42872
Ты студент? Вот когда пару лет поработаешь и столкнешься с опенсоросом, то увидишь что часто с библиотеками бывает плохо если туда не вписываются какие-нибудь спонсоры. Я с таким на разных языках сталкивался
383 3042945
>>42926
Ну раз у тебя столько опыта, то наверное можешь не трепаться языком, а взять и показать пример где у топ языков и топ либ проблемы с доками?
изображение.png29 Кб, 948x205
384 3042963
>>42945

>не трепаться языком


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

>топ либ


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

покромил
385 3042964
>>42705

>Box dyn Error


Так делают только вкатуны
386 3042968
>>42877
Нет, достижения у раста всё же есть.
Низкое потребление ресурсов и скорость.
Если бы я написал этот сервис на Python'e или жаве,то не вывес бы расходы на содержание облака.

мимо автор статьи
387 3042998
>>42968

>Низкое потребление ресурсов и скорость.


Ты вроде как сказал что дергаешь через консоль нужную команду?

>Если бы я написал этот сервис на Python'e или жаве


Вот когда напишешь тогда и приноси.
Хотя не нужно, ты скорее всего не понимаешь как резервируется память в этих жабо/шарпах.
Епись теперь на расте, особенно когда придется расти и нанимать кодера, тогда прочувствуешь всю оптимизацию раста.
388 3043003
>>42963

>Кококо, у меня столько опыта, всех переопычаю.


>Так покажи


>Пук среньк


Я все понял, молодец, возьми конфетку с полки.
389 3043046
>>43003
Ты зачем обосрался?
390 3043137
>>43003
Хватит серить
391 3043975
Что за проблема в асинках? Мечусь межу го или растом, пока не могу определиться, нужна хорошая асинхронная основа.
392 3044021
>>43975

>Что за проблема в асинках?


Нет никаких проблем. Есть одна проблема, она называется "руки из жопы".
393 3044055
>>44021
А можно конкретнее?
394 3044075
>>43975
Они не нужны. Для джейсономешалок есть более подходящие языки, а для системных вещей токио медленное говно без задач.
395 3044111
>>43975
Если у тебя строго один интерес и для этого подходит го, бери его.
Если хочешь один язык "для всего", то бери раст.
396 3044131
>>44111
Я спрашиваю, что не так с асинхронностью в расте.
397 3044168
>>44131
Всё так, те же проблемы, что у других языков.
398 3044198
>>44168
Такое ощущение, что у тебя просто потребность во внимании. Надеюсь ты тут не один.
399 3044209
>>44055
А чё конкретнее-то? У раста есть все инструменты. Есть tokio, есть futures (если токио не устраивает), есть actix на базе токио. Если акторы не устраивают, можно просто сделать thread::spawn. Я не знаю чё ты пришёл сюда и жалуешься на выдуманные проблемы. Ты фьючерсы пробовал? Токио пробовал? Вот когда попробуешь тогда и приходи. А щас это просто выдуманные проблемы рукожопов.
400 3044348
>>44131
Coloring problem как и везде где есть асинх/ждать
401 3044562
>>44348

>coloring



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

Да, приходится думать иногда какие дергаешь функии, лол.
403 3044713
>>44562
бля хуйню написал, конечно же я имел в виду "penis".toInt
404 3044768
>>44578
ну всё, поулчается расходимся? Раст говно. В какой тред пойдём серить теперь?
405 3044776
>>44578
Благодарю.
406 3044904
>>44768
Очевидно в го тред, зеленные функции для слабаков!
407 3044937
408 3044962
>>44562
Из-за coloring problem получается что либы с асинхронным АПИ не могут вызываться блокирующим способом ну если не затаскивать в зависимости вызывающего кода асинхронный рантайм. Несущественно по-твоему?
409 3044999
>>44962
Да. Это несущественно.

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

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

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

Это предъява по вонючести уровня "бойкот дженериков в го".
410 3045062
Есть кто перекатывался с перла/питона/руби на раст? Не в профессиональном плане, а просто хочется что-то новое попробовать
411 3045110
>>45062
я во всех смыслах перекатываюсь с руби
412 3045159
>>45062
Зачем? Не думаю, что раст не станет прикладным инструментом.
Ты делаешь тоже самое, но дольше. Твой супер код все равно будет 90% проседать на i/o. Я смотрел на размер бинаря и потребление памяти, но оказалось го делает тоже самое и не нужно костылить с Rc/Refcell и лайфтаймами.

С такой компиляцией попробуй какой-нибудь ui подвигать и шрифтами поиграться.
Хороший системный язык, для дробилок, для узких мест, но никак не прикладной.
413 3045247
>>45159

>Твой супер код все равно будет 90% проседать на i/o


Не везде есть IO, болезный.

>размер бинаря и потребление памяти, но оказалось го делает тоже самое


..а ещё есть потребление CPU и тут мы скромно промолчим.
414 3045301
>>45247
Чулки постирай.
415 3045341
>>45247

>..а ещё есть потребление CPU и тут мы скромно промолчим.


В конце девяностых многие писали cgi на всяких плюсах, бюджетные серваки были вообще на селеронах, и тут люди начинают вдруг писать на перл, пхп. А почему? Да потому что пинг, запросы с базы, файловое i/o пожирали всю мощь твоих плюсов, говноскрипта хватало чтобы высрать html'ку, а когда пхп стал модулем апача, плюсы вообще соснули, так как проигрывали именно по i/o и тупезне cgi технологии.

Так что срать потребление, мы по i/o стоим больше. Смешно, но раст планировали же с зелеными тредами, а теперь он нахер не нужен в прикладных задачах, когда у тебя за десяток ядер.
416 3045393
>>45341

>В конце девяностых


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

>тупезне cgi


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

>плюсы вообще соснули, так как проигрывали именно по i/o


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

>раст планировали же с зелеными тредами


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

>мы по i/o стоим больше.


стойте, хуй с вами, есть полно других задач, где это не актуально.
417 3045501
>>45301
Опять серишь?
418 3045504
>>45393

>а там и до сборки мусора недалеко.


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

>и правильно сделали, что выкинули.


Тогда же язык многие и дропнули, людям нужен был го с вменяемым дизайном, а не враперка для плюсов.
419 3045677
>>45504

>Чем это отличается от того же раста, где тоже самое делает чулочник, но уже руками и через мат?


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

>го с вменяемым дизайном


Много народу пользует тот же V ? https://vlang.io/compare#go а ведь это оно - бери и пользуйся. Ответ прост - без поддержки крупного корпа мелкие не рискнут писать на нём свои, как метко выразился некто, джейсономешалки.
16893508335672.png724 Кб, 500x1000
420 3045770
>>45677

>Ты можешь не оборачивать в Rc, а подправить ручками.

421 3045789
>>45677

>Много народу пользует тот же V ?


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

ты походу не знаешь основную фичу го и что такое зеленные треды, иди гугли уже
IMG20240212214017.jpg385 Кб, 1080x1978
422 3045825
>>45789

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


мимокрокодил
423 3045874
>>45789

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

У конкурентных языков весьма узкая ниша, а геморроя из-за необходимости держать конкурентный движ заведённым, они тоже доставляют знатно. Дженерики в го неспроста так долго затаскивали.
424 3045919
>>45825
Тоже мимо
Половина списка - говно какое-то без задач.
Другая половина не позволяют также нативно и легко их использовать, как в го
я не гошер, честно
425 3045921
>>45874

>Дженерики в го неспроста так долго затаскивали.


Какая тут связь, зачем фантазировать? Дженерики там больше про скорость компиляции. Там идея была, что го уже весь готовый и туда больше ничего не надо, поэтому с трудом что-то продвигалось (кроме внутренних хотелок гугла, типа алиасов). Го больше напоминает внутренний язык, поэтому такой и странный и так долго пакетный менеджер рожали.

>У конкурентных языков весьма узкая ниша


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

То что раст натягивают не на системных, а на прикладных кодеров, не плюсовиков, а рубистов, говорит об языке очень плохо (буквально агрессивный маркетинг ради доли рынка и пофиг где, главное "продать").
426 3045930
>>45919
В любом случае даже название они получили от джавы, а не го.
427 3045941
>>45874

>У конкурентных языков весьма узкая ниша


Если в гитхламе поставить сортировку проектов больше 1000 звезд, то у го будет 2,9К реп, у джавы для сравнения 3,4К
Причем эту позиции он занял очень давно, от чего даже я прифигел.
429 3046035
>>45941
Узкая ниша, это не про число проектов, это про направленность. Там здоровенная часть, это различные tcp/http/upnp/etc-сервисы , а остальное, это полезные либы для написания таких сервисов. Ессно, из-за того, что куча вебмакак выучила го, они используют его для пет-прожектов. Я даже игровой движок видел, вот только надо ли оно?

>То что раст натягивают не на системных, а на прикладных кодеров


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

>главное "продать"


и кто же его "продаёт"? Вон, гуглу даже продали, в хром пихает, в андроид. Иллюминаты, не иначе.
430 3046043
>>46035

>и кто же его "продаёт"? Вон, гуглу даже продали


Ну вот, ты почти понял как работает сфера b2b.
431 3046169
>>46043
Ёбнутый шизик, везде заговоры мерещатся
432 3046184
>>46043

>b2b


Тебе конечно же из дурки виднее как оно там устроено
433 3046187
>>45921

>(буквально агрессивный маркетинг ради доли рынка и пофиг где, главное "продать").


Кто кому что продаёт? Ты уже тридесятый пост в тридевятом треде пишешь про маркетинг и продажи, а так и конкретики не назвал. У тебя от доработки битрикса 24 перед глазами эти лиды и воронки продаж?
434 3046197
>>46187
Объяснял несколько раз, один даже подробно, но неудобные моменты же просто игнорятся.

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

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

продавать (толкать продукт) - там не просто так кавычки, но уровень интеллекта многих удивляет
435 3046237
>>46197

>Объяснял несколько раз, один даже подробно, но неудобные моменты же просто игнорятся.


Если ты объяснял также как ниже написал, то не удивительно что тебя игнорят. Опять налил воды из базвордов. По факту можешь пояснить как происходит монетизация? Как и кому что продают? Я понимаю там оракл зарабатывает на экосистеме жабы, майкрософт вокруг шарпа, там как бы очевидная монетизация. А тут что?
Только без твоих гейских штучек и женской одежды, вижу у тебя ЛГБТ больная тема, за живое задевает. Но всё же мы говорим не о твоих внутренних проблемах
436 3046254
>>46237
Ты такой наивный, как девочка в чулках
Манагеру поебать, откуда берутся деньги. Главное, что он получает зарплату за свой проект. Пусть проект хоть трижды убыточный, пока капает зп, для менеджера все заебись. Вон, микрософт до сих пор делает свой бесплатный браузер, который буквально никому нахуй не нужен, вот прям совсем. Как происходит монетизация - да похуй как, лишь бы зарплату платили.
image.png36 Кб, 1089x374
437 3046259
>>46254

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



Это ты о каком? У меня вот этот основной и ещё пара других.
438 3046268
>>46254
Я не понял, выходит некие менеджеры из раст фаундейшен (?) обвели вокруг пальца наивных дурачков из бигтеха которые решили попробовать себе раст затащить в свои хуитки?

мимо
439 3046272
>>46237

> оракл зарабатывает на экосистеме жабы


На облаках и базе данных. Джава у оракла чёт на уровне самоокупаемости.
440 3046283
>>46254

>откуда берутся деньги


>Как происходит монетизация - да похуй как, лишь бы зарплату платили.


Так откуда они берутся-то? Кто платит? Аллах даёт? Хули ты тут воду льёшь я тебя конкретно спросил как монетезируется работа маркетологов. А потом плачешь что тебя никто не слушает и что аж тушь по щекам растеклась.
441 3046374
>>46254

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


Почему же он тогда выебал все остальные хромиумы, кроме самого хрома? Ты может ещё вспомнил бы бесплатный жпт-4, встроенный в винду и браузер?
442 3046397
>>46268
Да еще и рубистов подсадили на ржавую иглу!!!
443 3046406
>>46268
Тут всё ещё хитрее: эти менеджеры получают зарплату из кармана тех самых корпораций, которые спонсируют раст фаундейшн.
Облапошили гугл за деньги самого гугла!
444 3046826
>>46237
Че как дети, ей-богу.
Тебе объяснили корреляцию, хай + отчисления в фонд. Там же была какая-то драма с менегерами мозилы, пацаны обмазывались премиями.
445 3046918
>>46826
Иди отсюда, вонючка. И теорию заговора забери свою. Покажи по факту где кто кому и за что заплатил, а не фантазиями своими тут делись, идиот.
446 3047024
>>46826

>Кококо, язык на продажу


>Так покажи кто платит


>Пук среньк


Я все понял, молодец, возьми конфетку с полки.

Процитирую одного шиза выше, возможно тебя
447 3047041
>>46918
>>47024
Постирай чулки.
448 3047093
>>47041
Ты обиделась?
449 3047190
>>47041
постирай трусы
450 3047597
>>34622
Между прочим, самая большая программа, написанная на хаскеле - он сам
мимо
451 3047803
Я на работе в офисе, ходил в женский туалет, самоидентифицируя себя как женщину. У меня есть все необходимые качества для Rust-разработчика?
452 3047956
>>47803
Нужно еще крашенные волосы, тугие чулки и не осилить хаскель. Раст это канализационный слив тех, кто хотел самоутвердиться за счет языка, но не осилил хаскель. Этакий хаскель для тупеньких.
image.png34 Кб, 640x299
453 3047971
>>45393

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


Если бы

До раста я знал что такое синтаксический сахар, после раста я узнал что такое синтаксический мусор.
454 3048037
>>47956
Ты сам-то хотя бы одну строчку на хачкеле/расте написал, или просто сидишь серишь тут в треде?

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

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

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

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

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

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

Раст вообще другой язык, и вкатываться в него гораздо легче чем в хачкель или скалу, твой высер невалиден.
Screenshot 2024-02-14 at 10.08.16 AM.png153 Кб, 1538x496
455 3048043
>>47971
Хуй знает братишка, везде этого мусора хватает, другое дело хватит ли тебе ума чтобы понять этот мусор (пикрил). Окей в питоне, жс и прочих рубях этого нет, но мы на них и непишем.

В расте, на мой взгляд, этот мусор понять гораздо проще чем абстрактную писанину, пускай эта писанина и выглядит элегантнее.
457 3048066
>>47956
Уже постирала трусы? Ты походу реально обиделась, раз уж начала говном кидаться
458 3048074
>>48061
И он таки перекатился в краба?
459 3048079
>>48037
Ну не осилил и не осилил, что шуму подымать.
460 3048084
>>48079
А ты сама какие языки осилила? Получилось на хаскеле хэлоуворд запустить?
461 3048093
>>48074
В том числе. Краб у него на +-втором месте после сишечки. На расте он писал сервис для индексирования и поиска по html (вроде) докам. Бота с хачкеля переписывает на го.
462 3048180
>>47971
>>48043
Когда смотрю на синтаксис раста, то сразу же начинаю любить сишечку.
463 3048238
>>48180
Такие, как ты, 30 лет назад глядя на сишечку начинали любить BASIC.
464 3048255
>>48180
Этот тот самый языкт без NULL?

А что там тогда делает None?
465 3048288
>>48255
Ты не понимаешь. Если тебя каждый раз заставляют проверять на NULL, то он становится безопасным.
466 3048340
>>48180
второй скрин это скала вообще
467 3048351
>>48043
Чё скалу-то уже закопали кстати?
468 3048387
>>48238
Это другое.

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

Не понимаю, серьёзно, может на расте программируют люди которые пришли из JS и Java и по этому какие-то ошибки пишут?
469 3048390
>>48387
а ты откуда сам пришел что такие вопросы задаешь?
470 3048393
>>48351
Да сам не понимаю, хайп ушел, работы нет, многие компании от скалы отказываются, по причине того что СЛОЖНА и ДОРАГА, но с другой стороны если ты хороший скалист то всегда найдётся высокооплачиваемая работа в общем как и в любой области
471 3048400
>>48393
Что тут понимать, на Котлин все перешли. До него только шкалка и была альтернативой голой жабе. Котлин нашёл идеальный баланс между императивщиной с ооп и функциональщиной, шкалка стала ненужна.
472 3048425
>>48390
Из /b/ пришёл
йобафейс.жпг
473 3048448
>>48387

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


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

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


Вся идея раста для бизнеса, что можно посадить зумера в чулках и он будет писать код по уровню сишника с овер 20 лет стажем. Но реальность оказалось немного суровее.
475 3048482
>>48400
Да, тоже думаю что котлин прибил скалу.
476 3048510
>>48448

> то вероятность ошибок повышается в разы


Ну тогда палю совершенно ультимативную йоба-фичу. Нужно использовать архитектуру!
Это волшебное слово избавляет от 99% всех багов и неоднозначного поведения, которое возникает из-за того что множество пользователей пишут хуйню. Сам код разбивается на маленькие-маленькие функции-модули, которые тестируются просто замечательно! Конечно же они должны быть понятными ещё.
Ядро же пишется математиками, которые дрочат математическую доказанность алгоритмов.

>>48477

> Но реальность оказалось немного суровее.


А какие в целом ошибки у этого сценария? Понятно что чулочники и фурри ничего хорошего написать не могут, но в целом, в чем обосрамс? Слышал что там ансейф в core-либах есть, а в других либах он вообще повсеместен, подвспшикнул конечно с этого, но кажется это не то.
477 3048512
>>48400
>>48482
Доля правды в этом есть. Но тем не менее вокруг скалки довольно большое комьюнити энтузиастов, стабильные экосистемы (зио, тайпсейф), но сложность отпугнула стартапы и компании которые не могут себе позволить платить много денег за бонусы которые дает фп дает ли хуй знает на самом деле
478 3048524
>>48510
В голос с этого архитектора.
Где же ты раньше был?
Как же мы раньше-то не додумались до этого?!
Уебывай отсюда, школьник.
479 3048550
>>48524
Не, ну серьёзно, понятно дело что архитектура это долго и сложно. Но это всё ещё лучше раста, когда взаимоблокировка потоков буквально фича языка.
480 3048561
>>48510

>Ну тогда палю совершенно ультимативную йоба-фичу. Нужно использовать архитектуру!


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


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

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


Я даже представил этих академиков из интела и хуявея что пишут линукс лол

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

>тот же Столяров он на лоре такую же шизу выдает



Первый комментарий: 23.12.10 18:33:21 MSK
Хех. Так он салага.
Моя вторая регистрация на лоре на 10 лет раньше.
482 3048589
>>48561

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


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


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

Чужих либ не использую, всё самописаное, но недавно предложили установить какую-то хуйню на расте которая статистику решает, вот сижу раздумываю нужен ли покупать чулки использовать это или нет...
483 3048648
>>48589

>Чужих либ не использую, всё самописаное


Нашёл чем гордиться лол
484 3048651
>>48589
И что, в одно рыло гейдевишь или вас двое?
16893508335621.png275 Кб, 640x346
485 3048679
>>48510

>А какие в целом ошибки у этого сценария?


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

Сам по себе раст не дает возможность писать высококачественный оптимизированный код. Ну то есть нельзя взять что-то около плюсов и начать писать оптимизировано.
486 3048725
>>48589

>серверные приложения всякие


>всё самописаное


Круто! Скажи что ты еще сам реализацию http написал? И своя база данных наверное?
487 3048727
>>48648
Да пусть побольше гордится
488 3048735
>>48648
Всё лучше, чем чулками и фурри-костюмом

>>48651
Скриптописак человек 5, каждый стрипт однопоточный, так что всё в порядке. Ядро нописано и не требует отладки, всё что требуется писать функции по интерфейсам и акторы.
489 3048757
>>48679

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


Хм, ну с этих позиций понятно дело что

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

Ты же не хочешь сказать для тебя проблема написать свой протокол или свою бд? А это точно тред системного языка?
490 3048760
Кроме срачей в треде что то бывает?
Тут кто то хоть на расте пишет, или в треде внимание привлекает?
491 3048766
>>48757

> Свой протокол с гарантированной доставкой


Очередной монстр на udp?
Стикер512x512
492 3048772
>>48760

>Тут кто то хоть на расте пишет


Новенький? Раст не для этого создавался.
493 3048812
>>48772

> Раст не для этого создавался.


Скорее аноны больше любят срать в треде чем программировать
494 3048826
>>48766
Смысле монстр, там 5 строк кода. Это же игрокал.
495 3048829
>>48757

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


Написать свой васянский протокол и сделать свою колхозную БД не проблема, послушать порт и насрать в консоль вообще 3,5 строчки кода, тоже и с записью и чтением фалов. А вот сделать что-то на уровне нормальных баз данных и реализацию http - задача на долгие годы. Тут с библиотеками для clickhouse пришлось ковыряться несколько недель чтобы найти нужную и доработать для реализации нужных нам типов там была БД для хранения транзакций эфира, а сама БД разрабатывается уже несколько лет в яндексе. А про постгрес вообще молчу, там код пишут быстрее чем ты сможешь его прочитать.
У вас в гейдеве наоборот стоят другие задачи вам нужен минимальный функционал, но в приоритете быстрое время отклика. И сравнивать теплое с мягким что кто-то на бекенде не колхозит свои решения как в гейдеве, а берет готовое, это мягко говоря признак вкатуна или дегенерата. Ты весь тред это пытаешься всем доказать
496 3048870
>>48735
Значит на ядре ты один? В том плане, что твои наивные рассуждения про то, что достаточно заебашить правильно архитектуру, а там хоть на голях сях пиши - это работает только в коллективах до 3х человек. Дальше оказывается, что каждый понимает архитектуру по-своему и понеслась.
497 3048886
>>48826
Как раз таки в игрокале в свое время монстра и встречал

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

>>48829

> И сравнивать теплое с мягким


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

> не колхозит свои решения как в гейдеве, а берет готовое


Мои сожаления потерпевшим.

>>48870

> Значит на ядре ты один?


Ето да, не спорю. В основном архитектуру должен держать в голове один-два человека, по-другому это просто не работает. Но так-то именно так это в компаниях и работает!

> это работает только в коллективах до 3х человек.


Да. Архитектор и два помощника архитектора. Или три архитектора, которые хуячат что-то гейниальное нахуй.

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


Дальше все пишут свою архитектуру, а потом тесты чья архитектура лучше и почему, доказывают это с пруфами и уже по обстоятельствам.
499 3048895
>>48886
Это да, монстры в игрокале тоже присутствуют в огромных колличествах почти все движки это тырпрайс и СОСАТЬ БЛЯДЬ БЕЗОПАСНОСТЬ СОСАТЬ НАХУЙ ПРОТЕЧКИ ААА САСААААААААААААААААААТЬ ПЕРЕЗАГРУЗКА РЕШАЕТ ВСЁ
1707936458780.mp41,1 Мб, mp4,
848x800, 0:07
500 3048896
>>48892

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

501 3048903
>>48896
Карлсн бля, хуле ты лыбишься, иди варенье мне принеси на своём вертолёте нахуй
502 3048908
>>48892

>Да. Архитектор и два помощника архитектора. Или три архитектора, которые хуячат что-то гейниальное нахуй.


И вот смотри: есть линукс, гениальный Торвальдс, архитектура, куча сеньоров пилит на полную ставку. И, тем не менее, Линус так заебался с кривыми дровами, от которых не спасает даже архитектура, тесты и ревью, что он согласился на внедрение второго языка программирования в ядро - и этим языком оказался раст.
Теперь прикинь, что гениальных архитекторов, способных тащить крупные проекты, настолько мало, что платить им нужно 10 мидловых ставок, прибавь к этому то, что архитектура, это, всё же, не панацея - и ты получишь, что без раста никуда везде, где управляемыми языками не обойтись.
503 3048915
>>48892

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


Вот ты как раз с позиции гейдев разработчика смотришь на всё, одно дело когда вы выебали каждый байтик в своем коде и само собой знаете что и где у вас с памятью. Другое дело когда у тебя в приоритете бизнес-логика, большие объемы данных, где каждое неправильное число стоит довольно дорого в настоящих деньгах, а не кристаликах, плюсом ко всему много сторонних сервисов с которыми нужно взаимодействовать и всегда сжатые сроки из-за которых некоторые решения приходится делать не всегда оптимальными с точки зрения байтоёба. Раст очень помогает избежать множества ошибок если на нем нормально писать, а не как ты .unwrap() Rc<> да Box<dyn Zalupa>.
У нас разные приоритеты и разные задачи, но ты пытаешься свой гейдев распространить на другие сферы.

>Мои сожаления потерпевшим.


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

>гениальный Торвальдс


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

И ещё он спиздил minixfs у Таненбаума.
505 3048961
>>48892
Стадия торга
506 3048962
>>48945

> у Таненбаума


не получилось, у Столламана не получилось (HURD) , а у Торвальдса получилось. Как думаешь, почему? Как раз потому, что будучи программистом, он в то же время оказался неплохим менеджером и архитектором, сумевшим найти баланс между шашечками и ехать.
А такое редко, успешные инженеры-организаторы наперечёт. Илоний Маск, например. Даже Джобс не считается, он инженером не был.
507 3048992
>>48962

> и архитектором


Наверное ты мало заглядывал в исходики ядра.
508 3049050
>>48992
Туда смысла не заглядывать, там бывает в некоторые дни десятки коммитов с тысячами строк https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/ ты это даже прочитать толком не сможешь.
А вот гит смотрел, да. Там адовый говнокод, но им пользуется весь мир.
509 3049111
>>48908

>И вот смотри: есть линукс, гениальный Торвальдс, архитектура, куча сеньоров пилит на полную ставку.


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

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


Погоди, и как это связано? Кто-то собрался 70% ядра переписать? И он согласился на это разве не потому что его ЛГБТК+++33см травить начали?

>>48915

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


Тогда такая хуйня должна писать на скриптокале. Жава там какая, жаваскрипт, может быть скала или котлин. Ну и если совсем всё сложно - ерланг или хаскель.

>У нас разные приоритеты и разные задачи, но ты пытаешься свой гейдев распространить на другие сферы.


Дя, у меня бизнес-логика находится в игровом движке, на отдельном бекенде. Работает хорошо, правда там не реалтайм, а 120герц и меньше. Зато можно выдерживать без сбоев нагрузку в 60 раз превышающую обычную. По кайфу жиесть.

> из-за экономии каких-то наносекунд


Если не экономить наносекунды, то вместо раста можно писать на жаве.
510 3049157
>>49050
Надо новое ядро писать на расте без исторического говнокода
511 3049159
>>48829

>дегенерата


Так и есть.
512 3049163

>линукс драйвера говнокод


Как сделана эта оценка? Какой опыт у тебя лично в разработке драйверов и вообще в писании чего-либо не в юзерспейсе?

>ряя говнокод на расте не будет говнокодом


Где пруф, что по этой причине сделали поддержку раста в дереве ядра?
image.png606 Кб, 680x760
513 3049221
514 3049223
>>49221
А я делал еще один тип, который одновременно UTF-8 и null-terminated, в отличие от Сstr
515 3049255
>>49163

>Как сделана эта оценка?


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 - типа, смотрите, как надо.

>>49111

>он согласился на это разве не потому что его ЛГБТК+++33см


От ядра линуха слишком многое зависит, чтобы ЛГБТ там могли на что-то повлиять.
Гугл, вон, сразу начал биндер переписывать, он и продавил.
516 3049286
>>49255

> ers/net/phy/ax88796b_rust.rs


> макросы


> коды ошибок


> vtable


Осталось ещё сырые указатели сделать и будет бинго. Сплошной синтаксический мусор.
517 3049289
>>49255

> От ядра линуха слишком многое зависит, чтобы ЛГБТ там могли на что-то повлиять.


Они явно травили некоторых мейнтернеров.

> Гугл, вон, сразу начал биндер переписывать, он и продавил.


Короче кто-то продавил.

> what-research-papers-that-claim-linux-device-drivers-are-the-3ekhngiprx


> 640 real concurrency use-after-free bugs


Теперь будут баги c блокировками потоков и живыми блокировками, ведь в расте нет ничего чтобы их избежать. Даже в clang есть инструменты для этого, а растошизики на разработчиках горят с этого и рассказывают что это всё врёти и вообще нормальная ситуация.
Алсо, такие баги проще эксплуатировать, потому что целые секции ядра могут нахуй ложится.
518 3049315
>>49255
Заебись оценка, без примеров без нихуя.

>addressing common bugs like use-after-free


Только непонятно, как пидораст будет решать подобное в кернел спейсе.

>типа, смотрите, как надо


Ты версию на си посмотри для начала, лол.
519 3049319
>>49289

>Теперь будут баги 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

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

>>49289

>ведь в расте нет ничего чтобы их избежать


Всё будет, не переживай. Вон, в сторонней либе уже есть
https://amanieu.github.io/parking_lot/parking_lot/deadlock/index.html
520 3049366
>>49111

>Тогда такая хуйня должна писать на скриптокале.


Не тебе нам указывать на чём написать.

>Жава


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

>жаваскрипт


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

>скала


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

>котлин


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

>ерланг


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

>хаскель


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

Странно что ты не упомянул go он как раз нам тоже подошел бы, мы пилим сервисы, которые между собой общаются через кролик, нам нужно переваривать много данных и много взаимодействовать со сторонними апи, плюс вся эта хуйня типичная для веба: апи, БД, редис, иногда graphql для фронта и всё это крутится в докерах. Собственно мы занимаемся примерно тем же самым что и большинство гоферов, только на расте. В этой сфере языки похожи как 2 капли воды, а выбор именно раста это просто субъективный фактор, нравится больше чем го.
521 3049372
>>49319

> Вон, в сторонней либе уже есть


Пиздец костыли. Язык-костыль.
image.png4 Кб, 366x72
522 3049373
>>49319

> /mutex.rs


> unsafe


> unsafe


> unsafe


> /arc.rs


> unsafe


> unsafe


> unsafe


Закашлял аш с этой хуйни.

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


Ну хуй знает....

> Вон, в сторонней либе уже есть


Да ебаный рот...
523 3049378
>>49286
Да ладно это ещё нормально. я бы только импорт со звездочкой убрал и vtable . Вообще когда вижу хуёво написанную библиотеку и начинаю смотреть чем занимается автор, то в большинстве случаев оказывается какой-то сишник
524 3049379
>>49366

>Сложно кого-то найти,


факт

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


Зайди в скала реддит хотя бы

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

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



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

мимо скалист
525 3049380
>>49372
о привет любитель goвна
526 3049384
>>49373
Проблемы? Ты в курсе что любой low level тулинг пишут ансейф? думаешь жвм написан на джаве лол и память там как-то сама выделается и освобождается для объектов? Или руби на руби?
527 3049394
>>49366

> Не тебе нам указывать на чём написать.


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

> Писать на этом говне что-то большее настоящая боль, раст отлавливает 95% ошибок, которые я бы допустил в js еще на этапе компиляции.


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

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


А это как нахуй? У меня GC в жс не работает вообще, что вы там нахуй пишете такого? Ебать, другой мир нахуй.

> Сложно кого-то найти,


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


Переучить сеньёра-жабиста не проблема.

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


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


Пиздец у вас там дримтим без математического образования.

> апи, БД, редис, иногда graphql для фронта и всё это крутится в докерах. Собственно мы занимаемся примерно тем же самым что и большинство гоферов, только на расте.


Короче как понимаю у вас там команда мидлов которые горят жопой если нужно делать что-то сложное, плюс из-за того что постоянно ебут сроками делать нужно прямо завтра, а по-другому писать никто не умеет и не хочет. Неприятная хуйня.
В такой ситуации конечно раст неплох, наверное. В ядро и архитектуру такую хуйню я бы не завёл никогда.
528 3049400
>>49384

> Проблемы?


Проблемы будут в ядре, когда такое будет в ядре. Там, наверное, придётся вообще весь код именно так писать. Если раньше всё это было сложно понять, то теперь это говнище вообще никто не будет понимать, даже сам написавший.

> Ты в курсе что любой low level тулинг пишут ансейф?


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

> думаешь жвм написан на джаве лол и память там как-то сама выделается и освобождается для объектов? Или руби на руби?


Не знаю, объекты последний раз писал лет 10 назад, динамически выделял память примерно в то же время.
529 3049402
>>49394

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



Гигачады старой школы скатили в говно целый OpenGL, так и не превратили OpenCL во что-то юзабельное и придумали Perl. Так что вообще минусов не вижу.
530 3049404
>>49394

>Сколько не писал на жс, ошибок не было вообще


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

>Это же примитивный язык


Ты шо, ты шо, там же куча сахара. Например, есть "==" и "===" - круто, ведь, правда?
j7662quidse71.jpg44 Кб, 576x680
531 3049405
532 3049407
>>49405
У Before юникод отвалился, но англоязычной публике простительно. Ты-то какого хрена это тащишь?
533 3049418
>>49407

>англоязычной публике простительно


Чулочный барин? Это что-то новое.
534 3049423
>>49400

>пок пок


>кукарек


>Не знаю ничего


Ну вот и пиздуй читай книжки и практикуйся, потом возвращайся в тред.
535 3049427
>>49405
а до всего этого были mov ah al eax и чего блядь? забери своё говно и затолкай себе его в жопу обратно
536 3049443
>>49427
Ты думаешь это эволюция, а это деградация.

Если раньше была проблема разноцветных функций, то лайфтаймы еще добавили разноцветные типы.
537 3049444
>>49405
Ты не понимаешь, это синтаксический сахар.
538 3049450
>>49394

> Десериализации личности


Проиграл, это типо расхуярил личность на строку LGBT HUI HUI PENIS 666 GENDER и обратно собрать не смог?
539 3049457
>>49443
деградация это про тебя, стареешь и становешься тупее, погугли термин такой "старческая ригидность мышления", это нормально, просто прекрати серить и иди на сишке дрочи байты, мы не против
540 3049469
>>49457
Странно такое слышать, от тех кто не осилил хаскель.
541 3049480
>>49402
Гигачады придумал ерланг и хаскель вообще-то. С опенгл конечно неудобно вышло.
542 3049485
>>49404

> сеньором


Просто я пишу пять строчек в день, в сеньёры таких не берут.

> Например, есть "==" и "===" - круто, ведь, правда?


Не знаю, я разные типы никогда не сравнивал. Наверное в ООП и расте такое полезно...
543 3049489
>>49469
странно такое слышать от тех, кто ничего сложнее клавиатуры не осилил
544 3049490
>>49450
Типичная ситуация в комьюнити раста, не знаю даже чему ты удивляешься. Возможно они пытались разобраться в типах строки SEX, но типов оказалось слишком много..........
545 3049492
>>49480

>erlang


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

>хачкель


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

В целом соглашусь
546 3049514
>>49485

>пишу пять строчек в день


>ни разу не ошибался



ну и што ш ты своим примером тут всем тычешь? Жс и делали с прицелом на 5 строк кода для украшения динамикой страничек васей пупкиных, ни о каком бизнесе тогда и не помышляли.
547 3049516
>>49394

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


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

>Сколько не писал на жс, ошибок не было вообще.


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

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


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

>Переучить


>сеньёра


>не проблема


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

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


Да

>которые горят жопой если нужно делать что-то сложное


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

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


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

>а по-другому писать никто не умеет и не хочет


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

>В такой ситуации конечно раст неплох, наверное.


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

>ядро


Я говорю за себя
547 3049516
>>49394

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


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

>Сколько не писал на жс, ошибок не было вообще.


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

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


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

>Переучить


>сеньёра


>не проблема


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

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


Да

>которые горят жопой если нужно делать что-то сложное


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

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


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

>а по-другому писать никто не умеет и не хочет


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

>В такой ситуации конечно раст неплох, наверное.


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

>ядро


Я говорю за себя
548 3049520
>>49485

>Просто я пишу пять строчек в день, в сеньёры таких не берут.


Лол, тогда понятно почему ты рассуждаешь как вкатун
549 3049540
>>49520
Расступись нахуй, я архитектор.
550 3049551
>>49480

>хаскел


Так это же проект родом из академии, где его развивают между парами по гендер стадис и марксисткой теории шахмат.
551 3049573
И всё таки как раст чего-то там решит для тех же модулей в кернел спейсе, глядя на https://github.com/torvalds/linux/blob/master/drivers/net/phy/ax88796b_rust.rs можно сказать, что это лишь добавление нескучных обоевперделок и свистелок?
552 3049579
>>49404

>Ты шо, ты шо, там же куча сахара. Например, есть "==" и "===" - круто, ведь, правда?


Для самых извращенных можно сделать
parseInt = (n) => n + 1;
в глубине библиотеки и тогда придет пизда всему
553 3049592
>>49514
Ну а зачем писать больше пяти строк? Вся логика вполне умещается в пять строк. Если не умещается - наблюдается проблема с абстракциями.

>>49516

> Не знаю кого ты там выдумал, но у нас решение писать на расте принимал соучредители он же и CTO,


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

>Вообще что-то мне подсказывает что как раз шизик со всеми страданиями это в первую очередь ты.


Это я взял из блога core разработчика раста. Он себя позиционирует как животное, кстати.

> и часто с приведением типов


Проблемы любителей объектов.

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


Нужно просто писать архитектуру в таком случае, разделение на данные и логику, всё такое.

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


У меня чаты и бек работают с заранее выделенной памятью.
Чё тут сказать, советую навернуть https://www.dataorienteddesign.com/dodbook/ вот этого и наконец-то начать программировать, а не абстракции писать.

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


Подписываешь контракт на 5-7 лет и всё. Конечно, при условии что бизнес это не какая-то залупная хуйня которая обанкротится уже вчера.

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


> Да


БИЛЯЯААААААААААААТЬ, не повезло, не повезло.

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


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


Кроме книжечки сверху ещё вот че. Можно ещё использовать ECS у меня такая хуйня на бизнес-логике работает, только S не как System, а как Sequence, последовательность задач, последовательность функций и систем. Заодно будет обеспечена тразакционность всех вычислений, что часто отсуствует в подходе с объектами. Эта хуйня как раз про работу с реляционными базами.

> Вот данных большие объемы и бывают тоже свои сложности


У меня сложность не зависит от объёма вообще. только от того говна что я там понапишу

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


По-другому это дата-ориентированный подходю. Вероятнее всего с таким подходом никакого раста не нужно будет.

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


Компонентные архитектуры и всякие блекборды именно про это. Без раста.
553 3049592
>>49514
Ну а зачем писать больше пяти строк? Вся логика вполне умещается в пять строк. Если не умещается - наблюдается проблема с абстракциями.

>>49516

> Не знаю кого ты там выдумал, но у нас решение писать на расте принимал соучредители он же и CTO,


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

>Вообще что-то мне подсказывает что как раз шизик со всеми страданиями это в первую очередь ты.


Это я взял из блога core разработчика раста. Он себя позиционирует как животное, кстати.

> и часто с приведением типов


Проблемы любителей объектов.

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


Нужно просто писать архитектуру в таком случае, разделение на данные и логику, всё такое.

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


У меня чаты и бек работают с заранее выделенной памятью.
Чё тут сказать, советую навернуть https://www.dataorienteddesign.com/dodbook/ вот этого и наконец-то начать программировать, а не абстракции писать.

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


Подписываешь контракт на 5-7 лет и всё. Конечно, при условии что бизнес это не какая-то залупная хуйня которая обанкротится уже вчера.

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


> Да


БИЛЯЯААААААААААААТЬ, не повезло, не повезло.

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


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


Кроме книжечки сверху ещё вот че. Можно ещё использовать ECS у меня такая хуйня на бизнес-логике работает, только S не как System, а как Sequence, последовательность задач, последовательность функций и систем. Заодно будет обеспечена тразакционность всех вычислений, что часто отсуствует в подходе с объектами. Эта хуйня как раз про работу с реляционными базами.

> Вот данных большие объемы и бывают тоже свои сложности


У меня сложность не зависит от объёма вообще. только от того говна что я там понапишу

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


По-другому это дата-ориентированный подходю. Вероятнее всего с таким подходом никакого раста не нужно будет.

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


Компонентные архитектуры и всякие блекборды именно про это. Без раста.
554 3049601
>>49551
Тогда это язык товарищей-коммунистов, некоторым из которых нравятся мужские задницы. Не вот эти вот проклятущие западные геи, а наши, русские пидорасы! Всё в порядке.
555 3049704
>>49592

>да, точно, я вспомнил что я и есть соучредитель который принимает решения


Я вижу что ты жнец и на дуде игрец пиздабол

>У меня сложность не зависит от объёма вообще.


Ну возьми postgres собери ради эксперимента табличку с полем text, возми какой-нибудь фейкер и заберй разными фразами (имитируем описание товаров) примерно по 500-1000 символов на запись. Сделай 1000 записей и организуй полнотекстовый поиск по этому говну, не просто description LIKE '%залупа%' а норамальный description_tsvector @@ to_tsquery('залупа')
Если осили и работает, то потом попробуй прогнать скрипт до 50 млн записей в БД, этого уже будет достаточно чтобы опровергнуть твои слова.
Для скрипта можешь кстати взять js на котором ты не ошибаешься и где память не утекает)))
556 3049861
>>49592

>Нужно просто писать архитектуру в таком случае, разделение на данные и логику, всё такое.


Простой рецепт "Как нам обустроить IT индустрию" от опытного писателя хэлловорлдов.

У тебя любая архитектура исходит из каких-то ограничений. Делаем Х, наиболее оптимальным способом У, так как Й нам точно не понадобится. Потом через полгода разработки к тебе прибегает манагер мы тут посовещались и говорит: а вот надо Й, давайте ребята, вы сможете. И ты к своему ХУ приделываешь этот Й, раздвигая очко архитектуре. И вот в таком случае скриптопараша тебе не подскажет, что может пойти не так. А норм языки, да даже вроде той же жабы - вполне могут, за это её и полюбил кровавый ынтырпрайз.
557 3049873
>>49704

>Я вижу что ты жнец и на дуде игрец пиздабол


Ето да, не спорю. вместо предприятия просто ОООшка с 0 сотрудников и фрилансерами в серую

>Ну возьми postgres


Че я корпоблядь по твоему что ли.

>Для скрипта


Обхожу деревья на си.

>500-1000 символов на запись.


>description_tsvector @@ to_tsquery('залупа')


>Если осили и работает, то потом попробуй прогнать скрипт до 50 млн записей в БД


Так подожди, подожди. Это же всего лишь 50 гигабайт. БД хранится полностью в ОЗУ. В чем тут вообще может быть проблема? Просто ставишь VP дерево и обходишь как тебе угодно. 50 гигабайт это нихуя.

>прогнать скрипт


>Для скрипта можешь кстати взять js


Ебать вам там хуево с этими скриптами. Скрипты какие-то пишете для обхода 50 гигабайт. ПРОСТО берёшь VP дерево и ПРОСТО получаешь всё что ты там хочешь.
558 3049906
>>49861
Просто не стоит строить архитектуру на объектах. У тебя данные хранятся. И твои говнофункции, которые отвечают за Й, Х и У. Можешь сколько угодно говнофункций написать, да всем буквально поебать что там будет понаписано и что они будут брать. Если надо, то можешь несколько функций завести и собирать с них данных. По-ебать. Ну а архитектура менеджерит все подключения, исключения, приоритеты работы, зависимости и последовательности транзакций. В идеале, конечно, ирл такого монстра заебешься писать.
Что тут может пойти не так? Вот серьёзно, что?

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


То что ты описал это и есть проблемы жабы так-то, когда говянная архитектура на объектах, которую исповедуют в тырпрайзе, постоянно переписывается и обсикается в штанишки. Просто в жабе можно на это хуй положить.
image.png97 Кб, 1091x743
559 3049924
Надо признать интерес к расту растет, помимо SO, что мало что показывает, кроме интереса, есть еще показатели гитхаба среди тысячников (более 1000 звезд). Если за 6-7 лет было около 200-400 овер-тысячников, то где-то за год или два стало 1200 тысячников, от чего раст попал в топ 10 по гибхабу.

Так что наблюдаем, но не верю что он пригоден для промышленного кодинга, все еще думаю что останется как экзотика, посмотрим, я часто бываю неправ.
560 3050015
>>49906
У тебя всё равно должны быть какая-то модель данных. Структуры, енамы, это всё.

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



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

> говянная архитектура на объектах,


очень хорошо подходит для коллективной разработки. Архитектор в калифорнии пишет интерфейсы, индусы пишут реализации под разные классы. Жаба потому и взлетела, что твоя лапша из функций и процедурок нежизнеспособна в таких условиях.
561 3050037
>>49873
Это в теории классно, а ты напиши.

>Че я корпоблядь по твоему что ли.


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

>БД хранится полностью в ОЗУ


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

> В чем тут вообще может быть проблема?


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

>Ебать вам там хуево с этими скриптами.


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

Студент пиздбол ты ни дня ни работавший
изображение.png70 Кб, 1579x281
562 3050044
>>49873
Я даже догадываюсь у кого ты учишься
для ценителей та самая цмс http://thalassa.croco.net/download/
563 3050050
>>49861
Двачаю, вкатуны не знают о том как происходит на самом деле, что иной раз приходится кардинально всё переделывать из-за изменений бизнеслогики и никакая архитектура не спасает
564 3050058
>>50044

>Я даже догадываюсь у кого ты учишься


>


Интернет тесен, возможно это он и есть. Но я не стал качать исходники, чтобы заценить.
565 3050523
>>50015

> У тебя всё равно должны быть какая-то модель данных. Структуры, енамы, это всё.


Почти никаких структур не остается после нормализации так-то. Енамы только, но эт уже примитивы.

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


Вообще-то это почти что подход GraphQL, когда вместо сервера у тебя просто GraphQL стоит. Это может уехать очень, очень далеко.

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


Не, это скорее исторически так сложилось. Не обязательно объекты должны иметь именно такие нетривиальные связи, не обязательно они должна наследоваться и иметь вот всё эту хуйню. Просто когда-то зафорсили ООП как язык для манагеров, мол, АТВИЧАЮ ЧТО ПРОСТА БУДЕТ ЛЮБОЙ ИНДУС СМОЖЕТ АСИЛИТЬ!11 и каждая фирма стремилась его внедрять.

>>50037

>Это в теории классно, а ты напиши.


Да, скоро буду писать бд новую, с существующими пердолями проблемки возникают небольшие такие. Может писать не буду и заведу Foundation, ещё и с драйверами под новые диски работает, такое я пердолить не готов.

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


Там небось ставят задачи и скрипты писать.

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


Нет, озу нужна для БД. Прошли времена кэшей и высокой стоимости озу, 500гб стоит дешевле говна.

> Сервер внезапно ребутнулся, как эти данные будут хранится в твоей васянской БД?


Это кластер. На диск скидывается когда нужно.

> Как организовать crud в твоей хуйне?


> Как быть с транзакциями?


STM либа.

> Как со связями с другими таблицами?


Есть таблица со связями индексами.

> Как твоя поделка работает если писать десяток записей в секунду 24/7, будет ли она все твои деревья перепердоливать?


Батчит и перепердоливает индексы.

> Что если я захочу ещё одно поле добавить?


Сколько угодно.

> Кто эту хуйню будет поддерживать?


Там 500 строчек, планирую сократить.

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


Да и хуй с ними, нинужно. Идеальная БД жто Foundation. Но он всё ещё медленная.

> Студент пиздбол ты ни дня ни работавший


Да, я ни дня в интерпрайзе не работал.
565 3050523
>>50015

> У тебя всё равно должны быть какая-то модель данных. Структуры, енамы, это всё.


Почти никаких структур не остается после нормализации так-то. Енамы только, но эт уже примитивы.

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


Вообще-то это почти что подход GraphQL, когда вместо сервера у тебя просто GraphQL стоит. Это может уехать очень, очень далеко.

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


Не, это скорее исторически так сложилось. Не обязательно объекты должны иметь именно такие нетривиальные связи, не обязательно они должна наследоваться и иметь вот всё эту хуйню. Просто когда-то зафорсили ООП как язык для манагеров, мол, АТВИЧАЮ ЧТО ПРОСТА БУДЕТ ЛЮБОЙ ИНДУС СМОЖЕТ АСИЛИТЬ!11 и каждая фирма стремилась его внедрять.

>>50037

>Это в теории классно, а ты напиши.


Да, скоро буду писать бд новую, с существующими пердолями проблемки возникают небольшие такие. Может писать не буду и заведу Foundation, ещё и с драйверами под новые диски работает, такое я пердолить не готов.

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


Там небось ставят задачи и скрипты писать.

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


Нет, озу нужна для БД. Прошли времена кэшей и высокой стоимости озу, 500гб стоит дешевле говна.

> Сервер внезапно ребутнулся, как эти данные будут хранится в твоей васянской БД?


Это кластер. На диск скидывается когда нужно.

> Как организовать crud в твоей хуйне?


> Как быть с транзакциями?


STM либа.

> Как со связями с другими таблицами?


Есть таблица со связями индексами.

> Как твоя поделка работает если писать десяток записей в секунду 24/7, будет ли она все твои деревья перепердоливать?


Батчит и перепердоливает индексы.

> Что если я захочу ещё одно поле добавить?


Сколько угодно.

> Кто эту хуйню будет поддерживать?


Там 500 строчек, планирую сократить.

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


Да и хуй с ними, нинужно. Идеальная БД жто Foundation. Но он всё ещё медленная.

> Студент пиздбол ты ни дня ни работавший


Да, я ни дня в интерпрайзе не работал.
566 3050533
>>50044
>>50058
Да заебали, я пту закончил на электрика, похуй мне на этого шизика с вебом 1.0 в голове.

Алсо, он какой-то порвак, то ли либертардианец, то ли анкап, подвспшикивал с его маняфантазий как нужно экономику строить.
567 3050601
>>50523

>скоро буду писать бд новую


>Там 500 строчек


Как ты быстро 500 строчек накидал, не успев даже пост до конца написать лол.

А вообще мне интересно почему у сишников какая-то маниакальная тяга колхозить свое? Этот шиз эталонный пост накатал из палаты мер и весов, вместо проверенной годами БД, которая имеет довольно серьезный функционал, предлагает поделие на коленке да и еще какие-то либы натянуть, да еще весь код в 500 строк, который он запланировал и никогда не напишет На лоре гле-то под новостью о языке го тоже повылазили черти давай рассказывать как свои сервера писать круто, а в стандартной библиотеке там типа не свой код и хз как оно работает лол.
568 3050603
>>50533
Ты еще и левак идиот
569 3050642
>>49573
Бамп вопросу.
ava3.png230 Кб, 506x667
570 3050660

>решил установить консольный плеер на расте


>452 каких-то зависимостей из интернета


Это пиздец, товарищи...
571 3050665
>>50660
Просто посмотрите на эту хуйню.
573 3050667
>>50666
И там еще куча такого полотна. Это нормально для СИСТЕМНОГО язык?
574 3050677
Пакетный менеджер - это нормально.
Если пишешь под систему - нахуй тебе туда плеер ставить с ресодвом депенденсей? Не пользуйся вообще карго.

Ты же срать когда идешь домой - шубу не надеваешь? Хотя хуй знает, может ты еще и в раковину срешь вместо унитаза а судя по твоим постам потом еще свое дерьмо жрешь
575 3050682
>>50660
Напиши свой без зависимостей
576 3050683
>>50601

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


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

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

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

>>50603
Работает на барина вечным мидлом, ещё и порвак который за барина сражается. Ну ты и куколд, чел
577 3050685
>>50601

> А вообще мне интересно почему у сишников какая-то маниакальная тяга колхозить свое?


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

Кабану останется только лапу сосать
578 3050687
>>50685
Кстати да, это важно.
Слышал историю из варгейминга, там три человека написали какой-то дико нетривиальный код для клиентов и никто нахуй не понимает как и почему он работает. Им даже зп повысили после такой хуйни, чтобы не сбежали, когда эта история добралась до топов. В яндексе примерно то же слышал.
579 3050711
>>50523

>нормализации


>GraphQL



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

Похоже, что у тебя один проект, который ты постоянно держишь в памяти и помнишь в нём каждую запятую. Не удивлюсь, если это твой первый проект после лаб.
580 3050738
>>50711

> Далеко не все задачи сводятся к взаимодействию с БД.


Все. Вообще все.

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


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

> Такой код очень легко читать: для каждого типа отчёта ты видишь, как и какие методы он переопределяет, соответственно, очень легко дописывать.


Нет, в таком коде будет 500 зависимостей и переопределений. Просто путешествуя по ссылкам ты заебешься понимать все взаимоотношения классов.

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


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

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


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

> Просто делаешь запрос


Дык, я и сделал конструктор запросов на классах, который по методам собирает запрос.

>коде будет 500 зависимостей и переопределений.


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

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


>просто


>просто


ему, блять )))

Вот небольшой пример: мне нужно выбрать топ сущностей по разным критериям X и Y.
В классе я определяю: поле, по которому делать сортировку в запросе к бд, название этого поля и хинт для кабанчика, если название не раскрыло ему сути. Я хуй знает, как бы выглядело тут твоё просто, но у меня это реально просто: есть общий базовый класс, а все отличия сгруппированы в подклассах. То есть, сразу зашёл и посмотрел, что будет при таком-то варианты отчёта.
582 3050779
>>50748

> Дык, я и сделал конструктор


Зачем? Он не несёт никакого смысла. Всё то же самое что и с функциями.

> Но даже в худшем виде это будет слабо приближаться к тому бардаку, если делать лапшой.


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

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


Не ну если у тебя действительно класс в одном файле и всего лишь несколько функций - никаких проблем нет. ООП впринципе и работает вот в таких маленьких ситуациях, когда кода особо нет, всё просто и незамысловато. Правда оно бессмысленно в такой ситуации, ну да ладно, кому-то и говно вкусное.
Проблемы начинаются когда типов отчётов 50, классов 10-15, везде всё переопределяется и наследуется.
583 3050788
>>50779

>Всё то же самое что и с функциями


Разница в читаемости. Классы избавляют тебя от необходимости обозревать логику с if/match/switch, об которую ломается мозг. Взял тип отчёта и пошёл смотреть только его методы.

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


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

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

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

>Бамп вопросу.


Язык для веб-макак, какой кернелспейс нахуй.
585 3050817
>>50788

>Разница в читаемости.


Это да. Функции читаются легко и просто, у них однозначные выводы. А в классах какое-то ебаное месиво, лапша из состояний и наследований которые везде.

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


Ты серьезно говоришь что switch ломает мозг меньше чем наследование разных классов из разных файлов?

> Если всё так плохо на классах, то на функциях будет ещё хуже.


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

> Удалил его класс.


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

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


Ну как видишь целое ядро написали на функциях с примитивами. Даже шинда в ядре не использует ООП.

С ООП код обычно едет прямиком в парашу, после того как написали и оно своё отработало, думаю раст будет отъезжать в парашу ещё чаще чем объектный кал, с его-то синтаксисом и макросами.
586 3050827
>>50817

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



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

>как видишь целое ядро написали на функциях с примитивами


чел, там виртуальная таблица на таблице
587 3050838
>>50827

>виртуальная таблица на таблице


Там одна виртуальная таблица макс.
588 3050862
>>50827

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


>чел, там виртуальная таблица на таблице


Ебать манямирк.
589 3050879
>>50683
Найс подрыв с господином от безработного, не вчитывался в твой высер целиком
590 3050883
>>50685
А кабан такой глупенький, такое работает до поры до времени пока это колхозное решение не столкнется с какими-нибудь трудностями
591 3050907
>>50883
>>50687
Это если что ироничный пост был, в реале так только мрази полные делают
592 3050936
>>50879

> порвак


> рассказывает что порвались другие



>>50907
Бедного барина наебывают? Как же так! Как они посмели твоего господина наебать! Скорее вставай на защиту господина, он сам себя не защитит!
593 3050943
>>50907

> в реале так только мрази полные делают


То есть сишники пишущие свои базы данных и реализации http, используя функциональный говнокод
594 3050954
>>50936

>Бедного барина наебывают?


Своих коллег, или кто будет твой говнокод поддерживать?
595 3050963
>>50936

>господина


Почему ты думаешь что те кто имеет правые взгляды обязательно за господ? По мне наоборот генсеки при совке имели большее влияние на жизнь людей, а простой советский рабочий был в зависимости от директора предприятия больше чем сейчас рабочий от директора ООО "Рога и копыта". То есть при совке на работе решали где ты будешь жить, куда поедешь отдыхать и с кем будешь спать.
Вся эта шиза про баринов слышна от тех кто больше всего хочет себе государственного барина и сам преклоняется перед начальством. Вообще съеби в /po/ со свой грязноштаной хуйнёй, там любят на эту тему подискутировать.
Использование определенного стека технологий на определенном проекте прогонять через этот марксистский бред про баринов-эксплуататоров это конечно сильно.
596 3050972
>>50954
Он ни дня не работал и не понимает что кроме него есть ещё и коллеги и задачи бизнеса которые должны приносить прибыль чтобы ему же и платить зарплату. Но начитался алгоритмов с теорией шахмат по Марксу и начинает тут бред нести.
597 3051027
>>50963

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


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

> По мне наоборот генсеки при совке имели большее влияние на жизнь людей, а простой советский рабочий был в зависимости от директора предприятия больше чем сейчас рабочий от директора ООО "Рога и копыта". То есть при совке на работе решали где ты будешь жить, куда поедешь отдыхать и с кем будешь спать.


Почему мне не должно быть похуй что там было в совке, шиз? Нахуй ты эту методичку высрал?

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


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

> Вообще съеби в /po/ со свой грязноштаной хуйнёй, там любят на эту тему подискутировать.


Высрал целый пост какой-то хуеты порашной и рассказывает про порашу. Всё хорошо с тобой?

> Использование определенного стека технологий на определенном проекте прогонять через этот марксистский бред про баринов-эксплуататоров это конечно сильно.


Ещё скажи что всё хорошо когда ты по 8 часов работаешь мидлом, а твой код и все твои алгоритмы тебе даже не принадлежат.

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

Хуй знает где вы там работаете, наверное в своих манямечтах, если не в курсе про базу интерпрайаса.
598 3051063
>>51027

>я успешный частный предприниматель


Я вижу лол, ты наверное предприниматель как со своей БД, которую собирался написать и там всего 500 строк кода. Как бы ОООшку собрался открывать, но там у неё оборот небольшой 500 тыс. в месяц.

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


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

>Хуй знает где вы там работаете, наверное в своих манямечтах, если не в курсе про базу интерпрайаса.


Вот ты как раз в курсе только из книжек
Screenshot from 2024-02-16 17-41-32.png78 Кб, 653x849
599 3051235
>>50817

>наследование разных классов из разных файлов?


>В ООП нельзя ничего удалять, потому что всё это чем-то и где-то и когда-то наследуется.



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

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

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

> Я вижу лол, ты наверное предприниматель как со своей БД, которую собирался написать и там всего 500 строк кода. Как бы ОООшку собрался открывать, но там у неё оборот небольшой 500 тыс. в месяц.


Че высрал вообще?

> Твои васянские поделки еще быстрее в негодность придут


Там нечему приходить в негодность, код минималистичен.

> а код тяжело поддерживать из-за его постоянных изменений


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

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


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

> Вот ты как раз в курсе только из книжек


Тут не я рассказываю про ООП которое легко поддерживать, лол.

>>51235

> 1. Даже если из разных файлов, как в жабе, то это не так страшно.


Всего лишь проебёшь весь проект.

> Просто привыкаешь пользоваться боковой панелькой в IDE.


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

> Конкретно у меня в моём пример всё в одном.


Это код на уровне вкатуна.

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


Нет, не верно. Наследования класса может происходить где угодно в системе. Ты можешь сломать что угодно. Например эти репорты может наследовать какой-то веб-интерфейс, который почему-то кто-то воткнул и сказал "эта техдолг, я пометил". Удалил класс? Молодец, переписывай пол проекта.

> Классы, это не помойка для функций, это способ разделить архитектуру на блоки.


> На пике примерно показано, как я их использую.


Когда ты пишешь вкатунский код - да, конечно, всё заебись. Просто открой реальный проект и посмотри сколько там наследований и куда они уходят.
601 3051290
>>51286

>Че высрал вообще?


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

>поток бреда от вкатуна про нормально делай


Не читал
602 3051295
>>51290

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


Нет, просто эта шизофрения связана только у тебя в голове, как бы ООО 500 тысяч, что это вообще? Это всё точно ирония, а не шизофрения погорельца?

> Не читал


Конечно, а то вдруг ты ещё проиграешь в аргументации, неприятно будет. Лучшее вообще на мейлча не заходи, тут неприятное постят...
603 3051313
>>51286

>Это код на уровне вкатуна.


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

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



дохрена 1000+ проектов с таким подходом, как на ООП, так не на ООП. Сишных проектов дохрена с файликами по паре строчек.
604 3051320
>>51295

>Нет, просто эта шизофрения связана только у тебя в голове, как бы ООО 500 тысяч, что это вообще? Это всё точно ирония, а не шизофрения погорельца?


Например такая:
>>49873

>вместо предприятия просто ОООшка с 0 сотрудников и фрилансерами в серую



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

>проиграешь в аргументации


С тобой играть как в шахматы с голубем, уронит все фигуры, насрёт на доску и полетит своим рассказывать как он всех уделал
605 3051332
>>51313

> Это не сам код, это я для тебя пример набацал.


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

> дохрена 1000+ проектов с таким подходом, как на ООП, так не на ООП. Сишных проектов дохрена с файликами по паре строчек.


Так это и есть проблема ООП. Приходит сеньёр говнописака и думает что сейчас сделает лучше.

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

>>51320

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


И что дальше? К чему это вообще высрал-то?

> С тобой играть как в шахматы с голубем, уронит все фигуры, насрёт на доску и полетит своим рассказывать как он всех уделал


Как же ты ловко меня уделал, ух! Поздравь себя с победой через самоотсос.
606 3051338
>>51332

>И что дальше? К чему это вообще высрал-то?


Да так ни к чему, для общего развития. Ну и как там ваша ОООшка с 0 сотрудниками поживает?
607 3051351
>>51338
Всё хорошо, спасибо что поинтересовался.
608 3051365
>>51351
Прям совсем 0 сотрудников? И обороты больше 500 тыс. в месяц (6млн. в год)?
image.png413 Кб, 1012x855
609 3051414
"ПОЧЕМУ У ВАС Х"
@
НАПИШИ САМ
@
ЭТО НОРМАЛЬНО, А ТЫ ГОВНОЕД


Понял, вопросов не имею. Вы в растолобби, видимо, все долбоебы.
610 3051419
>>51414

> Искренне удивляется говну в опенсорсе


С пробуждением
611 3051431
>>50660
>>50667
Даже если предположить что зависимости это ужасно плохо и надо самому всё писать чтобы хомячок с двача похвалил, то...

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

>Это нормально для СИСТЕМНОГО язык?


>консольный плеер


А этот твой плеер это точно системный софт? Если нет то к чему тогда этот заход? На т.н. системном языке, внезапно, можно и прикладной софт писать
612 3051452
>>51365
Это игнорируем, оно и понятно, пиздабол боится спалиться
613 3051453
>>51414
> - РЯЯЯЯ РАСТ НЕ ЖС, ОН КАК СИ ТОЛЬКО ЛУЧШЕ И БЕЗОПАСНЕЕ!11
@

> ЗАВИСИМОСТЕЙ БОЛЬШЕ ЧЕМ В ЖС


@

> КОМПИЛЯЕТСЯ 8 ЧАСОВ


@

> В ПАКЕТАХ СБОРКИ СЛОВО UNSAFE ЗАМЕЧЕНО 624 547 РАЗА

614 3051458
>>51365
>>51452
Да не трясись ты, шизло. Не ответили ему вовремя, а он аж затрясся, бегает по треду, ищет меня.
Сотрудников там нет , а я за сотрудника работаю. Что там с 500 тысячами вообще не ебу, ты таблетки не выпил, порвак? Выпей.
615 3051470
>>51458

> с 500 тысячами


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

> а я за сотрудника работаю


Погоди так ты же соучредитель или успешный предприниматель, а тут уже работаешь.
616 3051486
>>51470

> Не внимательно читал твой бред, проехали.


Сильно больно, да? Пынямаю, когда-то и мне было так же, когда только на двачь пришёл, троляки, ска!

>Погоди так ты же соучредитель или успешный предприниматель, а тут уже работаешь.


Таково законодательство.
617 3051493
>>51486

>Сильно больно, да?


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

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


Лол, пы походу до сих пор обижаешься

>Таково законодательство.


Директором тебя сделали?
618 3051526
>>51431

>А этот твой плеер это точно системный софт?


Лол конечно же нет, этом это полноценный плеер для спотифай, который умеет текст песен находить и еще прочие плюшки-ватрушки.
https://github.com/aome510/spotify-player/tree/master
Там кстати виден корень всего зла в зависимостях, кое что сделать и их станет меньше.
619 3051563
>>51493

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


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

> Лол, пы походу до сих пор обижаешься


Дя, я очень обижаюсь когда меня тролят. Потом не могу успокоиться и десятки постов оптравляю, мониторю треды там, спрашиваю почему мне не отвечают, представляю что кому-то неудобно. Всё так и есть.

> Директором тебя сделали?


Ещё и работником, вот пидоры.
620 3051596
>>51563

>Нах ты оправдываешься


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

>Ещё и работником, вот пидоры.


Молодец, гуглить умеешь
621 3051672
>>51563

>спрашиваю почему мне не отвечают


А ты спроси почему тебе не отвечают, может быть расскажут.
622 3054674
Чего затихли пидорасты?
623 3054866
И в плюсотреде подозрительно тихо, даже дед затих
624 3054932
>>54866
Развлекай нас тупыми вопросами, петушок
625 3055016
>>54866
>>54932
Двачаю, давай танцуй, обезьяна ебучая, я в цирк просто так пришёл что ли? Давай пиздуй сюда https://crates.io/ ищи чего нибудь и потом выкладывай скриншоты
626 3055052
>>55016
Да там в первый же крейт тыкаешь и наблюдаешь пикрилейтеды, в 10 строчках которых можно бинго составлять.
627 3055080
>>55052

> в 10 строчках которых можно бинго составлять


Составляй хули
628 3055152
Какие есть компактные стили кода? Раздражает фигурная скобка на отдельной строк, и что весь код лесенкой идет.
629 3055187
>>55152
Только если нечитаемой лапшой писать до края экрана. С лесенками ничего не поделать, только если избавляться от всей функциональщины и писать в процедурном стиле. Не зря в настоящей функциональщине делают специальный синтаксис чтоб писать столбиком, а иначе ебанёшься.
Либо можно эмулировать goto дробить код с лямбдами в переменных/отдельными функциями под каждую лесенку, чтоб например после => всегда был только одиночный вызов функции и никакого кода. Анкл Боб так и учил в чистом коде - всё что можно вынести в отдельную функцию, надо выносить. Тогда уже будет пародия на красивую функциональщину столбиком без лесенок в ад. Но тут уже надо быть немного архитектором и уметь внятно объяснять в названиях функций что она делает, чтоб не проиграть в факторио.
630 3055354
>>55052
А что там? Поясните гоферу.
631 3055378
>>55052
Какой же кал
632 3055396
>>55354
Этот шизик обычно накидывает скриншоты без ссылок, поэтому буду гадать без контекста.

> 1 скрин


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

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

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

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

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

> 2 скрин


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

Тут скорее этот шизик наверное хочет доебаться до кодогенерации, unsafe и Box, об этих вещах он ноет тут не первый тред, но он так и бинго не составил чего хочет, лол.
1632555187404.png130 Кб, 1061x968
633 3055409
634 3055415
>>55409
О, твоя любима тема подъехала, вижу ты не ровно дышишь к трансам и геям, давай накидывай ещё
635 3055429
>>55396
благодарю
636 3055431
>>55409
Мне противно от этого и это даже не смешно.
image.png1,1 Мб, 900x1200
637 3055437
638 3055483
>>55187

>Анкл Боб так и учил в чистом коде - всё что можно вынести в отдельную функцию, надо выносить.


Стоит ли стремиться к процедурному стилю, отбросив ооп?
639 3055484
>>55187

>и уметь внятно объяснять в названиях функций что она делает, чтоб не проиграть в факторио.


комментарии, чел
640 3055485
>>55409
Сильно будут полыхать трансы, геи и прочие фрики, если раст возьмут на вооружение какие-нибудь праваки?
641 3055501
>>55484
Очень хуёвая практика, когда вместо чтения кода ты читаешь шизоидные опусы.
Алсо, рекомендую всем растанам посмотреть на исходники Unreal Engine, чтоб увидеть как может выглядеть качественный низкоуровневый код на крестах, у вас реально будет шок после того что тут в тред кидают. А кода там поболее чем в ядре линукса, например.
642 3055508
>>55501

>исходники Unreal Engine


Что там, процедурный стиль?
643 3055595
>>55501
Вкинь примеры топ кода хули
644 3055613
Здравствуйте, я тут начал изучать rust (самостоятельно).
Скажите, пожалуйста, для доступа к метаданным видеофайлов (интересует битрейт) нужна отдельная библиотека или можно это реализовать средствами языка rust?
645 3055619
>>55613
Смотришь описание интересующего формата и можешь сам распарсить файл. Но делать самому универсальное решение дикий гемор.
646 3055652
>>55409
Как раз вчера прочитал ПВО Искусство легких касаний.
647 3055694
>>55485
Праваки на Zig!
648 3055744
>>55483

>Стоит ли стремиться к процедурному стилю, отбросив ооп?


В чулочнике нет ООП.
649 3055779
>>55508
>>55595
Да но троллит, там надо запрос какой-то отправлять https://www.unrealengine.com/en-US/ue-on-github
650 3055803
>>55437
Чел, это компрессионные чулки. Их носят те у кого проблемы с сосудами
651 3055811
>>55595
Вот держи довольно большие куски кода, относительно высокоуровневый кусок и байтоёбство, там весь код примерно в таком стиле написан. Всё что можно обёрнуто в абстракции, методы везде очень мелкие, обычно 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
652 3055881
>>55803
Вам чулочникам виднее.
653 3055920
>>55881
опять дед пришел серить в тред, давно не виделись, когда ты уже поймешь что
1. пидарасам похуй на чулки, они уже пидарасы
2. на тебя никто не триггерится потому что ты уже даже не скуф, а маразматик
3. и растоёбы с тебя тут просто рофлят

придумай новые шутки или уёбывай, заебал уже со своей заезженной пластинкой в чулках тут LOL
654 3055922
>>55744
съеби
655 3055934
>>55811
Как такому можно научиться, в software engineering это изучают?

>выглядит в расте


Наверно, сам язык тут никак не виноват, всё зависит от прогера?
656 3055940
>>55811
А код MAME можешь заценить?
657 3056070
>>55811

> Полдня искал по интернету лучшие куски кода на плюсах


> Высирает портянку на сотню строк


> Смотрите на эталонный код


> Точно такой же код на расте говно потому что написан в другом стиле


Ясн
658 3056110
>>55811
На плюсах можно писать красиво, но ты принёс какую-ту лапшу в лучших традициях этнтерпрайзной жавы. Кек.
659 3056129
>>55811
код выглядит лучше мешанины из указателей и логики, это соглашусь
но в целом что здесь такого пиздатого? как выше анон высказался - выглядит как джава код, ничего "хорошего" тут я не увидел, и это явно не лучше раст когда, раст просто реализует другую парадигму. Это если я сюда щас на скале/хаскеле/окамле ФП код принесу и скажу "ляяя красота" - и буду прав, И другие аноны будут правы, когда накормят меня говном лол. Потому что никакого мерила "стандарта красоты" тут нет.

Короче пока моя теория подтверждается: плюсобляди, с явно выраженной ригидностью мышления + нежеланием обучаться или хотя бы попытаться понять подход отличный от того, который они дрочат десятилетиями - соснули.
660 3056161
>>55811

>base64


У растопидорах лучше написано лол.
661 3056174
>>56110

>писать красиво


Ебать долбичи, нахуй вам красиво писать? Нужно просто и понятно чтобы было.
662 3056224
>>56174
Нечего сказать по существу, решил доебаться до слова? Просто и понятно — это тоже не про код в стиле жавы.
663 3056251
>>56174

>Нужно просто и понятно чтобы было


>Приводит в пример кресты


Уже достаточно

>Первый пример код с неймингом в стиле жаба-спринг, где автору платили за количество строк


>Второй - портянка из сотни строчек кода сранины из шифт операторов


>Ряяя ну тут же легко читается


Продолжай, мартышка, не зря мы в цирк приходим
664 3057132
>>56161
Долбоёб тупорылый, вот мой пост >>56251
665 3057251
>>56110
Посмотрел только первый скриншот.
Там всё красиво.
666 3057255
>>56110
Второй скриншот тоже охуенен.
И красиво, и понятно.
Более того, код написан так, что легко можно представить как будет выглядеть машиный код. Но это ещё не всё - оптимизатору компилятора будет легко оптимизировать эти функции.
667 3057325
>>57255
проиграл с тебя лох
668 3057373
>>57255
>>57251

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

На плюсах интерпретатор Бейсика за день написал бы. Ну ладно, за выходные.
Screenshot from 2024-02-21 13-57-39.webp5 Кб, 575x181
670 3057500
>>57427
Плюсист - латентный бейсикист.. бейсиковист.. бейсикодел!
671 3057511
>>57500
Хех. Возможен деанон, но Бейсик мой первый язык, который выучил не имея компьютера по журналу "Наука и жизнь". Цикл статей "Школа начинающего программиста". Год эдак 1987.
Программировал ручкой на бумаге.

Как можно не любить Бейсик???? При этом никто не заставляет на нём писать. Его можно просто любить.
672 3057777
>>57251
>>57255
Ок, пускай чувство вкуса у вас с автором этого вброса отсутствует. Но что в этом коде особенного, чего нельзя сделать на расте? Можно же по сути просто скопировать его почти один в один. Семантически ничего не изменится. Более того, машинный код в результате будет скорее всего практически идентичным, если плюсовый код компилировать шлангом. Естественно будут небольшие отличия в синтаксисе, например ! при применении макросов или обязательное использование self для полей объекта. Раст заставляет делать всё явно, и это хорошо. Иначе не понятно UE_LOG() это макрос или всё-таки функция, что будет если PreTickCommands == nullptr, где объявлены TickDelayLengthInFrames и Metronome, что будет если под Dest выделили недостаточно памяти и т.д.
673 3057780
674 3057853
>>57777

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

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



Очевидно что это макрос, потому как есть соглашение записывать макросы в верхнем регистре.
675 3057978
>>57853
Какое соглашение? Кого с кем и где это зафиксировано? Смотрю код линукса там повсюду container_of() применяется, который макрос и в нижнем регистре.
676 3058035
>>57978

> Смотрю код линукса


Поделка финского студента это как бы не образец для подражания.
Посмотри хидеры Windows DDK (WDK) - вот где мощь и образец для подражания.
sage 677 3058053
>>57511
Похуй на тебя всем тут. Бейсик свой в жопу засунь себе. Хвастался бы еще тут тем что питон выучил или жс
678 3058062
>>58035

>Windows


>>58035

>мощь и образец для подражания


Толсто.
679 3058075
Планирую выбрать раст в качестве первого яп. Какие подводные? Может лучше c/c++?
680 3058077
>>58062
Ты просто не заглядывал во внутренности DDK и не имеешь представления о чём речь.
image481 Кб, 3648x1988
681 3058081
>>58035
А чё там?
image219 Кб, 3000x1993
682 3058091
>>58077
Тебе виднее.
683 3058133
>>58081
Ух бля, уел. Не всё

Тем не менее - там всё охуительно.
684 3058142
>>58075
Может.
685 3058222
>>58081
is_odd есть?
686 3058260
>>58075
Не сможешь определиться с гендером и выпилишься в 30
687 3058263
Есть какая-то годная статья, чтобы понять раз и навсегда ссылки, значения, .clone(), .to_owned() и прочее?
Я как бы абстрактно понимаю, что это и для чего нужно, но когда пишу код возникают сложности, которые решаю обычно методом полуслепой замены одних подходов на другие.
Устал спрашивать у ChatGPT, какую комбинацию ссылок и клонов нужно использовать чтобы
error[E0507]: cannot move out of...
error[E0521]: borrowed data escapes outside of function...
уже наконец от меня отъебались.
688 3058271
>>58263
Может, если кто-то сильно шарящий объяснит простыми словами вкратце где, как и в каких случаях использовать вот это все, то тоже буду очень благодарен.
689 3058277
>>58263
Возьми го, зачем вы жрете кактус? Когда уже начнете отличать хайп от прагматичного кодинга.
Screenshot 2024-02-21 at 6.13.30 PM.png178 Кб, 1282x1170
690 3058292
>>58263
что "вот это всё"? какой ответ ты хочешь получить?
скачай книгу по расту и вдумчиво читай. На самом деле растбука достаточно, там всё понятно.

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

Для начала сформулируй нормально что тебе непонятно.
691 3058300
>>58277
Хватит жрать кактус, жри Goвно, проиграл с тебя, чепуха

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

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



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

Да и что плохого в хайпе, даже если возьмем за истину, что раст это хайп что конечно же не так, хайповать 10 лет ееее, или сколько там расту? Я вот на хайпе залетел в руби в свое время, поднял нереальное количество денег, связей, опыта, фана - хайп прошел, ливнул. Вопросы? Почему это плохо? Почему у ригидных дедов так горит от того, что кто-то смеет писать на других языках, особенно на тех, которые они не одобряют?
692 3058314
перекатите тред и https://github.com/rust-lang/rustlings в шапку ебаните
693 3058350
>>58292
Так я и говорю, что абстрактно мне все понятно, но вот на около-реальном примере, мне нужно провести 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?)?
693 3058350
>>58292
Так я и говорю, что абстрактно мне все понятно, но вот на около-реальном примере, мне нужно провести 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?)?
694 3058351
Прогуливаясь по вымышленному лесу, вы встречаете трех троллей, охраняющих мост. Каждый из них либо рыцарь , который всегда говорит правду, либо лжец , который всегда лжет. Тролли не пропустят вас, пока вы правильно не идентифицируете каждого как рыцаря или лжеца. Каждый тролль делает одно заявление:
Тролль 1: Если я лжец, то рыцарей здесь ровно два.

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

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

Какой тролль какой?
695 3058375
>>58350
Я не понял, у тебя тип ф3 &str, почему ты удивляешься что функция не принимает String?
696 3058391
>>58375
Если передавать из f3 в f4 &code, то приходит &str.
Если передавать из f3 в f4 code, то приходит String.
Вроде бы логично, но откуда f3 вообще взяла String, когда в нее пришло только &str? Изначально передается только невладеющая неизменяющая ссылка.
697 3058416
>>58375
>>58391
Мне вообще в принципе не нужно нигде ни владеть значением ни изменять его, по логике мне и клонировать то его не обязательно, просто получить значение в другом месте.
Чутье подсказывает, что нужно сделать один раз let code = some_text.as_str() - то есть получить ссылку на строку, а потом передавать куда угодно ее без клонирования и без ссылания. А получается, что нужно клонировать клон клона и ссылаться на ссылку.
Опять же, я понимаю, что это все сделано из-за областей видимости, владения значением и прочее. Понимаю, что String, на которую ссылается &str уже может и не существовать к моменту получения значения, но я не понимаю почему где-то передается ссылка, а где-то значение, где-то нужно клонировать, а где-то нет. Какая-то неконсистентность кода получается.
698 3058463
Я понял, что to_owned создает владеющую копию, которая должна дальше передаваться ссылкой, а без нее почему-то не работает. Беда...
699 3058476
>>58300

>Но соглашусь, если ты туповат


Странно это слышать от тех, кто не осилил хаскель.
700 3058481
>>58350
>>58391
>>58416
ты вообще хуйню скинл какую-то, кинь рабочий код для начала
701 3058513
>>58481
Весь файл на 130 строк кидать стремно, а минимально-воспроизводимый аналог я не могу написать, потому что тут специфичные api вызовы.
В любом случае пускай пока работает, может кто подскажет из анонов подсказку как это все правильно разворачивать.
702 3058517
>>58350
Во-первых, &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 и всё сам увидишь
703 3058605
Простите, что мешаю, но у меня есть тупой вопрос.

Eсть набор интов (u32) и просто инт(u32). Надо найти к какому инту из набора он ближе всего. Как написать самому понимаю, но уверен, что есть iter() в стандартной библиотеке.
704 3058676
>>58350
Скинь более полный пример на 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() делает то же самое.

Хз, надеюсь это чем-то тебе поможет.
704 3058676
>>58350
Скинь более полный пример на 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() делает то же самое.

Хз, надеюсь это чем-то тебе поможет.
image224 Кб, 3648x1988
705 3058691
>>58605
Ну можешь как-то так сделать, если хочешь через итераторы. Но я бы не выёбывался и просто использовал обычный пролетарский for.
Screenshot 2024-02-22 at 10.32.25 AM.png170 Кб, 1282x1068
706 3058972
>>58691
согласен, нахуй тут итератор, плюс мэп лишнюю коллекцию создает которую ты снова итерируешь
707 3059040
>>58972
Коллекция создаётся когда ты вызываешь collect(). map() просто описывает, как трансформировать входные данные.
708 3059112
>>59040
да, чёт я проебался, мэп оборачивает итератор в Map структуру и имплементит Iterator трейт, который потом fold'ит значения применяя замыкание, ебать охуенно сделали они ленивые мэпы

мимо раст ньюфаг
709 3060193
>>3060192 (OP)
перекат
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 3 мая в 00:54.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски