Этого треда уже нет.
Это копия, сохраненная 23 января в 15:21.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C# 8 дотнета тред #52 /csharp/ 2910820 В конец треда | Веб
Предновогодний тред лучшего языка на планете.

1. Ресурсы:
https://dotnet.microsoft.com/learn
https://github.com/dotnet
https://ru.stackoverflow.com/a/416585/422180
https://metanit.com
https://professorweb.ru

2. С# для веба
https://docs.microsoft.com/ru-ru/aspnet/core

3. C# для десктопа
https://docs.microsoft.com/ru-ru/dotnet/desktop

4. С# для игор
https://dotnet.microsoft.com/en-us/apps/games/engines

5. С# для мобильной разработки
https://docs.microsoft.com/ru-ru/dotnet/maui]

Шапка: https://pastebin.com/HT7Hi6FD
Предыдущий: >>2851295 (OP)

Внимание, в тред повадился срать джавадебил. Шарпочане, игнорируйте, а лучше репортите. Главное - не кормите.
2 2910942
Шарп гораздо лучше, чем жаба.
3 2911229
>>10820 (OP)

> 5. С# для мобильной разработки


> — https://docs.microsoft.com/ru-ru/dotnet/maui


А оно не протухнет как обычно через пару лет? А почему оно телевизоры не поддкрживает?
А что с Xamarin?
4 2911240
>>11229
Ничто не убьёт божественные винформы.
Вообще, MS такого высокого мнения о своих либах для гуя, что VSCode сделали не на них, а на электроне с поддержкой "ненужного" линукса, лол. В ближайшие лет 10 они создадут ещё несколько убийц винформ, не работающих на линуксе, но сами их использовать не будут.
5 2911249
>>11229
ну так мауи и есть развитие xamarin на разные платформы (нинужна)
6 2911296
В треде воняет жаваговном. Фу.
.png400 Кб, 750x550
7 2911332
image.png49 Кб, 291x317
8 2911355
Языки с левостороними типами, без функций, с обязательной точкой запятой - должны уйти в истории.
9 2911362
>>11355
Не уйдут никогда, ведь тебе тогда срать будет негде.
10 2911371
>>11240
>>11249
Я посмотрел, что это такое.

MAUI — это замена Xamarin.Forms, который никак не связан с Xamarin. Сам Xamarin становится частью .Net, что бы это на значило.
Я сам не пользовался ни тем ни другим, потому что слышал от людей, которые писали под Xamarin, что он уёбищен. Про Xamarin.Forms я даже не слышал ни разу.

Я некоторое время назад переписывал приложение под Android с жабы (меня заебало поддерживать этот убогий жабий код) на Flutter (заодно подбавить кроссплатформенности). Так вот, по моему впечателнию этот MAUI ничем не лучше андроидной жабьей хуйни за исключением того, что сам c# лучше джавы, но это в данном случае вторично. А важно то, что и там, и там убогая xml-разметка, настройки стилей размазаны по всему проекту. Чтобы что-то поменять, приходится менять это в пятке разных мест, в то время как в флаттере всё компонентно-ориентировано: если обработчик событий короткий — прямо где создаётся компонента, туда его и вписываешь, а если длинный — без проблем выносишь в отдельный метод.
Короче говоря, майки зачем-то везде пихают свой убогий xaml, который реально нахер не нужен.

Щас ещё наткнулся на хуйню:
делаем класс: class Foo {...}
делаем метод: public Foo SomeMethod(){...}
делаем переменную: var x = SomeMethod();
Какого типа будет переменная? Нет, не Foo, а Foo? !
Какого хера, блять? У меня 99% переменных немутабельные, мне нахер не нужна эта возможность позже null присвоить, а когда надо будет, то я могу явным образом это указать.
11 2911380
>>11371

> мне нахер не нужна эта возможность позже null присвоить


А при чём тут присваивание? Мутабельной ссылке ты и так можешь присвоить нулл без всяких вопросиков. Вопросики нужны, чтобы заставить тебя написать проверку на нулл.
12 2911397
>>11371

>Щас ещё наткнулся на


А в котлине как?
13 2911399
>>11355
Котлин даже джавистам оказался не нужным, а автора языка недавно уволился из жидбрейнс.
14 2911407
>>11399

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


Там фонд, насрать.

>Котлин даже джавистам оказался не нужным


Некоторым джавистам и новая джава не нужна, представь этот уровень дна.
15 2911412
>>11380
Я не хочу писать проверку на null там, где она не нужна.
Если SomeMethod возвращает не nullable, то мне не нужно переменную как nullable помечать.
Я нашёл причину, по которой разработчики шарпа сделали так: оказывается, когда var просто копировал типа, у легаси проектов при включении этого флага было очень много ворнингов. Лицорука.

>>11397
Ты меня перепутал с кем-то, я не жабопетух. Я пишу на шарпе все свои 10+ лет карьеры и очень хорошо к нему отношусь. Вот эта хуйня с превращением типа в nullable в var — это первое, что меня возмущает во всех изменениях шарпа с тех самых пор, как я вообще впервые на нём что-то стал писать.
16 2911419
>>11399
Понятное дело, Котлин - это такой узкоспециализированный язык для разработки под Андроид.
17 2911432
>>11371

>эта возможность позже null присвоить


увы нулсафети ввели сильно позже.

>>11397
в котлинке нуллсафети изначально
в шарпе не хвататет lateinit
в остальном же варнинги можно включить как ошибки

но все равно анализатор не может вытянуть все случаи что в шарпе (и приходится затыкать через !), что в котлине (и приходится затыкать !!)

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

>>11419
и кстати ахуенный. жетпак композ прямо няшный вышел. всякие там хамлы - ну нафиг их
18 2911446
>>10820 (OP)
аноны, короч я 4 года уже не кодил на C#, появилось желание вкатиться))))
какой проект можно сделать чтобы в резюмеху на джуна оставить?
какой-нибудь CRUD норм будет?
19 2911455
>>11446

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


Забудь об этом, пустая трата времени.

> какой-нибудь CRUD норм будет?


Да. Но постоянно держи в голове, что проект ты пишешь в учебных целях, а не для бесполезной ссылки на гитхаб в резюме.
20 2911462
>>11455
пойду круд сделаю тогда
21 2911468
>>11462
лучше сделай 100 крудов
22 2911471
>>11468
и бочку
23 2911473
>>11471
Это к жавистам.
24 2911474
>>11468
Это больше тянет на энтерпрайз решение, чем на вкатунский проект.
25 2911481
>>11432

> увы нулсафети ввели сильно позже.


Так они сначала сделали нормальный null safety, где всё строго, а потом сделали шаг назад, где var везде nullable подставляет для ссылочных типов. Я не хочу везде имя типа писать, потому что это уёбищно. А так мне студия пишет ворнинги, дескать я методы вызываю у nullable значения, хотя я только что получил его из метода, который возвращает всегда не null, потому что у них убогий анализатор. Спиздили бы хоть этот самый анализатор из тайпскрипта, там и то выведение типов лучше работает.
26 2911487
>>11481

>Так они сначала сделали нормальный null safety, где всё строго


не фантазируй
его они сделали намного позже поверх того что было
и в шарпе при этом в принципе нет val как в котлине

и анализатор не выводит из метода (это обычно дорого). он смотрит на сигнатуру (а это дешево)

А знаешь что еще дешево - труд того кто делает круд
Untitled.png27 Кб, 865x402
27 2911506
>>11487

> не фантазируй


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


Я не знаю, что ты хочешь этим сказать.
Я пишу на шарпе с .Net FW 2.x (не помню точно), и конечно никакой null safety тогда не было.
Что я имею в виду, так это то, что у них была первая версия null safety, может это была и бета, это я тоже не помню, но там var просто копировал тип из правой части. А сейчас он берёт тип, и если он ссылочный, то делает его nullable. Это мне совершенно не нравится.

> и анализатор не выводит из метода (это обычно дорого). он смотрит на сигнатуру (а это дешево)


А вот нихуя, кам как раз есть какой-то анализ кода. Пикрелейтид. Посмотри внимательно.
28 2911516
>>11506

>А сейчас он берёт тип, и если он ссылочный, то делает его nullable


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

Так что не нужно смотреть на типы, смотри на варнинги и будет тебе все ...плохо, плохо тебе будет, а с чего тебе быть хорошо.
29 2911636
>>11419
Тогда шарп это конвертер эксель таблиц в эксепшены.
30 2911644
>>11636
В этом они похожи с жабой.
31 2911653
>>11644
Тогда зачем мы ссоримся?
32 2911654
>>11653
Есть тут один анон, который сидит в обоих тредах, прикидывается то джавистом, то шарпистом и подливает масло в огонь.
33 2911659
>>11654
Это признание, даже в головах недалеких шарп стал сопоставляться с джавой. Еще недавно он воспринимался больше как свифт, мол где-то там под винду что-то.
34 2911669
>>2909840 →
Ну допустим. Как это отменяет хоть что-то из сказанного мной?

>>2909844 →
String json = http.request(url, RequestType.GET, requestString);

>>2909861 →
Кто заставляет пользоваться такими библиотеками, если тебе они не нравятся? Берёшь и подключаешь любую понравившуюся из сотен на выбор. Джава же не петушарп, тут не принято жрать скормленное с лопаты.

>>2909872 →

>Blackhole.consumeCPU


Ты совсем что-ли долбоёб?
35 2911678
>>11669

>Джава же не петушарп, тут не принято жрать скормленное с лопаты.


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

Любой шаг в сторону от топ стэка и ты жрешь багованые либы, с поверхностной документацией. Даже в пхп мире качественных фреймворков было больше. Так что это классический звездеж разнообразия жабы, в реале ты ограничен одним и тем же, но качеством куда хуже (потому что пилили такие же как ты, много лет, слой за слоем).
36 2911679
>>11678
Я серьезно, если джава еще терпимо-нормальная и тулинг неплох. То зоопарк либ, это худшее, что мог высрать тырпрайз и студенты.
37 2911699
>>11678
Пруфы будут, или опять убежишь, поджав хвост, после первой просьбы подтвердить свои высеры?
38 2911725
>>11699
Что тебе подтверждать, додик? Что евангелисты раздувают байку о гигантском арсенале либ на джаве, но в реале выбор сводится только к топам и все? Так это ты и без меня должен знать, если нюхал что-то кроме спринга и какого-нибудь вертикса.

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

Или хваленный супер undertow, у которого дока была "на отвали" (как и многое в джаве) и чтобы работать с ней приходилось полностью изучать сорцы, где вся бизнес логика еще была размазана через наследованию 5-10 классов, лол.
Или где супер-оптимизированный спринг, оказался чуть быстрее джанги, а священный нетти, эталон сетевого дроча, показал всем как на самом деле умеет тормозить? (а это решение было настолько распиаренное, что люди даже не тестили, мол все берем нетти и у нас будет летать все).

Джава живет одними и теми же байками тонну лет за счет оплачиваемых евангелистов (их так правда и называют) так что поверь, где-то больше половины тем чем ты гордишься, на деле маркетинговый буллшит.
39 2911735
>>11725
И сейчас ты мне рассказал, как твой злой евангелист в зеркале, баг рапидоида, дока андертова, спринг, который никто никогда оптимизированным не считал (лол) и нетти мешают следовать предложению пойти искать альтернативы какой-то найденной шарподебилом библиотеке.
40 2911755
>>11446

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


>какой-нибудь CRUD норм будет?


Круд на джуна слабовато в нынешних реалиях. Делай полноценный сервис, что-нибудь вроде сервиса бронирования или электронной очереди.
41 2911821
>>11735
Слив засчитан.
42 2911847
>>11821
То есть не ответишь? Слив принят.
43 2911863
>>11446
По нынешним временам тощего круда может и не хватить. У всяких выпускников жидбрейнса в гитхабчиках тоже говнокруды лежат.

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

Если же говорить о проекте, чисто для показа во время трудоустройства, то неплохо было бы, если бы в нём были какие-нибудь из следующих штук реализованы:
- прикручен swagger;
- есть какой-нибудь background-сервис;
- есть работа с БД и миграциями;
- есть взаимодействия с внешними сервисами (публичных API достаточно);
- в идеале ещё и работа с RabbitMq или кафкой;
- добавлен метрики для Prometheus'а;
- есть проект с unit-тестами;
- настроена аутентификация;а
- совсем круто, если в проекте лежат рабочий dockerfile и docker-compose, в котором все нужные зависимости прописаны (сервер БД, кафка и т.д.), чтобы можно было проект запустить и затестить;

Да, выглядит как очень дохрена для джуна. Но я бы отдал июню с таким проектом приоритет, так как ему, скорее всего, не придётся объяснять совсем базовые штуки, и он сможет быстро начать хотя бы поверхностно понимать, что у нас в коде сервисов происходит. А значит ему можно будет поручать делать какие-то базовые штуки. Плюс, скорее всего, он будет способен внятно сформулировать вопросы, если они возникнут.
44 2911928
>>11863

>Да, выглядит как очень дохрена для джуна.


На самом деле для джуна как раз. Причем, что институтского уровня, что после курсов (ессно нормальных курсов хотя бы на полтора...два года с предварительной базой по программированию).
Я бы может только кафку и рэбит выкинул, т.к. для соло проекта они нахуй не уперлись.
45 2912080
>>11863
О, я как раз такой проект сделал, ну кроме метрик и докера. И еще на жабке. Как на собес попасть?
46 2912088
>>12080

>Как на собес попасть?


Удача, упорство, связи.
Сам по себе проект тебе в этом не поможет, даже если ты их несколько штук в резюме запихнешь.
47 2912090
>>12080
Если на жабе то через стажировки в бигтехе. Первый язык вообще не важен, нужен опыт.
48 2912095
>>12088

>Удача


Пожелаешь?
>>12090
Чет мне кажеца это слишком амбициозно. Тащемта еще есть варик через стажировки.. Надо пробовать.
2023-11-0814-04-38.png49 Кб, 773x364
49 2912112
В чем отличие двух подписок на событие в пикрил? Почему во втором случае используется какой-то SizeChangedEventHandler?
50 2912182
>>11654
не прикидывается он шарпистом
он жавист говноед. просто в его говно насыпали немного сахара и немного язык продвинулся вперед. (но так и остался убогим говном), а он рад что его говно в синтетике типа шарп обходит (в удобстве то обойти не может даже с лобком волосатым).

выставляет нам бочку говна с сахаром и "смотрите вкусно"
конечно жава подросла за годы со времен switch только для int (штааааааа?) (причем вопреки мнению говноедов котороые орали "нинужна, зато ынтырпрайз" и там появились нормальные вещи типа ламбд), но все же отстает язык пипец как. что там с нуллсафети? ах да NRE в рантайме. вот жеж радость. Что там с корутинами? ну там что то ввели, но все равно какое то оно странное и сбоку приколочено. Про гет сет я уже задрался говорить - просто ненавидят жавистов разрабы жавы, ведь ввести синтаксис элементарно и НЕ ЛОБОК ВОНЮЧИЙ, а сам компилятор жавы сгенерит. Но нет - компилятор жавы не может сгенерить сеттеры без доп лобков. LINQ EXpression когда?, а никогда. Ведь компилировать можно только в компиль тайме нормально

с другой стороны, мне вот не нравится что сорсгенераторы в шарпе требуют от меня partial, а не работают как тот же фоди или тот же лобок волосатый
изображение.png14 Кб, 874x262
51 2912188
Принимайте в ряды очередного
52 2912195
>>12112
а какая разница. это одно и то же.
событие - это делегат какого то типа, что будет вызван
ты в подписке все равно комбинируешь делегат
сахар просто позволяет опустить его упоминание.
53 2912521
>>12188
Больше ломался
image.png53 Кб, 1201x225
54 2912552
Почему так?
55 2912556
>>11669

> String json = http.request(url, RequestType.GET, requestString);


Тебя мама не роняла в детстве вниз головой?
Напомню историю диалога:
Жабадебил: "Ваши async/await страшные и работают коряво"
Я: "Они работают не хуже джавовских коллбэков, а выглядят гораздо лучше"
Жабадебил: "Ну так не используй коллбэки!"
Я: "А как мне в джаве сделать веб-реквест без коллбэков?"
Жабадебил: "Вот тебе синхронный веб-реквест"

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

> Кто заставляет пользоваться такими библиотеками, если тебе они не нравятся?


Они все такие
Может мне своё написать? Я не могу из-за того, что жаба не умеет в асинки/эвэйты, хотя в них может даже js, и никакого нормального аналога в жаюе тоже нет.
56 2912578
>>12556
Чел, харош. Гноби этого жабадебила
Мимо Kotlin господин, бывший шарпер
57 2912585
>>12552
Ораклы всегда были такими пидорасами, что MS и не снилось. Проекты на жабе пересели с оракловой ждк на бесплатный свободный Temurin и его аналоги.
58 2912588
>>12556
а он скажет что это котлин и что котлин это suspend функция.
Ведь скоро они и котлин будут считать "жава такая хорошая что вот аж котлин сделали как расширение синтаксиса жавы"

>>12578
ну я пишу на котлин и на шарпе. В котлине нра синтаксис больше шарпа (но рантайм буэ). При этом писать с асинк/авайтами и токенами отмены мне сильно проще чем корутинами котлина и их еб...й системой распространения исключения.
Впрочем, в котлине я обычно использую flow ибо андроид и как то жить можно.
59 2912591
Двачи, допустим я пишу asp.net сервис с web api. Проект с api делаю зависимым от проекта с репозиторием, в котором есть класс интерфейса репозитория и класс самого репозитория с реализацией. В api пишу маппинг интерфейса и реализации, а в контроллере вызываю экземпляр типа интерфейса.

Всё вроде правильно? Интрфейс и репо класс должны быть в проекте репозитория?
60 2912621
>>12578
Протухнет жаба, протухнет и котлин, вы на одном "корабле", чудики.
61 2912636
>>12578

>Kotlin


Эти додики занимаются всякой херней, то транслятор в js пилят, то нейтив с ужасной производительностью, то dsl упарываются, то компилятор переписывают несколько лет, то какая-то мультиплатформа.

Там реально сидят такие школьники и фантазируют чтоли.
Они бы куда больше выиграли - написав транслятор в шарп или гошку, лол, но в итоге тухнут дальше на jvm, которую стали чаще дропать, а их IDE до сих пор на джаве, что пугает брать котлин во что-то серьезное кроме мобилок.
62 2912660
63 2912739
>>12636

>Они бы куда больше выиграли - написав транслятор в шарп или гошку


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

Язык вышел годный, но вот рантайм...

впрочем ждем дотнета 8. хотя хз зачем ждем. там кучу всего навалили, а что из этого полезно - хз.
64 2912742
>>12739
Чем рантайм шарпа лучше жабовского? Очевидно, жит у жабы лучше, а значит и оптимизации. Есть возможность написать кастомный гц, так еще есть несколько реализаций вм. Что же у шарпа? Одна версия на все. Вы рофлите типа так, да?
65 2912755
>>12742

> Очевидно, жит у жабы лучше


С чего вдруг?
У шарпа вообще куда больше возможностей оптимазации. Есть value-типы, структуры, не все методы виртуальные, есть ансейв с арифметикой указалетей (не помню что там в жабе из натива, но вроде костыльно все было).

Жабий жит рожает только после 10.000 итераций и может откатить уже оптимизированый код.
66 2912756
>>12742
наличием структур. в жава же оптимизированы под это только примитивные типы. Струтуры не нужны? - ну да, жависту они не нужны. он будет пердолится
наличие настоящих дженериков - в жаве можно извлечь тип далеко не всегда.

ну жит лучше, но это еще стандартная библиотека не очень оптимизированнная (ленятся)
И вообще то у шарпа как раз и был разнобой рантаймов, а теперь одна версия на все - дооптимизируют.
Тем более что притащили Native AOT и в дотнет 8 она станет еще лучше (я не использую ибо в моем случае время программиста который не пердолится с "да блять язык не ставь палки в колеса" стоит намного дороже чем вычислительные мощности)
67 2912764
>>12755
Я че тебе все оптимизации должен называть...
Lock elision, ZGC/Shenandoah, compress class ptr и пр.

>Есть value-типы


Они не фуловые, поскольку их все еще можно индетифицировать. Т.е. гибрид.

>есть ансейв с арифметикой указалетей


Ты про https://shipilev.net/jvm/anatomy-quarks/5-tlabs-and-heap-parsability/ ?
>>12756

>но это еще стандартная библиотека не очень оптимизированнная


Ну вообще стринги, очень оптимизированы, типа https://openjdk.org/jeps/254 автоматическое изменение в коде на StringBuilder + constexpr. Еще параллельный код написан дагом ли, вообще гений какой-то неиронично. Не ебу кто в шарпе писал, но вряд ли кто-то его уровня.
68 2912769
>>12742

>Есть возможность написать кастомный гц


В .net тоже можно. Еще с Core 2.0
69 2912773
>>12769
Ну и где гц с STW не более 1мс? Ну или хотя бы 10.
70 2912780
>>12764
они там оптимизируют много чего но еще больше забывают.
Тот же LINQ хотя бы имеет кучу альтернативных реализаций потому что на него забили.
тот же стрингбилдеркеш вообще интернал.
мемористрим ужасен своим ООМ, а решение (путь и от майков все равно какашка ибо спроектировано не теми фломастерами)
контраинт new() использует рефлексию (ПОЧЕЕЕМУУУ)
безусловно читая исходный код я вижу всякие там спаны. но до сих пор ( и всегда) WTF (вы чем вообще думали??) хватает.
16922300250053.png31 Кб, 1780x1000
71 2912801
>>12764
Я хз что там в дотнете, скорее всего давно все тоже самое, я лишь сказал что есть почва для еще большей оптимизации, которая в jvm уже не достичь. А пока там твой жит сработает он будет работать как питон, все алокации в хипе, таблица виртуальных функций, и прочая динамикодрисня.

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

Смотри, что получается, каждый патч в дотнете тонны оптимизаций, с графиками все как мы любим, в тоже время на жабе лежит болт уже лет 10-15. И кроме котлин сахара ничего не добавляют и не изменяют. Ты даже не представляешь в каком обмане ты живешь.
72 2912809
>>12801

>я лишь сказал что есть почва для еще большей оптимизации


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

>только не неси мне тот костыльный звездец на жабе


Ясна

>в тоже время на жабе лежит болт уже лет 10-15


Слушай, если ты не интересуешься, то это твои проблемы как бы.
javacs.png48 Кб, 1201x225
73 2912811
>>12801
Ну и не забываем что жаба это проприатарная говнина, а клон monojdk openjdk дико тормозной.
74 2912813
>>12780
Ты по моему френдлифаер делаешь...
Кстати, хвостовую рекурсию ведь не оптимизировали?
75 2912825
>>12809

>Слушай, если ты не интересуешься, то это твои проблемы как бы.


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

Вот как пример, когда запилили микро гц в го, евангелисты кричали, какое же это говно и какой у нас продуманный гц, не то что это ваш из и го. В общем, нам такое ненужно и тут же начинают пилить Shenandoah и рассказывать, какой это вообще прорыв и какие мы жабьи молодцы. Это смешно же.
76 2912829
>>12591
>>12660
Окей, а предположим
у меня три проекта:
1) API
2) Домейн с бизнесовой логикой
3) Репозиторий (Инфраструктура)

Советуют класть интерфейс IRepository в Домейн.
https://stackoverflow.com/questions/44394432/which-layer-do-repository-interfaces-belong-when-using-di

С Домейном всё логично, в нём только интерфейс и экземпляр типа интерфейса. Инфраструктура зависит от Домейна, в ней класс Repository, реализующий интерфейс из домейна.

НО вот проект API завист от Домейна, и поэтому имеет доступ к интерфейсу. Но от конкретной реализации API не зависит, а значит и доступа к классу Repository не имеет.

Но в Program.Main() проекта API мне нужно связать
builder.Services.AddScoped<IRepository, Repository>(); !
77 2912831
>>12825
>>12811

>openjdk дико тормозной


>когда все застыло в 2007


>тут же начинают пилить Shenandoah


Ясна, ты зеленый.
78 2912849
>>12831
Слив засчитан, жабёнок.
Там котлиновские корутины рвут ваш лум, иди туда воюй, на своей протухшей пропритарной говнине, не мешай опенсорс господам наслаждаться оптимизациями и новыми технологиями.

Оказывается на одних только заточках дотнета можно целый подкаст сделать.
Как просохнешь, приходи еще
https://www.youtube.com/watch?v=2xipjiwodp4
79 2912854
>>12849

>приходи еще


О, ты ждать будешь, мила. Ну приду тогда
80 2912870
>>12742
Как по мне, основная фича шарпового рантайма - нормально реализованные дженерики, которые не проебывают инфу о типе в рантайме и позволяют нормально работать с значимыми типами без лишних боксингов/анбоксингов. Плюс позволяют JIT-у генерировать оптимизированные версии для параметров значимых типов.
Ну и поддержка кастомных значмых типов (ака структурки) штука хорошая. Позволяют не так сильно GC нагружать. Ибо запихивать в хип что-то типа Pair<int, int> это немножко шиза.
Это всё и чуваки близкие к разработке Java-рантайма признают, типа того же Углянского (он у меня в универе семинары по проге вёл, лол. На няшной сишечке, правда).
image.png38 Кб, 355x201
81 2912876
>>12870
Если б жаба не сделала стирание типов, то вот эта https://namin.seas.harvard.edu/publications/java-and-scalas-type-systems-are-unsound-existential-crisis-null-pointers штука такие последствия бы имела... В этом случае и слава богу, что не внедрили.
Остальное вальхалла должна сделать, но это к 2030, наверное

>он у меня в универе семинары по проге вёл


Блин, завидно даже.
82 2912878
>>12813
У меня нет безмерной любви к шарпу. Я (мульти) язычник. Так что кривое видиться мне сильнее. Просто на шарпе я зарабатываю и люблю изящное
Шарп лучше жавы, но WTF в нем хватает. И когда от этого отмахиваются, то язык страдает.
Ну и детские болезни всегда о себе напоминают - нуллы, ридонлилисты, вары, нерасширяемые статики и т.д.
83 2912891
>>12876

> Блин, завидно даже.


Я даже к ним на стажировку пытался попасть. (Тогда их компанию ещё Huawei не купил и они свою AOT JVM Excelsior.Jet пилили). Тестовое решил, а вот собеседование не прошёл. На собесе прям душили вопросами про всякие низкоуровневые штуки, типа алгоритма синхронизации кешей и т.п.
84 2912901
>>12891

>алгоритма синхронизации кешей


Это L кэши проца? Типа как там данные шуруются на регистры и складываются после операций... Еще барьеры там есть.
Ну теперь себя неполноценным чувствую, ех.
85 2912902
Аноны, верно ли, что C# работает медленнее только со всякими классами, функциями, и тп, но математические операции по типу умножения делаются одинаково во всех языках? Или чтоб нейросеть нормально работала нужно будет вычислительную часть кода на C++ писать?
PizdecYaRazbogateyu.PNG38 Кб, 488x397
86 2912906
я правильно понял, что на пикриле я использую т.н. .NET , который в C# вместо winapi, что если я хочу искать документацию по подобным инструментам в C#, мне надо гуглить про .NET? Мне очень понравилось в этой среде, хочу дропнуть winapi в пользу этой штуки.
87 2912908
>>12901
Да про кеши процессора. Про протокол MESI (https://en.wikipedia.org/wiki/MESI_protocol) и барьеры памяти.
88 2912912
>>12906
Ну. Да. Это вроде как .NET
Выглядит похоже на винформы, но не могу ручаться, потому что такое можно и на WPF делать.
89 2912917
>>12902
Ну. Сверху же сам рантайм, сборки мусора и вот это вот.
Но учитывая, что нейронки на пистоне делают, я не думаю, что тебе шарповской производительности не хватит.
90 2912925
>>12891

>типа алгоритма синхронизации кешей


ну их в жопу
это как с volatile. читаешь разные статьи и там типа "за счет когерентности кешей можно считать что"
а вот них. нельзя считать. нет ничего такого.
волатиле не гарантирует ничего кроме барьеров.
лучше вообще в эти темы не лезть, а писать круды и формачки.
91 2912929
>>12902
У майков есть свой нахуй не нужный фреймворк для ML. Судя по репу, большая часть на шарпе написана. Но есть и часть на плюсах. Для узкий мест, видимо. https://github.com/dotnet/machinelearning/tree/main
92 2912933
>>12902
У шарпа есть возможность на стеке, скажем структуры заюзать или низкоуровневый unsafe и прочее трюки, позволяющие делать быстрые числодробилки, не упираясь в ГЦ.
В теории будет достаточно шустро. На практике писать шустро надо уметь даже на плюсах.
93 2912934
>>12912

>Выглядит похоже на винформы


да, это они.
>>12912

>Да. Это вроде как .NET


Спс. А есть хорошие видеоуроки по .NET, чтоб там разбиралась и работа с изображением, как на пике, и со звуком, и с памятью других процессов? Или только на сайте майкрософта документацию читать?
94 2912948
>>12933
и не опускаясь до реального unsafe то есть сишки
есть класс Unsafe, меморимаршалы разные и ref и до плюсов не опускаешься.
95 2912950
>>12929
Я этот помню, но мне надо самому работать с архитектурами и тп, тк интересует именно математика и суть всего этого.

>>12917

>рантайм


Что это?
>>12917

>сборки мусора


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

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


Питон медленнее?

>>12933

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


>В теории будет достаточно шустро. На практике писать шустро надо уметь даже на плюсах.


Т. е. будет как на плюсах скорость этих операций? Я хочу с виндой работать на .NET, тк это самая сложная и не очень затратная часть, можно потерять на ней в производительности, а вычислять необходимое с нормальной скоростью.
image.png9 Кб, 920x68
96 2912953
>>12925

>волатиле не гарантирует ничего кроме барьеров.


Ха-ха. Барьеры часть реализации. И их жеба не гарантирует.
Надо смотреть в happen before(пик). И вот оно эту связность гарантирует. А на этом усе.
97 2912956
>>12829
https://medium.com/dotnet-hub/clean-architecture-with-dotnet-and-dotnet-core-aspnetcore-overview-introduction-getting-started-ec922e53bb97

Короче, я понял.
API зависит от Домена и от Инфраструктуры.
Инфраструктура зависит от Домена. Домена не зависит ни от чего.
Интерфейсы лежат в Домене, а реализация в Инфраструктуре.
98 2912959
>>12552
Потому что копрософт лицемерная хуйня. Лицензия-то свободная, но вся экосистема эыфективно запрещает кроссплатформернную разработку. Оракл же предоставляет возможность и себе заработать, и тем, кому важно, пользоваться попенсорсом.
99 2912967
>>12950

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



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

А если нужно много временных массивов создавать, то можно в сторону https://learn.microsoft.com/ru-ru/dotnet/api/system.buffers.arraypool-1?view=net-7.0 посмотреть
100 2912968
>>12950

>Питон медленнее?


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

но питон и многопоток == Ж-О-П-А (и не та которая счастье)

то есть написать прототип (тупо в разы быстрее накидываешь на коленке) или поработать с нейросетями - питошка (ну тут уж моя личная лубов к питорчу)

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

>>12953
я про статьи в которых пишут что волатиле гарантирует что значение в кешах процах будет одинаковое. И про те что волатиле гарантирует, что значение будет прочитано из памяти.
волатил не гарантирует кроме того что компилятор за тебя расставит барьеры.
101 2912974
>>12968
А я тебе говорю, что даже барьеры не гарантируются. Ты в спеке ни слова не найдешь про барьеры. А компилятор как угодно может ее реализовать.
102 2912976
>>12556

>хачу асинхронный


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

>нинашол


А может ты хуёво искал? У меня вот на примере OkHttp есть.

>>12902
Неправда, петушарповый джит говно из под коня и не умеет нормально минимизировать оверхед не-нативности. Разница с плюсами огромная.
103 2912981
>>12902

>Аноны, верно ли, что C# работает медленнее только со всякими классами, функциями, и тп, но математические операции



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

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

Я вообще пишу движок с Vulkan на шарпе, ебало?
104 2912982
>>12974
и того круд и формсы. калькуляторы наше всьо
жаль их не покупают.

>>12976

>У меня вот на примере OkHttp есть.


хуета. я на андроиде под котлином пытался юзать это напрямую
потом с корутинами и понял что это говно и взял ktor, где сразу все нормально ибо оно ЗНАЕТ что такое корутины
а твой OkHttp предоставляет ОДИН ИЗ ВАРИАНТОВ костылей.
105 2912983
>>12982

>хуита


Аргументы будут или убежишь в харчках?
106 2912994
>>12968

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


Что это значит? На питоне легко между приложениями данные перекидывать и можно с данными из питона легко работать на другом языке?

>>12968

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


>


Мне понравилось, за час разобрался с 0, когда на winapi несколько дней пытался нормально изображение считать и не смог в итоге (думаю смог бы когда-то, но не нужно уже).
107 2912995
>>12976

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


Смотрите, жабохолоп асинхронность от конкурентности не отличает! Хочешь сломаю тебе шаблон? Асинхронность возможна и на одном потоке. У асинхронности основной смысл в том, чтобы во время io-bound операций у тебя потоки не простаивали. А ты предлагаешь стартануть новый поток и его тут же заставить его простаивать, ожидая ответа.
108 2912997
>>12976

>оверхед не-нативности


Что это?
Время запуска?
109 2912999
>>12995
Я тебе секрет открою, но конкурентность тоже возможна на одном потоке.
110 2913002
>>12959
Ну мы же не будем скатываться до примитивной льжи?

>запрещает кроссплатформернную разработку.


Что за бред, там mit лицензия, это даже вроде удобнее gpl, где онли попенсорс.

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


Маня-фантазия какая-то.
У тебя там пропритарная платная херня, а то что есть monojdk, скажи спасибо сану, который перед тем как схлопнуться успел высрать жабу под опенсорс.
111 2913003
>>12983
в шарпотреде? нах оно мне надо
это ты у нас обосрался принеся говно
тем более что ты оперируешь жавой, а не котлином

достаточно просто посмотреть на оффсайт где для асинком там каллбэки (да котлин позволяет изящно их написать) или извращения

>>12994
это значит что питон хоть и медленный, но мощный и простой
а популярен он не за скорость, а за то что по факту имеет кучу разных биндингов ко всему на свете (читай обвязок над сишным кодом). Так что медленность питона не сильно ему мешает, а вот гибкость сильно помогает, ведь все равно считает си.
112 2913004
>>12995
Чем твои маняопределения понятий мешают разработке не поведаешь? Например, чем это

>стартануть новый поток и его тут же заставить его простаивать, ожидая ответа.


плохо? Тем, что на петушарпе так нельзя и тебе завидно?
113 2913005
>>13003

>в шарпотреде? нах оно мне надо


Эээ, че за неуважение к этому тредику. Давай аргументируй.
114 2913009
>>13003
Слив принят. Шарпохуйня опять обоссана.
115 2913011
>>12981

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


>


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


>


С этим unsafe я смогу получить код по производительности, как в C++?
Я смогу часть (считывать пиксели и звук) делать в обычном , а часть (перемножение матриц) в unsafe?
116 2913021
>>13011
Unsafe и нативный код это разные вещи. Парой методов из ансейфа всю библиотеку со всеми нативными операциями из c++ не заменишь. Шарпоговно не поддерживает ускорения за счёт нативного кода, в Java есть интрисинки.
117 2913024
>>13005
okhttp это жава либа. причем тут шарп
я когда НЕ ХОТЕЛ лишних прослоек в котлине хотел юзать ее напрямую
но там она прелагает СВОЙ ПУТЬ
каждая либа на жаве предлагает СВОЙ ПУТЬ (и обосранный говножавист конечно же это тактично обходит)

и я посмотрел на это и подключил ktor, который предлагает СТАНДАРТНЫЙ путь корутин, а не "закат солнца вручную". При этом я получил конечно плюс к размеру apk, но посмотрите сами на асинхронный запрос (один из вариантов)
https://square.github.io/okhttp/recipes/

чтобы понять что нахуй такой путь. пусть жависты жрут говно цистернами, а я лучше как нибудь стандартный путь.
118 2913030
>>13024

>каждая либа на жаве предлагает СВОЙ ПУТЬ


А минусы будут? Да и вообще спринг, например, не предлагает свой путь. Самая лучший фреймвор евер.
119 2913031
>>13011
Если руки не из жопы - сможешь. Только не надо руками матрицы переумножать, есть System.Numerics которые работают через SIMD. Быстрее ты не напишешь.
120 2913044
>>13021

>Шарпоговно не поддерживает ускорения за счёт нативного кода, в Java есть интрисинки.



https://learn.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics?view=net-7.0

Жабауебок уже даже не старается...
121 2913045
>>13030
Никакого "своего пути" окхттп не предлагает, ему уже высрать просто нечего, да и выше он уже слился, подтвердив что за вспуки не ответит, но, как ты сам сказал, ничего плохого в "своём пути" нет, лопатоеду просто не понять независимости от положения сапога разработчиков языка. Окххтп позволяет писать стардартнейшие синхронные запросы и стандартнейшими методами их заставлять работать параллельно.
122 2913046
>>12999
Не спорю, возможна. Но это уже не так тривиально.
>>13004

> Чем твои маняопределения понятий мешают разработке не поведаешь? Например, чем это


>>стартануть новый поток и его тут же заставить его простаивать, ожидая ответа.


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

> плохо? Тем, что на петушарпе так нельзя и тебе завидно?


Можно ( Или ты думаешь в шарпе старых-добрых тредов нет?). Но нужно редко. Обычно только для CPU-bound операций. Для Io-bound операций, которых таки большинство (походы в БД, другие сервисы и т.д.) асинхронщина эффективней.
123 2913047
>>13046
А кто заставляет поток ОС спавнить? Есть же лум.
124 2913048
>>13030
да ну просто 1 путь который знают все вместо 1000 многих которых нужно читать доки, копать рецецпты, писать на гитхабе

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

котлин мне нравится (синтаксис и фичи). но все же я честен - с авайт мне проще, там тупо концепция проще. Исключения всегда на месте, а лишнее слово await так наобороот хоошо для чтения с планшета чужого кода.
125 2913051
>>13044
О, а мои оптимизации не нашли >>12764
Значет правда матка!
126 2913053
>>13046

>можно


И где ты в петушарпе легковесные потоки нашёл? А нигде, шарпоскоту писать код без загрязнения асинк/авейт дриснёй не положено.
127 2913058
>>13053
запущены в тредпуле и суспенд - считай легковесные
а память - так ты сам говорил что она ничего не стоит.
128 2913063
>>13047

> Есть же лум.


А он таки добрался до релиза? Я просто за джавамирком не слежу.
129 2913066
>>13058
Какие нахуй суспенды? Какой нахуй тредпул? У тебя простая задача — реализовать startLightweightThread {
code
}
без загрязнения code. Как это на петушарпе делается? А никак.
130 2913070
>>13021

>Unsafe и нативный код это разные вещи. Парой методов из ансейфа всю библиотеку со всеми нативными операциями из c++ не заменишь


Мне не нужна библиотека никакая, мне надо заполнить массивы с любой скоростью, а элементы двумерных массивов перемножать с высокой скоростью.
131 2913073
>>13063
Уже давно как в релизе, причём в LTS релизе.
132 2913074
>>13063
21 в сентябре релизнулась. И там он там уже все, встроен.
>>13058
Блокировка как бы цену имеет в тредпулах.
133 2913082
>>13051

>О, а мои оптимизации не нашли >>12764


Значет правда матка!

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

А джава. Ну джава пошла нахуй. Вместе с тобой, джавадебилом.
134 2913084
>>13066
там просто делается асинк который выполнится на тредпуле НЕ ИНИЦИИРУЯ новый поток и вернет результат. вполне дешево
в коде у тебя будет только await для получения результат.

чего тебе еще надо, собака (с)

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

и совсем не решает бля почему нет калькулятора у капчи. хули я в уме считать должен.
135 2913086
>>13082
То есть всё-таки не ответишь? Слив принят.
136 2913089
>>13074

>Блокировка как бы цену имеет в тредпулах.


Так легковесные потоки тоже не бесплатные. Они тоже как бы пулятся (Fork Join Pool-ом вроде). Плюс копирование стэка тоже не очень безболезненная операция. У async/await большие накладные расходы отнюдь не от пула, а от реализации через конечные автоматы.
137 2913091
>>13084

>в коде только await


>без загрязнения code


Попробуй ещё раз.
138 2913092
Аноны, приходите иногда в жаба треды и андроид сраться, а то скучно. У вас тут так оживленно, мне нраица, жаль не пишу уже на шарпе.
139 2913096
>>13092
Нахуя загрязнять нормальные тредв?
140 2913099
>>13096
ОНИ МЕРТВЫЕ НАХУЙ
141 2913103
>>13099
Джаватред не мёртвый, просто чистый.
142 2913113
>>13103
Чистый, но процесс разложения трупа уже начался.
143 2913114
>>13031
А эти нумерикс в unsafe можно будет использовать, не проебав много (ну не более чем в 2 раза хотя бы) плюсам?

>>13031

>Если руки не из жопы - сможешь.


От меня только алгоритмы зависят, если компилятор решит, например, постоянно обращаться к какой-то функции своей при умножении, то я ничего не смогу сделать с этим.
144 2913116
>>13084
Нет там не пул потоков. Там вм исправили и еще вилки в код воткнули. Лучше посмотри/почетай где-нибудь реализацию. Если интересно, конечно.
>>13089
Ну только копирование имеет цену. Ну еще и внутренние локи. Последнее мб в следующих версиях поправят.
>>13082
Блин, че реально не находица? Грустна это.
>>13103
Ну т.е. шизики которые периодически там срут, это норма?
145 2913119
>>13103

>чистый


Как труп перед похоронами. Джавадебил, почему тебе так больно?
146 2913124
>>13116
Ну и пусть срут, их там не много.

>>13113
Регулярно тред перекатывается. Пока обсуждение хуёвости шарпоговна не перешло в шарпотред, в этом треде было актива раза в 3 меньше, чем сейчас в джаватреде?
147 2913125
>>13114

>А эти нумерикс в unsafe можно будет использовать, не проебав много (ну не более чем в 2 раза хотя бы) плюсам?



Нет, JIT просто подставляет нативные методы платформы. Разве что первый вызов метода будет медленнее чем плюсовый. Последующие вызовы +- одинаковые будут.
148 2913127
>>13124

>чем сейчас в джаватреде?


быстрофикс
149 2913130
>>13119

>почему тебе так больно


Может не будешь проецировать?
150 2913131
>>13011
Субъективно, ощущая твои познания, ты на С++ затрахаешься. Пробуй все, если шарпа хватает, оставляй его и радуйся, что не придется об плюсы биться. Есть границы шарпа, но если не упарываться до драйверов и эмбеддед, ты получишь универсальный инструмент.
151 2913132
>>13044
Ты правда сравнил три класса на векторы с интрисинками в джаве?
152 2913136
>>13132

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



Джаваобезьяна, мне не сложно, я помогу.

https://learn.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86?view=net-7.0

https://learn.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.arm?view=net-7.0

Джаваобезьяна, ты ведь даже не знаешь как этим пользоваться, прекрати комедию...
153 2913138
>>13082
Жабёнок сегодня не просыхает.
154 2913148
>>12982

>OkHttp предоставляет ОДИН ИЗ ВАРИАНТОВ костылей


на самом деле suspend функции это просто функции с объектом continuation под капотом последним параметром. OkHttp предоставляет способ асинхронный вызов делать через коллбэк по старому. Чтоб связать коллбэк и корутины, надо extension написать, где ты на более низком уровне будешь просто continuation брать и вызывать .resume() у него в коллбэке. Эту работу за нас делает библиотека retrofit, она на основе okhttp робит. Я бы не сказал, что костыль, просто низкоуровневый код. Корутины по сути на коллбэках и работают, только удобно оформленных.
155 2913150
>>13125

>Разве что первый вызов метода будет медленнее чем плюсовый. Последующие вызовы +- одинаковые будут.


Т. е., можно и проеб будет только в самом начале? (издержки в начале меня не беспокоят, тк даже в 10 фпс бот за час игры вызовет эту функцию 100500+ раз)
Или все таки
>>13125

>Нет


?
156 2913155
>>13136
Шарподебил похоже даже не знает, как работают интрисинки в джаве и что они оптимизируют, и зачем-то противопоставляет им набор нативных методов в петушарпе, лол.

Ну так просвящу. В джаве ты вызываешь Math.pow, а у тебя вызывается быстрый нативный метод под твою платформу и процессор. Вызываешь hashcode у Object, а вызывается нативный метод. Вот все интрисинки в 10 джаве, в 21 их стало гораздо больше https://habr.com/ru/articles/352086/ . А не эта хуйня с ручным вызовом нативных методов из якобы кроссплатформенного кода, для чего в джаве есть JNI.
157 2913158
>>13150
Ты залетный совсем или троллишь? Допустим залетный, окей.

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

AOT компиляция рождает финальный код для целевой платформы (например x64) - это как плюсы или си.

Шарп умеет и то и то, выбирай что хочешь.
158 2913165
Хуй.
image.png187 Кб, 1885x677
159 2913173
>>13155

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


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

Жабеныш ты ебанутый или реально любитель урины?

>Ну так просвящу


Чухан, плес...
160 2913176
>>13173
Так если это такая базовая вещь, почему в шарпоговне такого нет?
161 2913178
>>13176
Интересно этот еблан реально пикчу не посмотрел или это просто такая форма защиты...
162 2913179
>>13158
Т. е. если один и тот же код прогоняется много-много раз, то похуй, что использовать, главное избавиться от фигни по типу garbage collection, для чего подойдёт unsafe?
163 2913184
>>13179

>избавиться от фигни по типу garbage collection


Ух... Шел бы ты отсюда
164 2913185
>>13178
Какую пикчу? Ты совсем что ли от мочи на ебале ошизел? В треде уже 50 постов пикч не было.
165 2913186
>>13173
А итоговый асм/перфоманс кто-то сравнивал с жабой вообще? Интересно же.
166 2913188
>>13179
Скорее всего тебе и о сборке мусора париться не надо будет, ты слишком утрируешь ситуацию, шарпа тебе даже без ультра-оптимизации хватит, вон люди фарм бота для финал фентези пилят (или хз что это, я не геймер, но вроде твоя стихия)
https://github.com/EasyFarm/EasyFarm
167 2913190
>>13179
Можно и без unsafe allocation-free код писать. https://github.com/nazarovsa/csharp-zero-allocation
168 2913191
>>13179
Да. А с JITом потенциально можешь выиграть в перфомансе на долгой дистанции.

>главное избавиться от фигни по типу garbage collection


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

>>13179

>для чего подойдёт unsafe?


Для любого вида байтоебства, например, если ты любитель подрочить свое очко арифметикой указателей - вперед.
169 2913193
>>13186
Сравнивали вчера, по итогу шарпоговно было обоссано самими же петушарперами (разница в 3+ раз), но шарподебилы объявили это великой перемогой, потому что не в 26 раз.
170 2913196
А в джаве можно отключить GC.
171 2913198
>>13184
У меня нет никакого мусора при выполнении 125 кк умножений в децисекунду, как я понимаю.
Мне не нужны эти штуки, которых нет в c++, если они замедлят мои умножения.
172 2913200
>>13196
Epsilon GC. Но правда смысла от этого...
>>13198
Чел, cpp говно как бы. Нахуй с ним сравнивать? Даже раст лучше, но до сишечки далеко, конечно.
173 2913201
>>13186
Я бы мб и сравнил. Но после того как мне местная джавапарашная либа высрала для первого прогона время больше чем для последующих, я не особо горю желанием тратить на это время. Но результаты бы посмотрел, по идее должен быть паритет потому что это буквально вызов камня.
174 2913203
>>13200

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


>а в джаве можно


>ррррря нинужно


)
175 2913205
>>13198
В таком случае просто просишь GC не собирать мусор вообще.

Джавадебил, это твоя новая роль? Неплохо справляешь, я на самом деле даже поверил...
176 2913206
>>13201
Ну как бы там gc подключился. Это раз, а два у тебя там cpu consumer, которые жрал цпу.
177 2913210
>>13188
>>13190
спс, посмотрю.
178 2913216
>>13206
Братишка, джавадурачок, я тебе потом скинул с consume выигрыш не сильно большой вышел. Ты в любом случае выиграл, успокойся. Победа в ручного написанного примитива над линком не делает джавапарашу свежее.

>Ну как бы там gc подключился


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

Ну тогда и в шарпе тоже мусор собирался братишка. А код на самом деле выполнился за наносекунду бля буду
179 2913218
>>13091
а в чем проблема await дебич?
код выглядит как и синхронныый за исключением ОДНОГО слова
плохо ли это? относительно
вот читая с планшета я благодарю что это есть
в котлине же suspend без IDE ХУЙ!!!!!!!!!!!! УВИДИШЬ

>>13116
не хоцца читать. я смотрел пример. сложно. какой то "закат солнца вручную" на местах. вместо ГЛОБАЛЬНОГО писания в таком стиле

>>13148
вот только корутины это котлин.
ну а предлагать "возьми ретрофит" это вообще смешно. не все упирается в REST лол.
и еще раз. корутины это котлина, а жава ГОВНИЩЕ ОБОСРАННОЕ ОБОСРАННЫМ БОМЖОМ.

да вы задрали в среду вечером столько постов писать
180 2913219
А что вообще за сборка мусора?

>>12906
Здесь, если я не делал Dispose, то потребление памяти росло. Компилятор бы на каком-то уровне потребления сам бы додумался очистить мой мусор, или сборка - это что-то еще?
181 2913220
>>13216

>выебали всего на полшишки!


Может прекратишь позорится?
182 2913221
>>13218

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


Ясн.
183 2913222
>>13221
ЯВНО показывает место асинхнонного вызова
ясное ЛУЧШЕ неясного

магию засунь себе в одно место.
184 2913224
>>13222

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


Ясн.
185 2913225
>>13216

>где буквально нихуя нет


Ну значит чета есть.
186 2913226
>>13220
Братишка джавадебил, ты, лучше, напиши еще какую-нибудь смешную хуйню по типу Math.Pow. Или расскажи нам про крутые оптимизации в джаве, только обязательно с брендами.

Нам правда очень интересно.
187 2913227
>>13226
Ничего не ответишь? Слив принят.
188 2913228
>>13131

> на С++ затрахаешься


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

>>13131

>Пробуй все


для этого я у тредовичков узнаю, что нужно для оптимизированных вычислений.
189 2913230
>>13205
А от этого функции .NET для работы с изображениями и клавиатурой не сломаются? Если не сломаются, то нахуй эта сборка нужна вообще?
190 2913233
>>13230
Память будет пожираться, если ты будешь высирать много экземпляров классов. Если ты самоуверен, то можно загнать свой критикал перфоманс код в секцию без сборки мусора и вызывать ее потом когда тебе захочется.
191 2913234
>>13228

>сложностей не вызывала.


Ну ты значит на cpp и не прогал особо. Про ub-то хоть в курсе?
192 2913239
>>13228
Сначала пишешь чтоб работало и только потом оптимизируешь.
Для скрин-бота ты слишком упаролся в нативные дебри, оно тебе вообще не понадобится.
193 2913242
>>13227
Почему джава так плохо развивается? Это конец?
194 2913244
>>13218

>ну а предлагать "возьми ретрофит"


Я не предлагал. OkHttp в основном на котлине кста, там проблема не в библиотеке, а в том, что они поддерживают жабадебилов. Если бы сделали на корутинах, то жабадебилы не смогли бы пользоваться библой. Так что оставили колбэки, чтоб и на жабе можно было юзать, и с корутинами связать коллбэки можно, написав extension. Ты случаем не json rpc баловался?
javaiscobol.png421 Кб, 900x900
195 2913245
196 2913247
>>13244
Так это че получается, котлин вторичен практически всегда?
197 2913249
>>13234
Нет, наверное, но может и да.
Самое сложное, что я делал на c++ - алгоритмы удаления невидимых линий и чтение obj файлов в самодельный класс, все это в winapiшной форме. Еще потоки создавал с мьютексом и критической секцией.
Хз, насколько я программист, но у меня уже есть несколько рабочих ботов, которые работают по таймеру.
198 2913253
>>13234
Нет, наверное, но может и да.
Самое сложное, что я делал на c++ - алгоритмы удаления невидимых линий и чтение obj файлов в самодельный класс, все это в winapiшной форме. Еще потоки создавал с мьютексом и критической секцией.
Хз, насколько я программист, но у меня уже есть несколько рабочих ботов, которые работают по таймеру. Сейчас буду делать полноценных и мой пассивный доход вырастет еще больше.
199 2913255
>>13242
потому что говножрущие жавовцы орут "нинужна, зато ынтырпрайз"
не шутка. мои знакомые жавовцы все эти годы на вопрос "а хули у вас нет бля банальных лямбд" отвечали именно это
а потом, когда вводили очередную фичу, вовсю ее расхваливали

>>13244
каких корутинах в жаве. их же там нет. приходится использовать калбэки или then или .await() костыли. Кто на что горазд. И при это этом эти обосратыши еще лобок толкают типа стандарт.

лол у жавистов сторонняя либа лечит некоторый!!! ОТСУТСТВУЮЩИЙ (И ОНИ БЛЯТЬ ЕЩЕ ЭТИМ ГОРДЯТСЯ ДЕБИЛЫ) сахар жавы, но не фундаментальщину. но говно настолько заполонило их ротешники что они думать не могут. (может мозги говном заместило)
200 2913256
>>13247
Что делает его вторичным, поясни
201 2913262
>>13255

>каких корутинах в жаве


перечитай сообщение, ты похоже не понял
202 2913264
>>13233

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


>>12906
В этом скрине я изначально делал без Dispose и память утекала очень активно.

>>13233

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


Отлично, а почему тогда плюсы быстрее шарпа, если можно выключать все ненужные фичи?
203 2913265
Как же хорошо, что существует такой загончик. Все долбоебы в одном месте. Не растекатесь по тредам, пожалуйста.
204 2913270
>>13265
Остальные треды мертвые, увы
205 2913276
>>13262
я пьян ибо среда
жава говно
а вы тут капец строчите, а ведь дотнеет 8 еще не вышел
обсуждаете жаваговнище зачем то
15702140309900.png483 Кб, 1438x939
206 2913277
>>13265
И главное самые актуальные джава технологии
bill-gates-nerd-stud.jpg51 Кб, 476x476
207 2913285
208 2913291
>>13264

>В этом скрине я изначально делал без Dispose и память утекала очень активно.


Из-за того, что ты не вызывал этот метод - текла неуправляемая память, по сути на стороне плюсов, вызовы которых скрыты в этих шарповых классах. Dispose это просто метод-соглашение чтобы очищать память в конкретное время, типа имитировать delete - именно неуправляемую шарповым сборщиком память нужно очищать вручную - всякие там хэндлы окон, сокеты и прочая ОС параша.
209 2913296
>>13239

>оно тебе вообще не понадобится.


В интернете написано было, что шарп медленнее, но я не понимаю, как операция, например, сложения (mov ax, x1 ;mov bx, x2; add ax, bx ; mov x3 ax), может выполняться с разной скоростью в разных языках, пытаюсь вот разобраться.

На плюсах о языке вообще не думал, тк его везде используют и называют быстрым, а теперь узнаю.
210 2913303
>>13291

>неуправляемая память


>>13291

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


А что такое тогда управляемая?
211 2913308
>>13296

>В интернете написано было, что шарп медленнее, но я не понимаю, как операция, например, сложения (mov ax, x1 ;mov bx, x2; add ax, bx ; mov x3 ax), может выполняться с разной скоростью в разных языках, пытаюсь вот разобраться.



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

И в этой куче ассемблерного говна даже плюсовые компиляторы при всей их задроченности могут навалить лишних (избыточных) инструкций. Тут JITы и могут попытаться обогнать нативно скомпиленный код. А могут обосраться и не обогнать. Для твоих задач энивей все это как инопланетная ракета для безмозглого инвалида джавадебила.

Пользуйся пока как инструментов, если при профайлинге ты заметишь узкие места - ты всегда сможешь их оптимизировать.
212 2913313
>>13303
Любая, которую занимают объекты твоих классов, которые ты написал на шарпе. Ну или взял из либ.

public class JavaDebil
{
private int java;
private int debil;
}

Экземпляры такого класса будут в управляемой куче. Когда на них никто не ссылается - сборщик очищает их.
213 2913314
>>13308
Да хватит джава дебила обсирать. Он обидится и уйдёт. Что делать будете, а?
214 2913318
>>13242
>>13245
Это ты так перекрыть решил или что?
215 2913321
>>13313
А зачем это нужно? Просто чтоб деструкторы не вызывать?
216 2913324
>>13255

>нинужно


Так это же любимое слово шарпоговна. Виртуальные треды? Нинужно, хочу писать авейты! Конструкторы? Нинужно, хочу ручками хуярить this.zalupa = zalupa! Скорость? Нинужно, у нас высокоуровневый язык Enterprise Edition! Обратная совместимость? Нинужно, потому что динозавр))) легаси)))! Кроссплатформенность? Нинужно, но как нам ее добавили сразу нужно, но то, что не добавили (среду разработки и гуи либы) то всё ещё нинужно!
217 2913326
>>13308

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


Т. е. нейросеть примерно одинаково работает по скорости на плюсах и шарпах, а разница появляется при использовании высокоуровневых штучек?
169947532079350534.jpg785 Кб, 1920x1406
218 2913327
По итогу шарподебил с его async/await был попущен Project Loom и слился после встречи с мощью превращения синхронного кода в асинхронный без его модификации. Последнее, что он сказал — что ему и так нормально и что у хох в петухлине ещё хуже.
219 2913328
>>13324

>Конструкторы? Нинужно


Я в шарпе вызывал конструктор для класса Bitmap, о чем ты?
джаваГосподинВкатилсяВТред.png1,8 Мб, 1920x1280
220 2913329
>>13314
Нового позовем.
221 2913330
>>13328
Скажем правильнее возможность не писать шаблонные конструкторы.
222 2913331
>>13326
Как ты заебал, тупее джависта. Это достижение
223 2913334
>>13329
Я скажу, чтоб не ходили. Вы обидные слова пишите.
224 2913336
>>13321
Да. Ну и в теории защищает тебя от утечек и рантайм может эффективнее работать с памятью проводя всякие там дефрагментации, сжатия и т.п.
225 2913338
>>13331
Я умный, мне не нужно РАБотать, а другим нужно.
Мне не стыдно показывать свое незнание, чтобы мне изложили знание, которое я использую и получу прибыль.
226 2913364
>>13324
не понял связь между вирт тредами и авайтами. не думай что одно прямо лучше другого шопипец. всему свое место. и на шарпе можно родить что угодно если захочется. await всего лишь иснтрукция. Я могу хоть в разных процессах или вселенных выполнять.
конструкторы прикатят, хотя они мне еще с котлина не по душе
скорость? а что не так. синт тесты нас не интересуют. остальное зависиот от КОНКРИТНОЙ реализации. обратная совместимость счем? я в дотнет 7 юзаю либы написанные на дотнет 4
легаси не нужно это факт
кроссплатформа существует, чего сказать то хотел?
227 2913365
>>13364

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


Ты же блядь просто повторил моё сообщение. Ты правда считаешь, что что-то опроверг?
228 2913366
>>13365
если тебе кажется что я повторил твое сообщение то тебе пора в жавишный тред
у тебя шизофрения. а там как раз таким и место
229 2913367
>>13366
Нет, сидите здеся.
230 2913368
>>13366

>рррря шизафриния


Ничего посерьёзнее не высрешь?
231 2913369
>>13368
тебе пора. точно пора.
жавист и так по определению шизик
но ты прогрессируешь
232 2913370
>>13369
То есть не высрешь. Слив принят.

Какие же шарпобляди олигофрены, пиздец просто.
233 2913379
>>13370

>шарпобляди олигофрены


Шарп хороший, удобнее плюсов. Главное, чтоб работало, на шарпе все работает с полпинка, поэтому его и выбирают. Если челик выбрал шарп и имеет с этого гешефт, он не олигофрен, тк олигофрен гешефт получать не умеет.
234 2913381
>>12976

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


Я бы на твоём месте не выёбывался своим незнанием фич шарпа, ты просто очень глупо выглядишь со стороны.
Прекрасно, напиши мне метод, который делает два запроса по разным url, получает json и возвращает объект, в полях которого записаны десерализированные результаты запросов (в одном поле первый, во втором — второй). Запросы должны выполняться одновременно. Библиотеки можешь использовать какие угодно, только напиши их называния.
235 2913383
>>13381

>делает два запроса по разным url, получает json


А это в каком разделе документации по .NET? Парсер мне тоже не помешает.
Мимо
236 2913385
>>13381
Future.
237 2913388
>>13385
Что Future, блять? Я уже два треда тебя прошу написать код, и ты пока что только выдал только одну строчку. Ты меня просто заебать решил, чтобы я от тебя отстал?
Напиши код уже.
238 2913389
>>13388
Future позволяет выполнить эту задачу. Код точно такой же, что я выше показывал, только вызов оборачивается в сабмит таски нужному экзекутору.
239 2913393
>>13388
Да это бесполезно. У душнил похоже пунктик просто заебать кого-то, какой-то поеботиной абстрактной.
240 2913418
Доброго вечера, комрады. Скажите, а можно ли в си хэштеге слезть с капиталистической корпоративной иглы майкрософта? Вот в джаве, я могу взять спецификацию и написать свою жвм и не иметь дел с ораклом вообще. Можно ли написать свою жвм для сишорпа? Или, связываясь с этим языком, я становлюсь анальным рабом майкрософта навсегда?
241 2913433
>>13418
Лол, жабки спустя 4 года узнали что качали платную проприетарную херню, вместо попенЖдк.
Как так, это же шарп должен быть плохой, а мы хорошие, лол

Иди пиши
https://ecma-international.org/publications-and-standards/standards/ecma-334/
https://ecma-international.org/publications-and-standards/standards/ecma-335/
242 2913434
>>13383
в дотнет и в нормальных языах синхронный и асинхронный код будут выглядеть как близнецы с МИНИМАЛЬНЫМИ различиями

если увас это не так, значит вы ЖАВИСТ ГОВНОЕД.
243 2913436
>>13434
А в итоге будет такая поебота https://youtu.be/Z0KvEzgNzDc?si=RHMf4-NoqBwOpbhY

Нет, упрощения, которую жертвуют явностью - зло. Никогда параллельный код не был простым, да и не будет. Это иллюзия.
244 2913437
>>13436
бла бла. бла бла
мы говорим про АСИХРОННОМ коде
если чел не знаает разницы пусть идет жрет говно
245 2913442
>>13437
Ты сам не знаешь терминологии. То что вы называете асинхронщиной, лишь её малая часть.
И я хуй знает, какой еблан это придумал. В анус бы сука ему что-то запихнуть
246 2913445
>>13442
Это не "вы", а один шарподебил, которого как-то такой же анальник на собесе попустил тупейшим вопросом про асинхронность и теперь у него на этом немного крышу сдвинуло.
247 2913452
Жабёнок, просвети там со своим лумом, который лет 10 пилили. И сразу скажи почему такой отсос в сравнение с котлиновскими корутинами?
248 2913455
>>13452
А там тесты завезли? Скинь
249 2913456
>>13452
Там я слышал отладка слетела, из-за этой механики копирования стэка по чиху.
Я правда не в курсе, впервые можешь обосать хоть кого-то, только сорцы кинь.
image.png186 Кб, 2638x1430
250 2913459
req.JPG9 Кб, 480x128
251 2913462
>>13381
Mono<ResponseObject> getSome() {
var req1 = sendRequerstOne();
var req2 = sendRequestTwo();
return Mono.zip(req1, req2)
.map(tuple-> new ResponseObject(tuple.getT1(), tuple.getT2())
}

sendRequerstOne() на пике. вместо flux вернуть надо было mono, но похуй

это webflux на спринге. запросы выполняются параллельно, при получении ответа от обоих вернется объект, код неблокирующий
252 2913464
>>13459
Что за зоопарк безумия, лум же это просто запустил и все. И почему чем больше времени, тем лучше??
253 2913465
>>13381
Стандартная библиотека.
Response handle() throws ExecutionException, InterruptedException {
try (var scope = new StructuredTaskScope.ShutdownOnFailure()) {
Supplier<String> user = scope.fork(() -> findUser());
Supplier<Integer> order = scope.fork(() -> fetchOrder());

scope.join() // Join both subtasks
.throwIfFailed(); // ... and propagate errors

// Here, both subtasks have succeeded, so compose their results
return new Response(user.get(), order.get());
}
}
Screenshot20231109-055817.jpg361 Кб, 1080x2340
254 2913468
Если сделать ассемблерную вставку по типу пикрил, то компилятор не будет внутри этой вставки свой лишний тормозящий код вставлять, или ему похуй?
255 2913472
>>13468
ассемблерная вставка в энтерпрайз языке с гарбадж коллектором... Шарпухи совсем ебанулись
256 2913474
>>13472
Завидно? Жабёнок.
257 2913476
>>13468
В шарпе нет ассемблерных вставок. Пик ты либо нарисовал в пеинте, чтобы типа так потроллить, либо попросил нейросеть.
258 2913477
>>13474
А у них нельзя ассемблер вставить?
259 2913480
>>13472
Главное достоинство шарпа, как я понял, легкость работы с виндой в .NET, а главный недостаток - производительность. Совместив производительность ассемблера и легкость .NETа, я получу гигаимбу.
image.png112 Кб, 480x270
260 2913482
Ппц вы алкошня, я спать пошел.
261 2913493
В МВП треде написали что вас тут разъебали джава-господа, не читая врываюсь на подмогу.
Что там джаваскуфы еще не завезли async, как долбоебы пишите CompletableFuture? Ахахаха джава попущенки как всегда разбиты в пух и прах
262 2913495
Ой у нас есть моно и флакс в джава кале, ебать, вот это сделали хуету с потоками которые крутятся в евент лупе ну в других языках то такого нету конечно ога, что там хуи насасываете когда в вашем моно во флет мапе ебашатся новые потоки, а? Какой флакс, моно.джаст дегенераты и блок как вы пюбите, флакс у вас будет в пете на баелдунге, а на практике только хуй во рту однопотоковый, как и засерание ОЗУ из-за корявого гарбидж коллектора.
263 2913496
>>13493

> вас тут разъебали джава-господа


Сами себя разъёбывают, ведясь на толстоту. Что джависты, что шарписты.

> async


Уже говорили про это, джависты сразу про свой лум запели.
264 2913501
У нас в джава есть стримы, у нас тоже есть функциональный стиль! А в вашей ебаной джаве не думали стримы починить, чтобы они не ебашили лишние объекты, о чем пишет даже ваш джошу блох, а может расскажете про производительность форк джоин пулла внутри стримов или хуйли вы всегда потоки передаете из объявленного бина в тред пуллом, что хуета параллельно без этого нормально не работает, что глазки опустили, в космос ресурсы отжирает. Под шконку, раскукарекались тут, джава петушье, идите на свою парашу, обсуждайте "новинку" 21 версии - грин треды, которые у вас были до 1.8 а потом выпилили позор, правда вам все равно не светить их увидить на своем легаси калопроекте, на нем новинка это 11.
265 2913504
>>13501
Этот гопник хоть сам-то понял, что высрал?
266 2913506
>>13480
Нет, ты просто перейдёшь на ассемблер, лул.
267 2913527
>>13389

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


А в экзекуторе коллбэки, и, соответственно, спагетти код. Что и требовалось доказать.
Ты есть ты признаёшь, что на жабе нормально такой код не написать, так?
268 2913528
>>13527
Какие нахуй колбеки? Я что-то про колбеки говорил разве?
269 2913530
>>13462
В задании требовалось вернуть объект, а ты вернул Mono. Я ведь не просто так поставил такое условие: все эти Mono, Future и т.д. в итоге придётся как-то разворачивать, чтобы добраться до данных, и тут тебя ждут два стула: либо ты навешиваешь коллбэк, усложняя код, либо ты вызываешь block(), который блокирует тред и не даёт ему в это время заняться чем-нибудь другим полезным.

И в этом прелесть await в с#: ты получаешь функционал коллбэка с более простым кодом. При этом в С# есть Task.Result и Task.Wait(), которые так же блокируют поток для мест, где нельзя использовать асинхронность.
270 2913532
>>13528
Что, я не прав? Ну напиши ты уже ёбаный код, чтоб меня посрамить.
271 2913535
>>13532
Future<String> result1 = executor.submit(() -> request1.execute());
Future<String> result2 = executor.submit(() -> request1.execute());

return new Yoba(mapper.map(result1.get(), Foo.class), mapper.map(result2.get(), Bar.class));
272 2913549
>>13535

>Future result1 = executor.submit(() -> request1.execute());


>Future result2 = executor.submit(() -> request1.execute());


>return new Yoba(mapper.map(result1.get(), Foo.class), mapper.map(result2.get(), Bar.class));


Вот, хорошо, у тебя тут нет коллбэков, код читается нормально, но зато ты сел на второй стул, который я упоминал в >>13530
Твой тред блокируется до получения результата и ничего не делает. Если веб-ресурс медленный, а метод этот надо вызывать много раз (допустим, все url всегда разные, просто они идут в парах), у тебя скоро закончатся треды в пуле и просядет производительность. То есть для такого случая тебе придётся писать более громоздкий механизм, либо использовать те же колбэки, в то время как в шарпе я бы просто написал await вместо твоих get(), и всё бы работало из коробки.
273 2913551
>>13549
Ты может перестанешь подгонять решение под ответ и пытаться найти первое оправдание, почему шарпоговно не хуже джавы, и хотя бы думать о том, что ты несёшь?

>закончатся треды в тредпуле


Я хуею. Выше было обсуждение, в котором я говорил про лум, который поддерживает миллионы потоков (фактически столько потоков сколько можно вообще объектов средних размеров создать), ты его наверняка читал, и всё ещё несёшь такую хуиту.
274 2913587
>>13551

>Ты может перестанешь подгонять решение под ответ и пытаться найти первое оправдание


Я ничего не подгоняю. Все твои решения несут в себе изъяны, которые я тебе демонстрирую.

> почему шарпоговно не хуже джавы


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

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


Окей, я разобрался в этом вашем луме.
1. Тебе придётся писать внешний экзекьютор, который будет вызывать твой метод. Это лишний бойлерплейт.
2. То есть получается, сотня библиотек не помогла, и пришлось писать механизм в самой джаве? Как же так?
3. Ну ладно, язык и среда развиваются, это хорошо, но эти виртуальные треды это ведь ни что иное как ... Task из C#, который появился ещё в 2010 году! И это всё ещё отстаёт от функционала и простоты кода awaitов, которые появились в 2011.

Я реально не понимаю, чем ты гордишься.
Лямбды в шарпе появились в 2007, а в джаве в 2014. 7 лет отставания.
Таски в шарпе появились в 2010, а в джаве в 2022. 12 лет отставания.
Пока что джава отстаёт только больше и больше.
275 2913592
а где на винде экзешник рантайма находится? типа у пиздона python.exe есть у жабы java.exe,а где у сишарпа?
276 2913602
>>13592
Зачем тебе отдельный экзешник для запуска другого экзешника? Запускатор рантайма находится в самом исполняемом файле приложения тупо в виде нативного кода.
277 2913607
>>13587
Причина тряски?
278 2913643
>>13587

>я ничего не подгоняю


>как доказательство этого приводит то, что он ищет изъяны, а не проводит фундаментальный анализ, о чём я и сказал изначально


Какой же дегенерат, пиздец просто.

>ничиво непревёл


+конструкторы
+асинхронность без загрязнения кода через async/await
+скорость выше в 3-26 раз
+огромное количество либ, выбирай не хочу
+много разных GC
+обратная совместимость
+кроссплатформенность (настоящая, в том числе для либ для гуёв и сред разработки и вообще для всей экосистемы)
+подход к разработке, когда буквально каждая фича, которая присутствует, сделана лучше, чем у пародий на джаву (как пример интерполяция строк)
+мавен (лучшая система сборки ever)

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


1. Ты долбоёб? Executors.newVirtualThreadPerTaskExecutor один раз пишешь и используешь то, что оно вернуло.
2. А как она должна была помочь? Кто-то разве заявлял, что куча библиотек в таких ситуациях поможет?
3. Какой же даун, это пиздец... Я просто хуею, как таких диффичентов земля носит. Ты бы хотя бы ознакомился с тем, что делает Task в твоём же языке, что-ли, и сколько весит поток, который запускается вместе с Task, и сколько таких потоков можно запустить одновременно. Спойлер: Task из петушарпа это вообще не про оптимизацию вычисления, чем занимается Loom, это блядь высокоуровневое API на уровне того Future из джавы, который есть в ней с самого её появления.

Я тебе ещё раз повторяю, искать изъяны это только способ получить урины на ебальник, так как качество найденных тобой изъянов зависит только от выбранной до размышления стороны. Если твоя сторона изначально сосёт, то и выдавленные "изъяны" будут либо вообще ложью, либо ничего не меняющей мелочью.
279 2913681
>>13643

>>ничиво непревёл


>+конструкторы


Что конструкторы? Конструкторы везде есть.

>+асинхронность без загрязнения кода через async/await


Ещё раз повторяю тебе, тупице, что в шарпе можно писать асинхронный код без асинков/эвэйтов через task.Wait() и task.Result, которые работают так же, как future.get(), но в обоих языках это блокирует треды, поэтому в шарпе есть await, который тред освобождает для других дел, пока таск не закончит выполняться. В джаве аналогом являются коллбеки, которые загрязняют код гораздо сильнее.

>+огромное количество либ, выбирай не хочу


А то, блять, nuget совсем пустой, ни одной либы нет.

>+много разных GC


Ну у вас по gc в каждой реализации джавы, и хуй проссышь, какой из них лучше. Какой от этого толк?

>+обратная совместимость


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

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


Ты отстал от жизни. Новые дотнеты теперь тоже хорошо работают на разных платформах.

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


Бляяя... Интерполяция в джаве появилась куда позже, чем в т.н. пародиях.
Java: STR."\{x} plus \{y} equals \{x + y}"
C#: $"{x} plus {y} equals {x + y}"
Что красивее? Если ты будешь про интерполяцию в JSON говорить, я тебе в рот нассу, потому что парсинг json из строки это работа маппера, а когда это делает интерполятор, то это примерно как винамп, нарезающий болванки.

>+мавен (лучшая система сборки ever)


Мавен - это решение проблем, которых у c# и .Net никогда не было.

>1. Ты долбоёб? Executors.newVirtualThreadPerTaskExecutor один раз пишешь и используешь то, что оно вернуло.


Ты долбоёб. Когда ты вызываешь .join() или .get(), у тебя блокируется основной физический тред, в котором ты запускал эти виртуальные, пока они не закончат работать.

>2. А как она должна была помочь? Кто-то разве заявлял, что куча библиотек в таких ситуациях поможет?


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

>3. Какой же даун, это пиздец... Я просто хуею, как таких диффичентов земля носит. Ты бы хотя бы ознакомился с тем, что делает Task в твоём же языке, что-ли, и сколько весит поток, который запускается вместе с Task,


И ты сразу обосрался. Когда ты запускаешь по дефолту через Task.Run(), оно выполняется на треде из тред пула, а не порождает новый тред.

> Спойлер: Task из петушарпа это вообще не про оптимизацию вычисления, чем занимается Loom, это блядь высокоуровневое API на уровне того Future из джавы, который есть в ней с самого её появления.


Ты как вообще класс с интерфейсом сравниваешь?
Впрочем, ок, допустим ты прав, и Loom на голову круче TPL в шарпе. Тогда тебе не составит труда написать кусок кода с виртуальными тредами такой, что его аналог в шарпе с тасками загнётся.
279 2913681
>>13643

>>ничиво непревёл


>+конструкторы


Что конструкторы? Конструкторы везде есть.

>+асинхронность без загрязнения кода через async/await


Ещё раз повторяю тебе, тупице, что в шарпе можно писать асинхронный код без асинков/эвэйтов через task.Wait() и task.Result, которые работают так же, как future.get(), но в обоих языках это блокирует треды, поэтому в шарпе есть await, который тред освобождает для других дел, пока таск не закончит выполняться. В джаве аналогом являются коллбеки, которые загрязняют код гораздо сильнее.

>+огромное количество либ, выбирай не хочу


А то, блять, nuget совсем пустой, ни одной либы нет.

>+много разных GC


Ну у вас по gc в каждой реализации джавы, и хуй проссышь, какой из них лучше. Какой от этого толк?

>+обратная совместимость


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

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


Ты отстал от жизни. Новые дотнеты теперь тоже хорошо работают на разных платформах.

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


Бляяя... Интерполяция в джаве появилась куда позже, чем в т.н. пародиях.
Java: STR."\{x} plus \{y} equals \{x + y}"
C#: $"{x} plus {y} equals {x + y}"
Что красивее? Если ты будешь про интерполяцию в JSON говорить, я тебе в рот нассу, потому что парсинг json из строки это работа маппера, а когда это делает интерполятор, то это примерно как винамп, нарезающий болванки.

>+мавен (лучшая система сборки ever)


Мавен - это решение проблем, которых у c# и .Net никогда не было.

>1. Ты долбоёб? Executors.newVirtualThreadPerTaskExecutor один раз пишешь и используешь то, что оно вернуло.


Ты долбоёб. Когда ты вызываешь .join() или .get(), у тебя блокируется основной физический тред, в котором ты запускал эти виртуальные, пока они не закончат работать.

>2. А как она должна была помочь? Кто-то разве заявлял, что куча библиотек в таких ситуациях поможет?


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

>3. Какой же даун, это пиздец... Я просто хуею, как таких диффичентов земля носит. Ты бы хотя бы ознакомился с тем, что делает Task в твоём же языке, что-ли, и сколько весит поток, который запускается вместе с Task,


И ты сразу обосрался. Когда ты запускаешь по дефолту через Task.Run(), оно выполняется на треде из тред пула, а не порождает новый тред.

> Спойлер: Task из петушарпа это вообще не про оптимизацию вычисления, чем занимается Loom, это блядь высокоуровневое API на уровне того Future из джавы, который есть в ней с самого её появления.


Ты как вообще класс с интерфейсом сравниваешь?
Впрочем, ок, допустим ты прав, и Loom на голову круче TPL в шарпе. Тогда тебе не составит труда написать кусок кода с виртуальными тредами такой, что его аналог в шарпе с тасками загнётся.
280 2913684
>>13681

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


Ты похоже не в курсе >>12876
281 2913687
>>13643

>конструкторы


Что?

>асинхронность без загрязнения кода через async/await


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

>скорость выше в 3-26 раз


Пруфы? Скорость чего? Чесания яиц?

>много разных GC


Разнообразие гц говорит о косячности каждой из них, то есть не устраивает и пилят новую херню. Тестить это зоопарк очень не комфортно со 100500 ручками.
То есть, jvm не развивается, поэтому каждый пилит свою херню, чтобы реально не быть в 2007 году. Спасибо топ компаниям, которые пока еще не дропнули это.

>огромное количество либ


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

>кроссплатформенность


удивил.

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


Умение раздуть из мухи слона, на пустом месте, это эталонная попытка компенсировать отсутствие развитие в jvm. Пытаться в 23 году удивить грин-тредами и выдать их за что-то удивительное - это уже даже не смешно. Это единственная технология в jvm спустя 10-15 лет, срам.

>мавен


говна поел. Людям пришлось пилить свой билдер, потому что jvm не развивается. Это просто везение, что большой бизнес проспонсировал все это окружение, но мавен и гредл, это ппц ужас.
282 2913688
Бля, бедный джавадебил, он уже наверное несколько раз превысил свою суточную норму потребления урины...

Джавадебил, ты когда все поймёшь и таки перейдешь на шарп - отпишись в тред, поблагодари нас, добрых шарпочан, за то, что вразумили тебя долбаеба
283 2913690
>>13684
Дженериков в байткоде нет, потому что жаба была изначально без них, а потом просто ради совместимости оставили кашей как есть. То есть, jvm практически не развивается, все лепят поверх старого говнища.
284 2913695
>>13684
Как только с Valhalla завезут поддержку дженериков (если я не ошибаюсь, то поддержка нормальных дженериков в JVM как одна из ее целей декларируется https://openjdk.org/projects/valhalla/ ), так по классике сразу окажется, что все хорошо и никаких проблем в этом нет. Останется лишь вопрос, что 20 (30 к тому моменту?) лет назад сразу это нормально сделать мешало.
285 2913697
>>13643

>Executors.newVirtualThreadPerTaskExecutor


Обосрался с нейминга

Джавапараша вся так написана?
286 2913700
>>13695

>Project Valhalla


Это какое-то около божество в мире жабы, о нем говорили еще когда я лет 5-7 варился в легасе говне, что это будет какой-то прорыв и супер технология. Как дурачок тогда в это верил и я, что это такое, до сих пор не знаю. Жаба увы протухает, евангелисты не вывозят.
287 2913703
>>13684
А я напоминаю
288 2913705
>>13690
Так Шарп в самой первой версии тоже без дженериков шел. (Я когда Шаблоны корпоративных приложений Фаулера почитывал , охреневал от шарпового кода без дженериков). Во второй версии их прикрутили, но прикрутили нормально. С нормальной поддержкой со стороны рантайма.
289 2913707
>>13705
Я поэтому и говорю, что евангелисты рассказывают какая жаба-супер технология, на острие науки, но на деле она почти не развивается, кусок легаси кала, который живет за счет подсевших крупных кабанчиков, которые и толкают кое-как в гору этот кал.

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

Это закат.
290 2913710
>>13530

>>требовалось вернуть объект, а ты вернул Mono


Ну блокировку добавь, будет тебе объект. Если я в контролере верну моно - пользователю придет объект по готовности, а не колбэк.

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


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

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


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

>>придётся писать более громоздкий механизм


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

>>вместо твоих get()


гет это блокировка, ее не используют в асинхронном коде
291 2913752
>>13681

>Что конструкторы? Конструкторы везде есть.


Как в петушарпе перестать отмакакивать this.zalupa = zalupa? Никак.

>Ещё раз повторяю тебе, тупице, что в шарпе можно писать асинхронный код без асинков/эвэйтов через task.Wait() и task.Result, которые работают так же, как future.get(), но в обоих языках это блокирует треды, поэтому в шарпе есть await, который тред освобождает для других дел, пока таск не закончит выполняться. В джаве аналогом являются коллбеки, которые загрязняют код гораздо сильнее.


Чем плоха блокировка треда не назовёшь?

>А то, блять, nuget совсем пустой, ни одной либы нет.


Не пустой не значит имеет столько же, сколько все репозитории с джава-кодом. Вот например взять те же сериализаторы и мапперы, их всех по 10 штук известных есть. Можно выбрать тот, который подходит по требованиям к синтаксису и перформансу, а не жрать только то, что положили в коробку. Где такое есть в петушарпе? Нигде.

>Ну у вас по gc в каждой реализации джавы, и хуй проссышь, какой из них лучше. Какой от этого толк?


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

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


Чем это плохо, объяснишь?

>Ты отстал от жизни. Новые дотнеты теперь тоже хорошо работают на разных платформах.


Где

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


?

>Бляяя... Интерполяция в джаве появилась куда позже, чем в т.н. пародиях.


>Java: STR."\{x} plus \{y} equals \{x + y}"


>C#: $"{x} plus {y} equals {x + y}"


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


Скажу про маппинг в Statement. Как в C# защититься от SQL инъекций и одновременно с этим не отказываться от удобной интерполяции? Никак. Потому что шарпопетухи погнали впереди паровоза и не подумали, а как сделать нормально.

>Мавен - это решение проблем, которых у c# и .Net никогда не было.


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

>Ты долбоёб. Когда ты вызываешь .join() или .get(), у тебя блокируется основной физический тред, в котором ты запускал эти виртуальные, пока они не закончат работать.


Так ты может объяснишь, чем это плохо? Так-то это ожидаемое поведение.

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


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

>И ты сразу обосрался. Когда ты запускаешь по дефолту через Task.Run(), оно выполняется на треде из тред пула, а не порождает новый тред.


Да пожалуйста. Пусть у вас настолько дебильная документация, что объяснением этого пришлось заниматься какому-то васянскому сайту с уже известным успехом, или у вас это поменяли году так в 2016, и в старых статьях остался еще Thread::new, а в новых данные актуальны. Похуй. Тредпул не заменяет лум, а просто уменьшает проблемы (или скорее меняет их спектр). Простой тредпул забивается небольшим количеством одновременных тасок, ждущих ответа от интернета/диска.

>Ты как вообще класс с интерфейсом сравниваешь?


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

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


Любой код из петушарпа из async функции возьми и выкинь нахуй все await. Получится код джавы с лумом. Я не говорил, что существует код, который нереализуем на петушарпе, но реализуем на джаве, в конце концов оба тьюринг-полны. Я с самого начала говорил, что код на петушарпе загрязняется асинк/авейтами и потому там хуже реализован многопоток.
291 2913752
>>13681

>Что конструкторы? Конструкторы везде есть.


Как в петушарпе перестать отмакакивать this.zalupa = zalupa? Никак.

>Ещё раз повторяю тебе, тупице, что в шарпе можно писать асинхронный код без асинков/эвэйтов через task.Wait() и task.Result, которые работают так же, как future.get(), но в обоих языках это блокирует треды, поэтому в шарпе есть await, который тред освобождает для других дел, пока таск не закончит выполняться. В джаве аналогом являются коллбеки, которые загрязняют код гораздо сильнее.


Чем плоха блокировка треда не назовёшь?

>А то, блять, nuget совсем пустой, ни одной либы нет.


Не пустой не значит имеет столько же, сколько все репозитории с джава-кодом. Вот например взять те же сериализаторы и мапперы, их всех по 10 штук известных есть. Можно выбрать тот, который подходит по требованиям к синтаксису и перформансу, а не жрать только то, что положили в коробку. Где такое есть в петушарпе? Нигде.

>Ну у вас по gc в каждой реализации джавы, и хуй проссышь, какой из них лучше. Какой от этого толк?


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

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


Чем это плохо, объяснишь?

>Ты отстал от жизни. Новые дотнеты теперь тоже хорошо работают на разных платформах.


Где

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


?

>Бляяя... Интерполяция в джаве появилась куда позже, чем в т.н. пародиях.


>Java: STR."\{x} plus \{y} equals \{x + y}"


>C#: $"{x} plus {y} equals {x + y}"


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


Скажу про маппинг в Statement. Как в C# защититься от SQL инъекций и одновременно с этим не отказываться от удобной интерполяции? Никак. Потому что шарпопетухи погнали впереди паровоза и не подумали, а как сделать нормально.

>Мавен - это решение проблем, которых у c# и .Net никогда не было.


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

>Ты долбоёб. Когда ты вызываешь .join() или .get(), у тебя блокируется основной физический тред, в котором ты запускал эти виртуальные, пока они не закончат работать.


Так ты может объяснишь, чем это плохо? Так-то это ожидаемое поведение.

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


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

>И ты сразу обосрался. Когда ты запускаешь по дефолту через Task.Run(), оно выполняется на треде из тред пула, а не порождает новый тред.


Да пожалуйста. Пусть у вас настолько дебильная документация, что объяснением этого пришлось заниматься какому-то васянскому сайту с уже известным успехом, или у вас это поменяли году так в 2016, и в старых статьях остался еще Thread::new, а в новых данные актуальны. Похуй. Тредпул не заменяет лум, а просто уменьшает проблемы (или скорее меняет их спектр). Простой тредпул забивается небольшим количеством одновременных тасок, ждущих ответа от интернета/диска.

>Ты как вообще класс с интерфейсом сравниваешь?


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

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


Любой код из петушарпа из async функции возьми и выкинь нахуй все await. Получится код джавы с лумом. Я не говорил, что существует код, который нереализуем на петушарпе, но реализуем на джаве, в конце концов оба тьюринг-полны. Я с самого начала говорил, что код на петушарпе загрязняется асинк/авейтами и потому там хуже реализован многопоток.
292 2913761
>>13687

>Что?


-> >>13681

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


>>скорость выше в 3-26 раз


>Пруфы? Скорость чего? Чесания яиц?


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

>Разнообразие гц говорит о косячности каждой из них, то есть не устраивает и пилят новую херню. Тестить это зоопарк очень не комфортно со 100500 ручками.


Ты не подумал, что разные условия могут требовать разные GC?

>>огромное количество либ


>Евангелизм жабы, все кроме известных топ либ, сплошной низкокачественный кал.


Тыскозал?

>удивил.


По делу что-нибудь скажешь?

>Умение раздуть из мухи слона, на пустом месте, это эталонная попытка компенсировать отсутствие развитие в jvm.


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

>Пытаться в 23 году удивить грин-тредами и выдать их за что-то удивительное - это уже даже не смешно. Это единственная технология в jvm спустя 10-15 лет, срам.


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

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


Спасибо за объяснение причин того, что джава выебала петушарп! Как это отменяет тезис?
292 2913761
>>13687

>Что?


-> >>13681

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


>>скорость выше в 3-26 раз


>Пруфы? Скорость чего? Чесания яиц?


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

>Разнообразие гц говорит о косячности каждой из них, то есть не устраивает и пилят новую херню. Тестить это зоопарк очень не комфортно со 100500 ручками.


Ты не подумал, что разные условия могут требовать разные GC?

>>огромное количество либ


>Евангелизм жабы, все кроме известных топ либ, сплошной низкокачественный кал.


Тыскозал?

>удивил.


По делу что-нибудь скажешь?

>Умение раздуть из мухи слона, на пустом месте, это эталонная попытка компенсировать отсутствие развитие в jvm.


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

>Пытаться в 23 году удивить грин-тредами и выдать их за что-то удивительное - это уже даже не смешно. Это единственная технология в jvm спустя 10-15 лет, срам.


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

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


Спасибо за объяснение причин того, что джава выебала петушарп! Как это отменяет тезис?
293 2913774
>>13687

>какое загрязнение


Лишние async/await, которые можно избежать на java. Невозможность вызвать await из не-async функции, из-за чего дублируются методы. Всего этого нет на джаве.
294 2913782
>>13761
Почему джава так плохо развивается? Они почти 7 лет пилили асинхронное программирование, которое в 2012 уже у всех было. Сколько ждать AoT?
295 2913785
>>13782
Медленно не значит плохо. Долго пилили лум, получилось охуенно и на голову выше говнорутин, сделанных на коленке на остальных васянских языках.

>AoT


Сто лет как уже есть.
296 2913795
>>13752

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


Я не он, но ту хуйню высрал. Если у нас есть асинхронные API для взаимодействия с сетью/диском (а в дотнете они есть), то тред пул это нормально переваривает, так как во время ожидания ответа от сети/диска для одной задачи, он снимает ее с треда и обрабатывает другие задачи. Когда ответ от асинхронного api придет, то продолжение задачи просто будет запланировано на одном из тредов пула. Тредпул наоборот боится долгих cpu-bound задач, так как они не дают возможности освободить поток. Для них приходится писать костыли типа Task.Yield().
В луме, кстати, такие же проблемы. Недавно анон кидал в тред запись доклада про Loom от Углянского. Он в этом докладе упомянул, что разрабы лума также советуют не использовать виртуальные потоки, для блокирующих и cpu-bound задач. А если приходится, то там отдельные костыли в код приходится добавлять (отдельно помечать блокирующие секции, чтобы под такой виртуальный тред отдельный поток ОС выделился. Также Thread.Yeild() дергать, чтобы планировщик дал другому виртуальному треду поисполнятся)
297 2913798
К слову лум не 7 лет пилили, а 3 года всего.

>>13795
Я говорил про простой тредпул, который в принципе не может знать про то, что кто-то куда-то долбится. Хочешь мне поведать, какой тредпул скрыт под Task и зачем тогда в C# завели иссую в сентябре 2022 года, в которой до сегодняшнего дня происходят попытки реализовать некие green threads, если всё то же самое есть уже в task?
image.png103 Кб, 300x168
298 2913805
>>13785

>Медленно не значит плохо


К херам просрав пол рынка го и нод.жс, а потом просрав котлину в ведроиде.
Каково ощущать себя кобол-инженером? И ладно ты бы работал программистом и в ус не дул, слизывая сливки пока хорошо платят за легаси, но нет, сидит толкает протухшее говно за бесплатно.
299 2913806
>>13805
Каким хуем ты от просёра рынка перешёл к мантрам о синтаксисе?
300 2913812
Как же шарпух разъебали в их собственном треде, мама дорогая. Сколько вы рейдили джава тред, писали гадостей, ущемляли джаваговорящих и вот такой финал. Сдавайтесь и подписывайте мирное соглашение, что будете нейтральным тредом и прекратите набеги и агрессию.
301 2913814
>>13812
"Ай, Моська, знать она сильна,
Коль лает на слона"... (И. Крылов)
302 2913842
>>13798

> зачем тогда в C# завели иссую в сентябре 2022 года, в которой до сегодняшнего дня происходят попытки реализовать некие green threads, если всё то же самое есть уже в task


Скорее всего хотят дать более производительную альтернативу таскам. Их текущая реализация через конечные автоматы плохо оптимизируется JIT-ом (из самого банального - нельзя заинлайнить вызовы асинхронных методов).
Текущая же реализация тасок и пула не блокирует потоки ОС на ожидание окончания асинхронной операции с самого их появления в платформе и языке. Так что это проблемой точно не является. Пул с самого своего появления был интегрирован с такой штукой, как IOCompletionPorts, которые используются в .dotnet для реализации асинхронного ввода/вывода. С помощью них пул реагирует на завершение асинхронных операций ввода/вывода и ставит в очередь продолжение таски.
303 2913851
>>13752

>Как в петушарпе перестать отмакакивать this.zalupa = zalupa? Никак.


И снова тупорылая жавадебильная обезьяна пиздит и принимает очередную порцию урины - https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/primary-constructors

Ещё не устал, жабенок?
304 2913924
>>13851
Неужели, спустя 10 лет существования ломбока в петушарп интегрировали одну из его функций. Лан, уберу из списка обоссывания шарпоскота конструкторы, ибо выглядит даже хорошо, только не реви так.

Добавлю @ToString, @Delegate и @Getter с @Accessors на класс, и другие аннотации, которые были запилены за время, пока шарподебилы одни только конструкторы заменяли.
305 2913997
>>13924
Да нам похуй на твой лобок и любые другие костыли, порождаемые убогостью джавапараша. Приходи, когда сможешь сравнивать функции шарпа с функциями джавапараши. Функции твоей любой либы в джавапараше нам не интересны, жабенок.
306 2914010
>>13997
Да не реви ты так, ну подумаешь ещё 20 лет ждать придётся, прежде чем перестанете отмакакивать реализацию интерфейса через делегацию, а на джаве так уже лет 5 делают.
307 2914031
>>14010

>Да не реви ты так


Маня, таблетки

>>14010

>реализацию интерфейса через делегацию


Чо за поток сознания, болезный?

Джавадебил, почему джава не умеет в сериализацию объектов в жусон, что является стандартом индустрии на протяжении многих лет? JEP уже есть и все будет скоро?
308 2914040
>>14031

>поток сознания


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

>жисон


В смысле не умеет? А как тогда по твоему копросервисы общаются? Ставишь любую библиотеку и сериализуешь на здоровье. Долго ещё урину принимать в ебало будешь?
309 2914041
>>14031
А нахуя в язык пихать все блять? Типа чтобы что?
310 2914045
Погодите, а что, c# 12 с этими хвалёными примари конструкторами ещё не вышел? Почему это 8 дотнет ещё на стадии релиз кандидата? Получается шарпомухи до сих пор пишут this.zalupa = zalupa? Приходите, когда перестанете.
311 2914053
>>14040
>>14041
Ого, так джавадебил не один, а с дружком.

>>14040

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



Если нельзя наследоваться, значит и реализацию менять нельзя, ебанушка. Вы там в своей жабе совсем конченые видать. Но, что более вероятно, ты, обезьяна не умеешь выражать свои мысли - скинь ссылку на кейс и/или джавакод.

Главное, не забудь сходить нахуй
312 2914059
>>14040

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



Выглядит как не сильно частый кейс, чтобы наличие отдельного инструмента под это было такой киллер-фичей. Плюс, явно покинуть вызов 6 методов не такая и большая работа, тем более с современными-то ide, но да ручная.
Если же тебе приходится этим постоянно заниматься, или у тебя интерфейсы по несколько десятков методов, то значит архитектура просто говно.
Мимопроходил
313 2914061
>>14053
>>14059
То есть никак, ручками переписывать кучу методов? Пынямаю. Ждём 20 лет, а пока нинужно.
314 2914068
Жавадебил, а вы до сих пор, когда в БД ходите sql-код ручками пишите (походу да, так как ты упоминал подстановку интерполяцию аргументов в SQL-запросах в контексте интерполяции строк)? Или всратые QueryBuilder-ы используете? Есть у вас что-то похожее на ExpressionTree и linq2sql? Или не нужно?
315 2914069
>>14068
Есть ORM и DSL.
316 2914079
>>14069
Как понимаю, тут валидный пример использования этого DSL в Hibernate? https://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html
Ну как-то врато, честно говоря. Все равно по сути ручками sql, пардон hql, писать приходится.
317 2914082
>>14079
Во-первых это говно, а не dsl. Нормальный dsl это QueryDSL, например. Во-вторых, если не нравится писание запросов в принципе, даже в том виде как предлагает кверидсл, есть orm, про который я упомянул в начале.
318 2914097
>>14082
Ну, QueryDsl выглядит уже как что-то приличное. Напоминает запросы в SQLAlchemy из Python'а. (Хотя они может быть и вдохновлялись QueryDsl).
319 2914101
>>14031

>>почему джава не умеет в сериализацию объектов в жусон


Наркоман штоле? Это из коробки в спринге всегда было. Джэксон справляется со всем что надо.

>>JEP уже есть и все будет скоро?


Джэпы пилят про кишочки жвм и то что нельзя либами покрыть. Сахар если и делают то только если он дает прирост производительности или получился пока филили важную фичу.
320 2914107
>>14040

>>Есть интерфейс с 7 методами. Есть класс, его реализующий.


1 реализация?
Нахуй ты интерфейс для него выделил долбоеб?
Если не одна - то при смене сигнатуру один хуй страдать будешь и руками/через иде все править.
321 2914113
>>14107

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


Что блядь?
322 2914124
>>14068

>>когда в БД ходите sql-код ручками пишите


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

>>всратые QueryBuilder-ы используете?


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

>>Есть у вас что-то похожее на ExpressionTree?


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

>>linq2sql


hibernate - но по нынешним меркам орм уже легаси
323 2914127
>>14113
Ну блять если ты хочешь сигнатуру метода сменить в интерефейсе. тебе надо тогда сменить ее и во всех 10 реализациях.
324 2914128
>>14127
Я что-то говорил про смену сигнатуры?
325 2914139
>>14124
Даже жуковый шиз уже тут. Че весь жаба тред перетек?
326 2914153
>>13842

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


Вот это вызвало у меня нестерпимое врёти. Настолько нестерпимое, что я установил райдер, дотнет и написал бенчмарк для проверки, а так ли это на самом деле. Переплевавшись с убогости синтаксиса, дебильной инициализации проекта, отсутствия возможности получить время в наносекундах для измерений и необходимости ради получения одного long юникс-миллисекунд генерировать целый объект DateTime, а также охуев от отсутствия банального AtomicLong в петушарпе (вы как вообще синхронизируетесь, ебанаты?) я всё-таки написал это.

Результат — 3 секунды на джаве и 148 на петушарпе. Джава 21, дотнет 8. Ты высрал хуйню. Task это не аналог виртуальных потоков. Вероятнее всего, там тредпул именно такой, какой я и представлял, т.е. самый обыкновенный.
image.png52 Кб, 1202x262
327 2914156
>>14124

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


https://learn.microsoft.com/ru-ru/dotnet/csharp/advanced-topics/expression-trees/
Если кратко, то компилятор вместо лямбды умеет подставлять её синтаксическое дерево, которое будет доступно в коде. Его можно анализировать, изменять, объединять с другими и т.д. По нему шарповые либы типа EntityFramework и Linq2db умеют генерировать SQL код. По итогу, можно писать обычный шарповый код, идентичный обычному использованию Linq для коллекций, а либа сконвертирует это в SQL-код.
328 2914157
>>14153
Сука, код забыл. https://pastebin.com/1dSgAeUz
329 2914159

>> 2914153


Посмотрим что за хуйню ты там написал. Без кода твой вскукарек это просто вскукарек.
330 2914161
>>14157
Дебил. Ты блокирующий Thread.Sleep в асинхронном коде вызвал. В случае TPL нужно использовать await Task.Delay
image.png52 Кб, 1202x262
331 2914164
>>14157
Плюс ждать пачку тасок лучше через Task.WaitAll, чем в цикле их перебирать.
332 2914166
>>14157
Ну и для замера лучше хотя бы StopWatch использовать https://learn.microsoft.com/ru-ru/dotnet/api/system.diagnostics.stopwatch?view=net-7.0
333 2914171
>>14161
Проиграл с часа ожидания, пролетающего за 50 миллисекунд. Уноси своё говно.
334 2914185
>>14157
Замер времени через now вместо стопвоча и лютый обсер с вызовом методов - блядь какой же джавадебил дегенерат, это пиздец просто...
335 2914191
>>14157
Проиграл с того как обезьяна использовала интерполяцию в шарпе

>Console.WriteLine($"Result = {integer_}; Time consumed = {(time2-time1) / 1_000} s");



Мозг жабенка совсем искалечен жавапарашей
336 2914192
>>14185
Может что-нибудь по делу скажешь, вместо ад хоминум высеров?
337 2914193
>>14128
если контракт не меняешь, то в чем проблема?
338 2914197
>>14191

> Может что-нибудь по делу скажешь


?
339 2914198
>>14192
Ты хуйню написал, перепиши как тебе выше пояснили и возвращайся

Не забудь сходить нахуй
340 2914199
341 2914201
>>14198
Вы сами тесты запустить не смогли в шарпе нормально. О чем речь вообще, бля?
342 2914202
>>14198
Я не поменял только измерение времени на стопвоч и ожидание на через WaitAll. Таск делей выдал смешной результат и показал тупой ебальник шарподаунов, которые не знают, как их собственный язык работает.

Флажок в анус поставишь, если стопвоч и вейтолл изменят ситуацию?
343 2914204
>>14202

>не изменят ситуацию


быстрофикс
image.png159 Кб, 1934x1000
344 2914211
>>14171
Ты не авейтишь Task.Delay(), хлебушек. Из-за этого у тебя таски ничего не ждут о отбрабатывают сразу. На скрине пример того, как это должно быть правильно написано.
Причём ебал я ебаться с циклами, поэтому заюзал linq, который будет медленнее циклов. У даже с ним у меня это всё отрабатывает за 0.12 секунды.

Нахуя ты сюда лезешь и что-то пытаешься доказать, если вообще в реализации асинхронности в шарпе нихуя не понимаешь?
345 2914215
Алсо, в огород общей скорости языков. Если в джаве удалить ожидание вообще, чтобы как в петушарпе было (т.к. таск делей что-то не хочет работать, лул), то получится 16 мс, или в 3 раза быстрее, чем то же самое на шарпе. А если поменять экзекутор с экзекутора с виртуальным потоком на таску на простой экзекутор (тот же, что, по всей видимости, используется в Task), то разница будет вообще в 8 раз, и результат на джаве будет равен 6 мс против 48 мс на шарпоговне.
346 2914217
>>14211

>async/await


Ты совсем что-ли даун? Task был предложен как аналог лума, а преимущество лума в отсутствии загрязнения асинк/авейтами.
347 2914221
А ещё ты один ноль пропустил, лол, и вместо 100к запустил 10к.
348 2914225
>>14217
Этот ты даун. Было обсуждение, что текущая реализация асинхронности в шарпе действительно позволяет не блокировать потоки пула во время асинхронных операций. Текущая реализация асинхронности в шарпе сделана на основе оптимизированного пула + тасок с async/await. Никто про то, что это без async/await работает не писал.
349 2914227
>>14225

>Никто про то, что это без async/await работает не писал.


Нахуй ты влез в разговор, не прочитав бэкграунд, дегенератина? Я этого дауна опускал >>13587, а конкретно его пункт в ответе на "я хуею...".
image.png659 Кб, 3840x2400
350 2914228
>>14221
Ну вот для 100_00
351 2914230
>>14228
Быстрофикс 100_000 сука!!!
352 2914233
>>13549
код читается как говно ибо это просто костыли через явное использование разных ехекуоторов.

>>13643

>+асинхронность без загрязнения кода через async/await


ЕЩЕ РАЗ БЛЯТЬ ГОВОРЮ

АСИНХРОННЫЙ КОД ДОЛЖЕН ВЫГЛЯДЕТЬ КАК СИНХРОННЫЙ
то есть легко переводиться в асинхронный путем расставления suspend/await
причем глобально всю софтину так можно перевести

ебучие ехекуторы или любые другие средства === КОСТЫЛИ ИЗ ГОВНА

как до сих пор этого можно не понять.
353 2914238
>>14233

>АСИНХРОННЫЙ КОД ДОЛЖЕН ВЫГЛЯДЕТЬ КАК СИНХРОННЫЙ


Додик, так джава в этом гораздо дальше ушла.
354 2914239
>>14233

>АСИНХРОННЫЙ КОД ДОЛЖЕН ВЫГЛЯДЕТЬ КАК СИНХРОННЫЙ


Нет не должен. Давай определение асинхронности, синхронности, конкурентности, параллельности и отличия между ними. Мне кажется, ты нихуя не понимаешь.
355 2914242
>>14239
мне срать на определение асинхронности
я говорю что в НОРМАЛЬНЫХ языках именно так
код НЕ ПРЕВРАЩАЕТСЯ в не пойми что
а выглядит так же просто и читаемо БУДТО ОН СИНХРОННЫЙ

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

Если ТЫ не согласен что асинхронный код НЕ ДОЛЖЕН иметь премудрости, а должен быть похож на такой же синхронный - НУ ЗНАЧИТ ТЫ ГОВНОЕД ИЗ ВРЕМЕН ПАЛЕОЛИТА и не заметил современные тенденции (повторюсь - асинхронный код можно было писать ВСЕГДА, речь идет о чистоте)
356 2914244
>>13798

>К слову лум не 7 лет пилили, а 3 года всего.


Я понимаю, что 7 лет назад ты скорее всего еще юзал памперсы, но увы начали в 2017
357 2914260
>>14233

> АСИНХРОННЫЙ КОД ДОЛЖЕН ВЫГЛЯДЕТЬ КАК СИНХРОННЫЙ


Как по мне, и да и нет. С одной стороны,, асинхронный код, который выполняет последовательность асинхронных действий должен выглядеть последовательно, блять. То есть коллбэки с реактивщиной идут нахуй (не примяну упомянуть, что этот ваш ReactiveUI в Avalonia лютая хуйня, которая тупо создаёт лишнюю когнитивную нагрузку.)
С другой стороны, должно быть видно, что код таки асинхронный и в каких=то случаях может исполняться параллельно, чтобы не страдать при отладке, если что-то пойдёт не так. В котлине с его suspend-методами и явными async-ами только для параллельных вызовов, как по мне, нашли идеальный баланс между читаемостью и явностью асинхронного кода.
358 2914263
>>14228
Лень читать все, жабенка снова обоссали?
Какой же бойлерплейтный код на жабе.
359 2914275
>>14260
так я и говорю что с await (или suspend в котлине) это отличный баланс когда "очень похожий на синхронный код" компилятор сам перепишет то что надо
Причем в таком стиле будет вся программа.

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

Если компилятор языка не может за меня написать - значит язык говно. В итоге и пхп сможет блин, а мне тут до сих пор нахваливают АРХАИЧНЫЙ способ заката солнца вручную, мол смотрите как у нас можно. Как будто это говно у кого то было хоть когда нельзя.

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

а костыли оправдатели пусть засунут себе в жопу.
360 2914290
Хочу написать обертку для класса, есть тулзы для автогенерации методов? Самому писать целую сотню не хочется.
361 2914296
>>14275
А почему если асинки имба имбой, ебаные индусы на юпф пишут говно? Ряльно не выкупаю. Хуже софта от микрософта просто не бывает.
362 2914297
>>14296

>юпф


uwp.
363 2914300
>>14296
потому что они индусы - 90%;
потому что это UWP - 30%

и да. в сумме больше 100%

сам я UWP не люблю, но не буду же я называть говном все, что не люблю. Такой чести удостоена только жава.
364 2914301
>>14296
Во первых какое говно они написали на UWP, во вторых платформа UWP написана на крестах а программы компилируется в нативный байт код.
365 2914306
>>14301
Калькулятор, просмотрщик фоток и прочая поебень, которая стандартна в винде. Все это вылетает из-за хуево реализованных проставленной асинхронщины.
>>14300

>Такой чести удостоена только жава.


Вот это любовь
366 2914308
>>14306

>Калькулятор, просмотрщик фоток и прочая поебень, которая стандартна в винде.


Написано на C++
image.png5 Кб, 372x192
367 2914311
368 2914313
>>14311
А это другой калькулятор, из 11 винды, написанный на WinUI, а не UWP
image.png1 Кб, 116x44
369 2914315
>>14313
Это че, 11 винда 4 года назад вышла?

> на WinUI


Тут мб, я не шарю в ваших гуях
370 2914321
>>13549

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


>яскозал!


Что-нибудь посерьёзнее высрешь?
371 2914346
А что быстрее, java или шарп? Зачем вы хуйню обсуждаете? Просто посортируйте массивы.
372 2914353
>>14346
Да там жеба опять читерить будет. Ты не понимаешь
373 2914360
>>14296
Во времена создания UWP индусы из Microsoft настолько приисполнились, что хотели сделать основным языком под него JavaScript. Я помню, какое-то время под Js было больше UWP Api, чем под шарп. Я под JS его не пробовал, но это должно было быть что-то по настоящему жуткое, если учесть, что UWP приложения в нативный код собирались.
Screenshot 2023-11-09 091000.png38 Кб, 1393x534
374 2914364
>>13752

> Как в C# защититься от SQL инъекций и одновременно с этим не отказываться от удобной интерполяции?


Писать руками SQL-запросы в 2023 — это что-то уровня ассемблерных вставок. Любая даже самая простая ORM всё спокойно экранирует. Опять же непонятно, какого хрена этим должен интерполятор заниматься.

> И решение гораздо лучшее. Если сборка становится чуть сложнее, чем "скачать зависимости", то приходится мигрировать на CMake.


Что? Я за 10 лет работы ни разу такого не встречал. Большая часть нужных вещей вставляется в csproj, а если нужно что-то экстраординарное, пишешь ps-скрипт и вставляешь в пре или постбилд.

> Так ты может объяснишь, чем это плохо? Так-то это ожидаемое поведение.


Я тебе весь тред это объясняю! Когда ты пишешь await task, а внутри таска он доходит до Task.Yield(), то тред не блокируется, а освобождается и загружается следующим таском из очереди (в зависимости от конфигурации scheduler). Это то же самое, что делает loom, только loom у тебя используется исключительно внутри экзекьютора, а в шарпе весь код асинхронный до самого верха. Вот я пишу веб-сервис на ASP.Net, и у меня каждый обработчик запроса уже асинхронный из коробки, и он не занимает тред, когда ждёт IO, он освобождает его для для обработки других входящих запросов. Таким образом, если у тебя веб-сервис с тяжёлым IO, он может обрабатывать в десятки или сотни раз больше запросов по сравнению даже с обычной асинхронщиной.

> Ответишь за слова, что именно тебе в них всех не нравится, или сольёшься по этому тейку?


Ты очень тугой. Зачем нужен лум, если в текущих библиотеках не убогая асинхронность? Вот выбирай, либо лум не нужен, либо библиотеки говно.

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


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

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


Я тоже ничего не писал про реализуемость. Я писал про то, что ты утверждаешь, что виртуальные треды очень лёгкие и быстрые и гораздо круче тасок. Я тебя прошу написать такой код, который это покажет. Я понимаю, что может быть ты не знаешь как нормально с Тасками работать, поэтому код с тасками я готов написать сам. Только ты напиши свой ультрабыстрый код с виртуальными тредами на джаве.
Screenshot 2023-11-09 091000.png38 Кб, 1393x534
374 2914364
>>13752

> Как в C# защититься от SQL инъекций и одновременно с этим не отказываться от удобной интерполяции?


Писать руками SQL-запросы в 2023 — это что-то уровня ассемблерных вставок. Любая даже самая простая ORM всё спокойно экранирует. Опять же непонятно, какого хрена этим должен интерполятор заниматься.

> И решение гораздо лучшее. Если сборка становится чуть сложнее, чем "скачать зависимости", то приходится мигрировать на CMake.


Что? Я за 10 лет работы ни разу такого не встречал. Большая часть нужных вещей вставляется в csproj, а если нужно что-то экстраординарное, пишешь ps-скрипт и вставляешь в пре или постбилд.

> Так ты может объяснишь, чем это плохо? Так-то это ожидаемое поведение.


Я тебе весь тред это объясняю! Когда ты пишешь await task, а внутри таска он доходит до Task.Yield(), то тред не блокируется, а освобождается и загружается следующим таском из очереди (в зависимости от конфигурации scheduler). Это то же самое, что делает loom, только loom у тебя используется исключительно внутри экзекьютора, а в шарпе весь код асинхронный до самого верха. Вот я пишу веб-сервис на ASP.Net, и у меня каждый обработчик запроса уже асинхронный из коробки, и он не занимает тред, когда ждёт IO, он освобождает его для для обработки других входящих запросов. Таким образом, если у тебя веб-сервис с тяжёлым IO, он может обрабатывать в десятки или сотни раз больше запросов по сравнению даже с обычной асинхронщиной.

> Ответишь за слова, что именно тебе в них всех не нравится, или сольёшься по этому тейку?


Ты очень тугой. Зачем нужен лум, если в текущих библиотеках не убогая асинхронность? Вот выбирай, либо лум не нужен, либо библиотеки говно.

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


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

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


Я тоже ничего не писал про реализуемость. Я писал про то, что ты утверждаешь, что виртуальные треды очень лёгкие и быстрые и гораздо круче тасок. Я тебя прошу написать такой код, который это покажет. Я понимаю, что может быть ты не знаешь как нормально с Тасками работать, поэтому код с тасками я готов написать сам. Только ты напиши свой ультрабыстрый код с виртуальными тредами на джаве.
изображение.png49 Кб, 1320x634
375 2914374
>>14364
Чтобы не было доёбов по поводу асинков/авэйтов, вот тебе без них: 3 секунды миллион тасков
376 2914410
>>14364

> Писать руками SQL-запросы в 2023 — это что-то уровня ассемблерных вставок.


Нинужно. Пынял.

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


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

>пишешь ps-скрипт и вставляешь в пре или постбилд.


Лол, то же самое. Писать самому скрипты для сборки это буквально уровень CMake.

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


Лол, всё так, только с точностью до наоборот. С лумом ты любой код можешь заставить работать паралелльно (экзекутор это только один из вариантов, как потоки создавать, еблан), в петушарпе ты ограничен вызовом await только в async функции. Ты бы хотя бы думал, перед тем как говорить, еблан.

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


Тебе лишь бы высрать, или чё? Речь не шла про async/await. Речь шла непосредственно про Task, который ты, каким-то хуем, возвёл в ранг замены лума.

>Ты очень тугой. Зачем нужен лум, если в текущих библиотеках не убогая асинхронность? Вот выбирай, либо лум не нужен, либо библиотеки говно.


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

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


Ну так я тебе и ответил. Любой асинк/авейт код берёшь, выкидываешь нахуй загрязнитель async, получаешь код на джаве с лумом.
376 2914410
>>14364

> Писать руками SQL-запросы в 2023 — это что-то уровня ассемблерных вставок.


Нинужно. Пынял.

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


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

>пишешь ps-скрипт и вставляешь в пре или постбилд.


Лол, то же самое. Писать самому скрипты для сборки это буквально уровень CMake.

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


Лол, всё так, только с точностью до наоборот. С лумом ты любой код можешь заставить работать паралелльно (экзекутор это только один из вариантов, как потоки создавать, еблан), в петушарпе ты ограничен вызовом await только в async функции. Ты бы хотя бы думал, перед тем как говорить, еблан.

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


Тебе лишь бы высрать, или чё? Речь не шла про async/await. Речь шла непосредственно про Task, который ты, каким-то хуем, возвёл в ранг замены лума.

>Ты очень тугой. Зачем нужен лум, если в текущих библиотеках не убогая асинхронность? Вот выбирай, либо лум не нужен, либо библиотеки говно.


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

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


Ну так я тебе и ответил. Любой асинк/авейт код берёшь, выкидываешь нахуй загрязнитель async, получаешь код на джаве с лумом.
377 2914415
>>14374
А теперь попробуй воспользоваться результатом этого вне async функции, долбоёб.
378 2914427
>>14346
Оба медленные, неповоротливые и прожорливые.
379 2914432
>>14410
если что я другой чел

>Нинужно. Пынял.


а нужно? Даже у меня, поклонника даппера, sql пишет LINQ транслятор.

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


вообще он знает. На этом свойстве даже некоторые орм работают.

>в петушарпе ты ограничен вызовом await только в async функции


тупой тупорыйлейший найтупорылейший бред говноеда, который не знает о чем вообще говорит. await это просто просьба компилятору развернуть таску для ожидания. А таски НЕ ИМЕЮТ НИКАКОГО отношения ни к параллельности, ни к потокам, процессам, ктулху или аннунакам. Это всего лишь удобная работа с аналогом Future

>получаешь код на джаве с лумом


погуглил что за лум такой и понял что ты пиздишь. И что ты вообще не понимает разницу между ЗАПУСКОМ задач (это ваше лумовское типа Thread.startVirtualThread) и их ОЖИДАНИЕМ (то есть await) - это вообще разные вещи
но поскольку ты не разбираешься - то пожри говна
# OP 380 2914438
Я ж просил джавадебила игнорировать, шарпаны...

Но уринировали неплохо, увожаемо
381 2914443
>>14432

> и их ОЖИДАНИЕМ (то есть await)


Запускаешь таску в экзекутор и он за тебя ждёт её. Ждёт в обычной функции, не окрашенной в коричневый.

>А таски НЕ ИМЕЮТ НИКАКОГО отношения ни к параллельности, ни к потокам, процессам, ктулху или аннунакам. Это всего лишь удобная работа с аналогом Future


А я что блядь говорю? И самое главное, как это опровергает "в петушарпе ты ограничен вызовом await только в async функции"?

>вообще он знает. На этом свойстве даже некоторые орм работают.


Кто он? Каком свойстве? Ты хоть сам-то понял, что высрал?

>а нужно? Даже у меня, поклонника даппера, sql пишет LINQ транслятор.


Суть в том, что в джаве есть этот механизм, а в петушарпе не завезли. SQL это только пример, один пример. Можно придумать много примеров, в которых плейсхолдером может быть не что угодно и это нужно контроллировать, например запуск команд в консоль, в которой часть команды будет пользовательским инпутом. Без обработчика придётся каждый аргумент оборачивать в customValidator.validate(). А если какая-то более серьёзная логика, а не просто валидация аргументов, требующая знания всего сразу? С ходу придумать не могу пример, но когда она понадобиться, придётся пользоваться чем-то типо printf, где значения находятся далеко от того места, куда их вставляют.
382 2914448
В споре никогда не рождается истина.
image.png86 Кб, 1277x697
383 2914450
Че-то task.delay() не работает. То что складывает неверно, это ладно, я просто не знаю аналога атомиков в шарпе. Но почему-то отрабатывает за 0 секунд. Как заставить честно считать?
384 2914456
>>14438
Фантазер.
385 2914457
>>14450
await
386 2914462
>>14457
а без него?
387 2914464
>>14410

> Нинужно. Пынял.


Ты же любишь библиотеки? Ну вот, берёшь, например, Dapper и пишешь:

>var parameters = new { UserName = username, Password = password };


>var sql = "SELECT - from users where username = @UserName and password = @Password";


>var result = connection.Query(sql, parameters);


Или берёшь EF. Или Linq2Sql. Или NHibernate.
Это ведь нормально, когда через библиотеки делается?

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


А что ваш интерполятор ещё поддерживает? XML? YAML? Может он ещё валидность программы на JavaScript будет проверять?

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


Да? Ну напиши-ка мне hello world в виртуальном треде.

>в петушарпе ты ограничен вызовом await только в async функции. Ты бы хотя бы думал, перед тем как говорить, еблан.


Тебя async Main() даже не смутил? То есть ты посмотрел на скриншот, и у тебя в голове ничего не зашевелилось?
Да, я не могу сделать весь код асинхронным без async/await, но жабий лум такого тоже не может. У тебя всегда будет основной тред, работающий в физическом треде ОСи.

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


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

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


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

>>14415
Ты говна поел что ли? В этом коде нет ни одного асинка, он чисто на TPL 2010 года.
387 2914464
>>14410

> Нинужно. Пынял.


Ты же любишь библиотеки? Ну вот, берёшь, например, Dapper и пишешь:

>var parameters = new { UserName = username, Password = password };


>var sql = "SELECT - from users where username = @UserName and password = @Password";


>var result = connection.Query(sql, parameters);


Или берёшь EF. Или Linq2Sql. Или NHibernate.
Это ведь нормально, когда через библиотеки делается?

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


А что ваш интерполятор ещё поддерживает? XML? YAML? Может он ещё валидность программы на JavaScript будет проверять?

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


Да? Ну напиши-ка мне hello world в виртуальном треде.

>в петушарпе ты ограничен вызовом await только в async функции. Ты бы хотя бы думал, перед тем как говорить, еблан.


Тебя async Main() даже не смутил? То есть ты посмотрел на скриншот, и у тебя в голове ничего не зашевелилось?
Да, я не могу сделать весь код асинхронным без async/await, но жабий лум такого тоже не может. У тебя всегда будет основной тред, работающий в физическом треде ОСи.

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


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

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


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

>>14415
Ты говна поел что ли? В этом коде нет ни одного асинка, он чисто на TPL 2010 года.
388 2914465
>>14462
Ну можешь Thread.Sleep() ебануть.
389 2914471
>>14438
Лучше жаву обсуждать, чем верстку в впфе, чел...
390 2914472
>>14464

>Где перегрузка опреаторов?


Лол? В жабе нет перегрузки операторов?
391 2914473
>>14471
Ору, зрада прям.
392 2914474
>>14471
Ммм, да, так чё там по мультиселекту в TreeView?
393 2914477
>>14472
Неа. Главный жаббист сказал, что не будет ее и не вводят. Мол это от лукавого.
394 2914478
>>14462
Никак. Только превратив вызываемую функцию в async, так как, фактически, await дробит функцию на две. Этим лум и лучше, потому что загрязнения не происходит.
395 2914480
>>14443

>"в петушарпе ты ограничен вызовом await только в async функции"?


у тебя какие то претензии к асинк функции? это было сделано чтобы не было проблем со старым кодом. В вашей ГОВНОжаве целые типы потерли лишь бы была совместимость.
Так что ротик на ноль с этими претензиями.
Тем более что "ограничен" требует нописать ОДНО (ОДНО БЛЯТЬ СЛОВО) и это ограничен? петросянишь что ли? говно с таблетками попалось и ты сожрал?

>Кто он? Каком свойстве? Ты хоть сам-то понял, что высрал?


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

>Суть в том, что в джаве есть этот механизм, а в петушарпе не завезли


ЛЮДИИИ.У НАС ТУТ ДОЛБОЕБ.
это как раз в жаве не завезли подобие LINQ Expressions
что за хуйню ты вообще несешь
396 2914481
>>14480

>это было сделано чтобы не было проблем со старым кодом.


Нет для этого это было сделано.
397 2914485
>>14481
для этого. чтобы избежать проблем когда в старом коде есть await переменная и не создавать сложных эвристик для вычисления этого
я даже линк давал на летописи.
398 2914487
>>14374
Так, тут я всё-таки обосрался, потому что Task.Delay() сам по себе ничего не делает, и его надо ждать. А Wait() в TPL всё-таки блокирует тред.
Так что я признаю, что Loom всё-таки лучше TPL 2010, однако он всё ещё хуже async/await 2011, потому что основной тред программы на джаве всё ещё не может быть виртуальным.
Ну и отставание на 11 лет это пиздец, конечно. Тормознее только дельфи, наверное.
399 2914489
>>14485
Довольно тупо, кстати. Сделали бы код некомпилящимся, и ладно. Сколько вообще в мире было проектов, в которых была переменная await? А теперь всем приходится писать async.
400 2914490
>>14480

>у тебя какие то претензии к асинк функции? это было сделано чтобы не было проблем со старым кодом. В вашей ГОВНОжаве целые типы потерли лишь бы была совместимость.


Проблема в том, что ты не можешь вызвать асинхронную функцию синхронно
401 2914491
>>14485

>не создавать сложных эвристик для вычисления этого


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

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


Чево блять? Thread может быть как виртуальным, так и платформенным. Что ты под этим подразумеваешь вообще?
402 2914496
>>14487
ну ну. ты просто не разбираешься в обоих вещах сразу, а уже сразу решил что то там признавать.

>>14489
ну тут 2 стула. она выбрали такой стул. впрочем писать async не так уж плохо. Там ведь не только про "можно писать авайт", а и вывод типов, особенно если у тебя там ламбда, и ты закоментил авайтное временно"

>>14490
могу конечно. ты о чем вообще. всегда можно было. Правда можно получить дедлок, поэтому не рекомендуется. Но вообще если нужно и ты понимаешь что делаешь - вызывай
в студии (в написаниии расширений) даже сделали JoinableTaskFactory для как раз вот таких вызовов чтобы в UI контексте избежать дедлока. А если у тебя нет контекста, то вызывай смело

>>14491

>Я кстати, сомневаюсь, что их вообще возможно сделать.


а я не согласен. эвристики возможны как по мне. просто не нашлось общее согласие.
403 2914498
>>14490
Ещё как можешь. async функция возвращает Task или Task<T>, а у них есть метод Wait() и свойство Result, которые блокируют тред до окончания выполнения. Если у тебя просто вызов функции и Result, оно вообще будет выполняться всё в одном треде синхронно.
404 2914499
>>14496

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


Окей, передаю тебе эстафетную палочку.
Мне вообще работать пора, уже 11 утра, а я тут срусь.
405 2914500
>>14464

>А что ваш интерполятор ещё поддерживает? XML? YAML? Может он ещё валидность программы на JavaScript будет проверять?


По делу ничего не скажешь? Слив принят.

>var parameters = new { UserName = username, Password = password };


>var sql = "SELECT - from users where username = @UserName and password = @Password";


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

>Да? Ну напиши-ка мне hello world в виртуальном треде.


Thread.ofVirtual(() -> System.out.println("Hello World!"));

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


>Ты говна поел что ли? В этом коде нет ни одного асинка, он чисто на TPL 2010 года.


Почему у меня твоя хуйня не компилируется? Откуда ты метод dump достал?

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


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

>У тебя всегда будет основной тред, работающий в физическом треде ОСи.


И чё?
406 2914503
>>14499
нафиг мне эта палочка
жава - говно
жавист - говноед
причем говноед, что несет откровенный бред уже не первый раз заявляя "эта фича есть в жаве и нет в шарпе", когда в реальности ровно наоборот

он пишет из психушки, а нормальным людям нужно отдыхать.
407 2914504
Хочу написать библиотеку, которая будет поддерживать несколько платформ. Как это должно выглядеть - есть 3 проекта, один проект содержит различные интерфейсы и классы, общие для обеих реализаций, в остальных либах уже идут конкретные реализации под платформу. Как сделать так, чтобы пользователь мог переключаться между ними просто заменив nuget пакет? Короче как в EF Core например.
Пока есть мысль создать в общем проекте синглтон, содержащий некий объект реализующий интерфейс IFactory. Каждая из библиотек будет содержать метод расширение UseLibraryName(), который будет инициализировать фабрику конкретной реализацией под плафторму. Далее все классы библиотеки для создания объектов будут использовать эту самую IFactory. Как вам идея? Сам собой все реализации интерфейсов из библиотеки будут Internal, иметь приватные конструкторы и создаваться только через фабрики и сами фабрики будут возвращать только интерфейсы, чтобы пользователь в принципе не мог написать код, зависящий от определенной реализации.
408 2914506
>>14480

>у тебя какие то претензии к асинк функции?


Да, то, что async код нельзя вызвать из не-async.

>это было сделано чтобы не было проблем со старым кодом.


Меня твои оправдания, как так получилось, не интересуют. Обсуждается текущее состояние петушарпа.

>требует нописать ОДНО (ОДНО БЛЯТЬ СЛОВО) и это ограничен


Ну-ка напиши это одно слово во внешнем коде, вызывающим твой код. Но даже если представить, что внезапно весь внешний код испарился, и ты можешь сделать все свои функции async, то это одно слово превращается в штук 5 await в каждом методе и один async на каждом из них. Так что не одно.

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


Поведаешь, как, или сольёшься на пиздеже?

> ЛЮДИИИ.У НАС ТУТ ДОЛБОЕБ.


> это как раз в жаве не завезли подобие LINQ Expressions


> что за хуйню ты вообще несешь


Какой нахуй линк? Какое он отношение к невозможности выбрать обработчик имеет? Тебя совсем тем перекрыло?
409 2914507
>>14498
>>14496

>Правда можно получить дедлок, поэтому не рекомендуется


О чем и речь собственно. В десктопных апах у тебя 100% будут дедлоки, из-за чего лично у меня горит жопа от этих async await. Может в asp это и норм, но на десктопе то и дело создает проблемы
410 2914512
>>14504
А какой у тебя код платформозависимый?
411 2914513
>>14512
Жабий, например.
412 2914517
>>14512
Под платформой я имею в виду не ОС, а низкоуровневые API, opengl и directx например.
Но я сейчас подумал, и понял, что идея полного скрытия реализаций хуета, так как не дает пользователю воспользоваться преимуществами той или иной платформы и тогда не имеет вообще никакого смысла писать разные реализации кроме как для саморазвития
413 2914519
>>14506

>Да, то, что async код нельзя вызвать из не-async.


шта? ты вообще в теме не разбираешься
есть Task/Future/Deffered и есть async который попросит компилятор удобно переписать работу с ними.
вызывай как хочешь что хочешь. Это тебе не суспенд в котлине, который как раз требует контекст для корутин

> Обсуждается текущее состояние петушарпа.


одно доп слово избавляющее от кучи проблем. Закоментил авайт и у тебя не покрылось все красным. нормально вполне.
если сложно писать асинк функции - забей шаблон.
Я то понимаю что тебе в ПСИХУШКЕ сложно писать лишние слова с телефона то кнопочного, но вот людям не сложно.

и уж НЕ ГОВНОЖАВИСТУ об этом говорить про лишние слова. Говножава всегда отличлась излишней многословностью по сравнению с любыми языками. И ничего особо не изменилось.

>Поведаешь, как, или сольёшься на пиздеже?


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

>Какой нахуй линк? Какое он отношение к невозможности выбрать обработчик имеет?


не знаю какое отношение к каким обработчикам. я СРАЗУ написал что я ДРУГОЙ ЧЕЛ. читай не жопой (хотя в психушке с телефона...ну ладно). Лично я прицепился к любви писать SQL строками.

процитирую долбоеба к которому я прицепился

>> Писать руками SQL-запросы в 2023 — это что-то уровня ассемблерных вставок.


>Нинужно. Пынял.


узнал себя? так тогда жри говно

>>14507
нет не будут 100%. это чушь. Просто по дефолту был выбран ConfigureAwait(true) что ошибка как по мне. Но если руки не из жопы то дедлоков не будет. (у меня вообще false на глобальном уровне через фоди (ибо мс сколько лет просят добавить это на уровне компилятора, а они ленивые пидоры))
414 2914522
>>14519

>росто по дефолту был выбран ConfigureAwait(true) что ошибка как по мне.


А без этого тебя ждёт исключение если далее в этом же потоке ты пытаешься обновить UI.
415 2914525
>>14522
а кто запрещает в UI местах явно написать ConfigureAwait(true)? Fody его не тронет.
риторический вопрос.
416 2914531
>>14525

>а кто запрещает в UI местах явно написать ConfigureAwait(true)? Fody его не тронет.


Дедлок мешает. Ссука, у тебя в оперативке только последние два поста храниться могут?
417 2914533
Зачем всё это, если в WinForms и в WPF можно async обработчики событий писать?
419 2914537
>>14533
От неумения читать документацию.
420 2914538
>>14533

>async обработчики событий писать


Главное не думать о том, что будет если во время обработки события оно вызовется ещё раз
421 2914541
>>14531
значит ты рукожоп наверное. Тебе к коду притрагиваться нельзя
дедлоки у него откуда то. Весь мир пишет UI приложения с асинк кодом чтобы не морозить UI и у них норм
а у него блин дедлоки.

это у тебя оперативка слабая - тебе я написал что у меня ГЛОБАЛЬНО ConfigureAwait(FALSE)
какой нахер дедлок может быть при таком конфиге вообще.

>>14538
думать надо
тут либо заблокировать возможность вызова
либо предусмотреть повторный вызов который отменяет то что делалось и начинает новое.
422 2914548
>>14541

>думать надо


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


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


И все эти трудности из-за отсутствия возможности работать с асинхронными методами синхронно
423 2914550
>>14541

>это у тебя оперативка слабая - тебе я написал что у меня ГЛОБАЛЬНО ConfigureAwait(FALSE)


>какой нахер дедлок может быть при таком конфиге вообще.


А я тебе написал, что в таком случае будет исключение из-за попытки далее в коде обновить UI вне UI потока, а если прописать вручную ConfigureAwait(true) то будет дедлок
424 2914552
>>14538
Это вообще с чём угодно где угодно случиться может, даже в консольке, если у тебя отдельный тред для интерфейса. И это не говоря о всяких браузерах и т.п.
425 2914555
>>14536
И что это за хуйня? Шарпоговно что ли выбирает тип значения возвращаемого ${} смотря по тому, как оно используется? Это же пиздец. Ну ладно, хоть что-то. Но хуже, чем в джаве.
426 2914559
>>14536
ого ты замудрил
написал бы простое
FormattableString str = $"Test {value1} {value2}";

>>14548
нет никакого отсутствия. работай. Просто UI будет говном "вроде кнопка не заблокирована, нажимается, а ничего не происходит". Поэтому так не делается по нормальному. Но если хочется, то возможно.

>>14550

>ConfigureAwait(true) то будет дедлок


НЕ БУДЕТ. у тебя весь асинхронный код выполняется на пуле. из-за твоих временных ConfigureAwait(true) на UI тред ничего не будет, ведь UI тред не в пуле.
Вот если бы твой асинхронный код также сводился к UI потоку внутри себя, то дедлок возможен, но это уже рукожопие.

К тому же в таких случаях вообще проще использовать Dispatcher.
427 2914566
>>14555

>Шарпоговно что ли выбирает тип значения возвращаемого ${} смотря по тому, как оно используется?


Чет не понял, что ты имеешь ввиду.
Вот ещё на хабре нашёл неплохой пример использования кастомного хэндлера для структурного логгирования.
https://habr.com/ru/articles/591171/
429 2914597
>>14578
Долбоёб, суть осталась та же. Зависящий тип возвращаемого значения от того, как его будут использовать.
430 2914611
>>14519

>есть Task/Future/Deffered


Ну так попробуй распакуй это без await, даун.

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


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

>не знаю какое отношение к каким обработчикам. я СРАЗУ написал что я ДРУГОЙ ЧЕЛ. читай не жопой (хотя в психушке с телефона...ну ладно). Лично я прицепился к любви писать SQL строками.


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

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


Выше было сказано, что это уже хорошо и лучше, чем просто в лоб выбросить ${}, и фактически, то, о чём я изначально говорил было опровергнуто, но и было сказано, почему всё-таки в джаве лучше: вывод типа по тому, как оно используется это очень хуёво, полностью ломается принцип возврата значения. На данный момент петушарп спрашивает, какой переменной будут присваивать значение, и на основе этого выбирает тип. А ещё myCustomInterpolator.interpolate($"{zalupa}") длиннее, чем MCI."\{zalupa}".
431 2914627
>>14263

>>Какой же бойлерплейтный код на жабе.


это шарп..
image.png146 Кб, 320x319
432 2914632
ГУЛАНГ ГОСПОДИН В ТРЕДЕ
Тааакс, что тут у вас? Ахахахахаха, сретесь чей язык более древний? Ну-ка спокуху оформили, и под шконку на свои легаси галеры поползли говно кабанчиков поддерживать, олухи
433 2914634
>>14632
Ещё один. Не тред, а проходной двор
434 2914640
Призываю в тред любителей Rust.
435 2914647
>>14640
Не скули, джавадебил, принимай урину достойно.
436 2914649
>>14597

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


Я б не сказал, что прям очень хуёво, так как такие штуки достаточно редко встречаются. Но да, если до этого не сталкивался, то голову сломать может. Особенно если ещё есть перегрузка метода, которая просто string принимает. Но большинство шарпистов уже готовы к таким штукам, так как для Func<T> и Expression<Func<T>> компилятор лямбду будет по-разному компилировать. А этим все часто пользуются.

> А ещё myCustomInterpolator.interpolate($"{zalupa}") длиннее, чем MCI."\{zalupa}".


Это решаемо. Можно c помощью using static вытащить методы из статического класса и писать к примеру просто SQL($@"SELECT * ... WHERE "huy" = {zalupa}") вместо SqlInterpolator.SQL;
Ну или делегату присвоить. Типа
var mci = myCustomInterpolator.interpolate;
mci($"{zalupa}");
437 2914651
>>14647
Ты ошибся, мне нахуй не сдалась эта помойная жаба.
438 2914657
Ебать. С такими темпами срачай тред ещё раз перекатывать придётся до выхода .net 8
439 2914658
>>14632
Мне иногда приходится почитывать гошные исходники, так как у нас часть микросервисов на го (в основном инфраструктурщина). По ощущениям, так няшная сишечка более выразительный язык, чем говно. Надо каким-то натуральным лоботомитом быть, чтобы на нём писать.
440 2914662
>>14658
Поэтому и пишут на жабке. Ибо остальное нинужна
441 2914663
>>14658

>>Надо каким-то натуральным лоботомитом быть, чтобы на нём писать.


Туда в основном с пыхи перекатываются.

Если б это был реальный конкурент жвм языкам и туда ломанулись джаваны - там бы уже спринг был
442 2914664
>>14649

>привыкли


То, что привыкли к говну не умаляет вонь говна.
443 2914666
>>14663

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


Это получается и шарп не конкурент жвм? Или шарпаны у вас есть аналог спринга?
444 2914667
>>14666
спринг на шарпе называется дотнет
445 2914671
>>14667
Аспнет.
446 2914682
>>14658
Да не трясись
447 2914688
>>14671
И че, прям магия спринговая присутствует? Или типа di есть и уже аналог?
448 2914691
>>14688
Да.
449 2914692
>>14688
ди есть, анотации на контролерах есть, орм есть, че там еще я не смотрел
image.png20 Кб, 795x90
450 2914694
>>14692
Скинь лайфсайкл вашего анолога бинов. Сровню хоть.
451 2914711
>>14694
Какого вашего то блять, я на джаве пишу.
А шарп вижу на мониторе у коллег когда в офис заглядываю за мерчем или пожрать тортов с пицей ну и в репах видел мельком
452 2914719
>>14711

> за мерчем или пожрать тортов с пицей


Ну ты и пупуня. Поделился бы хоть.
453 2914724
Джавадебилы поняли, что лучше тусоваться у шарпогоспод в уютном тредике, а свой пускай потонет. Прямо как сама жабапараша. Безродные и бездомные джавадебилы, мы продаем вас и принимаем вас. Только перестаньте джавапараши жрать
454 2914726
>>14724

>продаем


Принимаем

быстрофикс
455 2914735
В интернете написано, что в с# нет заголовочных файлов.
Как мне тогда свои функции и классы раздробить на несколько файлов, чтоб не копировать функции каждый раз?
456 2914747
>>14735
https://learn.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods
Есть partial классы, объявление которых можно разбить на несколько файлов. А недавно, для упоротых плюсовиков видимо, знаю-знаю, что для поддержки сорсгенераторов сделали ещё и partial-методы, которые позволяют разнести определение и имплементацию метода по разным файлам.
457 2914749
>>14735
>>14747
Ребят, а нахуя хедеры нужны? В жабе такой хуйни нет.
458 2914752
>>14747
Не, мне надо определить в 1 файле, а потом все определенное подключить к другому.
как #include "MyClass.h"
459 2914753
>>14747
Этот чел либо троллит либо совсем залётный. Думаю ему нужно было пояснить что вместо хедеров в шарпе "модули" как единицы компиляции, и функционал ты шаришь просто через подключение неймспейсов.
460 2914754
>>14749
Чтоб 100500строк кода не копировать из проекта в проект.
461 2914760
>>14754
Какие блять 100500 строк кода? Что ты блять несешь?
462 2914764
>>14760
Вот я сейчас делаю функцию, которая обходит нужный мне прямоугольник пикселей, используя прямоугольники поменьше, с определенным шагом по иксу, по игреку. И ещё будет функция, собирающая статистику.
Я не хочу, чтоб это было в основной винформе, я хочу, чтоб этот код был в другом файле, а в винформе основной я буду просто использовать.
463 2914769
>>14764
Доку открой, еблан тупой
Этот прав, похоже >>14753
464 2914772
>>14769
Где ее открывать? Там дохуя всего, из чего 90+% не нужно.
465 2914776
>>14749
Мне кажется ты жирнишь, но всё же отвечу.
Заголовочные файлы используются в няшной сишечки и плюсах нужны, в силу особенностей процесса их сборки и линковки. Каждый c/cpp файл обычно собирается в отдельный obj, а потом линкер собирает все obj в одну либу/исполняемый файл. Если имплементации сущностей с одинаковыми названиями будут лежать в нескольких объектных файлах, то линкер растеряется c какой из них линковаться и отрыгнёт. Усугубляет ситуацию то, что сишный #include по сути тупо вставка содержимого одного файла в другой. Если в с/cpp заинклюдить другой с/cpp файл, то в единцу сборки первого попадут все имплементации методов/функций из второго. Для того, чтобы классы/функции из разных файлов могли как-то друг с другом взаимодействовать, их объявления выносят в заголовочные файлы, которые реализации вообщне не содержат, и которые уже можно инклюдить в c/cpp файлы.
466 2914777
>>14776
Ясно. Технологии древних дидов. Легаси - нинужна.
467 2914786
ппц шарп стал популярным, в жаба треде 10 постов за день, тут больше 200.
468 2914798
Пока жабенок спит, скажите, почему тайпскрипт не скрестили с дотнетом?
NihuyaNePonyatno.PNG114 Кб, 1495x651
469 2914805
>>14747
Почему не разбивается?
Что здесь надо делать, чтоб не копировать одни и теже строки в каждый файл?
>>14776
Т. е. тут не надо .h делать, но можно другой cs добавить? Как?
470 2914809
>>14805

>. е. тут не надо .h делать


Какие млять хедеры, иди уже изучи синтаксис шарпа. Как ты методом тыка язык собрался освоить??
471 2914811
>>14805
В рамках одного проекта просто подключай неймпейсы тех классов которые тебе нужны - using namespace MyBiba.

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

Если ты совсем тупой, хедер файл в шарпе = неймспейс
472 2914815
>>14798
Видимо это особо никому не надо. MS одно время заигрывали поддержкой JS в WinRT, чтобы привлечь разрабов делать приложения для своего магазина. Но как-то не взлетело.
473 2914817
>>14811
Спс, как раз нагуглил , но все равно. Я даже не думал об этом, тк в C++ namespace вообще другая хуйня.
474 2914823
>>14817
В шарпе неймспейс это просто часть имени класса. Мне каж в плюсах примерно тоже самое. Но хедеров нет, потому что изначально сделали нормальную систему компайл юнитов. В современном с++ тоже есть модули чтобы не ебаться с хедерами, ток до сих пор поддержка в компиляторах хуевая
475 2914827
>>14611

>Ну так попробуй распакуй это без await, даун.


а в чем проблема ЖАВАДЕБИЛ?
дожидаешься таски в блокирующем режиме и спокойно достаешь результат.
способов больше одного даже в шарпе

>Каких кучи проблем, ебанько?


говноеду пояснили, но не понял. потому что ДЕБИЛ

>везде будет вести себя также, как код с лумом,


я знаю 2 варианта кода - с авайтами и суспенды из котлина
суспенды из котлина выглядят прямо ну копия синхронного кода, но с авайтами тупо легче жить, потому что это НЕ ТОЛЬКО тупой вызов асинкметодов (а вообще все в единой парадигме - а там много чего разного туда подмешивается -и комплетионсорсы, и процессы, и события и так далее),
(а вот с котлин корутинами там немного по другому устроено и потому есть куча подводных камней - паттерн отмены, исключения, всякие скоупы - с await всей этой поебени нет, с ним все куда проще)

но жаваговноеду этого не понять ибо он ДЕБИЛ

И нет не будет выглядеть так же. Лум похож на котлиновские корутины, но даже там ПРОИГРЫВАЕТ в читабельности лол

про стринги вмешиваться не буду ибо не знаю с чего все началось и о чем вообще речь
но просто лишний раз напомню что ты жавадебил
476 2914831
>>14786
В шарпе можно получать изображение и звук легко, а также легко управлять клавомышью. Язык тупа топ , делаем деньги.
477 2914834
>>14786
ну дык все любят покидать в жависта говном
тем более что он так забавно его ртом ловит )

конечно не гуд что идут срачи
но вспоминая прошлое уныние где тред просто тонул - лучше уж так, тем более что ну забавно смотреть за жавистом с его говном.
478 2914837
Проблема джавадебила, между прочим, не в том, что он дебил. А в том, что она джавадебил.
479 2914840
Что не так с джавой?
480 2914845
>>14840
ну сам видишь. делает из людей дебилов.
держись от нее подальше.
image.png117 Кб, 861x316
481 2914850
>>14805
Ебать хардкод... Где абстрактные фабрики фабрик фабрик? Где синглтоны? Где мвц в конце концов? Не ну это только выкинуть
482 2914851
>>14840
Да она в целом терпима, хоть и отстала от того же шарпа - но сейчас начинает догонять, а вот её евангелисты как были тупорылыми ебланами, так и остались.
483 2914857
>>14851

>отстала от того же шарпа


В чем отсталость?
484 2914859
>>14857
не. не получится спровоцировать. не старайся. На сегодня порции говна закончились.
485 2914860
>>14859
Блин, ну мне скучна. Расскажи интересненькое что-нибудь... Я вот хаскель хотел начать изучать, но чет времени понел, что нет. А у тебя как дела..?
486 2914862
Лучше F# изучай, чем хаскелль.
487 2914863
>>14860
скучна? иди в жава тред и напиши "жава говно"
они тебе наперебой начнут доказывать почему она не говно и ты собственно узнаешь почему она говно.

а мы спать.
488 2914866
>>14863

>иди в жава тред и напиши "жава говно"


Ну тогда мне придется аргументы придумывать. Лень.

>а мы спать.


Пиздец ты ахуел. А меня спросить?
>>14862
Хаскель лучший фп язык. Ну по крайней мере самый продвинутый. Я на его основе jmm хочу понять как можно лучше... Хотя странный путь, конечно.
489 2914868
>>14857
Субъективно - тулинг и управление зависимости хуже. Коробка беднее, приходится затыкать сторонними либами.

Объективно - сахара в шарпе больше и он появлялся все время пока джава стагнировала. Шарп породил несколько удачных концепций, которые потом позаимствовали другие - async/await например.

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

>хардкод


Что это значит? Медленный типо? Так высокоуровневые штучки только замедлят, чи не?
491 2914873
>>14868

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


Кстати, как не парадоксально, учитывая проприетарное прошлое шарпа, но да. В разработке шарпа и дотнета очередняре сейчас сильно проще принять участие и как-то на неё повлиять (можно хоть сейчас пойти на гитхаб и свой proposal в issues добавить), чем в разработке жабы с её евангелистами из Ораклов и Редхатов, JEP-ами и листами рассылок прямиком из 90-х. (Но вы только посмотрите на это https://mail.openjdk.org/mailman/listinfo )
492 2914875
>>14870
Магические константы в коде. Так не принято.

>Так высокоуровневые штучки только замедлят, чи не?


Пфф, кому не похуй? Сначала пишут так, как принято. Гоняют тесты перфоманса. Затыкают узкие места. Еще гоняют, затыкают жесче. Че там, 95% вычислений исполняет 5% кода? Вроде так. И еще этот, кнут говорил, что преждевременная оптимизация... Что? Надеюсь сам прочтешь.
>>14868

>Коробка беднее


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

>Объективно - сахара в шарпе больше и он появлялся все время пока джава стагнировала.


А его, кстати, сторонние тулы не могут завезти? Вот Linq expr точно вряд ли. Его даже в котлин вроде нет. Это фича на уровне аст. Надо будет когда-нибудь глянуть нормально, конечно.
493 2914879
>>14837
У него просто потребность во внимании, не думаю что он на постоянной основе пишет на джаве, скорее безработный вечный вкатун. Получить 21 жабу в проде, это уже почти так же сложно как перейти с кобола на джаву.

Этим языкам нужна конкуренция. Даже зеленные треды заставили в шарпах пошуршать исследователей, а с учетом что там завозят новые технологии условно раз в 10-20 лет, это все печально. Тот же котлин так же еле двигается, го просто завис.
494 2914880
>>14879
Ты как бы учитывай, что вы одним именем несколько людей называете.
495 2914883
>>14879

>го просто завис.


Эти дурачки хотя бы до дженериков додумались в итоге. Всю дорогу проигрывал с этих шизиков.
javacs.png48 Кб, 1201x225
496 2914886
>>14840
Херня, которая вместо развития, выбрала путь буллшит маркетинга и гоняет легион евангелистов по конференциям, забивая головы о том, как мы хороши и вообще передовая технология.

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

>А его, кстати, сторонние тулы не могут завезти?


Могут. К примеру, есть такие штуки как https://github.com/Fody/Fody . Для совсем сладкоежек даже платный сахарок завезли ( https://www.postsharp.net/metalama и https://www.postsharp.net/il/framework ) Я каждый раз лолирую с этого сайта. Выглядит так, как будто DLC для языка продают. Там даже Marketplace есть.
Плюс сорсгенераторы относительно недавно завезли, чтобы свой сахарок можно было добавлять.

С другой стороны, как мне кажется, сахарка в языке уже и так хватает. Лучше бы в сторону развития фундаментальных штук двигались, типа системы типов. Алгебраические типы данных уже сто раз могли запилить. Да и интересный proposal с shape-ами ( https://github.com/dotnet/csharplang/discussions/164 ) дропнули в пользу статических интерфейсов и Generic Math. А могли бы его допинать и по-сути тайпклассы добавить.
498 2914892
>>14875

>Магические константы в коде.


Как принято в физике: длина L, изменение d (нет треугольника), в дургих задачах еще обозначал объем и скорость V, силу F, радиус r и R, и тп.
>>14875

>Гоняют тесты перфоманса


А как тестят, бтв? Есть программа специальная, которая количество тактов процессора считает, или внедряют глобальную переменную, которая инкрементируется с каждой операцией? В вузе и школе второй способ, но он, очевидно, хуже, чем считать количество тактов/комманд ассмеблера.
499 2914895
>>14892

>А как тестят, бтв?


https://github.com/dotnet/BenchmarkDotNet
500 2914900
>>14868

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


Код пишешь в райдере?
501 2914902
>>14900
Не понял при чем тут жава и райдер. В основном пишу в вижаке, изредка в райдере и вскоде.
502 2914903
>>14866

>Хаскель лучший фп язык.



Хачкель - апофеоз функциональности. Как и любая крайность он ебанут и неудобен. Жаба задумывалась как апофеоз ООП. Результат налицо.
503 2914904
>>14903
Ну а че, выбираю лучшее из двух миров так сказать. Ты, кстати, в фп разбираешься?
504 2914906
>>14892

>>Как принято в физике:


Так принято у байтоебов, которые на количестве символов экономят.
А вообще речь о том что должно быть не "200", а "MAX_WIDTH" или что там эти твои циферки вообще значат.
505 2914908
>>14902
Ну вот райдер это и есть "все из коробки", в вижл - беднее, который приходится затыкать плагинами.
Вот я и поинтересовался, а не лицемеришь ли ты указывая такой аргумент.
506 2914909
>>14906
А, ну да, разумно. Вместо 200 действительно должно быть y0 , а вместо 800 ymax
507 2914916
>>14908
Причем здесь ide вообще, речь про языки изначально. Под коробкой подразумевается набор стандартных апи/либ языка. И вот она в жабе беднее, с чем даже джавадебил согласен. Элементарно нет жусона - бери на стороне.

Вижак кстати нифига не беднее райдера, да он может выглядит не так модно, но как ide они плюс минус на равных, а профайлинг мне в вижаке больше нравится.
508 2914919
>>14916

>джавадебил


Поуважительнее. Я ведь обижусь.
509 2914920
>>14895
Спс, а видеоурок есть по этой штуке? Она популярная, как я понимаю.
510 2914924
>>14919
Извини

>>14920
Дядь, мы к тебе со всем уважением, но давай кринжа не наваливай. Инструменты учат не по видео урокам, а читают документацию и getting started - там тебе все покажут и расскажут - https://benchmarkdotnet.org/
511 2914926
Трёх дней не прошло, а вы уже до бамплимита досрали.
512 2914928
>>14916

>>Элементарно нет жусона - бери на стороне.


Джава это прослойка между спрнгом и жвм, а в спринге все это добро уже есть.
Вообще можно не знать кто там жсоны грузит - я в контролер объекты получаю и отдаю тоже, а как там жсон образуется - ну магия спринг епта.
Разница в том что в сишарпе спринг и язык делает одна контора, а в джаве - разные и поэтому всунуть его в стартер пак не выйдет. ну и альтернативы спрингу есть для небинарных личностей
513 2914929
Шарпаны, я вам тут упоротую штуку принес., на которую случайно натолкнулся https://github.com/Tornhoof/SpanJson . Супероптимизированный Жидсон парсер, который почти не аллоцириует память.
514 2914932
>>14929
Пет велосипед норм, но так как нет сравнение с System.Text.Json, то полагаем оно не быстрее, а то и медленее
515 2914936
>>14929
Надеюсь, там ансейф.
516 2914939
>>14932
Я на него в статейке с бенчами сериализаторов наткнулся, которую мне Chrome на мобиле в рекомендации подкинул. Там есть бенчи. И если им верить, то он быстрее, чем System.Text.Json. https://medium.com/justeattakeaway-tech/json-serialization-libraries-performance-tests-b54cbb3cccbb (VPN нужен). Правда статейка уже двухлетней свежести, так что стандартный сериализатор уже могли и прокачать с того времени.
517 2914941
>>14936
Я бегло по коду пробежался и прямого использования именно unsafe блоков и указателей не нашел. Но таки там очень много использований MemoryMarshal, Span-ов, stackalloc-ов, ref-ов и методов из класса Unsafe. Даже занимательно немного. Unsafe код в сейфовой обёртке.
518 2914948
>>14932
я измерял. поверь. рвет System.Text.Json как тузик по всем параметрам
просто меньше фич. и более низкоуровневый.
519 2914949
>>14903
>>14904
Ты если спать уебал тоже, то позже ответь, пожалуйста... Може контактики выпрошу, всегда хочеца иметь человечка, которому глупые вопросы позадавать можно.
520 2914956
Вот вы про асинхронность заговорили, а как мне cpu bound задачу распараллелить? Вот у меня игра на monogame есть, и я хочу чтобы у меня инпут поллился в отдельном треде и не ебал рендер. Что мне для этого использовать System.Threading? или tpl?
521 2914957
>>14886
Как хорошо ты шарпоговно описал.
522 2914961
>>14957
Этот подход в демагогии работает только до 3 класса.
523 2914962
>>14956
PLINQ/Parallel.For*
524 2914965
>>14956
Делай асинхронным хоть cpu bound, хоть io bound, вообще без разницы. Идею, что асинхронщина нужна именно для io bound, форсят во всякой динамикодрисне типа ноды или петухона, которые в принципе сосут в io bound задачах.
525 2914970
>>14956
не слушай этого >>14965 чела
он не знает о чем говорит.
526 2914972
>>14970
А кого слушать?
527 2914976
>>14972
зачем кого то слушать? иди спать

А так
- если у тебя cpu bound задача и тебе нужно заблокироваться в этом месте (не асинхронщина) то PLINQ/Parallel.For
- иначе чел правильно говорит что cpu bound задачи, что io-bound задачи выдадут тебе Task и ты получишь асинхронщину. В том же Parallel наконец то сделали Parallel.ForeachAsync, который выполнит cpu-bound задачи и выдаст тебе таску.

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

А так...хер знает что тебе надо. все уже спят давно. и я сплю.
Captu123re.PNG12 Кб, 267x170
528 2914980
А как удалить массив из памяти? Dispose, который раньше использовал не работает.
529 2914982
>>14980
он сам будет скушан при следующей сборке мусора
530 2915017
Как получить hdc монитора? Graphics.FromHwnd(Null) не дает, как в плюсах.
531 2915056
>>15017
Вот и писал бы на своих любимых плюсах.
532 2915081
>>15056
На них битмапу сложно считать.
Алсо код уже готов нна шарпе, работает, но хочется, чтоб данные были презентабельны, поэтому я хочу рисовать на мониторе.
533 2915095
>>15017
Что с тобой не так? Просто от лени загуглил и первая же строчка. Нахер ты в программирование полез. Или это жабенок стебется?
slojna.PNG122 Кб, 840x914
534 2915254
>>15095
Мог бы и скинуть, если так легко это нашел.

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

>Или это жабенок стебется?


Сомневаюсь, у жабаеблана не хватило бы таланта.
536 2915347
Почему не сделают возможность отключить GC и очищать память вручную?
537 2915479
>>15347
Почему не закроют туалеты и не дадут возможность срать на тротуаре?
538 2915489
>>15479

>Почему не закроют туалеты и не дадут возможность срать на тротуаре?


Потому что для этого есть твой рот, джавадебил.
539 2915500
>>15347

>отключить GC и очищать память вручную


Вообще-то это можно сделать, если прямо очень хочется.
540 2915504
>>15500
Я не про регионы без сборки, где ты просит гц просто поспать, а прямо полноценный контроль как в плюсах, чтобы на вызовв конструктора я сам расставлял вызовв деструктора.

Мне каж это не сложно было бы сделать, просто никому это не нужно. Ну еще пришлось бы и System переписать с учетом этого.
541 2915578
>>15504
И потом смачно посрать на тротуаре, как независимый от туалета индус!
542 2915682
>>15578
Нет, просто я хочу синтаксис и сахар шарпа и одновременно как мужчина самому рулить памятью. Неужели я многого хочу?
543 2915717
>>15682

>unsafe


И можешь срать себе хоть в штаны.
544 2915726
>>15717
Каким образом ансейф поможет мне отказаться от сборки мусора, шиз
545 2915730
>>15682
это тоже возможно (был цикл статей на эту тему) просто придется мудрить и патчить рантайм.
но выбирай лучше язык без GC, а сам донать миллиарды и требуй синтаксиса шарпа
все у тебя получится.
546 2915742
>>15730

>(был цикл статей на эту тему)


Ссылки?
547 2915744
>>15682

>как мужчина самому рулить памятью


Блять, тебе же сказали, что только тупые ебланы заранее оптимизируют. Как ты капчу-то решаешь вообще?
548 2915755
>>15744
Я не хочу ничего заранее оптимизировать, ебло - я хочу ручной контроль памяти и опциональный
GC.
549 2915765
>>15755

>я хочу ручной контроль памяти


Это и есть оптимизация. Причем я на 100% уверен, что твое управление будет хуже, чем у гц.
550 2915782
>>15755
С такими хотелками тебе в плюсы и Раст. И то, наверно, даже Раст тебе не подойдёт, так как со своей моделью владения тебе такого "тру-мужицкого" экспириенса не даст.
Ну а по количеству свистелок и переделок современные плюсы скорее всего Шарп уделывают.
551 2915784
>>15742
Сам ищи. Я лишь знаю что читал этот цикл
552 2915794
>>15782
Так это как раз тупой крестовик. Хочет свою парадигму на другой яп перетащить.
553 2915889
>>15782

>современные плюсы скорее всего Шарп уделывают.


Ебанулся?
554 2915923
>>15889
В чем он не прав? Одни шаблоны в крестах стоят половины сахара шарпа. В шарпе объективно не хватает множества вещей из плюсов, например возможность делать константой не только встроенные типы, или константные выражения, перемещения, множественное наследование...
555 2916004
>>15923

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


Ага, а в js есть eval(), можно вообще что угодно нагенерить и выполнить.
Шаблоны в крестах — очередной способ выстрелить себе в жопу.

>возможность делать константой


Во, я бы хотел константные переменные.

>перемещения


Нет.

>множественное наследование


НЕТ.
556 2916152
>>16004

>нинужно


)
557 2916163
>>16152
Множественное наследование нужно только таким как ты выблядкам, результатам множественной ебли мамаш
558 2916195
>>16152
Это не просто нинужно, это опасное и вредное явление, за которое палкой по голове бить надо.

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

На C# и так несложно наговнокодить, а ты предлагаешь устроить пиздец уровня перла. Спасибо, не надо.
559 2916221
>>16195
Ну вы и маньки, не мужики. Паматью сами не управляете. Наследований нормальных нет. GOTO, так и его нет. Как на таком говноязыке хоть что-то можно написать? Оно ж медленное.
560 2916242
>>16221
Вот и не пиши. Гуляй в свои плюсы подальше отсюда.
561 2916246
>>16163
Причина баха?
562 2916247
>>16195

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


)
563 2916255
>>16221

>GOTO, так и его нет.


И в очередной раз джавадебил лжет, принимая урину в свой гнилой ротешник.
https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/statements/jump-statements
564 2916280
>>16255
Ща у тебя про longjmp спросят.
565 2916285
>>16255
Он кастрированный жиесть...
566 2916287
>>16221
>>16255
>>16247

За брейки вне switch надо ставить щелбаны.
За goto надо вырывать ногти.
За наследование не DTO надо таскать за уши.

Это всё есть в c# и лучше бы этого не было.
567 2916288
>>16280
Для этого есть трай кэтч, даун. За использование лонгжампа нужно убивать сразу на месте нахуй.
568 2916292
>>16288
Даун, какой трай кэтч, вы же сами любите запрещать эксепшены в крестовых проектах.
569 2916299
>>16285
И такой не нужен
Использовал 1 раз
570 2916300
>>15726
Работа с указателями, как ты хотел.
571 2916302
>>16292
Экспешоны могут запрещать только такие ебланы как ты, меняя их на лонгжампы

Да и мне в целом похуй на вашу возню плюсовую мышинную, пишу на шарпе и кайфую
572 2916308
>>16302
Вот и пиши ТОЛЬКО на шарпе
573 2916309
>>16308
Унизил всех в шарпо треде
574 2916311
>>16308
Так я только на шарпе и пишу. Просто хотелось бы иметь возможность ручного управления памятью. Тогда шарп стал бы по истине универсальным языком. А сейчас такой язык один - Дельфи.
575 2916316
>>16309
Что поделать
Много чего хорошего в других языках - нет в шарпе
Много задумано криво и приходится с этим жить

Если пишешь только на шарпе то незаметно

Это касается любого языка.
576 2916323
>>16255

>джавадебил


Каким образом ты так решил?
577 2916328
>>16316

>Если пишешь только на шарпе то незаметно


Ты только на вонючей жабе пишешь, джавадебил, не надо пиздеть тут.
578 2916342
>>16328
Давай я тебя джабе навучу... Мне кажеца ты прям хочешь
579 2916349
>>16342
Я не хочу есть говно, не суй мне его, говноед.
580 2916352
>>16349
Ну ты подумай подумай, больше предлагать ведь не буду.
581 2916375
Додик хотел раскачать джава тред, но был там послан своими же, пришел тут с новой выдуманной херней, почему шарп не плюсы и опять струя урины.
Ппц ты мазохист.
582 2916378
>>16375

>Додик хотел раскачать джава тред


Ты про что?
583 2916383
>>16375
Да, джавадебил, мы все верим, что это был не ты.
584 2916400
>>16328
Ты ошибся
Я как раз тот кто жавадебила говном и поливает

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

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

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

И это не считая эзотерики типа немерле....

Так что недостатки каждого из языков мне заметней
585 2916405
>>16400

>Так что недостатки каждого из языков мне заметней


Вот и расскажи нам про недостатки джавапараши
586 2916412
>>16405
Прошлый тред об этом распинывался
У меня знакомые жависты и много лет мне говорили "это нинужно посмотри зато жава Ынтырпрайз"
А потом это "нинужно" вводили и мне выставляли как киллер фичи
Какое же это все таки говноедство такой подход

Но я не жавист и за новыми веяниями не слежу (жависты следят, но мне разбираться влом)
Просто котлин на жвм и иногда аж злость берет когда сталкиваюсь с необходимостью дженериков и что то не так.
587 2916418
>>16412

>с необходимостью дженериков


У тебя просто говнокод, если такая необходимость возникает. Давай кейсы опиши
588 2916432
>>16418
гошник в треде? Да нет, даже ОНИ признали необходимость дженериков.
кейсы ему подавай. У разработчиков библиотечного кода это сплошь и рядом.
589 2916443
>>16432
Чиво блять, в котлине есть женерики. Я думал ты про случаи, когда тебе в рантайм нужно тип определить. Типа new T();
590 2916469
Уже нет смысла спорить за языки
https://www.youtube.com/watch?v=KffVhdWAgXc
591 2916498
Хз что эти линивые жопы не могут сделать транспайлер котлина в шарпунь или компилятор в дотнет. Местами котлин вкусный, но местами они там болт ложили, походу в торопях. Но в целом тоже нравится синтаксис, но как технология, дотнет сильнее.
592 2916505
>>16469
Автор жабист, кста.
593 2916527
>>16498
Хорошая возможность получить работу в житбрейнсе
594 2916567
что ж мы за люди такие
без обсирания жависта и поговорить не о чем
595 2916571
596 2916573
>>16567
Давай поговорим о вёрстке в WPF.
597 2916580
>>16573
она говно. что о ней говорить.
любая верстка что является не кодом сама по себе - говно
и в виде кода как в кутях - тоже говно

норм она в MVI(U) моделях, хоть выглядит тоже громоздко, но то все же код.
но в шарпе это было что то в мауи этакое и хз че оно там.
598 2916583
>>16567
Давайте тогда о фп поговорим
599 2916585
>>16583
оно говно
потому что мелкие решили развивать свой F# вместо того чтобы взять под крыло немерле
после этого тьфу на них
о чем тут говорить
600 2916586
>>16585
Я про хаскель
601 2916589
>>16573
XAML одно из самых удачных и живучих решений для верстки гуя. Другое дело что майки пидоры и не развивают впф. В Авалонии например развили синтаксис
602 2916592
>>16586
не изучал. да и тред про шарп.
но как по мне - упор на конкретную парадигму скорее вреден чем полезен

>>16589
я могу лишь сказать что в нем можно выразить многое
но сам по себе ГОВНИЩЕ ЛЮТОЕ ЛЮТЕЙШИЙ КАЛ

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

А тут хмл, причем со вложенности. в итоге получается простыня пиздец. и если ты хочешь раздробить простыню - будь добр делай это в ОТДЕЛЬНЫХ файлах коих тем более пара.

один довод только - таблицы. если нужны таблицы то чет как то MVU модели не очень работают. И они избегают крутых навороченных таблиц почему то. Даже тот же сервелат без датагрида был изначально.
603 2916599
>>16592

>да и тред про шарп.


И чево? Пообсуждать-то хочеца с няшами, а не душными уебанами.

>не изучал


А ф шарп изучал? Лямбда исчеления понимаешь...?
604 2916601
>>16599
понимаю, но обсуждать не хочу
я щас никакой. тяпница же вечер.

да и вообще не хочу.
чего их обсуждать, зачем вообще. Это трата времени
605 2916606
>>16601

>зачем вообще


Скуку развеять, мне помочь.

>Это трата времени


Афигел что ли? Обидно вообще-т.
606 2916614
>>16606
шлюху закажи (айтишники зарабатывают много). а у меня тяпница
607 2916619
https://github.com/ikvmnet/ikvm

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

Эбало понадусерового джавадебила имагине?
608 2916627
почему в треде по шарпу спорят о джаве?
609 2916628
>>16619
Далеко не все джависты в восторге от жабы.
610 2916630
>>16619
Возродили проект из пепла для котлина. раз уж взял из того jбсуждения, мог бы и упомянуть. У людей есть кейсы котлин -> CLR
611 2916633
>>16627
Любят очень, причем неиронично. Но перекатываться поздно уже.
image.png9 Кб, 704x74
612 2916635
Ебало?
613 2916645
>>16635
Переведи на русский, а то местные олигофрены не поймут смысла.
614 2916651
>>16619
Ебать манямирок. Дебилизм 1,5 промытых долбоёбов, которые ни разу в жизни не применяли композицию и судящих о выразительности языков по хелло ворлдам не отображает мнения большинства.
615 2916653
>>16645
Радость за то, что жабий байткод превращается в динамикодресню без типов.
Это как если сказать, что деградация это круто!
616 2916655
>>16653
Ну вот дозапрещались и донипущались, что все языки без собственного рантайма пишутся на базе jvm.
617 2916658
>>16653

>higher-kinded types


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


Я же говорил, местные олигофрены не поймут без перевода на русский.
618 2916664
>>16627
Потому что вся суть ассемблеропарашного продукта языкосодержащего это копротивление джаве.
жокир.mp46,7 Мб, mp4,
720x1280, 0:12
619 2916667
В скрипте есть пачка методов типа:

public void ViewCard_1() { }
public void ViewCard_2() { }
...
public void ViewCard_999() { }

В этом же скрипте есть:

public static int cardNumb = 0; // сюда периодически прилетает число от 1 до 999

В апдейте лежит:

If (cardNumb != 0) { / здесь нужно запустить метод с соответсвующим индексом, например, "ViewCard_42();" при cardNumb = 42 /}

Как мне вхуячить этот самый cardNumb в виде переменного индекса чтобы получить универсальный работающий вызов метода типа ViewCard_cardNumb() ?
620 2916676
>>14827

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


Ну так попробуй дождись без await, даун.

>говноеду пояснили, но не понял. потому что ДЕБИЛ


Слив принят.

> я знаю 2 варианта кода - с авайтами и суспенды из котлина


> суспенды из котлина выглядят прямо ну копия синхронного кода, но с авайтами тупо легче жить, потому что это НЕ ТОЛЬКО тупой вызов асинкметодов (а вообще все в единой парадигме - а там много чего разного туда подмешивается -и комплетионсорсы, и процессы, и события и так далее),


> (а вот с котлин корутинами там немного по другому устроено и потому есть куча подводных камней - паттерн отмены, исключения, всякие скоупы - с await всей этой поебени нет, с ним все куда проще)


Что ты высрал, уёбище? Как это хоть что-то из сказанного мной отменяет?

> но даже там ПРОИГРЫВАЕТ в читабельности лол. Яскозал!!! СКОООЗЗАААЛ!!!! НУ ПАВЕРЬТИ МНИ ПРУФАВ НИ БУДИТ!!!!

621 2916681
>>16667
Пиздос, то есть у тебя там 999 написанных руками методов, названия которых отличаются только числом в конце? Ну с таким уёбищным API остаётся только юзать рефлексию с генерацией названия метода в строке и последующим его вызовом: this.GetType().GetMethod("ViewCard_" + cardNumb).Invoke(this, new object[]{});
622 2916686
>>16667
Петушарп момент.
623 2916687
>>16655
Проблема в том что все эти языки мертвы, кложа, груви, скала, котлин (полу жив благодаря андроиду).

Прикинь, ты разрабатываешь супер язык и думаешь что обмажешь супер jvm, но на деле оказывается, это тухлях, раздутый пузырь и твой язык умирает из-за пропаганды джавы. Оказалось, что jvm никому не кроме самой джавы и не нужна и там джавистов все и так устраивало, тем более никто не хотел работать на двух языках за одну зарплату.
624 2916691
>>16687
Как это отменяет хоть что-то из сказанного мной?
625 2916693
>>16676
о жавадегенерат нарисовался

>Ну так попробуй дождись без await, даун.


А в чем проблема ДЕБИЛ?
начиная от Task.Wait() и опускаясь до низкоуровнего task.GetAwaiter().GetResult()
не говоря уже о том что я могу взять джоинаблефактори

жавадебил во всей красе

>Как это хоть что-то из сказанного мной отменяет?


А то что твой лум можно срванивать с корутинами котлина и то он выглядит, а с авайт вообще нельзя - это ПОХОЖАЯ но ДРУГАЯ концепция дебил

если не разбираешься в теме (а это исключительно так) то просто жри говно молча.
626 2916697
>>16693

>о жавадегенерат нарисовался


Ну вы только посмотрите как он скучал.
627 2916702
>>16691
Ты хоть иногда свои посты перечитывай, там же не разобрать.
image.png19 Кб, 724x129
628 2916703
>>16645
Там еще лучше перлы есть. Прям базу выдают.
629 2916706
>>16693

> А в чем проблема ДЕБИЛ?


> начиная от Task.Wait() и опускаясь до низкоуровнего task.GetAwaiter().GetResult()


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


Ну так попробуй воспользуйся этим, даун.

>это ПОХОЖАЯ но ДРУГАЯ концепция


И как это отменяет хоть что-то из сказанного мной?

Ебанько, тебе самому не надоело высирать тонны слабосвязанного текста и каждый раз читать мои претензии к тому, что этот текст никакого отношения к теме разговора не имеет / ничего по теме разговора не отменяет?
630 2916709
>>16702
Где у меня что непонятно? Это ты, долбоёб, не знаешь даже основ дискуссии и поэтому выполняешь работу бредогенератора, и из-за этого сам запутался после предложения начать хоть что-то осмысленное выдавать.
631 2916712
>>16681

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


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

>>this.GetType().GetMethod("ViewCard_" + cardNumb).Invoke(this, new object[]{});


чет совсем сложно, неужели нет стандартной реализации добавления индекса?

вот допустим пример попроще у меня есть много переменных типа:
int x_1;
...
int x_99;
Есть ли в принципе возможность добавить в их название переменный индекс, чтобы динамически менять например формулы с этими переменными превращая, допустим "х56 + х56" в "х3 + х3"
Интересует сама возможность
632 2916713
>>16712
Был бы вот не порезанный goto...
633 2916715
>>16712
Конечно нельзя. Ты как себе представляешь статическую типизацию с выбором переменной или метода в рантайме?
Максимум что ты можешь, это написать t4 шаблон, который тебе сгенерирует нужный код.
типа switch(a){ case 1: ViewCard_1();break; case 2:...}
634 2916718
>>16651
>>16619
Так это же не Petu# on Java, а Java on Petu#. Здесь же наоборот людям понадобился дотнет (зачем-то) и они не смогли смириться с убогостью самого петушарпового языка.

Опять вторая теорема шарпана отработала, да что-ж такое-то!
635 2916723
>>16712

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


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

> неужели нет стандартной реализации добавления индекса?


Нет, потому что программы так не пишут.

> Есть ли в принципе возможность добавить в их название переменный индекс


Есть, называется массивы.
636 2916732
>>16723

> > Есть ли в принципе возможность добавить в их название переменный индекс


> Есть, называется массивы.


Ебать, ты мне только что сломал тот кусочек мозга, что остался с тех бородатых времён, когда я только-только начинал программировать и горел от непонимания массивов.
637 2916750
>>16715
Хорошо, в названия лезть нельзя, это я понял.
Как бы вы реализовали простой запуск метода с нужным индексом в названии, чтобы не писать для каждого условие типа
If (cardNumb = 1) {ViewCard_1() ; }
...
If (cardNumb = 999) {ViewCard_999() ; }

При условии что методы уже прописаны в виде:
public void ViewCard_1() { }
...
public void ViewCard_999() { }

И нужно организовать их относительно простой запуск при соответствующем изменении значения "cardNumb" в пределах 1...999
638 2916752
>>16667
Чем меня этот говносценарий так зацепил, что аж покреативить захотелось. Вышло как-то так.
https://onecompiler.com/csharp/3zt4up7r3

Вроде как оптимально. Не нужно вручную все эти 999 говнометодов в массив или свич пихать. Плюс будет более производительно, чем чисто на рефлексии.
639 2916753
>>16732
Да, все через это прошли.
640 2916756
>>16718
Да что вы несёте, придурки?

Это для того, чтобы жабьи библиотеки запускать под дудкой.
Я один раз этим пользовался, чтобы потестить name entity recognition бибилиотеку, написанную жабами. Она в целом улавливала имена нормально, но раз в 100 медленнее, чем надо, поэтому я забил. Если бы подошло, я бы переписал на шарпе, чтобы прослойку не использовать.
641 2916758
>>16723

>Если методы типовые, Если методы типовые, то это должен быть один универсальный метод


универсальный метод не подойдет, т.к. там прописано достаточно много разных, зачастую индивидуальных параметров. нужна именно пачка методов с индексами и способ их запускать по номеру, без прописыванию кучи условий с if для каждого
642 2916762
>>16758
Можно завести массив делегатов
643 2916763
>>16752
А линк не слишком медленный?
644 2916767
>>16750
Да напиши один и больше не мучайся!
https://pastebin.com/xSznY9PU
645 2916771
>>16767
Перепиши на swithc case. Будет за O(1)
646 2916776
>>16763
Ты в качестве возвращаемого результата CreateByIndexDispatcher, который вызывается один раз при старте программы, получишь обычную скомпилированную лямбда-функцию, которую jit во время выполнения сможет оптимизировать как любую другую. Метод Compile у Expression именно что компилирует выражение для лямбды в IL.
https://learn.microsoft.com/ru-ru/dotnet/api/system.linq.expressions.expression-1.compile?view=net-7.0
648 2916785
>>16779
За один день 3к строк. Надбавку к зп должны дать. Вот это я понимаю - программирование.
650 2916796
>>16752
Спасибо, что расписал. реализация не выглядит простой для меня. сохранил в отдельный файл потом попробую разобрать поподробнее
>>16767
да, нахуячу все через if пока, т.к. методов у меня не так уж и много, чтоб лезть совсем глубоко на данном этапе. просто думал есть волшебная кнопка

всем спасибо
651 2916799
>>16786
Ура. Вы сможете сделать нормальные тесты, которые не за 5 сек завершаются?
image.png4 Кб, 291x133
652 2916815
>>16786
А почему даже бенчи на жебе пишут?
653 2916824
>>16756
Как минимум наличие разных причин для использования этого говнеца шлёт нахуй долбоёба, который наличие этого представляет как доказательство превосходства шарпоговна.
654 2916856
>>16786
Весёлый, кстати, сайт для обоссывания шарподаунов. Во всех тестах джава превосходит шарпоговно, где-то сильно, где-то не сильно, и только в одном тесте petu# смог обойти джаву с отрывом в... 0,015%.

Шарподебилы, вот вам принесли реальные тесты, а не синтетические, что скажете? Скорость нинужна, у нас язык Enterprise Level?
image.png1 Кб, 234x34
655 2916859
>>16856
Ты как-то по особому читаешь?
656 2916860
Кстати, эти тесты ещё и подтверждают мои слова в сторону лопатодебилов. Везде у шарпоговна в топе находится скормленный с лопаты аспнет. Там, где аспнет оптимизирован, петушарп не сильно отстаёт, но там, где он сосёт, никто и не подумал написать что-то своё, и все жрут скормленное с лопаты неоптимизированное говно от копрософта.
657 2916861
>>16859

>луна это спутник земли


Что-то сказать хотел?
658 2916863
>>16861
Ну типа буквально во всех тестах aspnet выше жабы на сотни пунктов.
659 2916871
>>16863
Ты как-то по особенному читаешь?
660 2916873
>>16871
Спринга не видно.
661 2916874
>>16873
И чё?
662 2916875
>>16874
Да ниче. Это фреймворк, на котором пишут все жаббисты. Нахуй тут кал какой-то сравнивать?
663 2916877
>>16875
Не надо проецировать своё поедание говна от копрософта с лопаты на нас. Кому не нравится спринг те выкидывают это говно нахуй и перестают им пользоваться, благо обилие библиотек позволяет. У вас же что копрософт в рот насрал, то вы и проглотили, потому что лучше просто нет.
664 2916879
>>16877

> Кому не нравится спринг те выкидывают это говно нахуй и перестают им пользоваться


АХАХАХАХАХ, бля запостите это в жабатред. А они-то и не знали, что так можно.
665 2916880
>>16879
То есть по делу ничего не скажешь? Слив принят.
666 2916885
>>16875

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


Ясн. Ты штаны-то постирай.
667 2916896
Кстати, те отрывы в 40-80% от петушарпа к джаве это если смотреть по пропускной способности. Если смотреть по задержке, то в норме обход джавой шарпоговна в 3-4 раза. В жисон сериализации джава вообще на 1 месте и обошла петушарп в 9 раз.
668 2916916
>>16697
не скучал. тяпница же. не тупи

>>16706

>Ну так попробуй воспользуйся этим, даун.


пользовался и пользуюсь если пишу расширения для студии
ЧТО СКАЗАТЬ ТО ХОТЕЛ НЕУЧ?

>как это отменяет хоть что-то из сказанного мной?


никак. ты имбецил. я никак иначе не могу пояснить. просто запомни
669 2916919
>>16916
Цундерка
670 2916924
>>16916
тяпница. я бухаю. мне конечно приятно напихать жависту полон рот дерьма пока ждем дотнет 8
но
1 у него и так полон рот дерьма, он только им и питается, так что не так забавно
2 дотнет 8 непонятно что мне полезного принесет. они (цензура) кучу полезного НЕ ДЕЛАЮТ, а делают полезное не пойми для кого

а еще конечно капча. я что считать должен (цензура)
671 2916933
>>16916

> ЧТО СКАЗАТЬ ТО ХОТЕЛ


Ладно, ты меня запутал своим дебильным вопросом "какие претензии к async". Есть претензии не к async, а к петушарпу, в котором для того, чтобы перестать срать платформенными тредами на каждый запрос приходится загрязнять свой код асинк/авейтами.

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


Слив принят. Не надоело мочу на ебальник принимать?
672 2916944
>>16933
еще раз
подход асин авайт ОТЛИЧАЕТСЯ от подхода как в котлине или луме. вот кажется что это одно и то же - но НЕТ.
разница в том, что авайт работает с Task/Future и и может быть представлено много что. Также паттерн отмены и распространения исключений (не знаю в луме, но в котлине он бррр)
В итоге с асинк/авайт парадигмой работать сильно проще и гибче. А в котлине приходится головой подумать. (в луме не знаю, но лум выглядит как дешевый котлин).

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

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

и лум - он похож на котлин, а не на шарп. и отсуствие какого то там слова не является киллер фичей если несет с собой кучу разного. С авайт УНИФИЦИРОВАННАЯ работа с тасками - а такской может быть и корутина и процесс и событие и даже котики у которых лапки

не говоря уже про то что авайт читается на мобиле, а суспенд хер.
673 2916950
>>16933

>Не надоело мочу на ебальник принимать?


дебил не понимает что он дебил. эффект даннига крюгера )
674 2916951
>>16944
Причём здесь петухлин, ебанько?
675 2916952
>>16950
Не ворочайся, самослитое.
676 2916956
>>16944

>загрязнение кода это плохо


>асинк/авейт это не то же самое, что лум


У тебя с головой вообще всё в порядке?
677 2916957
>>16956
ясно. петушок жавоебский, который КРОМЕ ЖАВЫ ни на чем не писал, был слит, обоссан и обосран

спокойной ночи говноед
678 2916958
>>16957
Слив принят.
679 2916965
>>16958
слив жаваговноеда. ну да
спокойной ночи бестолочь, которая кроме жавы ничего и не видела
и про шарп такую херь пишет, что явно что он шарп НЕ ЗНАЕТ

стоит ли слушать такого говнопидора? очевидно нет.
тем более ночью на субботу

все. я буду ждать дотнет 8, а вы тут кормите говноеда если хотите. Для меня он показал что он нихера не разбирается ни в чем.
680 2916967
>>16965
Чё ты рвёшься, слитое?

Итог: джава обоссала петушарп и в асинхронности. Шарпобляди так и не смогли ответить, как не загрязнять свой код ничем ради достижения более высокой пропускной способности.
681 2917004
>>16967

> как не загрязнять свой код


>try (ExecutorService executor = Executors.newVirtualThreadExecutor()) {


> ...


>}


Да ты заебал. Java — это просто образец мусорного кода, один сплошной бойлерплейт на каждый чих.
Вывода типов нет, код загрязнён типами в объявлениях. Даже сраные кресты уже давно вывод типов освоили, не говоря уж о Котлине.
Экстеншен методов нет, приходится писать дополнительные классы, код загрязнён дополнительными объектами.
Каждый класс в отдельном файле — нельзя набор маленьких DTO записать в один файл — дерево проекта загрязнено дополнительными файлами.
Над каждым методом, реализующим метод интерфейса надо писать @Override.
Огромная портянка из import в каждом файле из-за того, что у каждого класса свой неймспейс.
Плохие практики в комьюнити, где сервисные классы реализуют сразу по три интерфейса перемешивая бизнес-логику в одну мусорную свалку. См, например, https://github.com/google/ExoPlayer/blob/release-v2/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
public class PlayerActivity extends AppCompatActivity implements OnClickListener, StyledPlayerView.ControllerVisibilityListener
Сингл респонсибилити? Да похуй, лучше нахуярить всё в один класс, зато файлов будет меньше (см. выше). Ну и что, что класс тыщи строк получается. И так везде, в какой жабий код не глянь.

На фоне этого пиздеца лишний await — это просто образец элегантности.
682 2917013
>>17004
Ах, ну да, и без перегрузки операторов любой математический код становится просто ужасным.
http://ejml.org/wiki/index.php?title=Main_Page
SimpleMatrix S = H.mult(P).mult(H.transpose()).plus(R);
SimpleMatrix K = P.mult(H.transpose().mult(S.invert()));
Пиздец. И ты мне ещё будешь про какое-то загрязнение кода в сишарпе рассказывать.
image.png37 Кб, 1285x197
683 2917019
>>16860
Уронотерапия
684 2917020
>>17004

>На фоне этого пиздеца лишний await — это просто образец элегантности.


>а вот у хох...


По делу может что-то скажешь?

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

> >try (ExecutorService executor = Executors.newVirtualThreadExecutor()) {


> > ...


> >}


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

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


var есть уже давно. Но им никто не пользуется, потому что он вредит.

>Над каждым методом, реализующим метод интерфейса надо писать @Override.


Какой же даун, это пиздец........ @Override это чисто косметическая аннотация, которую можно не писать. Все пишут, потому что с ней более читаемо и красиво.

>Каждый класс в отдельном файле — нельзя набор маленьких DTO записать в один файл — дерево проекта загрязнено дополнительными файлами.


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

>Плохие практики в комьюнити, где сервисные классы реализуют сразу по три интерфейса перемешивая бизнес-логику в одну мусорную свалку. См, например, https://github.com/google/ExoPlayer/blob/release-v2/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java


public class PlayerActivity extends AppCompatActivity implements OnClickListener, StyledPlayerView.ControllerVisibilityListener
Сингл респонсибилити? Да похуй, лучше нахуярить всё в один класс, зато файлов будет меньше (см. выше). Ну и что, что класс тыщи строк получается. И так везде, в какой жабий код не глянь.
Так то, что в джаве не пиздят палками после поверхностного прочтения кода это преимущество жабьего комьюнити, а не его недостаток. Мог бы сказать "когда я перехожу в жабу, я теряю свой сапог в жопе, потому мне неприятно", и тогда было бы по делу.

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

>Огромная портянка из import в каждом файле из-за того, что у каждого класса свой неймспейс.


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

>>17013
Нинужно. Кому нужно ставит Manifold и пользуется перегрузкой операторов.

По итогу обоссан каждый высер (кроме высера про несколько классов в одном файле, он обоссан эффективно доказательством реализуемости во всех случаях задачи многоклассового файла через пакет)
684 2917020
>>17004

>На фоне этого пиздеца лишний await — это просто образец элегантности.


>а вот у хох...


По делу может что-то скажешь?

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

> >try (ExecutorService executor = Executors.newVirtualThreadExecutor()) {


> > ...


> >}


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

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


var есть уже давно. Но им никто не пользуется, потому что он вредит.

>Над каждым методом, реализующим метод интерфейса надо писать @Override.


Какой же даун, это пиздец........ @Override это чисто косметическая аннотация, которую можно не писать. Все пишут, потому что с ней более читаемо и красиво.

>Каждый класс в отдельном файле — нельзя набор маленьких DTO записать в один файл — дерево проекта загрязнено дополнительными файлами.


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

>Плохие практики в комьюнити, где сервисные классы реализуют сразу по три интерфейса перемешивая бизнес-логику в одну мусорную свалку. См, например, https://github.com/google/ExoPlayer/blob/release-v2/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java


public class PlayerActivity extends AppCompatActivity implements OnClickListener, StyledPlayerView.ControllerVisibilityListener
Сингл респонсибилити? Да похуй, лучше нахуярить всё в один класс, зато файлов будет меньше (см. выше). Ну и что, что класс тыщи строк получается. И так везде, в какой жабий код не глянь.
Так то, что в джаве не пиздят палками после поверхностного прочтения кода это преимущество жабьего комьюнити, а не его недостаток. Мог бы сказать "когда я перехожу в жабу, я теряю свой сапог в жопе, потому мне неприятно", и тогда было бы по делу.

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

>Огромная портянка из import в каждом файле из-за того, что у каждого класса свой неймспейс.


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

>>17013
Нинужно. Кому нужно ставит Manifold и пользуется перегрузкой операторов.

По итогу обоссан каждый высер (кроме высера про несколько классов в одном файле, он обоссан эффективно доказательством реализуемости во всех случаях задачи многоклассового файла через пакет)
image.png45 Кб, 1443x247
686 2917022
>>17019
Кстати, прогресс на лицо, это за 22 год, спринг там еще в ошибки выпадал.
То есть, представь, основный фрейм технологии, до того как его в тесты макнули, работал чуть быстрее джанги, да еще вываливался в ошибки. Вот оно джаво качество. и так во многом
687 2917024
>>17021
Чувак, у тебя фаворит это спринг, вертекс и всякие нетти, я же рассказывал о рапидойде, который даже не был веб-сервером.

Там тонна васянских либ, а мы говорим о флагманах, я тебе даже джанго показал, спринг ее победил, лол.
688 2917025
image.png227 Кб, 1401x861
689 2917028
Вот еще интересный момент, у джавы достаточно хорошие бд-драйверы, (если вы в сыром sql пишите), как только мы выбираем full-ORM, жаба начинает сосать, даже с лучшими дравами.
К-кал-качество
690 2917030
>>17028

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


Да я понял уже. Дегенерат ни micro не показал, ни другие тесты, потому что в них не так удобно уже всё получается. И превосходство там не 15% в сторону петушарпа, а натуральное обоссывание в 40%+ на джаве.
691 2917032
>>17030

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


Ппц, 5 раз перечитал, так и не понял. Ппц ты шиз.
692 2917033
>>17032
Ну это твои проблемы, что ты русский текст не понимаешь, лол.
693 2917034
Нужно всегда внимательно читать гринтекст. А то часто там отсебятина, которой в оригинальном посте не было.
694 2917040
>>17020

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


Я код копировал из туториалов.
Ну тогда тебе его в виде зависимости придётся везде таскать. Вот блять загрязнение кода так загрязнение.

> var есть уже давно


Ох, и правда, аж в 2018 году появился.

> Но им никто не пользуется, потому что он вредит.


Точно, жабабляди не умеют лаконичный код читать. Приучили за 20 лет. Удивительно, что использовали var, при том, что все остальные спизженные из шарпа фичи специально делают менее похожими.

>Все пишут, потому что с ней более читаемо и красиво.


Что? Жабабляди добровольно замусоривают свой код? Заебись.

> А установка файл = класс даёт облегчение как обзора проекта по директориям


НИНУЖНА

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


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

> Скрывается средой разработки.


ТОЛЬКО ВЫИГРАЛИ
Ну то есть фича языка и стандартной библиотеки (и всех других библиотек), которую приходится скрывать средой разработки, чтобы она не мешалась. Иначе открываешь файл, а у тебя на весь экран импорты, а логика никакая не влезает.

> Нинужно. Кому нужно ставит Manifold и пользуется перегрузкой операторов.


ТОЛЬКО ВЫИГРАЛИ
Ну то есть языку нужны костыли, чтобы им нормально пользоваться можно было.

> По итогу обоссан каждый высер


Ты понимаешь, что ты себе на ебало ссышь?
695 2917053
>>17040

>Я код копировал из туториалов.


>Ох, и правда, аж в 2018 году появился.


>Точно, жабабляди не умеют лаконичный код читать. Приучили за 20 лет. Удивительно, что использовали var, при том, что все остальные спизженные из шарпа фичи специально делают менее похожими.


>Что? Жабабляди добровольно замусоривают свой код? Заебись.


>ТОЛЬКО ВЫИГРАЛИ


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


>НИНУЖНА


Тебе лишь бы высрать что-то, или чё?

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


Шарподебилы не знают, что такое колёсико мыши?

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


Фича языка в том, что нет вероятности пересечения классов. Скрывается негативное последствие этого, оставляя только позитивные.

>Ты понимаешь, что ты себе на ебало ссышь?


Ну я не знаю, иди в дурку подлечись, а то с самоидентификацией у тебя проблемы, что аж своё ебало моим считаешь.
696 2917108
>>17053

> Тебе лишь бы высрать что-то, или чё?


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

> Шарподебилы не знают, что такое колёсико мыши?


Ты не увиливай от темы. Дизайн языка оказался настолько уёбищным, что понадобился костыль, так?

> Фича языка в том, что нет вероятности пересечения классов.


Ты реально думаешь, что в шарпе кто-то в одном неймспейсе объявляет два класса с одинаковым именем?
Ну вот представь, ты пишешь либу. У либы есть основное имя и подразделы. И ты в один из подразделов засовываешь два класса с одним и тем же именем. Прочувствовал? Оно не скомпилируется

Я правильно понимаю, что по остальным пунктам ты слился?
697 2917150
Дык вот чего ваши треды так быстро летят - вы просто сретесь 24/7
698 2917153
>>17150
А ты апологет какого яп? На самом деле это не важно, потому что он скорее всего с проглотим сосет у дотнета и даже у джавы. Присоединяйся...
699 2917156
>>17150
А что тут еще делать? Играть в стековерфлоу?
700 2917160
>>17150
Здесь нет никакого срача, есть только бесконечное уринирование джавадебила. Ему нравится, а нам не жалко.
701 2917173
>>17160
Скорее поза 69...
702 2917202
>>16287
Шарпопидораха во всей красе. Ей бы лишь бы быть кем-то оттасканной за уши.
703 2917210
>>17108

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


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

>Ты не увиливай от темы. Дизайн языка оказался настолько уёбищным, что понадобился костыль, так?


Какой нахуй костыль?

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


>Ну вот представь, ты пишешь либу. У либы есть основное имя и подразделы. И ты в один из подразделов засовываешь два класса с одним и тем же именем. Прочувствовал? Оно не скомпилируется


Чтобы не писать import нужно вообще отказаться от неймспейсов. Если ты используешь неймспейсы, у тебя абсолютно то же самое нагромождение using вначале класса.

>Я правильно понимаю, что по остальным пунктам ты слился?


По каким? По оверрайду, который ВНЕЗАПНО писать не нужно или по вару, который уже 6 лет в языке есть?
704 2917214
+асинхронность без загрязнения кода через async/await
+скорость выше в 3-26 раз
+огромное количество либ, выбирай не хочу
+много разных GC
+обратная совместимость
+кроссплатформенность (настоящая, в том числе для либ для гуёв и сред разработки и вообще для всей экосистемы)
+подход к разработке, когда буквально каждая фича, которая присутствует, сделана лучше, чем у пародий на джаву (как пример интерполяция строк)
+поддержка композиции без перепечатывания методов (@Delegate)
+поддержка изменения неизменяемых объектов через копирование через @With и @WithBy. Нет, шарподебильные рекорды это не тожисамае, потому что with и withby можно повесить куда угодно, а не только на рекорды.
+улучшенная генерация геттеров — не надо хуярить на каждое поле {get;}, можно просто повесить на весь класс @Getter, а также можно сделать их в fluent-style без убого префикса Get через @Accessors(fluent = true)
+мавен (лучшая система сборки ever)
+не пидорашье комьюнити, которое, в отличии от петушарпа, занимается написанием кода, а не запрещениями, наказаниями и тасканиями за уши
+-стирание типов (кто-то считает стирание очень хорошим, кто-то очень плохим, по факту это небольшая проблема, которая мешает создавать два метода с одинаковой сигнатурой после стирания, и всё)
705 2917219
>>16323
Под кроватью нашёл.
706 2917242
>>17214
Не кормите шиза, он уже копипасту по второму кругу кидает, и вероятно иногда сам себе отвечает. ну не верю что чел ему одно и тоже отвечает, уже раза три точно
Раз обоссали и хватит кормить
https://www.youtube.com/watch?v=1vgDUbK7Tao
707 2917250
>>17242
Не рвись, пользователь говна.
708 2917307
>>17214
Смешная агитка, жаль что пиздеж. Жавадебил, а ты настоящий евангелист или просто школьник?
709 2917310
>>17214
Ты просто все русское ненавидишь, чел...
710 2917384
>>17307
>>17310
Аргументированными ответами удовлетворён.
711 2917402
>>17384
А вот Oracle вряд-ли удовлетворен, 5 рублёвый. Старайся лучше, и возможно, мы разрешим тебе остаться - будешь у нас штвтным уриноприемником. Ласково будем звать тебя уриножавадебил.
712 2917662
Давайте представим, что я прихожу в вашу контору.
В первый же свой рабочий день, я делаю что-то в духе:

public readonly struct Unit{}
public readonly struct Nothing {}
public readonly struct Success {};
public abstract class Error {};
public class Either<T1, T2>{};
public class Maybe<T1> : Either<T1, Nothing> {}
public class ErrorOr<T1> : Either<T1, Error> {]

public class CrudRepoBase<T, T1, T2>
{
public Task<ErrorOr<T2>> GetByKey(T key, CancellationToken ct){ ... }
...
}

Делаю это я в случае, если не нахожу чего-то похожего в коде.

Вопрос. С какой вероятностью я не найду у вас в коде такого?
713 2917694
>>17662

> В первый же свой рабочий день, я делаю что-то в духе:


На второй тебя выпинывают на мороз за попытку насрать в кодовую базу какой-то хуйней
714 2917702
>>17662
Ни разу ни в одной из моих компаний такой хуйни никто не писал.
Для ошибок есть исключения, для отсутствия значения есть null. Это просто мусорный велосипедный код.
715 2917703
>>17702

> Для ошибок есть исключения,


https://youtu.be/a1ye9eGTB98
716 2917708
>>17702

> Для ошибок есть исключения


)))

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


))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Самому-то не смешно?
717 2917752
>>17214

>+асинхронность без загрязнения кода через async/await


пояснял пояснял ДЕБИЛУ что это вообще то разные вещи. но он ДЕБИЛ.

>+скорость выше в 3-26 раз


смотря что сравниваем да и как.

>огромное количество либ, выбирай не хочу


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

>много разных GC


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

>обратная совместимость


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

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


не поспоришь. но в шарпе она тоже есть. просто не от офф вендора

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


хз про интерполяцию, но если вводишь фичу через ДЕСЯТИЛЕТИЯ когда другие уже ввели, то да, можно учесть недостатки других. Просто нужно ПОДОЖДАТЬ

>поддержка композиции без перепечатывания методов (@Delegate)


не фича жавы.

>поддержка изменения неизменяемых объектов через копирование через @With и @WithBy. Нет, шарподебильные рекорды это не тожисамае, потому что with и withby можно повесить куда угодно, а не только на рекорды.


опять же вангую что это лобок.

>улучшенная генерация геттеров — не надо хуярить на каждое поле {get;}, можно просто повесить на весь класс @Getter, а также можно сделать их в fluent-style без убого префикса Get через @Accessors(fluent = true)


и снова лобок. сторонний тулз который популерен, но НЕ ТОТАЛЕН выдается за свойство жавы лол.

>мавен (лучшая система сборки ever)


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

>не пидорашье комьюнити, которое, в отличии от петушарпа, занимается написанием кода, а не запрещениями, наказаниями и тасканиями за уши


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

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


Верно. тут ЗАВИСИТ. фломастеры в общем то. лично мне мешает. и идеа почему то тупит не умея вывести очевидные типы. как будто не в стат языке пишешь, в а руби каком то пиздец
717 2917752
>>17214

>+асинхронность без загрязнения кода через async/await


пояснял пояснял ДЕБИЛУ что это вообще то разные вещи. но он ДЕБИЛ.

>+скорость выше в 3-26 раз


смотря что сравниваем да и как.

>огромное количество либ, выбирай не хочу


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

>много разных GC


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

>обратная совместимость


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

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


не поспоришь. но в шарпе она тоже есть. просто не от офф вендора

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


хз про интерполяцию, но если вводишь фичу через ДЕСЯТИЛЕТИЯ когда другие уже ввели, то да, можно учесть недостатки других. Просто нужно ПОДОЖДАТЬ

>поддержка композиции без перепечатывания методов (@Delegate)


не фича жавы.

>поддержка изменения неизменяемых объектов через копирование через @With и @WithBy. Нет, шарподебильные рекорды это не тожисамае, потому что with и withby можно повесить куда угодно, а не только на рекорды.


опять же вангую что это лобок.

>улучшенная генерация геттеров — не надо хуярить на каждое поле {get;}, можно просто повесить на весь класс @Getter, а также можно сделать их в fluent-style без убого префикса Get через @Accessors(fluent = true)


и снова лобок. сторонний тулз который популерен, но НЕ ТОТАЛЕН выдается за свойство жавы лол.

>мавен (лучшая система сборки ever)


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

>не пидорашье комьюнити, которое, в отличии от петушарпа, занимается написанием кода, а не запрещениями, наказаниями и тасканиями за уши


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

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


Верно. тут ЗАВИСИТ. фломастеры в общем то. лично мне мешает. и идеа почему то тупит не умея вывести очевидные типы. как будто не в стат языке пишешь, в а руби каком то пиздец
718 2917776
>>17703

>> Для ошибок есть исключения,


>https://youtu.be/a1ye9eGTB98


Если этого нет в виде статьи, я не буду тратить на это время.
Майкрософт в своём коде использует исключения, советует использовать исключения в гайдлайнах, мой десятилетний опыт говорит, что исключения хорошо подходят для ошибок. Почему я должен слушать какого-то ноунейма с ютьюба, если ему даже в комментах пишут, что он хуйню советует?
719 2917789
>>17662
Ты из фп, няш?
720 2917812
Аноны, а как изменить хоткей для команды контрола в WPF? Для примера возьмем контрол Slider, у него есть команда IncreaseLarge. На пикрилах показано как она устроена внутри:
1 пик - свойство с командой
2 пик - инициализация дефолтной команды с дефолтным хоткеем
3 пик - метод, который команда запускает.

Исходный код Slider:
https://github.com/dotnet/wpf/blob/main/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/Slider.cs

Так вот, по дефолту команда выполняется по хоткеям "Key.PageUp" или "Key.PageDown". Хочу поменять на что нибудь другое. Как это осуществить?
Я понимаю, что надо создать новую команду с делегатом на OnIncreaseLargeCommand. Но можно ли это сделать непосредственно в xaml?
721 2917829
>>17789
Ну. Скажем так. Я ФП-интересующийся.
И вот некоторых вещей оттуда - мне не хватает в шарпике.
722 2917835
>>17662
Мы используем такое, но очень аккуратно, обычно в какой-нибудь сложной доменной логике.
На самом деле, таже Either с проверками что в ней лежит, временами замусоривает код не хуже try-catch, особенно если ошибку на несколько уровней верх надо прокинуть.
Ну и я предпочитаю делать все такие "монады" значимыми, чтобы не плодить кучу объектов которые в большинстве случаев нужны для одного использования.
Ну и отдельный базовый класс для всех ошибок выглядит как по мне хуёво. Иж лучше хотя бы интерфейс завести, чем все в одну иерархию пихать. Один хрен при прохождении между слоями одни ошибки обычно мапятся в другие.
723 2917848
>>17703
Ладно, я таки посмотрел до середины.

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

Короче говоря, проблема высосана из пальца.
724 2917858
>>17662

>В первый же свой рабочий день, я делаю что-то в духе:


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

>С какой вероятностью я не найду у вас в коде такого?


У нас есть подобное, но переделанное под наши нужды и мало похожее на чистое ФП. Поэтому с твоим подходом ты бы точно у нас нахуй пошел.
725 2917868
>>17829
Ой вей, а можно у тебя контактики украсть? Я бы тебе глупые вопросики позадавал... А отплатил бы... Гм, ничем сугубо натурой, вот.
726 2917881
>>17848
Твое апи - надо всегда считать публичным, а потому - потенциально - кто угодно его может дергать и соответственно - ты всегда должен валидировать. Сегодня дергает только фронт, завтра интеграция - апи идет партнеру, он просто забил на ваши правила, шлет че душа положит.

Два. Твоя валидация - может зависить от бизнес-правил. Ну. Вот ты провалидировал регулярками, что формат валидный. Положим- ты под "на уровень выше" имел ввиду мидлвар. Вот прилетает тебе запрос - снять 100500 денег со счета, а на счету у пользователя 500 денег. Запрос - составлен правильно. А бизнес-правила требуют вернуть ошибку: Тут нищук, нет у него столько денег. Если ты свою валидацию вынес в миддлварь - ты все еще должен это правило проверить. Так зачем - размазывать такого рода валидации по разным слоям, если у тебя может быть один сервис, который примет запрос, и все сразу проверит в одном месте? Конечно, можешь и в мидлваре бизнес-правила проверять, но это уже совсем какая-то срань получится.

Короче - такое.
727 2917916
Планирую переименовать папку Interfaces в Abstractions, чтобы она всегда была первой в списке папок. Какие подводные?
728 2917924
>>17812

> wpf


Некрофил. Есть авалония, uno platform, нахуй тебе это тормозное говно мамонта на directx9?
729 2917925
>>17662
Хотя бы поясните, что это такое и нахуя оно нужно?
730 2917959
>>17916
_Interfaces
731 2917967
>>17924
Засунь свою авалонию в свой растровый зад, а уно платформ в урезанную залупу с куцей вирутализацией, у которой список контролов за два года не изменился. И больше не советуй хуйни.
732 2917971
>>17925
Один из пример, это случаи, когда ошибка - это один из нормальных исходов в твоём методе. Механизм выброса исключений для таких случаев несколько тяжеловесен, особенно если это должно происходить часто. Таким образом ты по сути можешь отделить ошибки бизнес-логики от действительно исключительных ситуаций (отвал соединения с базой, out of memory и т.д).
Самый банальный пример - ты запрашиваешь из репозитория сущность по Id. Если она найдена, то делаешь одно. Если не найдена, то что-то другое. Создаёшь её, к примеру.
Если сущности нет, то обычно все пишут выбрасывание исключения в методе репозитория. Но можно сделать и так, чтобы метод возвращал Either<Entity, Error>. Если сущность найдена то в Either будет лежать она. Если не найдена, то объект ошибки. В коде, который вызывал репозиторий, с помощью поля этого самого Either (к примеру оно может IsLeft называться) ты сможешь проверить, что в ней лежит.
Можно рассматривать такой подход, как альтернативу поддержанию в репозитории нескольких методов типа GetOrThrow, TryGet и т.д. Преимущества перед методом, который просто возвращает null, если сущность не найдена, в том, что ты можешь прокинуть инфу об ошибке.
Ещё из плюсов - ты зашиваешь возможные ошибки в контракт метода.
733 2917982
>>17959
И лишаешься привязки неймспейсов к имени папки

>>17916
Подводные в том, что на каком-то этапе из-за количества папок порядок будет уже не важен, но дурная привычка сохранится.
734 2917986
>>17967
Хуя себе ты порвался. Ладно uno, но чем тебе Авалония не угодила? Во всем лучше тормозного древнего wpf
735 2917989
>>17971

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


Это же признак говнокода, нет?
736 2917999
>>17986
Тут был анон и подробно рассказывал в чем ее проблема. Из-за унификации существует куча ограничений, в том числе при отображении шрифтов.

Впф позволяет добиться того, чего хотелось, к тому же моя приложуха заточена для работы графикой и шакальство местные эстеты не правильно поймут. К тому же возможность запуска приложений на маках конечно соблазнительна, но бессмысленна без лицензии разработчика и собсно мака для тестов.
737 2918002
>>17925
Unit, Nothing - нужен, чтобы у тебя с женериками не было необходимости делать две версии, когда результат есть и когда его нет. Типа видел же в шарпе эту фигню Task, Task<T>, вот чтобы этого избежать.

Success - представляет успешное выполнение чего-то. Допустим, если у тебя свой RPC без результата, но с возможной ошибкой. Можно намутить ErrorOr<Success>, просто метка, что все хорошо случилось(конечно, можно обойтись bool)
Error - ошибка. Которая вполне ожидаема, а не исключительная ситуация. Типа с эксепшинами даже если ты их ожидаешь, у тебя как: Все, пиздец, надо срочно прервать выполнение, перейти в блок catch, стек стек сохранить, все это вот, а часто - это оверхед что пиздец.

Далее Either - либо. Когда ты хочешь, чтобы твой метод имел возможность 2 результата возвращать. Например: Either<User, NotFound> Search(UserSerahExpression expression)

Maybe - можно рассматривать, как потомок Either<T, Nothing>. Дальше с этим можно играться и делать цепочку в духе

Maybe<User>.From(await userService.Serach(228)) // метод имеет вид Task<Either<User, Nothing>>(id)
.Tap(u => Console.WriteLine(u.Name)) // если юзер будет найден - выведет в консоль - имя
.OnNothing(() => Console.WriteLine("User is missing")) // выведет эту строку, если юзера нет

Чтобы было понятно, если с промисами в JS имел дело, то там такая же штука с : resolve-reject.

ErrorOr - по сути тоже самое что Maybe, но вместо отсутствия - ошибка. Удобно для всякой бизнес-фигни, в которой ошибка - нормальный результат выполнения. Та же операция снятия денег со счета. Типа если постоянно кидать эксепшины - ты теряешь перформанс, в коде постоянные try-catch-finaly.

>>17989
В бизнес-правилах - нет. Ну, не нравится операция снятия денег, можно другую придумать: чел оформляет покупку, пока до нее дошла обработка - товар кончился на складе. Это ожидаемо. И надо вернуть наверх - операция отклонена, товар закончился на складе, но вот вам список похожих товаров, которые еще не закончились. Без такой ветки и исключений - твоим выходом будет фигня в духе BuyResultBase, и начинать строить иерархию: BuyResultSuccess, BuyResultReject. Что выглядит опять же оверхедом и бойлерплейтом на каждый чих - заводить вот эти вот Result'ы.
737 2918002
>>17925
Unit, Nothing - нужен, чтобы у тебя с женериками не было необходимости делать две версии, когда результат есть и когда его нет. Типа видел же в шарпе эту фигню Task, Task<T>, вот чтобы этого избежать.

Success - представляет успешное выполнение чего-то. Допустим, если у тебя свой RPC без результата, но с возможной ошибкой. Можно намутить ErrorOr<Success>, просто метка, что все хорошо случилось(конечно, можно обойтись bool)
Error - ошибка. Которая вполне ожидаема, а не исключительная ситуация. Типа с эксепшинами даже если ты их ожидаешь, у тебя как: Все, пиздец, надо срочно прервать выполнение, перейти в блок catch, стек стек сохранить, все это вот, а часто - это оверхед что пиздец.

Далее Either - либо. Когда ты хочешь, чтобы твой метод имел возможность 2 результата возвращать. Например: Either<User, NotFound> Search(UserSerahExpression expression)

Maybe - можно рассматривать, как потомок Either<T, Nothing>. Дальше с этим можно играться и делать цепочку в духе

Maybe<User>.From(await userService.Serach(228)) // метод имеет вид Task<Either<User, Nothing>>(id)
.Tap(u => Console.WriteLine(u.Name)) // если юзер будет найден - выведет в консоль - имя
.OnNothing(() => Console.WriteLine("User is missing")) // выведет эту строку, если юзера нет

Чтобы было понятно, если с промисами в JS имел дело, то там такая же штука с : resolve-reject.

ErrorOr - по сути тоже самое что Maybe, но вместо отсутствия - ошибка. Удобно для всякой бизнес-фигни, в которой ошибка - нормальный результат выполнения. Та же операция снятия денег со счета. Типа если постоянно кидать эксепшины - ты теряешь перформанс, в коде постоянные try-catch-finaly.

>>17989
В бизнес-правилах - нет. Ну, не нравится операция снятия денег, можно другую придумать: чел оформляет покупку, пока до нее дошла обработка - товар кончился на складе. Это ожидаемо. И надо вернуть наверх - операция отклонена, товар закончился на складе, но вот вам список похожих товаров, которые еще не закончились. Без такой ветки и исключений - твоим выходом будет фигня в духе BuyResultBase, и начинать строить иерархию: BuyResultSuccess, BuyResultReject. Что выглядит опять же оверхедом и бойлерплейтом на каждый чих - заводить вот эти вот Result'ы.
738 2918004
>>17989
А если называть ошибку исключением, то уже и не говнокод. Иногда хуже, когда твой метод ничего не делает и не говорит почему.
739 2918005
>>18002

>Без такой ветки и исключений - твоим выходом будет фигня в духе BuyResultBase, и начинать строить иерархию: BuyResultSuccess, BuyResultReject.


Блять, а в жабе просто хандлеры делают. Нахуя вы какое-то говно изобретаете, шарпаны?
740 2918007
>>17999

> Из-за унификации существует куча ограничений, в том числе при отображении шрифтов.


Тащемто кроме шрифтов никаких ограничений и нет. И то единственное ограничение это другое сглаживание

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


Лично я соболезную тем, кто будет работать с твоей приложухой, потому что им придется терпеть бесконечные лаги, от которых на впф никуда не деться. разве что ты будешь хостить контрол из винформ или непосредственно directx контекст. Ну или использовать SkiaSharp, хотя использовать его и при этом ругать авалонию совсем уж шизой будет
741 2918010
>>17989
С чего бы. В слое бизнес-логики ты всегда должен проверять корректность выполняемых действий. И ошибка при некорректном действии это ожидаемое поведение.
К примеру, ты дёрнул метод, который списывает со счета пользователя деньги. Перед тем как уменьшить сумму на счёте и сохранить его в базу, ты должен проверить, что у пользователя достаточно денег, его счёт не заблокирован и т.д. Если одна из этих проверок не пройдет, то ты либо выбрасыватель исключение, а потом ловишь его в вызывающем коде. Либо просто возвращаешь ошибку через Either. То, что у пользователя недостаточно денег на счёте или его счёт заблокирован - это нормальные ситуация. Ничего прям исключительного в ней нет.
742 2918011
>>18002

> Success - представляет успешное выполнение чего-то. Допустим, если у тебя свой RPC без результата, но с возможной ошибкой. Можно намутить ErrorOr<Success>, просто метка, что все хорошо случилось(конечно, можно обойтись bool)


Не очень понятно, что мешает просто завести enum со список результатов и создать класс
Result<T>
{
public MyEnum Result {get;}
public T Value {get;}
}
И отдельные классы не нужны.
743 2918012
>>18005
В жаве - все точно так же делается.
http://reactivex.io/RxJava/3.x/javadoc/io/reactivex/rxjava3/core/Maybe.html
744 2918014
>>18012
Нахуй ты мне реактивный фрейм пихаешь?
Вот https://www.baeldung.com/exception-handling-for-rest-with-spring
745 2918016
>>18010

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


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

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


У меня все летает даже в дебаг режиме. Если ты тот чел, который бугуртил на анимацию, то эта хрень нужна для всяких мелочей в контролах. Я либо анимирую через while, либо через адорнер слой, либо не анимирую вовсе.
747 2918021
>>18011
Потому что это уродливо?
Типа какой пайплайн-то работы с этим вот:

var result = service.GetResult();
switch(result.Result){
case MyEnum.Success: await OnSuccess(result.Value); break;
default : OnError("Some error");
}

А можно было так:
ErrorOr<Some>.From(service.GetResult())
.Tap( async (some) => await OnSuccess(some))
.OnError(e => _logger.LogError(e));
748 2918027
>>18014
Ну уродство же, няша. Ну серьезно.
749 2918028
>>18027
Зато объемы кода еще меньше. Где-то там далеко далеко лежит хандлер. А в бизнес логике ты проста кидаешь эксепшон
750 2918035
>>18021
Первые вариант прост и понятен любому мимокрокодилу, второй вызывает недоумение тем, что сразу речь идет о каких-то ошибках, потом вызывается непонятный метод from, затем какой-то tap. Переусложнение на ровном месте
751 2918041
>>18016
С репозиторием то же самое. Ситуация с тем, что сущности, удовлетворяющей каким-то критериям нет в базе, не всегда является исключительной.
Также как ситуация, когда объект требуемым уникальным ключем уже создан.
Either это просто ещё один способ описания результа работы метода. К примеру, чтобы под каждый метод не писать свой класс-результат типа CreateUserResult, WithdrawMoneyResult. Плюс, с Either можно всякие красивые штуки делать. Типа добавить оператор неявного приведения к нему, чтобы не return Either.Create<Entity, Error>(entity) писать, а просто return entity. Можно деконструтор добавить, чтобы в switch-е использовать и т.д. Можно добавить методы расширения, чтобы их вызовы в цепочку соединять (хотя мне не всегда такое нравится). Это все можно и в свои классы-результаты добавить, но будет по-запарней.
752 2918053
>>18035
В первом варианте - ты на изи забываешь проверить что там в енуме лежит и при попытке почитать Value - падаешь на проде, а потом 2 недели пытаешься по логам понять, че же случилось
Во втором - такое падение - исключено
753 2918054
>>18028
Это удобно до той поры, пока у тебя только HTTP API-ха бизнес-метод дёргает. А вот когда этот метод начинает ещё и в каких-нибудь background-сервисах, kafka-консьюмерах, grpc-stream ручках и т.д. дёргаться, то в них от ебучих try-catch уже не убежишь.
754 2918058
>>18053

> а потом 2 недели пытаешься по логам понять, че же случилось


Увидев null reference и стактрейс ты через наносекунду поймешь где ошибка.
.png57 Кб, 901x402
755 2918067
>>18058
Чет я не уверен, что сразу пойму...
756 2918104
>>18002

>Maybe<User>.From(await userService.Serach(228)) // метод имеет вид Task<Either<User, Nothing>>(id)


>.Tap(u => Console.WriteLine(u.Name)) // если юзер будет найден - выведет в консоль - имя


>.OnNothing(() => Console.WriteLine("User is missing")) // выведет эту строку, если юзера нет


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

> Чтобы было понятно, если с промисами в JS имел дело, то там такая же штука с : resolve-reject.


Для промисов ввели await как раз чтобы код разворачивать.
758 2918266
>>18251
Хуяза. В шарпе так можно?
759 2918336
Есть тонна времени чтобы накатить еще один язык (раст или шарп), работа, зп не важна, просто убедите почему ваш инструмент лучше чем другой.
760 2918356
>>18336
Тут уже есть один шиз, которого надо убеждать, что шарп лучше. Ниша занята.
761 2918361
>>18336
У шарпа не такое ебанутое коммунити как у раста.
На шарпе - ты просто берешь и пишешь код, в расте - ты воюешь с компилятором.
Синтаксис шарпа - простой и понятный. В расте за пределами учебных примеов - творится пиздец, в котором ты тратишь дохуя времени, чтобы распарсить(ну, тут может быть у меня просто опыта мало).
Раст луюбит поломать себя через колено каждые несколько релизов.
Инструментарий раста - хуевый и ломается постоянно.

Но конечно я не буду только за шарп топить.
У раста - все хороший перформанс.
И если именно что скучно, а хочется вспомнить времена, когда нихуя не мог написать без гугла - то раст прикольная тема(хотя тут - мне больше нравится F# какой-нибудь, хацкель и такое, потому что там - совсем не близко, а раст таки хоть и отличается, но не настолько).
762 2918368
>>18361
Спб за мнение.
763 2918393
>>18336
Зачем тебе учить язык, тред которог не тонет исключительно благодаря братушкам жаббистам?
16997394072689323.jpg15 Кб, 1060x299
764 2918425
>>17752

>пояснял пояснял ДЕБИЛУ что это вообще то разные вещи. но он ДЕБИЛ.


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

>смотря что сравниваем да и как.


Linq-Stream, Веб фреймворки на шарпоговне-веб фреймворки на джаве (a.k.a. все бенчмарки, что были в этом треде).

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


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

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


Тюнить не обязательно, но можно.

>с чем? кому она особо так нужна такая далекая? кому то важно запускать на последней жаве софт с жава 1? и он не может при этом поставить эту самую жава 1?


>в шарпе обратка до 4 версии работает. На более старых можно поставить параллельно более старый рантайм и жить себе.


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

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


Выше было сказано, почему именно поломка обратной совместимости это застой.

>не поспоришь. но в шарпе она тоже есть. просто не от офф вендора


Ну раз не поспоришь, хули рот свой вонючий открываешь?

>хз про интерполяцию, но если вводишь фичу через ДЕСЯТИЛЕТИЯ когда другие уже ввели, то да, можно учесть недостатки других.


>Просто нужно ПОДОЖДАТЬ


Нахуй свой рот открываешь, если опровергнуть не можешь? x2

>и снова лобок. X3


Где такое на петушарпе?

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


Наплодили альтернатив потому что соя ебаная, а не потому что мавен плох. Всё ещё лучше, чем жрать cmake-style билд на шарпоговне.

>в дотнете такой херни не встретишь.


Там просто всё собирается собственным аналогом симейка.

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


Что ты высрал? За время сидения в ваших говнотредах я раз 30 видел угрозы запретить что-то, кого-то наказать за что-то, кому-то дать палкой по голове. Пидорахи ебаные. В джаве такого нет (ну или меньше, соевые пидорахи, всё-таки, везде есть)
16997394072689323.jpg15 Кб, 1060x299
764 2918425
>>17752

>пояснял пояснял ДЕБИЛУ что это вообще то разные вещи. но он ДЕБИЛ.


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

>смотря что сравниваем да и как.


Linq-Stream, Веб фреймворки на шарпоговне-веб фреймворки на джаве (a.k.a. все бенчмарки, что были в этом треде).

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


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

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


Тюнить не обязательно, но можно.

>с чем? кому она особо так нужна такая далекая? кому то важно запускать на последней жаве софт с жава 1? и он не может при этом поставить эту самую жава 1?


>в шарпе обратка до 4 версии работает. На более старых можно поставить параллельно более старый рантайм и жить себе.


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

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


Выше было сказано, почему именно поломка обратной совместимости это застой.

>не поспоришь. но в шарпе она тоже есть. просто не от офф вендора


Ну раз не поспоришь, хули рот свой вонючий открываешь?

>хз про интерполяцию, но если вводишь фичу через ДЕСЯТИЛЕТИЯ когда другие уже ввели, то да, можно учесть недостатки других.


>Просто нужно ПОДОЖДАТЬ


Нахуй свой рот открываешь, если опровергнуть не можешь? x2

>и снова лобок. X3


Где такое на петушарпе?

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


Наплодили альтернатив потому что соя ебаная, а не потому что мавен плох. Всё ещё лучше, чем жрать cmake-style билд на шарпоговне.

>в дотнете такой херни не встретишь.


Там просто всё собирается собственным аналогом симейка.

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


Что ты высрал? За время сидения в ваших говнотредах я раз 30 видел угрозы запретить что-то, кого-то наказать за что-то, кому-то дать палкой по голове. Пидорахи ебаные. В джаве такого нет (ну или меньше, соевые пидорахи, всё-таки, везде есть)
765 2918432
Алсо по мавену. Альтернатив не "наплодили", а всего один оплот копротивления сделали — дегенерадл.
766 2918438
>>18425

>В джаве такого нет


Как результат - шизы, которые себя форсят. Стоило ли оно того?
767 2918440
>>18438
Какие ещё шизы?
768 2918441
>>18440
Ты, например.
769 2918442
>>18441
То есть по делу ничего не ответишь?
14904105723570.png513 Кб, 657x516
770 2918443
Я не понимаю, как джависты находят столько времени, когда им постоянно надо писать геттеры и сеттеры.
771 2918444
>>18442
Зайди в последний джаватред и почитай посты с начала. Или ты окончательно сюда переехал и вообще не вкурсах, че там да как?
772 2918446
>>18444
Да вроде всё нормально.
773 2918447
>>18446
Тяжело с катарактой, наверное. Впрочем геттеры и сеттеры писать не мешает похоже
774 2918448
>>18443
Я не понимаю, как шарподебилы находят столько времени, если им постоянно приходиться писать {get; set;} на каждую переменную, когда в джаве ставится один @Data
775 2918449
>>18447
Ломбок мешает писать геттеры и сеттеры
776 2918450
>>18443
Да казалось бы примитивная задача, которая занимает от силы 1% рабочего времени. А срача столько, что за это время можно было бы пару гигабайт геттеров-сеттеров написать.
777 2918451
>>18450
Самое главное что это ещё и доказательство второй теоремы шарпана, потому что в джаве как раз никто геттеры и сеттеры не хуярит, а шарподебилы дрочат свои гетсет
778 2918455
>>18451
Был когда жабадауном, херачил руками геттеры и сеттеры. Так как был жаба-идиотом, то не сразу узнал об автогенерации.

Но моя большая радость была писать полные имена пакетов, ведь алиасов для неймспейсов тогда не было. Хотя, уверен, что и сейчас нет, ибо жаба не развивается толком.
779 2918456
>>18455

>была писать полные имена пакетов


А я ведь вам говорил, что эти долбоебы неиронично импортируют все руками, а потом они на ровном ебле сравнивают идею с вскодом. Да-да, пару плагинов доставить и усе тоже самое.
780 2918458
>>18455
Был когда-то долбоёбом-бойлерплейтщиком, но когда джава перестала быть королём бойлерплейта не смог смириться с реальностью и мигрировал в петушарп.
781 2918468
>>18425

>В джаве сделают одно и то же волшебным образом лучше?


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

>Linq-Stream, Веб фреймворки на шарпоговне-веб фреймворки на джаве


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


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

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


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

>которых заставили переписывать всю свою кодовую базу ради того


когда вышел авайт я удивился что я прошелся по коду проставил авайты и вот я герой. За это я и проникся к ним любовью. Ну а потом и за гибкость которую ты БЕСТОЛОЧЬ никак не вразумеешь

>когда динозавры не мигрируют


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

>Алсо2 ты пиздишь, даже в 8 дотнете поломали.


хз че там поломали. я не юзаю 8. он не вышел. а вот в с 7 отлично использую либы из старого доброго дотнет 4. Студия конечно при установке пакета злобно хмурит бровки что мол фреймворки разные и "поищи поновее", но все работает и даже под линуксом.

>поломка обратной совместимости это застой.


нет. застой это застой. и в шарпе обратка есть. просто не такая длинная. Я свои проекты которые делал под 3 не стал перекомпиливать. Просто подправил конфиг и снес старые дотнеты

>Ну раз не поспоришь,


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

>опровергнуть не можешь


опровергнуть что? то что сделали лучше фичу которые другие ввели 10 лет назад? и еще хз сколько будет переход ибо на жаве любят "не спешить". а ты забавный.

>Там просто всё собирается собственным аналогом симейка.


похер. главное что подход один. а не много. С одним градле у вас мозг можно сломать, а он еще и не один лол.

>Пидорахи ебаные. В джаве такого нет


ты, тупая скотина, пришел в ЧУЖОЙ ТРЕД, куда тебя НЕ ЗВАЛИ. И ты мне еще про токсичность заливаешь. ахаха лол
781 2918468
>>18425

>В джаве сделают одно и то же волшебным образом лучше?


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

>Linq-Stream, Веб фреймворки на шарпоговне-веб фреймворки на джаве


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


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

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


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

>которых заставили переписывать всю свою кодовую базу ради того


когда вышел авайт я удивился что я прошелся по коду проставил авайты и вот я герой. За это я и проникся к ним любовью. Ну а потом и за гибкость которую ты БЕСТОЛОЧЬ никак не вразумеешь

>когда динозавры не мигрируют


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

>Алсо2 ты пиздишь, даже в 8 дотнете поломали.


хз че там поломали. я не юзаю 8. он не вышел. а вот в с 7 отлично использую либы из старого доброго дотнет 4. Студия конечно при установке пакета злобно хмурит бровки что мол фреймворки разные и "поищи поновее", но все работает и даже под линуксом.

>поломка обратной совместимости это застой.


нет. застой это застой. и в шарпе обратка есть. просто не такая длинная. Я свои проекты которые делал под 3 не стал перекомпиливать. Просто подправил конфиг и снес старые дотнеты

>Ну раз не поспоришь,


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

>опровергнуть не можешь


опровергнуть что? то что сделали лучше фичу которые другие ввели 10 лет назад? и еще хз сколько будет переход ибо на жаве любят "не спешить". а ты забавный.

>Там просто всё собирается собственным аналогом симейка.


похер. главное что подход один. а не много. С одним градле у вас мозг можно сломать, а он еще и не один лол.

>Пидорахи ебаные. В джаве такого нет


ты, тупая скотина, пришел в ЧУЖОЙ ТРЕД, куда тебя НЕ ЗВАЛИ. И ты мне еще про токсичность заливаешь. ахаха лол
782 2918469
Когда уже в форме уберут этот гребанный кораблик слева внизу в форме ввода. Тупо мешает писать, а потом в конце куча лишних строк.
783 2918472
>>18469

>гребанный кораблик


Ты это, спать иди. Кораблики какие-то. Можем в обнимочку, шарпуш!
image.png11 Кб, 759x409
784 2918474
>>18469
Тыж не жаба программист, сделай сам, ну или адблоком убери
785 2918475
>>18468

>не лучше. ИНАЧЕ. С одной стороны кажется (как дебилу говножависту) "ой целое лишнее слово нам нужно для анпака футур". С другой же - унифицированная работа со всем что может быть предоставлена как футура, а это много чего - сорсы, процессы, события, отмены, диспозы.... В модели без await у тебя будет наслоение разных вещей - там типа потоки, а вот отмена вот так, а там вот футуры лол. при этом авайт работает одинаково и интуитивно. В случае же с корутинами начинается поебень (не знаю как в жаве в луме ибо мне насрать) но в котлине знатная поебень с отменами и исключениями. И все ради структурной че то там. А в с авайт просто ...авайт и все. Никаких тайных знаний


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

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


Проведи тесты лучше. А то пока что любой тест в этом треде уринотерапирует шарпоговно.

>Вообще сравнивать реализации тупо - они же просто разные.


Да, разные, в шарпоговне медленнее.

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


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

>когда вышел авайт я удивился что я прошелся по коду проставил авайты и вот я герой. За это я и проникся к ним любовью. Ну а потом и за гибкость которую ты БЕСТОЛОЧЬ никак не вразумеешь


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

>дык это проблемы динозавров.


Ты вообще дочитал до конца, додик? Не только динозаврам плохо.

>хз че там поломали. я не юзаю 8. он не вышел.


Даун, тебе показали что поломали...

>нет. застой это застой.


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



>А обязана быть именно от вендора? Где такой закон?


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

>И да - не сравнивай допотопный подход к гуи типа жава свинг хотя бы даже с WPF лол. Покажешь от вендора lookless решения для гуи ака WPF? тогда и сравним. А так ваше жабовское это тупой аналог винформс несчастных


Джавафкс.....

>опровергнуть что? то что сделали лучше фичу которые другие ввели 10 лет назад?


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

>похуй что я жру говно. Главное что одна жопа в рот срёт


Лол.

>ты, тупая скотина, пришел в ЧУЖОЙ ТРЕД, куда тебя НЕ ЗВАЛИ. И ты мне еще про токсичность заливаешь. ахаха лол


Пидорашка не может мыслить без проекций, да? Причём тут я? Речь шла о комьюнити шарпоговна в сравнении с жабовским.
785 2918475
>>18468

>не лучше. ИНАЧЕ. С одной стороны кажется (как дебилу говножависту) "ой целое лишнее слово нам нужно для анпака футур". С другой же - унифицированная работа со всем что может быть предоставлена как футура, а это много чего - сорсы, процессы, события, отмены, диспозы.... В модели без await у тебя будет наслоение разных вещей - там типа потоки, а вот отмена вот так, а там вот футуры лол. при этом авайт работает одинаково и интуитивно. В случае же с корутинами начинается поебень (не знаю как в жаве в луме ибо мне насрать) но в котлине знатная поебень с отменами и исключениями. И все ради структурной че то там. А в с авайт просто ...авайт и все. Никаких тайных знаний


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

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


Проведи тесты лучше. А то пока что любой тест в этом треде уринотерапирует шарпоговно.

>Вообще сравнивать реализации тупо - они же просто разные.


Да, разные, в шарпоговне медленнее.

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


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

>когда вышел авайт я удивился что я прошелся по коду проставил авайты и вот я герой. За это я и проникся к ним любовью. Ну а потом и за гибкость которую ты БЕСТОЛОЧЬ никак не вразумеешь


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

>дык это проблемы динозавров.


Ты вообще дочитал до конца, додик? Не только динозаврам плохо.

>хз че там поломали. я не юзаю 8. он не вышел.


Даун, тебе показали что поломали...

>нет. застой это застой.


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



>А обязана быть именно от вендора? Где такой закон?


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

>И да - не сравнивай допотопный подход к гуи типа жава свинг хотя бы даже с WPF лол. Покажешь от вендора lookless решения для гуи ака WPF? тогда и сравним. А так ваше жабовское это тупой аналог винформс несчастных


Джавафкс.....

>опровергнуть что? то что сделали лучше фичу которые другие ввели 10 лет назад?


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

>похуй что я жру говно. Главное что одна жопа в рот срёт


Лол.

>ты, тупая скотина, пришел в ЧУЖОЙ ТРЕД, куда тебя НЕ ЗВАЛИ. И ты мне еще про токсичность заливаешь. ахаха лол


Пидорашка не может мыслить без проекций, да? Причём тут я? Речь шла о комьюнити шарпоговна в сравнении с жабовским.
786 2918477
>>18475
Натренированный на геттерах и сеттерах снова высрал портянку на всю страницу. Это кто-то читает?
787 2918478
>>18477
Тут 75% это цитирование шарподебила.
788 2918479
>>18477
Ты и читаешь. Фанат все таки. Уверен и минет не против ему сделать. Ну чисто доказать, что на шарпе так можно.
789 2918480
>>18477
я прочту. но завтра. как раз порция урины будет готова. и я ему ее налью полный ротешник.

>>18474
увы это только на десктопе. но спасибо что напомнил - убрал
790 2918481
>>18480
С нетерпением жду твои высеры с актуальностью 1996 года либо повторение уже сказанного и обоссанного.
791 2918483
>>18481
зачем тебе желать чтобы тебя обосрали? тебе бы к дохтору
792 2918484
>>18483
Пока что ты только на себя серешь.
793 2918485
Когда тимлид нас наказывал, он заставлял заново писать геттеры и сеттеры для всех JavaBeans в проекте.
794 2918554
>>18425

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


Маня, но ведь ты энивей будешь пользоваться спрингом, потому что тебе так сказал твой кабан. Это ты тут так круто перемогаешь, а ирл то приходится грести, джавуринодебил
795 2918631
Как сгенерировать диаграмму классов для проекта?
796 2918635
>>18485

>>писать геттеры и сеттеры


Зачем они вообще нужны в 2к23?
797 2918687
>>18635
Инкапсуляция. Например раньше данные приходили из базы, а сейчас из продвинутого и технологичного шарпового микросервиса. Ты меняешь поведения не ломая код другим 100 индусам в команде. конечно, это делается через di и полиморфизм интерфейсов, но как пример, так тоже можно сделать
798 2918728
>>10820 (OP)
Как на C# реализовать identity function (функция возвращающая свой аргумент) наиболее лаконично? Чтобы лямбда принимала и возвращала аргумент любого типа.
На Тайпскрипте это делается так https://www.typescriptlang.org/docs/handbook/2/generics.html
Безымянный362.png1,7 Мб, 1920x1043
799 2918746
Есть ботяра для телеги на вебхуке написанный на шарфе. Хочу запустить его через compose вместе с базой и кешем локально через ngrok. Как настроить appsettings/launchSettings/compose файл чтобы все работало и ngrok не высирал Bad Gateway на каждый запрос от телеги...
800 2918749
>>18728
А чем тебе не нравится public void TvoyaMamka(out int shluyha) ?
801 2918750
>>18631
Вопрос в том, как это потом читать.
Я например создаю Markdown-документ, который хорошо крепится к nuget-пакетам, и где можно вставить Mermaid-диаграммы (с доп плагином).

Чтобы генерить код в диаграммы, можно заюзать это
https://www.nuget.org/packages/Cs2Mermaid/
802 2918751
>>18554
Проекции просьба оставить при себе, раб аспнета.
803 2918763
ну вот выйдет дотнет 8 и сколько уже лет этому
https://github.com/dotnet/csharplang/issues/2542
и где воз? где там? почему ныне?

фоди конечно решает, но все же хотелось бы искаробочного решения.

>>18751
а ты, говножавист, погодь. и до тебя доберусь. Я уже проснулся и скоро...или нет ибо голова болит (нужно меньше пить....ммм зачем) в общем как очухаюсь, то уринизирую тебя в полной мере.
804 2918772
>>18728
Либо с дженериками
T Id<T>(T x) => x;

Либо, если прям any как в typescript хочется, то
dynamic Id(dynamic x) => x;
Но в приличных местах за использование dynamic могут и обоссать.
805 2918779
Однажды, когда я забыл написать сеттер, тимлид схватил с полки толстенную книгу по java EE и начал меня ею бить.

Бил так сильно, что у меня на лбу отпечаталась надпись Java EE 7. После этого, коллеги подшучивали надо мной, называя меня уже не Сергеем, а сервлетом.
806 2918786
Как Dependency Property сделать зависимым от другого свойства? Часто чтение одного свойства запускает обращение к данным другого свойства, и с INPC все достаточно легко в этом плане, а как быть с DP?
807 2918788
>>18779
Т.е. фраза "в шарпотреде обитает пришибленный джавист" - это не миф?
808 2918797
>>18786
ну читай, кто тебе не дает. просто это побочные эффекты, а код не должен быть основан на побочных эффектах.
809 2918843
>>18772

>T Id<T>(T x) => x;


Спасибо. Не нашел такой пример в доках, она запутанная. Какого типа будет в данном случае Id? Делегат?
810 2918849
>>18843
>>18772
Лол, шарподебилы познают дженерики.
811 2918854
>>18849
да, потому что они есть. и в рантайме тоже
это вам не жава/котлин, где шаг в сторону и "не могу вывести тип" и ты такой сидишь и охуеваешь
812 2918861
>>18772

>T Id<T>(T x) => x;


Что вообще есть T? В доках много примеров, но нет явного объяснения что это и как и в каких случаях синтаксически верное должно применяться. Где хорошо описано?
813 2918869
>>18843
В данном случае это просто метод. Из него можно создать стандартный делегат Func<T,T>, к примеру передав его в качестве аргумента методу, который Func<T,T> ожидает.
>>18861
T это просто название для типа-аргумента дженерика. Оно может быть любым (TKey, TValue, TItem и т.д.). Просто все аргументы дженериков принято именовать с префиксом T, чтобы их можно было отличить от имен свойств/классов и т.д.
Рекомендую для начала с докой ознакомится https://learn.microsoft.com/ru-ru/dotnet/standard/generics/
814 2918870
>>18854
Додик, вывод типов это дело компилятора, а не рантайма.
815 2918873
>>18854
Кстати, в шарпе женерики куда менее мощные чем в жебе.
816 2918879
>>18763

>ну вот выйдет дотнет 8 и сколько уже лет этому


>https://github.com/dotnet/csharplang/issues/2542


>и где воз? где там? почему ныне?


Это будет очень медленный и болезненный процесс. Они изначально проебались, а теперь это так просто не исправить, процесс будет очень медленный и болезненный.
Но есть маленькие подвижки: они добавили перегрузку ConfigureAwait с флаговым enum, где дефолтное значение - не сохранять контекст синхронизации.
А ещё asp.net core приложения запускаются в консоли, где нет контекста синхронизации, поэтому в них ConfigureAwait(bool) ничего не делает, ну и соответственно не нужен.
817 2918893
>>18870
При чем тут вывод типов, жабадебил? Я в шарпе в рантайме могу выяснить рефлексией, что List<int> хранит int, а List<string> хранит string, в то время как в жабе это будут просто два одинаковых ArrayList.
818 2918898
>>18893
А нахуя это узнавать? Ну типа буквально, какие же кейсы вы таким образом реализуете?
819 2918915
>>18870
ну у него не получается.
Почему?
видимо он считает что в рантайме тип будет потерян и та цепочка что я формирую работать не будет
и в общем то он прав

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

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

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

(ну и я жалуюсь когда пишу WPF ибо засоряется код)
820 2918925
>>18797
Чет затупил. Все, решил проблему.

>а код не должен быть основан на побочных эффектах.


Это не всегда возможно, а порой и неэффективно. Особенно когда побочные действия имеют тяжелые расчеты и к тому же уже рассчитаны.
821 2918939
>>18687

>>Инкапсуляция


когда в последний раз логику в гетере/сетере писал?
822 2918942
>>18939
Так писать там логику моветон же. Хуйню несешь.
823 2918944
>>18939

> когда в последний раз логику в гетере/сетере писал?


В пятницу, сеттер на 50 строк вышел, обычная ситуация.
824 2918947
>>18898

>в жабе нет, значит ненужно


>до тех пор, пока это не появилось


>потом это киллерфича жабы


Жабоуёбышь, вот через 10 лет в жабе появится await, и ты сам тут будешь жидко попёрдывая в треде всем рассказывать, что жабовский await куда круче шарповского.
825 2918951
>>18947
Ты может на вопрос ответишь?
826 2918952
>>18947
А нахуя нам авейт, если есть green thread, которой лучше авейтов. Так че там по кейсам? А то я подозреваю, что в основном это надо для какой-то невообразимой грязи с хуевой архитектурой.
827 2918954
>>18915
Что ты несёшь нахуй? То, что он показал отлично работает даже на джаве, в которой в рантайме типов нету.
828 2918956
>>18952
Правильно подозреваешь, эти дебилы аргументы метода суют в <>. И это есть даже в стдлибе ихней.
829 2918967
>>18942
хуйню несешь ты, когда утверждаешь что тебе нужен геттер для инкапсуляции
830 2918986
>>18967
Так он в самом деле нужен. Бывает, что значение свойства это не поле, а вычисляемая величина, однако с точки зрения пользователя класса разницы нет никакой. Это и есть инкапсуляция.
831 2918994
Джавадебилы, если в джаве такие охуенные дженерики со стиранием типов в байткоде, то какого хуя тогда в Project Valhalla поддержку параметризованных дженериков в рантайм протащить хотят?
Вот занюхните своих евангелистов и успокойтесь
https://openjdk.org/projects/valhalla/design-notes/parametric-vm/parametric-vm#john-rose-and-the-project-vahalla-team
832 2919001
>>18994
Лень читать, давай цитату.
Screenshot2023-11-12-20-35-35-189com.android.chrome-edit.jpg444 Кб, 1080x1639
833 2919013
>>19001
Мне тоже лень искать. Но вот тебе из соседнего дока ( https://openjdk.org/projects/valhalla/design-notes/in-defense-of-erasure ) от Брайна Гоетца, на которого вы так дрочите.
834 2919023
>>18994
Потому что НИНУЖНО, но если НУЖНО, то давайте

Джавадебил - это такое одноклеточное.
image.png26 Кб, 719x241
835 2919029
>>19013
Ты дальше почитай как бы. Или хотя бы название статьи. Это ж буквально манифест оправданий стирания типов. Я сам удивился, что в вальхале его хотят убрать, ибо все высокие жаббисты наоборот за него.
836 2919036
>>19029

>Я сам удивился, что в вальхале его хотят убрать


Забыл уточнить, что поэтому и спрашиваю конкретное место. Тк лень разбираться в этой мутотени, которая будет готова ну к 2030
837 2919043
>>18994
Никто не говорил, что оно охуенно. Это просто небольшая проблема (для конечного разработчика). Возможно, самим разработчикам джавы легче будет без стирания, потому и решили от него избавиться (если они решили, потому что я впервые слышу, что решили стирание типов выпилить).
838 2919046
>>19036
Брайан Гётц говорил, что вальхалла на финальной стадии.
image.png41 Кб, 722x411
839 2919052
>>19046
Уверен, что он именно это говорил? А то вон он как ахуенно книгу обновляет.
Screenshot2023-11-12-20-48-02-166com.android.chrome-edit.jpg748 Кб, 1080x2186
840 2919057
>>19036
Если говорить относительно Valhalla, то без runtime-дженериков value-objects будут крайне хуево работать.
841 2919099
>>19057
Вроде пишут же

>support efficient generic programming, using Java’s current generic constructs


И лучше подождать, че они в итоге решат, а не вот эти черновички их читать.
842 2919220
>>19052
Ну вроде что-то подобное слышал я от него в его последнем интервью.
843 2919224
>>18954
я не ебу кто что показал
я сказал о своем опыте где мне приходилось сталкиваться с тем, что я не могу написать дженериковый код потому что компилятор в итоге просто теряет тип

и это фактические факты. и мне срать на фантазии жаваговноеда.
844 2919231
вот бы в жабе экосистема не была уебанской... так бы на ней писал
845 2919232
>>19231
не писал бы. нахер она бы тебе сдалась с ее громоздким синтаксисом и необходимостью лобковых лобков. ты бы писал на котлин.
846 2919238
хотя кому я пизжу яб и близко к жавахуйне не подходил
847 2919245
>>19224
Уёба, нахуй ты тогда встреваешь в разговор, если даже не удосужился контекст прочитать? Просто нравится урину на ебальник принимать?
848 2919247
>>19245
где я встрял бестолочь? или это продолжение диалога со мной же или это ты встрял в диалог
849 2919268
>>19247

>я не ебу кто что там показал

850 2919274
>>19268
и тем не менее, это ты влез в мой диалог.
так что если ты жавист то прими говна
если не жавист - ну просто прими истину и уринируй жависта
851 2919278
>>19274
Ну значит хули ты вообще открываешь рот, если у тебя ебаная деменция и ты не помнишь то, что было написано в прошлом посте.
852 2919281
>>19278
ага. значит ты жавист
и даже если нет
принимай урину полон рот.
все равно будет перекат

а тут тред уринирования жавистов и тех у кого задрано чсв
853 2919286
>>19281
Шлюха с разлагающимся мозгом от гетсетов и перепечатывания методов продолжает бредогенерировать.
# OP 854 2919312
Пиздец накормили джавадебила.

Я вам не для этого перекатывал.

Чтобы на новый год такого не было.
855 2919316
>>19312
Он тут срёт всё реже, ещё несколько тредов - и упокоится.
856 2919321
>>19316
Скорее шарподебилы быстрее сливаются.
857 2919324
>>19321
Считай, что все шарподебилы уже заранее слились и можешь с чувством победителя съебаться отсюда подальше.
858 2919372
>>18869

>В данном случае это просто метод.


Скорее лямбда, а лямбды если не ошибаюсь являются делегатами. Если не ошибаюсь, в .NET вообще нет типа метод или функция, есть класс, структура, перечисление, интерфейс и делегат.

>>18869

>T это просто название для типа-аргумента дженерика.


Нашел в доке, но инфы очень мало. Как то даже не серьезно.
https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/generic-type-parameters

>>18869

>Рекомендую для начала с докой ознакомится


Мне непонятно понятие универсальные шаблоны или универсальные типы. Гуглил такое для C#, но инфа попадается поверхностная. Либо в книгах надо смотреть, либо через Джаву попробовать, там небось то же самое. В доках некоторые темы освещены очень плохо.
859 2919381
>>18952

>green thread


С конкурентностью в джаве знаком слабо, но если там вручную нужно крутить потоки, то в дотнете многозадачность реализована намного круче, потоки абстрагированы.
860 2919385
>>18967
А что это? Инкапсуляция и есть. Слой абстракции, который позволяет устанавливать или получать значение, без необходимости лезть руками в данные.
861 2919402
>>19381
Количество абстракций, которые есть в джаве, просто ни в какое сравнение ни идет с шарпом. Это блять мем уже. https://gwern.net/doc/cs/2005-09-30-smith-whyihateframeworks.html
862 2919448
>>19402

>Количество абстракций, которые есть в джаве, просто ни в какое сравнение ни идет с шарпом.


Пустая болтовня. Насколько я успел выхватить инфы, в самой джаве потоки, которыми нужно управлять руками. В отдельных либах может что и есть. В самом дотнете параллелизм и конкурентность намного более высокого уровня. В отдельных либах есть что угодно, в том числе модель акторов как в Эрланге.
863 2919473
>>19448
Че это за долбоебизм? Типа если не искаропки, то нещитова? Это не так работает, алеша.
tpl-architecture.png18 Кб, 672x359
864 2919493
>>19473
Не пудри мне мозги. В дотнете не нужно касаться потоков или пула потоков. В джаве такого нет. А что там в либах не имеет значения. В дотнете в либах тоже все есть.
865 2919502
>>19493

>В дотнете не нужно касаться потоков или пула потоков.


Из-за таких долбоебов как ты и пишут лагучее говно с дедлоками и вылетами. Не нужно блять ему касаться, любые абстракции так или иначе протекают. Скажем задача запустить 2 таски параллельно, не знаю чтобы в ThreadLocal было индивидуальное значение. Хуй ты это без потоков сделаешь.
866 2919519
>>19473

>МОИ ЛЮБИМЫЕ ВАСЯНСКИЕ ДЖАВА ЛИБЫ КРУЧЕ ВАШЕГО ДОТНЕТА


Блядь какой же этот долбаёб убогий, уже даже обоссывать лень
867 2919525
>>19502
Объясняю последний раз. В дотнете параллелизм и конкурентность абстрагированы от потоков. Под капотом потоки естественно используются. Но руками их трогать необязательно, если нужно, то можно конечно.
868 2919526
>>19402
Ебанат на джавадебиле уже совсем обезумел и кидает ссылки на какой-то тред за 2005 год. Это год актуальности джавы, джавадебил?
869 2919529
>>19502

> Скажем задача запустить 2 таски параллельно


Task.Run(() => Console.WriteLine("Пошел"));
Task.Run(() => Console.WriteLine("на хуй"));
870 2919533
>>19519
Тезис был в том, что зеленые потоки лучше. Это не либа. Дальше мне шлют притензии

>АРРРРРРРРРРРРРРРЯЯЯЯЯЯЯЯЯЯЯ ГДИ АБСТРАКЦИИ


Надеюсь васяны в виде Apache/IBM/Red Hat с абстракциями смогут справится.
И сука, прекращайте сами создавать срачи, долбоебы тупые, вы реально ж зависимые.
>>19525

>В дотнете параллелизм и конкурентность абстрагированы от потоков.


Ну в жабе тоже абстрагированы. Пакет concurrent в помощь. Тебе до какой степени абстракция нужна?
>>19526
Согласен, Spring многократно более абстрактен, чем няшная Java EE.
>>19529
Гугли что такое параллельность. WriteLine содержит критическую секцию, потому это будет serialized. Тем более цель была в ThreadLocal.
871 2919540
>>19533

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


Так съеби отсюда, животное.
872 2919542
>>19540
Не ну это тралленг. 4 поста мне высрали, >ря ну уйди пж.
Ладно, пока.
873 2919545
>>19533

> Тебе до какой степени абстракция нужна?


До такой степени, чтобы отморозить себе уши назло джаве.
874 2919548
>>19529
Такое в джаве с 1995 было. У вас как говорят в 2010 появилось или 2005, не важно, всё равно проглотили. А теперь показывай, как всё то же самое, но не загружая тяжёлый платформенный поток ожиданием.
.png57 Кб, 478x350
875 2919574
>>19548
Так платформенный поток не загружается ожиданием. Когда мы пишем await - шедулер - выходит из метода, и передает управление другому коду. Переодически - ходит, проверяет, че там, закончили и надо возвращаться или еще нет. В этом как-бы суть асинхронного выполнения...
Чи я тебя не понимаю.
876 2919581
>>19574
Пусть все эти потоки еще в соснольку пишут хелло.
877 2919585
В другой раз, мы с коллегой сидели в туалете и показывали друг другу новые JEP'ы. Мы фантазировали и громко смеялись, пока в туалет не ворвался тимлид и не выбил ногой дверцу кабинки. На этот раз у него была толстенная книга по спрингу и он без устали бил нас её. Мой друг поскользнулся на луже соплей, говна и крови и потерял сознания, после чего мишенью остался только я. Я хорошо помню как летели станицы, переплет был менее качественный чем у Java EE, книга быстро рассыпалась, я даже узнал там пару страниц, которые ранее уже прочел.
878 2919601
>>19581
Ну. Держи...
879 2919606
>>19601
Ебать удобно. Пиздос.
880 2919610
>>19606
Я правда уточню, что время прошедшее - это мульен тасок. Вывод в консоль даже таким макаром - медленнее. Потому что консоль в винде пиздец медленная. Можно конечно - увеличить размер буффера и флаш делать вручную, тогда будет быстрее. На линуксе - консолька быстрее даже без таких изъебств, хз почему.
881 2919611
>>19533

>Пакет concurrent в помощь.


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

>Тезис был в том, что зеленые потоки лучше.


Лучше чего? Ими по прежнему нужно управлять вручную. В дотнете это все автоматизировано.
882 2919613
>>19611
Я блять выше вижу эту автоматизацию. Можешь не рассказывать.
883 2919621
>>19613
Так а что не так? Я ни одного потока в коде выше руками не создал. Ни разу не попросил тредпул мне достать поток, я просто написал функцию, дотнет все что связано с потоками и парралельным выполнением сам сделал.
image.png140 Кб, 796x851
884 2919640
>>19621
Ну вот. Идентичная хуйня. Проста функция. Без ченелов и прочей поеботы. Правда скорость уух, прям. Мда
885 2919641
>>19613
Ну и да. В реальности - вот так - никто не пишет.
В реальности у тебя будет просто
// io
await Some();
// cpu
myList.AsParallel().Sum();
image.png19 Кб, 679x155
886 2919642
>>19641
Тип того?
887 2919648
>>19642
Ну, типа да.
Я правда не понимаю, по какому поводу тут срач и че жависты в треде про шапр делают.
Типа блин. Языки - буквально друг у друга фичи пиздят, на кой сраться - хз.

Лучше бы кто-то объяснил, че думают про новый синтаксис с созданием массивов и про дефолтные конструкторы новые. Мне вот массивы - нра, а дефолтные конструкторы новые - шляпой показались.
888 2919650
>>19648

>че жависты в треде про шапр делают.


Братушкам ненаглядным постинг поднимаем. А то хули тоните.
889 2919659
>>19640
>>19642
Мы же не спрашивали тебя, еблуша, почему ты думаешь что нам не похуй на джавапарашу?
890 2919661
>>19659
Когда спать пойдешь? Поздно уже. Волнуюсь все таки за тебя, шарпуш
891 2919663
>>19661
Я пойду спать когда захочу, мудло. А вот ты нет, потому что тебе нужно нам что-то доказать. Жаль мы не можем понять что, ведь нам похуй
892 2919666
>>19663
Ты че себя дохуя активом почувствовал? Тебе не к лицу, прекращай. Шлеп по попе.
А если серьезно, то сами просили абстракции искаропки.
893 2919667
>>19640
Как же джава тормозит
894 2919673
>>19666
Джава и гомосексуализм - неразрывны. Местный джавадебил это очередное подтверждение. Уйди, пидор
895 2919691
>>19667
>>19673
Мне уже надоело отвечать. Спокойной ночи.
qpi3-7igilxfsvtapy0zshpmfqm.jpeg31 Кб, 248x350
896 2919797
Насколько кал и можно ли скормить чайнику?
897 2919799
>>19797
На двоще распространено предвзятое отношение к книгам издательства Packt, так что не жди объективных оценок.
898 2919837
>>19797
Кал, потому что изучать C# через юнити хуевая идея.
image.png446 Кб, 1000x1000
899 2919853
>>19797
С этой все бегают, говорят для ньюфага норм, возможно даже может осилит джавист.
900 2919908
>>19853
О, у меня такая есть, но на 4.6 НЕТ. Придётся аутдейтом пичкать.
image.png33 Кб, 225x224
901 2920199
Школьные каникулы закончились, джава шизик пропал.
Совпадение?
image.png24 Кб, 582x235
902 2920249
Подводные?
image.png16 Кб, 439x279
903 2920281
Это что за хуйня такая?
904 2920470
>>20281
Наоборот надо кастить, от потомка к предку.
905 2920494
>>20281
Это в шарпоговне такое скомпилируется? Пиздееееееец.
906 2920508
>>19574
Тебе ещё раз напомнить, что в джаве всё это делается без загрязнения кода await'ами и весь старый синхронный код как на петушарпе в момент добавления await переводить под асинхронщину не надо?
image.png51 Кб, 864x657
907 2920529
>>20281
Бля, а ахуенно. Я сначала подумал, что оно sealed, а тут еще интереснее. Мол раз они рантаймовые, можно любую грязь разрешить, касты-то проверит. Ну жаба соснула тут конечно.
908 2920531
>>20529
Хотя стоп. Жаба тоже может касты проверить в этом случае. Ну в общем шарпаны объясните смысл фичи. Как защищать-то?
909 2920532
>>20508
конечно не надо, ведь уже 10 лет как все стало асинхронным. И просто НЕ НУЖНО никому магия перевода синхронного кода в виртуально асинхронный
910 2920536
>>20532
Да вам всё нинужно. Композиция нинужна, отсутствие тысяч гетсет нинужно, кроссплатформенность нинужна, производительность нинужна, обратная совместимость нинужна, и т.д.
911 2920537
>>20536
нам ТУПЫЕ жависты не нужны. а все тобой описанное - просто есть и с ним все хорошо.
912 2920538
>>20537

>нам ТУПЫЕ жависты не нужны


А няшные?
913 2920541
>>20537

> просто есть


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

914 2920544
Шарподебил, кстати, обещал мне вот на это >>18475 ответить. Это произойдёт когда-нибудь или можно сразу записывать проглот мочи шарподебилом по всем тейкам сразу?
915 2920549
>>20538
>>20541
Долбоебы в паре работают, или один и тот же контуженный?
916 2920554
>>20538
ты еще скажи что дед мороз существует. Меру то во вранье знать нужно.

>>20541
я тебе привел за эти треды достаточно пруфов
просто ты ТУПОЕ

>>20544
да отвечу я. просто была тяпница до понедельницы и не закончилась. Но я не забыл. Урины тебе заготовил от души.
впрочем если ты тупой, то что тебе доказывать ОЧЕВИДНОЕ
917 2920555
>>20549
По делу что-нибудь будет или сольёшься в очередной раз?
918 2920556
>>20549
Я просто от скуки пишу. Нет реально котаны, а зачем вам вот это >>20529 ?
919 2920557
>>20554

> я тебе привел за эти треды достаточно пруфов


Так почему все твои недопруфы закончились на нинужно и переходах на личности?
920 2920560
>>20556
Не зачем, а потому что. Потому что петушарп. В джаве такая хуйня ловится в момент компиляции, в шарпоговне будет рантайм исключение.
921 2920561
>>20555
Ебанат, чтобы отвечать тебе по делу, нужно решить одну проблему - ты должен перестать быть понадусеровым жабавуринодебилом и съебаться с треда.

Выполни условия и получишь ответы
922 2920565
>>20561
Ясн, слив принят.
923 2920567
>>20557
чушь. я НАЧАЛ с того что назвал жаву говном, а тебя говноедом
(и другими разными вполне заслуженными словами) а все остальное время просто пояснял почему я так думаю
924 2920568
>>20565
Да, маня, ты принимаешь слив у любого мимокрока. Слив урины в свое тупое ебло.
925 2920569
>>20567
Мань, если назвать слив пруфом это пруфом не станет.
926 2920570
>>20568
Да не ворочайся, слитое. Тебе ещё силы понадобятся для написания гетсетов.
927 2920602
>>20569
уже стало. я мог просто молчать
ты уже показал всем какой ты упоротый говноед.

ладно. уринирую

>>18475

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


Нет. ДЕБИЛ. ты СПОРИЛ. я тебе говорю что это РАЗНЫЕ концепты. Концепт "все есть футуры" и концепт "корутины + футуры" похожи, но разные. И обладают разными плюсами и разными минусами. А ты, БЕСТОЛОЧЬ, их в один ряд ставишь
лум сравнивать можно с корутинами типа котлин, но не с авайт, потому...да я пояснял почему, но ты дебил

>Проведи тесты лучше


и без меня проводят. Да я не умею проводить тесты в обоих языках одинаково (и не должен), но синт тесты и без меня народ проводит и там разные выхлопы

>Да, разные, в шарпоговне медленнее.


нет. они просто разные. Есть разные показатели - скорость, гибкость, возможности и так далее. Что то менее быстрое но мощное оно хуже? да ну. Вот я беру даппер за скорость, но он не дает мне возможностей что дает EF или хибернате. Так значит хибернате говно выходит? нет. просто у каждого свой набор лучше хуже и тут кому что нужнее. А ДЕБИЛ справнивает чисто по генерации хелло ворлд. не не долбоеб ли.

>Не только динозаврам плохо.


а кому еще. вот мы не могли перевести проекты на дотнет 5, а вот на 6 уже переехали без проблем.
Может не быть чего то что было и исчезло и оно нужно? конечно может. Ну да это брякачашжес не спорю. Но кто мешает динозаврам и дальше сидеть на 4.8. Патчи безопасности выходит, все норм.

>Даун, тебе показали что поломали..


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

>но от вендора есть вещи, ломающие кроссплатформенност


кто чего ломает? что за вещи ломающие кросс? а ну просвети?
то что вендор выпустил мауи и забил на линукс ну никак не влияет на мой проект на авалонии или формсах или вообще аспнетах. так что не ебу о чем ты чудило

>Джавафкс.....


какое то странное поделие до ужаса напоминает QT с его возможностью "можно допилить стилями css" или если мне нужно овальную кнопку то я вижу подход вида btn.setShape(new Circle(1)); что в корне отличается от луклесс подхода где поведение отделено от визуальной части и ты создаешь ее какую хочешь, а не просто живешь в рамках дозволенного
не говоря уже о том что делается это кодом, что даже хамл лучше будет

>Ну да, мы сравниваем текущее состояние языко


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

>Лол.


твоя реальность. в общем то, ты за этим в этот терд и пришел

>Причём тут я


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

ладно. уринирую

>>18475

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


Нет. ДЕБИЛ. ты СПОРИЛ. я тебе говорю что это РАЗНЫЕ концепты. Концепт "все есть футуры" и концепт "корутины + футуры" похожи, но разные. И обладают разными плюсами и разными минусами. А ты, БЕСТОЛОЧЬ, их в один ряд ставишь
лум сравнивать можно с корутинами типа котлин, но не с авайт, потому...да я пояснял почему, но ты дебил

>Проведи тесты лучше


и без меня проводят. Да я не умею проводить тесты в обоих языках одинаково (и не должен), но синт тесты и без меня народ проводит и там разные выхлопы

>Да, разные, в шарпоговне медленнее.


нет. они просто разные. Есть разные показатели - скорость, гибкость, возможности и так далее. Что то менее быстрое но мощное оно хуже? да ну. Вот я беру даппер за скорость, но он не дает мне возможностей что дает EF или хибернате. Так значит хибернате говно выходит? нет. просто у каждого свой набор лучше хуже и тут кому что нужнее. А ДЕБИЛ справнивает чисто по генерации хелло ворлд. не не долбоеб ли.

>Не только динозаврам плохо.


а кому еще. вот мы не могли перевести проекты на дотнет 5, а вот на 6 уже переехали без проблем.
Может не быть чего то что было и исчезло и оно нужно? конечно может. Ну да это брякачашжес не спорю. Но кто мешает динозаврам и дальше сидеть на 4.8. Патчи безопасности выходит, все норм.

>Даун, тебе показали что поломали..


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

>но от вендора есть вещи, ломающие кроссплатформенност


кто чего ломает? что за вещи ломающие кросс? а ну просвети?
то что вендор выпустил мауи и забил на линукс ну никак не влияет на мой проект на авалонии или формсах или вообще аспнетах. так что не ебу о чем ты чудило

>Джавафкс.....


какое то странное поделие до ужаса напоминает QT с его возможностью "можно допилить стилями css" или если мне нужно овальную кнопку то я вижу подход вида btn.setShape(new Circle(1)); что в корне отличается от луклесс подхода где поведение отделено от визуальной части и ты создаешь ее какую хочешь, а не просто живешь в рамках дозволенного
не говоря уже о том что делается это кодом, что даже хамл лучше будет

>Ну да, мы сравниваем текущее состояние языко


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

>Лол.


твоя реальность. в общем то, ты за этим в этот терд и пришел

>Причём тут я


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

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


Ты это сделал вывод по одному гугл запросу, серьзено? Может пасть не будешь раскрывать на технологию, которую ты толком не использовал. Это разделение есть даже в AWT блять. Пиздец.

>что делается это кодом


Опять же, первый пункт. Молчи, за умного сойдешь.
929 2920609
>>20608

>Ты это сделал вывод по одному гугл запросу


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

БРАТЦЫ. нам жависта подменили. ОНО НЕ ОДНО
НЕ ПОМНИТ ЧТО ЕМУ ГОВОРИЛИ

похоже это не просто тупой жавист , а ТОЛПА тупых жавистов
930 2920613
>>20609

>это я сделал по тому что активно пишу на шарп и котлин


Ну хуево ты пишешь. Где конкретно в этом месте поведение определяется формой кнопки?

>подход вида btn.setShape(new Circle(1));


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

>ты других языков и не видел


У тебя ахуенная фантазия. Продолжай.
931 2920617
>>20613

>Ну хуево ты пишешь


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

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

>У тебя ахуенная фантазия


а еще я постоянно зрю в суть дела. продолжаю.
932 2920619
>>20602
Мань, ты не уринировал, ты просто набредогенерировал. Тут буквально ни одного высера по делу, только складывание лапок (сливы) и повторение уже обоссанного. Раньше хотя бы уж что-то в ответ высирал, теперь вообще нихуя.

> Нет. ДЕБИЛ. ты СПОРИЛ. я тебе говорю что это РАЗНЫЕ концепты. Концепт "все есть футуры" и концепт "корутины + футуры" похожи, но разные. И обладают разными плюсами и разными минусами. А ты, БЕСТОЛОЧЬ, их в один ряд ставишь


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


И долбоёб продолжает доказывать, что оно разное, когда суть в том, что у нас лучше...

> и без меня проводят. Да я не умею проводить тесты в обоих языках одинаково (и не должен), но синт тесты и без меня народ проводит и там разные выхлопы


Слив принят.

> а кому еще.


Тебе объяснили, кому...

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


Говорил именно что с тобой...

> кто чего ломает? что за вещи ломающие кросс? а ну просвети?


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


Оперативка вмещает последние два поста? >либ для гуёв и сред разработки<

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


Так это вообще тогда не задача библиотеки для гуя. Так-то идея MVC в этом. Вот этот анон прав >>20608. Это что получается, раз ты говорил не про изменение внешнего вида без изменения кода простой загрузкой темы, то на петушарпе такого нет, а на джаве есть, и опять отработала вторая теорема шарпана?

>>20602

> 1 много где еще используется тупо старая версия жавы и им срать на твои лобки и виртуальные треды


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

> твоя реальность. в общем то, ты за этим в этот терд и пришел


То есть по делу ничего не скажешь? Слив принят.

> а кто? это ты сюда пришел. причем тебя сюда не звали


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


> зачем? хз. тут никто не понимает. может ты мазохист.


Пидоран со стрелочным мышлением опять продолжает кукарекать что-то про меня, когда речь шла про >комьюнити шарпоговна в сравнении с жабовским<.
932 2920619
>>20602
Мань, ты не уринировал, ты просто набредогенерировал. Тут буквально ни одного высера по делу, только складывание лапок (сливы) и повторение уже обоссанного. Раньше хотя бы уж что-то в ответ высирал, теперь вообще нихуя.

> Нет. ДЕБИЛ. ты СПОРИЛ. я тебе говорю что это РАЗНЫЕ концепты. Концепт "все есть футуры" и концепт "корутины + футуры" похожи, но разные. И обладают разными плюсами и разными минусами. А ты, БЕСТОЛОЧЬ, их в один ряд ставишь


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


И долбоёб продолжает доказывать, что оно разное, когда суть в том, что у нас лучше...

> и без меня проводят. Да я не умею проводить тесты в обоих языках одинаково (и не должен), но синт тесты и без меня народ проводит и там разные выхлопы


Слив принят.

> а кому еще.


Тебе объяснили, кому...

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


Говорил именно что с тобой...

> кто чего ломает? что за вещи ломающие кросс? а ну просвети?


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


Оперативка вмещает последние два поста? >либ для гуёв и сред разработки<

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


Так это вообще тогда не задача библиотеки для гуя. Так-то идея MVC в этом. Вот этот анон прав >>20608. Это что получается, раз ты говорил не про изменение внешнего вида без изменения кода простой загрузкой темы, то на петушарпе такого нет, а на джаве есть, и опять отработала вторая теорема шарпана?

>>20602

> 1 много где еще используется тупо старая версия жавы и им срать на твои лобки и виртуальные треды


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

> твоя реальность. в общем то, ты за этим в этот терд и пришел


То есть по делу ничего не скажешь? Слив принят.

> а кто? это ты сюда пришел. причем тебя сюда не звали


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


> зачем? хз. тут никто не понимает. может ты мазохист.


Пидоран со стрелочным мышлением опять продолжает кукарекать что-то про меня, когда речь шла про >комьюнити шарпоговна в сравнении с жабовским<.
933 2920622
>>20602

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


Шарподебил до сих пор не может понять, что все наработанные хоть в 1995 джавовские проекты работают на современной джаве и пользуются всеми современными её фичами. Видимо всё-таки сильно по мозгам хуярит писание на петушарпе.
934 2920628
>>20617

>в впф я могу сделать комбобокс с прогрессбарами из кпноко с котиками и все это внутри таблицы. то есть задается шаблонами (и не кодом)


Скачай, потыкай https://gluonhq.com/products/scene-builder/
Потом эта хуйня в fxml переводится. Поведение задается отдельно. Попаболь может возникать только с динамическими данными и то решаемо. Кстати, лучше чем в впф, но имхо.

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


https://stackoverflow.com/questions/25043990/styling-button-in-javafx-using-css
Можно через css, причем в той же хуете сверху. Вроде есть интерфейсы для изменения ui в коде, но мне щас лень искать.

>ну ничем не отличается от QT


А в чем проблема с QT? Ты поклонник GTK?

>а еще я постоянно зрю в суть дела.


Везет же
935 2920633
>>20602

> нет. они просто разные. Есть разные показатели - скорость, гибкость, возможности и так далее. Что то менее быстрое но мощное оно хуже? да ну. Вот я беру даппер за скорость, но он не дает мне возможностей что дает EF или хибернате. Так значит хибернате говно выходит? нет. просто у каждого свой набор лучше хуже и тут кому что нужнее. А ДЕБИЛ справнивает чисто по генерации хелло ворлд. не не долбоеб ли.


Ну так проведи нормальные сравнения, раз уж тебе не нравятся такие сравнения.
936 2920636
>>20619

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


не. это твоя парафия. это ж ты у нас любишь говорить " в шарпе нет того то (на деле есть), а в жаве есть( на деле нет)" от чего я просто...ну в ахуе я

> когда суть в том, что у нас лучше


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

>Слив принят


что поделать. я не пишу на жаве и конечно не умею делать бенчи правильно. впрочем я и на шарпе не делаю бенчи. я на шарпе ДЕНЬГИ ЗАРАБАТЫВАЮ, а не бенчаю

>Тебе объяснили, кому...


это тебе так кажется

>Говорил именно что с тобой...


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

>>либ для гуёв и сред разработки<


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

>Так это вообще тогда не задача библиотеки для гуя. Так-то идея MVC в этом


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

>что на шарпоговне меньше динозавров, чем на джаве.


и это ж хорошо. разве нет? хахаха

>А ломбок он вообще работает даже на 6 джаве.


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

>То есть по делу ничего не скажешь? Слив принят.


по какому делу. ты пришел пожрать говна. ты жрешь. о чем еще говорить?

>комьюнити шарпоговна


шарписты идут в ваш тред жавы и несут там хуйню? нет. значит иди нах фантазер.

>>20622
верю что работают. а зачем? ну и брехня про современные фичи
старый код НЕ ЗНАЕТ про современные фичи. он просто стартует в рантайме и...все

>>20628

>Скачай, потыкай https://gluonhq.com/products/scene-builder/


ой как похоже на Qt Designer
прямо нет разницы.

>Можно через css, причем в той же хуете сверху


ну нет отличий от QT совсем уже вижу. Кстати этот рендер на стилях он же небось не бесплатный да. Ведь закос под вебдижок он же не может быть бесплатным

>А в чем проблема с QT?


ни в чем. просто имел с ним дело. и когда смотрю на жавафх то вижу прямо "ну тот же подход"

>Везет же


а то. я никогда не ошибаюсь когда называю жависта говноедом

>>20633

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


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

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


не. это твоя парафия. это ж ты у нас любишь говорить " в шарпе нет того то (на деле есть), а в жаве есть( на деле нет)" от чего я просто...ну в ахуе я

> когда суть в том, что у нас лучше


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

>Слив принят


что поделать. я не пишу на жаве и конечно не умею делать бенчи правильно. впрочем я и на шарпе не делаю бенчи. я на шарпе ДЕНЬГИ ЗАРАБАТЫВАЮ, а не бенчаю

>Тебе объяснили, кому...


это тебе так кажется

>Говорил именно что с тобой...


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

>>либ для гуёв и сред разработки<


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

>Так это вообще тогда не задача библиотеки для гуя. Так-то идея MVC в этом


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

>что на шарпоговне меньше динозавров, чем на джаве.


и это ж хорошо. разве нет? хахаха

>А ломбок он вообще работает даже на 6 джаве.


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

>То есть по делу ничего не скажешь? Слив принят.


по какому делу. ты пришел пожрать говна. ты жрешь. о чем еще говорить?

>комьюнити шарпоговна


шарписты идут в ваш тред жавы и несут там хуйню? нет. значит иди нах фантазер.

>>20622
верю что работают. а зачем? ну и брехня про современные фичи
старый код НЕ ЗНАЕТ про современные фичи. он просто стартует в рантайме и...все

>>20628

>Скачай, потыкай https://gluonhq.com/products/scene-builder/


ой как похоже на Qt Designer
прямо нет разницы.

>Можно через css, причем в той же хуете сверху


ну нет отличий от QT совсем уже вижу. Кстати этот рендер на стилях он же небось не бесплатный да. Ведь закос под вебдижок он же не может быть бесплатным

>А в чем проблема с QT?


ни в чем. просто имел с ним дело. и когда смотрю на жавафх то вижу прямо "ну тот же подход"

>Везет же


а то. я никогда не ошибаюсь когда называю жависта говноедом

>>20633

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


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

>и когда смотрю на жавафх то вижу прямо "ну тот же подход"


А в чем аргумент? Типа похоже и...? Какой ты вывод из этого сделать хочешь?
938 2920640
>>20639
в том что это не совсем то же самое что впф
ты настраиваешь стили, но стиль не то же самое что переопределить шаблоны
да ты можешь с помощью дизайнера что то там создать, но это же опять контейнер компоновки из каких то элементов. это не совсем полный кастом
и даже если так (чего я проверить не могу) - то не выглядит легким, когда впф именно задуман под такое легкое переопределение визуальной части
.jpg226 Кб, 1080x941
939 2920641
Угадайте, кто.
940 2920649
>>20640

>в том что это не совсем то же самое что впф


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

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


Ну хуй знает, где там легкое. Помню я заебался кондишен сделать. Ну скажем пользователь вошел в приложение, надо скрыть кнопачки и высветить его имя. Так такие костыли блять, что я ебал это делать. Просто забил на впф и шарп туда же. Сука, ссылку на верхний класс во вложенный не давать по дефолту, форичи по child классам делать и ошибку не кидать.. Это ж долбоебизм.
941 2920677
>>20649

> Я думал все гуи давным давно сдохли


думай дальше. все так думают. а на деле ты даже щас пишешь в браузере который не в браузере )
просто да, мир идет по пути ГОВНА когда все пихают в браузер. только ПРИЧЕМ ТУТ ЖАВА?????????

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

>Ну хуй знает, где там легкое


не буду спорить. херни там много. но все таки переопределение визуального шаблона делается не через костыли, а через дефолтные механизмы
просто хмл ну такой себе выбор
А оно все "такой себе выбор". тут без вариантов.
942 2920683
>>20636

> было бы оно лучше я бы тут щас ссал бы кипятком


То есть ничего по сути в ответ не высрешь? Слив принят.

> что поделать. я не пишу на жаве и конечно не умею делать бенчи правильно. впрочем я и на шарпе не делаю бенчи. я на шарпе ДЕНЬГИ ЗАРАБАТЫВАЮ, а не бенчаю


Не ворочайся, слитое.

> это тебе так кажется


То есть ничего по делу не скажешь? Слив принят.

> нет. не забывай. жавистов тут 1-2 долбоеба, а шарпистов много и не каждый кто тебя говном называет является мной.


Флажок с логотипом джавы в анус вставишь с пруфами, если покажу сообщение, в котором тебе было сказано об этом?

> и если либ для гуев


Винформс.

> а среда разработки


Вижуал студио.

> и это ж хорошо. разве нет? хахаха


То есть пруфов не будет? Слив принят.

> по какому делу.


По делу доказательств того, что сраньё одной жопы в рот оправдывает поедание говна.

> не приведу.


Слив принят.

> а зачем?


То есть даже не то чтобы два сообщения в памяти хранить, ты как single-turn gpt отвечаешь только на последнее? Затем, чтобы старые огромные проекты продолжали работать, которые ты как аргумент за петушарп привёл.
942 2920683
>>20636

> было бы оно лучше я бы тут щас ссал бы кипятком


То есть ничего по сути в ответ не высрешь? Слив принят.

> что поделать. я не пишу на жаве и конечно не умею делать бенчи правильно. впрочем я и на шарпе не делаю бенчи. я на шарпе ДЕНЬГИ ЗАРАБАТЫВАЮ, а не бенчаю


Не ворочайся, слитое.

> это тебе так кажется


То есть ничего по делу не скажешь? Слив принят.

> нет. не забывай. жавистов тут 1-2 долбоеба, а шарпистов много и не каждый кто тебя говном называет является мной.


Флажок с логотипом джавы в анус вставишь с пруфами, если покажу сообщение, в котором тебе было сказано об этом?

> и если либ для гуев


Винформс.

> а среда разработки


Вижуал студио.

> и это ж хорошо. разве нет? хахаха


То есть пруфов не будет? Слив принят.

> по какому делу.


По делу доказательств того, что сраньё одной жопы в рот оправдывает поедание говна.

> не приведу.


Слив принят.

> а зачем?


То есть даже не то чтобы два сообщения в памяти хранить, ты как single-turn gpt отвечаешь только на последнее? Затем, чтобы старые огромные проекты продолжали работать, которые ты как аргумент за петушарп привёл.
943 2920694
>>20683

>Слив принят


>>20683

>Слив принят.


>>20683

>Слив принят


>>20683

>Слив принят.



Обезьяна совсем обезумела, становится страшно.
944 2920698
>>20694
Хочешь сказать, что не слит? Тогда ответь по делу.
945 2920704
>>20698
Долбаёб, я с тобой вообще беседы не виду, просто зоонаблюдаю, таблетки прими.
946 2920706
>>20704
Ну так не влезай, если не хочешь получить лишнюю урину на ебальник.
947 2920707
>>20698
с жавадебилом говорить бесполезно
если ОНО НЕ ПОНЯЛО аргументации то считает за слив
пей урину долбоеб, а я пройду мимо
948 2920713
>>20706

>урину


Это твое питание на протяжении второго треда, но ты неугомонен, ебанат. Джавпараша полностью высушила твой ганглий или его никогда не было?
949 2920714
>>20707

>>пруфы будут?


>нет, не приведу


>не поняло аргументации


Ясн, ты иди зашивайся.
950 2920715
>>20713
Не нервничай, а то сил на гетсеты не хватит.
951 2920718
>>20715

>Не нервничай, а то сил на гетсеты не хватит.


Какие гетсеты, обезьяна в цикле? Охуеть. Пошел нахуй из треда тебе говорят, животное.
952 2920722
>>20718
Ну {get; set} которые, которые даже я заебался уже в треде в полном виде писать чтобы вас в парашу макать, а вы которые не устаёте писать каждый день.
953 2920728
>>20722
Долбаёб, если твой работа писать нет сеты а мы оба знаем что твоя работа - жрать говно, то смени ее. Джава обезьяна, я понимаю, это тяжело осознать, но у нормальных людей программирование не состоит из написания миллиарда dtошек. Такое программирование только в вашей джавапараше, поэтому и приходиться всякие ломбоки применять.

Но лучше бы ты, уебок, применил лоботомию. Как же в треде стало хорошо.
954 2920730
>>20728

>нинужно


Пынял.

Алсо, я же сказал не нервничать...
955 2920744
>>20730

>нинужно


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

>Пынял.


Так как из /b сбежало, дурное?

>Алсо, я же сказал не нервничать...


Таблетки, шизло, таблетки. Ты не вызываешь ничего кроме жалости. Злость вызывает ленивая моча, которая не может тебе по башке тупой дать. Зато моча хорошо залетает тебе в ротешник тугой струёй второй тред, а ты жадно хватаешь каждую каплю, ублюдище
956 2920752
>>20744
Ну и зачем ты повторил "нинужно"?
957 2920775
Чуваки, а посоветуйте книги по wpf. Читал рихтера, с основными основами впф знаком (1.5 года интерпрайза)
958 2920781
>>20775
Нахуя тебе впф в 2023? Либо читай доку Авалонии либо Винурины 3
959 2920802
Для тех, кто еще не понял насколько жавист имбемцил, приведу пример
вот он задалбывает своим пишите гет сет
а давайте сравним

int Age {get; set;} = 10
и
@Getter @Setter private int age = 10;

никто не заметил что в жаве даже с вшивым лобком просто тупо больше писать и все равно НУЖНО писать аннтоации?
ну если на заметили то идем дальше

string name{get; ptotected set;} = 10
и
@Setter(AccessLevel.PROTECTED) private String name;

никто не заметил что жавист ТОЖЕ пишет эти геттеры и сеттеры просто как аннотации для вшивого лобка?
ну не заметили...ну и ладно

Это все, что требовалось знать об адекватности жаваимбецила в треде.

зы: примеры взяты с оффсайта лобка https://projectlombok.org/features/GetterSetter
960 2920804
>>20802
Этот долбоёб даже не понял, к чему претензия.

К тому, что геттер сеттер можно повесить на класс, а {get; set} надо возле каждой переменной хуярить.
961 2920811
>>20804
и что? это можно повесить на сниппет
и не каждое поле должно быть свойством? не понимаешь?
а для случаев когда должно есть рекорды

в шарпе можно кстати НИЧЕГО не вешать
это просто будут поля, но вести они себя будут..как поля
и ПОТОМ можно превратить их в свойство и СИНТАКСИС ВЫЗОВА не изменится

вызов поля
obj.Age = 10
вызове такого же свойства с сеттером
obj.Age = 10

бинарно да, разница есть. но на уровне кода нет
впрочем эти несчастные гет сет....я уже пояснил про рекорды
962 2920812
>>20802

>@Setter(AccessLevel.PROTECTED) private String name;


Вкусно, вот это джавадебилы гурманы.
963 2920814
>>20811
Ну так если можно, показывай, как повесить гетсет на класс.
964 2920815
>>20812
Не отвлекайся, а то норму по гетсетам увеличат в два раза.
965 2920828
>>20815

>Не отвлекайся, а то норму по гетсетам увеличат в два раза


Смешная мантра, мань. Особенно она смешна теперь на фоне высера в ломбоке. Вот это починили джавапарашу так починили, посыпали понос сухим говном, ух победа.
966 2920831
>>20828
Если ломбок это высер, то я боюсь представить, что там с петушарпом, если там даже гетсет на класс повесить нельзя...
967 2920840
>>20831

>Если ломбок это высер


>@Setter(AccessLevel.PROTECTED) private String name


>Если



Апофоез жавадебилизма. От урины совсем плохо бедняге.
968 2920844
>>20831
А зачем вешать на класс дебил
В жаве лобок делает гет сет для приватных полей. То есть пишет методы вместо компилятора (ведь разрабы жавы срут десятилетиями на жавадебичей)

В шарпе свойство это самостоятельный элемент
И даже рефлексия о нем знает, а не тупо дописанные методы

но
жавадебич такой дебич
969 2920848
>>20840
Так почему шарпоговно ещё хуже?
970 2920849
>>20844
Ну не знаю, наверное чтобы на каждое поле отдельно не вешать.
971 2920850
>>20848
Согл, долбоеб, лобок очень крутой, вот бы у нас в шарпе можно было писать @Setter(AccessLevel.PROTECTED) private String name...
972 2920851
>>20850
Ясн, дебилоид на смехуёчки после интенсивного обоссывания перешёл.
973 2920852
>>20849
Для этого есть рекорды
А свойство это спец элемент, а не просто указание компилятору дописать за тебя методы
Конечно проще написать свойство, чем поле, но это далеко не всегда верно.
974 2920853
>>20852

>рикорды


А в обычном классе никак? Жаль шарподаунов.
975 2920854
>>20851
Подожди, джавадебил, держи рот шире - почему джавапараша до сих не может кодгенить свойства и вашу обосранную жопу приходится затыкать васянской либой?

Почему, джавадебил?
976 2920857
>>20854
Так на вопрос, как в шарпоговне повесить гетсет на класс не ответишь значит?
977 2920860
>>20854
Есть record...
978 2920861
>>20857
Ожидаемый слив джавадурачка принят. Крепче сжимай анусом лобок, манюнь.
979 2920862
>>20853
Сорс генераторы и фоди могут все
Только ценность этого идиотизма низкая.
И поэтому сторонников нет
Это в жаве где другого пути нет - они жрут и выдумывать говно
В шарпе никого не парит написать гет сет тем более что это делает сниппет
И сразу видно где поле, а где свойство (напомню жовососу что это разные по своей сути элементы)
980 2920864
>>20861
Слив принят.
981 2920865
>>20862

> фоди


Без поддержки в ide бесполезно.
982 2920867
>>20865
У сорс генераторов она есть
На таком принципе свойства пишет фреймвворк от мелких (INPC свойство)

Но лично для меня и миллионов шарпистов просто ДИКО писать приватное поле и превращать его магией в обычное свойство.... Просто потому что гладиолус
Когда можно просто написать , по которому
а) Видно что оно свойство. Никакой магии. Не нужно догадываться о скрытой генерации "это приватное поле станет свойством, ТЕМ более если указание находится не рядом, а где то ьам"
Б) сразу видно уровни доступа (а они бывают разные, не знал?)
в) это свойство как специальный элемент для рефлексии
Г) жавист имбецил
983 2920869
>>20867
Ну раз всё есть, показывай, как в вашем говне повесить гетсет на весь класс или его аналог.
984 2920872
>>20869
Кому это вообще нужно
Это в жаве ты пишешь приватные бэкфилды и просишь сгенерить для них
В жаве ты ВЫНУЖДЕН писать именно так

В шарпе пишется сразу нужное и генерация попросту не нужна
Не натягивай ВЫНУЖДЕННЫЙ УЕБИЩНЫЙ подход жавы на другие языки где таких проблем в принципе нет
985 2920873
>>20872

>всё есть!


>где


>нинужно!


Лол.
986 2920874
>>20860
Ну так они и в шарпе есть, манюнь. И ты это знаешь. Ты в целом все знаешь и понимаешь. И с рекордами даже не надо писать гет сеты. И ты это знаешь. И даже без протыка васянской либой. И ты это знаешь, джавуринодебильная обезьяна.

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

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

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

Джавадебил, пора очнуться - сопротивляйся кабану. Лучше один раз сжать челюсти, не сожрав @Setter(AccessLevel.PROTECTED) private String name, чем постоянно сжимать анус, пытаясь удержать пятикратно переваренный джавапонос.
987 2920877
>>20874
Ебать оно от отсутствия гетсетов на классе бахнуло.
988 2920878
>>20873
смотрите
ИМБЕЦИЛ предлагает написать так

private int age;
private String name;
private String foo;

и потом попросить сгенерить из этих бэкфилдов свойства, когда можно спокойно СРАЗУ писать
public int Age {get; set;}
public String Name {get; set;}
public String Foo {get; set;}

при этом эти несчастные гет сет которые ОДНОЗНАЧТНО указывают на то что это свойство (что ВАЖНО), и без всякой магии, будут написаны тупо идешкой со сниппета

но нет. ИМБЕЦИЛ предлагает именно путь магии. В его УЕБИЩНОМ языке просто другого пути нет - вот он и считает это верным. А то что в других языках магия НАХЕР НЕ НУЖНА - долбоебу понять не получается

в общем иди учи другие языки, дебил. а я вторникать.
989 2920879
>>20878

> ИМБЕЦИЛ предлагает написать так


>короткий код


> когда можно спокойно СРАЗУ писать


>бойлерплейт


Лол.
990 2920882
>>20878

>В его УЕБИЩНОМ языке просто другого пути нет - вот он и считает это верным.


В хаскеле без магии даже IO не работает...
991 2920887
перекат >>2920885 (OP)

я вас умоляю не кормите залетного перед НГ хотя бы
# OP 992 2920889
>>20887
легитимный
993 2920891
>>20879
твои привате бэквфилды не бойлерплейт?
такие самые же
в жаве пишешь бэкфилды и генеришь гет сет
в шарпе сразу пишешь гет сет и сгенерятся бэкфилды

в чем разница имбецил?
НЕ ОТВЕЧАЙ.
994 2921589
>>10820 (OP)
Прошу прощения, что прерываю ваши срачи. Но мне нужен совет знающих людей. Я слышал от вас, что все самые крутые программисты пишут на шарпах. Ну вот подскажите пожалуйста.
Есть предприятие. В нём десятки разных рассылок. Большинство из них отбирают получателей всяким хитроумным образом по неким данным о случившихся событиях. Всё это захардкожено в разных местах. Периодически захардкоживается сам получатель или даже только его мейл или номер телефона, куда слать смс.
В итоге есть куча получателей, которые уже давно уволились и куча потенциальных получателей, которые даже не знают, какие рассылки специально для их должности уже сделаны, и служба поддержки, которая затрудняется всё это перенастраивать. Плюс компания на одних только смсках теряет кучу бабла, тогда как у всех сотрудников есть емейлы, есть приложения от нашей же компании, но мы всё равно шлём смс "для надёжности".
А как это у вас сделано и организовано?
995 2921653
>>20878

>>когда можно спокойно СРАЗУ писать


>>public int Age {get; set;}


В современной джаве правильнее писать без гет/сет. Все это говно должно умереть вслед за IInterface и Impl.

>>эти несчастные гет сет которые ОДНОЗНАЧТНО указывают на то что это свойство (что ВАЖНО)


Просто не пиши логику в геттерах и сеттерах.
Это конечно не работает с рич моделями, но нехуй слушать этого вашего ункл боба и его "чистым" говном.
996 2921744
>>21589
Кидаешь уведомления в шину евентов (ребит/кафка). Сервисы рассылки подключаются и слушают. Получив ивент своего типа мейлы/смс и тп делают свое дело.
Сервис смс уведомлений можно просто выключить - система не сломается.
В самом евенте отмечаешь получателей рассылки - группы или ид пользователей.
Сервис рассылки уже по группам/ид сам достанет что ему там надо - телефоны/емейлы. как неважно - хоть по ресту

То есть сервисы рассылки только шлют уведомления, кому они заранее не должны знать.

Сама логика определения кому рассылать - на стороне сервиса который эвенты создает.
Какая логика - тут абстрактно не скажешь. Наверное там какие то группы потребителей есть. Заблокированных / уволенных где то в этом месте надо фильтровать.
Если надо прям конкретному пользователю что то отправить - то надо вынести его из хардкода в конфиги.
997 2921881
Как с 8 джавы перекатиться на 8 дотнет?
998 2922422
>>21881
обновиться до 21 жавы и можно не перекатываться
999 2922429
>>22422

>обновиться до 21 жавы


Нужно что-то более реалистичное.
1000 2922505
перекати меня, братан
1001 2922690
1002 2925392
Я выучил основы сисярпа, что мне дальше делать/учить?
Тред утонул или удален.
Это копия, сохраненная 23 января в 15:21.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски