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

C# 8 дотнета тред #52 /csharp/

 Аноним 07/11/23 Втр 15:59:28 #1 №2910820 
image.png
image.png
image.png
Предновогодний тред лучшего языка на планете.

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)

Внимание, в тред повадился срать джавадебил. Шарпочане, игнорируйте, а лучше репортите. Главное - не кормите.
Аноним 07/11/23 Втр 17:29:24 #2 №2910942 
Шарп гораздо лучше, чем жаба.
Аноним 07/11/23 Втр 21:01:00 #3 №2911229 
>>2910820 (OP)
> 5. С# для мобильной разработки
> — https://docs.microsoft.com/ru-ru/dotnet/maui
А оно не протухнет как обычно через пару лет? А почему оно телевизоры не поддкрживает?
А что с Xamarin?
Аноним 07/11/23 Втр 21:09:44 #4 №2911240 
>>2911229
Ничто не убьёт божественные винформы.
Вообще, MS такого высокого мнения о своих либах для гуя, что VSCode сделали не на них, а на электроне с поддержкой "ненужного" линукса, лол. В ближайшие лет 10 они создадут ещё несколько убийц винформ, не работающих на линуксе, но сами их использовать не будут.
Аноним 07/11/23 Втр 21:14:49 #5 №2911249 
>>2911229
ну так мауи и есть развитие xamarin на разные платформы (нинужна)
Аноним 07/11/23 Втр 21:35:17 #6 №2911296 
В треде воняет жаваговном. Фу.
Аноним 07/11/23 Втр 21:47:50 #7 №2911332 
.png
Аноним 07/11/23 Втр 22:01:41 #8 №2911355 
image.png
Языки с левостороними типами, без функций, с обязательной точкой запятой - должны уйти в истории.
Аноним 07/11/23 Втр 22:06:29 #9 №2911362 
>>2911355
Не уйдут никогда, ведь тебе тогда срать будет негде.
Аноним 07/11/23 Втр 22:12:59 #10 №2911371 
>>2911240
>>2911249
Я посмотрел, что это такое.

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 присвоить, а когда надо будет, то я могу явным образом это указать.
Аноним 07/11/23 Втр 22:19:33 #11 №2911380 
>>2911371
> мне нахер не нужна эта возможность позже null присвоить
А при чём тут присваивание? Мутабельной ссылке ты и так можешь присвоить нулл без всяких вопросиков. Вопросики нужны, чтобы заставить тебя написать проверку на нулл.
Аноним 07/11/23 Втр 22:38:11 #12 №2911397 
>>2911371
>Щас ещё наткнулся на
А в котлине как?
Аноним 07/11/23 Втр 22:38:22 #13 №2911399 
>>2911355
Котлин даже джавистам оказался не нужным, а автора языка недавно уволился из жидбрейнс.
Аноним 07/11/23 Втр 22:46:34 #14 №2911407 
>>2911399
>а автора языка недавно уволился из жидбрейнс.
Там фонд, насрать.
>Котлин даже джавистам оказался не нужным
Некоторым джавистам и новая джава не нужна, представь этот уровень дна.
Аноним 07/11/23 Втр 22:49:01 #15 №2911412 
>>2911380
Я не хочу писать проверку на null там, где она не нужна.
Если SomeMethod возвращает не nullable, то мне не нужно переменную как nullable помечать.
Я нашёл причину, по которой разработчики шарпа сделали так: оказывается, когда var просто копировал типа, у легаси проектов при включении этого флага было очень много ворнингов. Лицорука.

>>2911397
Ты меня перепутал с кем-то, я не жабопетух. Я пишу на шарпе все свои 10+ лет карьеры и очень хорошо к нему отношусь. Вот эта хуйня с превращением типа в nullable в var — это первое, что меня возмущает во всех изменениях шарпа с тех самых пор, как я вообще впервые на нём что-то стал писать.
Аноним 07/11/23 Втр 22:50:54 #16 №2911419 
>>2911399
Понятное дело, Котлин - это такой узкоспециализированный язык для разработки под Андроид.
Аноним 07/11/23 Втр 22:57:03 #17 №2911432 
>>2911371
>эта возможность позже null присвоить
увы нулсафети ввели сильно позже.

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

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

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

>>2911419
и кстати ахуенный. жетпак композ прямо няшный вышел. всякие там хамлы - ну нафиг их
Аноним 07/11/23 Втр 23:06:18 #18 №2911446 
>>2910820 (OP)
аноны, короч я 4 года уже не кодил на C#, появилось желание вкатиться))))
какой проект можно сделать чтобы в резюмеху на джуна оставить?
какой-нибудь CRUD норм будет?
Аноним 07/11/23 Втр 23:16:09 #19 №2911455 
>>2911446
> чтобы в резюмеху на джуна оставить
Забудь об этом, пустая трата времени.
> какой-нибудь CRUD норм будет?
Да. Но постоянно держи в голове, что проект ты пишешь в учебных целях, а не для бесполезной ссылки на гитхаб в резюме.
Аноним 07/11/23 Втр 23:20:25 #20 №2911462 
>>2911455
пойду круд сделаю тогда
Аноним 07/11/23 Втр 23:22:28 #21 №2911468 
>>2911462
лучше сделай 100 крудов
Аноним 07/11/23 Втр 23:23:01 #22 №2911471 
>>2911468
и бочку
Аноним 07/11/23 Втр 23:23:51 #23 №2911473 
>>2911471
Это к жавистам.
Аноним 07/11/23 Втр 23:23:54 #24 №2911474 
>>2911468
Это больше тянет на энтерпрайз решение, чем на вкатунский проект.
Аноним 07/11/23 Втр 23:30:19 #25 №2911481 
>>2911432
> увы нулсафети ввели сильно позже.
Так они сначала сделали нормальный null safety, где всё строго, а потом сделали шаг назад, где var везде nullable подставляет для ссылочных типов. Я не хочу везде имя типа писать, потому что это уёбищно. А так мне студия пишет ворнинги, дескать я методы вызываю у nullable значения, хотя я только что получил его из метода, который возвращает всегда не null, потому что у них убогий анализатор. Спиздили бы хоть этот самый анализатор из тайпскрипта, там и то выведение типов лучше работает.
Аноним 07/11/23 Втр 23:33:36 #26 №2911487 
>>2911481
>Так они сначала сделали нормальный null safety, где всё строго
не фантазируй
его они сделали намного позже поверх того что было
и в шарпе при этом в принципе нет val как в котлине

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

А знаешь что еще дешево - труд того кто делает круд
Аноним 08/11/23 Срд 00:01:48 #27 №2911506 
Untitled.png
>>2911487
> не фантазируй
> его они сделали намного позже поверх того что было
Я не знаю, что ты хочешь этим сказать.
Я пишу на шарпе с .Net FW 2.x (не помню точно), и конечно никакой null safety тогда не было.
Что я имею в виду, так это то, что у них была первая версия null safety, может это была и бета, это я тоже не помню, но там var просто копировал тип из правой части. А сейчас он берёт тип, и если он ссылочный, то делает его nullable. Это мне совершенно не нравится.
> и анализатор не выводит из метода (это обычно дорого). он смотрит на сигнатуру (а это дешево)
А вот нихуя, кам как раз есть какой-то анализ кода. Пикрелейтид. Посмотри внимательно.
Аноним 08/11/23 Срд 00:15:28 #28 №2911516 
>>2911506
>А сейчас он берёт тип, и если он ссылочный, то делает его nullable
он не делает его нуллабле. он изначально такой. всегда можно присвоить нулл и никто не запретит. Что он и помечает.

Так что не нужно смотреть на типы, смотри на варнинги и будет тебе все ...плохо, плохо тебе будет, а с чего тебе быть хорошо.
Аноним 08/11/23 Срд 02:41:35 #29 №2911636 
>>2911419
Тогда шарп это конвертер эксель таблиц в эксепшены.
Аноним 08/11/23 Срд 02:53:36 #30 №2911644 
>>2911636
В этом они похожи с жабой.
Аноним 08/11/23 Срд 04:00:27 #31 №2911653 
>>2911644
Тогда зачем мы ссоримся?
Аноним 08/11/23 Срд 04:04:19 #32 №2911654 
>>2911653
Есть тут один анон, который сидит в обоих тредах, прикидывается то джавистом, то шарпистом и подливает масло в огонь.
Аноним 08/11/23 Срд 04:55:18 #33 №2911659 
>>2911654
Это признание, даже в головах недалеких шарп стал сопоставляться с джавой. Еще недавно он воспринимался больше как свифт, мол где-то там под винду что-то.
Аноним 08/11/23 Срд 06:04:32 #34 №2911669 
>>2909840 →
Ну допустим. Как это отменяет хоть что-то из сказанного мной?

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

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

>>2909872 →
>Blackhole.consumeCPU
Ты совсем что-ли долбоёб?
Аноним 08/11/23 Срд 06:56:58 #35 №2911678 
>>2911669
>Джава же не петушарп, тут не принято жрать скормленное с лопаты.
Ел джаву более 10 лет, ситуация еще хуже, есть мейнстримные магические спринги, с нечитаемыми сорцами или ад сервлетов.

Любой шаг в сторону от топ стэка и ты жрешь багованые либы, с поверхностной документацией. Даже в пхп мире качественных фреймворков было больше. Так что это классический звездеж разнообразия жабы, в реале ты ограничен одним и тем же, но качеством куда хуже (потому что пилили такие же как ты, много лет, слой за слоем).
Аноним 08/11/23 Срд 07:01:10 #36 №2911679 
>>2911678
Я серьезно, если джава еще терпимо-нормальная и тулинг неплох. То зоопарк либ, это худшее, что мог высрать тырпрайз и студенты.
Аноним 08/11/23 Срд 08:21:48 #37 №2911699 
>>2911678
Пруфы будут, или опять убежишь, поджав хвост, после первой просьбы подтвердить свои высеры?
Аноним 08/11/23 Срд 09:14:11 #38 №2911725 
>>2911699
Что тебе подтверждать, додик? Что евангелисты раздувают байку о гигантском арсенале либ на джаве, но в реале выбор сводится только к топам и все? Так это ты и без меня должен знать, если нюхал что-то кроме спринга и какого-нибудь вертикса.

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

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

Джава живет одними и теми же байками тонну лет за счет оплачиваемых евангелистов (их так правда и называют) так что поверь, где-то больше половины тем чем ты гордишься, на деле маркетинговый буллшит.
Аноним 08/11/23 Срд 09:20:46 #39 №2911735 
>>2911725
И сейчас ты мне рассказал, как твой злой евангелист в зеркале, баг рапидоида, дока андертова, спринг, который никто никогда оптимизированным не считал (лол) и нетти мешают следовать предложению пойти искать альтернативы какой-то найденной шарподебилом библиотеке.
Аноним 08/11/23 Срд 09:45:23 #40 №2911755 
>>2911446
>какой проект можно сделать чтобы в резюмеху на джуна оставить?
>какой-нибудь CRUD норм будет?
Круд на джуна слабовато в нынешних реалиях. Делай полноценный сервис, что-нибудь вроде сервиса бронирования или электронной очереди.
Аноним 08/11/23 Срд 10:30:06 #41 №2911821 
>>2911735
Слив засчитан.
Аноним 08/11/23 Срд 10:52:45 #42 №2911847 
>>2911821
То есть не ответишь? Слив принят.
Аноним 08/11/23 Срд 11:12:19 #43 №2911863 
>>2911446
По нынешним временам тощего круда может и не хватить. У всяких выпускников жидбрейнса в гитхабчиках тоже говнокруды лежат.

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

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

Да, выглядит как очень дохрена для джуна. Но я бы отдал июню с таким проектом приоритет, так как ему, скорее всего, не придётся объяснять совсем базовые штуки, и он сможет быстро начать хотя бы поверхностно понимать, что у нас в коде сервисов происходит. А значит ему можно будет поручать делать какие-то базовые штуки. Плюс, скорее всего, он будет способен внятно сформулировать вопросы, если они возникнут.
Аноним 08/11/23 Срд 11:59:53 #44 №2911928 
>>2911863
>Да, выглядит как очень дохрена для джуна.
На самом деле для джуна как раз. Причем, что институтского уровня, что после курсов (ессно нормальных курсов хотя бы на полтора...два года с предварительной базой по программированию).
Я бы может только кафку и рэбит выкинул, т.к. для соло проекта они нахуй не уперлись.
Аноним 08/11/23 Срд 13:50:54 #45 №2912080 
>>2911863
О, я как раз такой проект сделал, ну кроме метрик и докера. И еще на жабке. Как на собес попасть?
Аноним 08/11/23 Срд 13:56:09 #46 №2912088 
>>2912080
>Как на собес попасть?
Удача, упорство, связи.
Сам по себе проект тебе в этом не поможет, даже если ты их несколько штук в резюме запихнешь.
Аноним 08/11/23 Срд 13:57:22 #47 №2912090 
>>2912080
Если на жабе то через стажировки в бигтехе. Первый язык вообще не важен, нужен опыт.
Аноним 08/11/23 Срд 13:59:51 #48 №2912095 
>>2912088
>Удача
Пожелаешь?
>>2912090
Чет мне кажеца это слишком амбициозно. Тащемта еще есть варик через стажировки.. Надо пробовать.
Аноним 08/11/23 Срд 14:08:19 #49 №2912112 
2023-11-0814-04-38.png
В чем отличие двух подписок на событие в пикрил? Почему во втором случае используется какой-то SizeChangedEventHandler?
Аноним 08/11/23 Срд 14:38:07 #50 №2912182 
>>2911654
не прикидывается он шарпистом
он жавист говноед. просто в его говно насыпали немного сахара и немного язык продвинулся вперед. (но так и остался убогим говном), а он рад что его говно в синтетике типа шарп обходит (в удобстве то обойти не может даже с лобком волосатым).

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



с другой стороны, мне вот не нравится что сорсгенераторы в шарпе требуют от меня partial, а не работают как тот же фоди или тот же лобок волосатый
Аноним 08/11/23 Срд 14:42:13 #51 №2912188 
изображение.png
Принимайте в ряды очередного
Аноним 08/11/23 Срд 14:45:17 #52 №2912195 
>>2912112
а какая разница. это одно и то же.
событие - это делегат какого то типа, что будет вызван
ты в подписке все равно комбинируешь делегат
сахар просто позволяет опустить его упоминание.
Аноним 08/11/23 Срд 17:26:43 #53 №2912521 
>>2912188
Больше ломался
Аноним 08/11/23 Срд 17:47:18 #54 №2912552 
image.png
Почему так?
Аноним 08/11/23 Срд 17:50:49 #55 №2912556 
>>2911669
> String json = http.request(url, RequestType.GET, requestString);
Тебя мама не роняла в детстве вниз головой?
Напомню историю диалога:
Жабадебил: "Ваши async/await страшные и работают коряво"
Я: "Они работают не хуже джавовских коллбэков, а выглядят гораздо лучше"
Жабадебил: "Ну так не используй коллбэки!"
Я: "А как мне в джаве сделать веб-реквест без коллбэков?"
Жабадебил: "Вот тебе синхронный веб-реквест"

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

> Кто заставляет пользоваться такими библиотеками, если тебе они не нравятся?
Они все такие
Может мне своё написать? Я не могу из-за того, что жаба не умеет в асинки/эвэйты, хотя в них может даже js, и никакого нормального аналога в жаюе тоже нет.
Аноним 08/11/23 Срд 18:13:58 #56 №2912578 
>>2912556
Чел, харош. Гноби этого жабадебила
Мимо Kotlin господин, бывший шарпер
Аноним 08/11/23 Срд 18:17:14 #57 №2912585 
>>2912552
Ораклы всегда были такими пидорасами, что MS и не снилось. Проекты на жабе пересели с оракловой ждк на бесплатный свободный Temurin и его аналоги.
Аноним 08/11/23 Срд 18:18:32 #58 №2912588 
>>2912556
а он скажет что это котлин и что котлин это suspend функция.
Ведь скоро они и котлин будут считать "жава такая хорошая что вот аж котлин сделали как расширение синтаксиса жавы"

>>2912578
ну я пишу на котлин и на шарпе. В котлине нра синтаксис больше шарпа (но рантайм буэ). При этом писать с асинк/авайтами и токенами отмены мне сильно проще чем корутинами котлина и их еб...й системой распространения исключения.
Впрочем, в котлине я обычно использую flow ибо андроид и как то жить можно.
Аноним 08/11/23 Срд 18:19:27 #59 №2912591 
Двачи, допустим я пишу asp.net сервис с web api. Проект с api делаю зависимым от проекта с репозиторием, в котором есть класс интерфейса репозитория и класс самого репозитория с реализацией. В api пишу маппинг интерфейса и реализации, а в контроллере вызываю экземпляр типа интерфейса.

Всё вроде правильно? Интрфейс и репо класс должны быть в проекте репозитория?
Аноним 08/11/23 Срд 18:32:14 #60 №2912621 
>>2912578
Протухнет жаба, протухнет и котлин, вы на одном "корабле", чудики.
Аноним 08/11/23 Срд 18:41:10 #61 №2912636 
>>2912578
>Kotlin
Эти додики занимаются всякой херней, то транслятор в js пилят, то нейтив с ужасной производительностью, то dsl упарываются, то компилятор переписывают несколько лет, то какая-то мультиплатформа.

Там реально сидят такие школьники и фантазируют чтоли.
Они бы куда больше выиграли - написав транслятор в шарп или гошку, лол, но в итоге тухнут дальше на jvm, которую стали чаще дропать, а их IDE до сих пор на джаве, что пугает брать котлин во что-то серьезное кроме мобилок.
Аноним 08/11/23 Срд 18:51:51 #62 №2912660 
>>2912591
Да
Аноним 08/11/23 Срд 19:26:18 #63 №2912739 
>>2912636
>Они бы куда больше выиграли - написав транслятор в шарп или гошку
увы шарп вырос как вторая жава и тупо транслировать все банально не выйдет. Не сможет ни шарп (а тем более гошка) реализовать фичи котлина.
Фичи же шарпа (что не умеет котлин) тем более не помогут в этом деле.

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

впрочем ждем дотнета 8. хотя хз зачем ждем. там кучу всего навалили, а что из этого полезно - хз.
Аноним 08/11/23 Срд 19:28:14 #64 №2912742 
>>2912739
Чем рантайм шарпа лучше жабовского? Очевидно, жит у жабы лучше, а значит и оптимизации. Есть возможность написать кастомный гц, так еще есть несколько реализаций вм. Что же у шарпа? Одна версия на все. Вы рофлите типа так, да?
Аноним 08/11/23 Срд 19:33:33 #65 №2912755 
>>2912742
> Очевидно, жит у жабы лучше
С чего вдруг?
У шарпа вообще куда больше возможностей оптимазации. Есть value-типы, структуры, не все методы виртуальные, есть ансейв с арифметикой указалетей (не помню что там в жабе из натива, но вроде костыльно все было).

Жабий жит рожает только после 10.000 итераций и может откатить уже оптимизированый код.
Аноним 08/11/23 Срд 19:33:36 #66 №2912756 
>>2912742
наличием структур. в жава же оптимизированы под это только примитивные типы. Струтуры не нужны? - ну да, жависту они не нужны. он будет пердолится
наличие настоящих дженериков - в жаве можно извлечь тип далеко не всегда.

ну жит лучше, но это еще стандартная библиотека не очень оптимизированнная (ленятся)
И вообще то у шарпа как раз и был разнобой рантаймов, а теперь одна версия на все - дооптимизируют.
Тем более что притащили Native AOT и в дотнет 8 она станет еще лучше (я не использую ибо в моем случае время программиста который не пердолится с "да блять язык не ставь палки в колеса" стоит намного дороже чем вычислительные мощности)
Аноним 08/11/23 Срд 19:45:16 #67 №2912764 
>>2912755
Я че тебе все оптимизации должен называть...
Lock elision, ZGC/Shenandoah, compress class ptr и пр.
>Есть value-типы
Они не фуловые, поскольку их все еще можно индетифицировать. Т.е. гибрид.
>есть ансейв с арифметикой указалетей
Ты про https://shipilev.net/jvm/anatomy-quarks/5-tlabs-and-heap-parsability/ ?
>>2912756
>но это еще стандартная библиотека не очень оптимизированнная
Ну вообще стринги, очень оптимизированы, типа https://openjdk.org/jeps/254 автоматическое изменение в коде на StringBuilder + constexpr. Еще параллельный код написан дагом ли, вообще гений какой-то неиронично. Не ебу кто в шарпе писал, но вряд ли кто-то его уровня.
Аноним 08/11/23 Срд 19:47:47 #68 №2912769 
>>2912742
>Есть возможность написать кастомный гц
В .net тоже можно. Еще с Core 2.0
Аноним 08/11/23 Срд 19:49:52 #69 №2912773 
>>2912769
Ну и где гц с STW не более 1мс? Ну или хотя бы 10.
Аноним 08/11/23 Срд 19:55:01 #70 №2912780 
>>2912764
они там оптимизируют много чего но еще больше забывают.
Тот же LINQ хотя бы имеет кучу альтернативных реализаций потому что на него забили.
тот же стрингбилдеркеш вообще интернал.
мемористрим ужасен своим ООМ, а решение (путь и от майков все равно какашка ибо спроектировано не теми фломастерами)
контраинт new() использует рефлексию (ПОЧЕЕЕМУУУ)
безусловно читая исходный код я вижу всякие там спаны. но до сих пор ( и всегда) WTF (вы чем вообще думали??) хватает.
Аноним 08/11/23 Срд 20:04:01 #71 №2912801 
16922300250053.png
>>2912764
Я хз что там в дотнете, скорее всего давно все тоже самое, я лишь сказал что есть почва для еще большей оптимизации, которая в jvm уже не достичь. А пока там твой жит сработает он будет работать как питон, все алокации в хипе, таблица виртуальных функций, и прочая динамикодрисня.

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

Смотри, что получается, каждый патч в дотнете тонны оптимизаций, с графиками все как мы любим, в тоже время на жабе лежит болт уже лет 10-15. И кроме котлин сахара ничего не добавляют и не изменяют. Ты даже не представляешь в каком обмане ты живешь.
Аноним 08/11/23 Срд 20:07:27 #72 №2912809 
>>2912801
>я лишь сказал что есть почва для еще большей оптимизации
Ну пусть они как бы используют эту почву. Ну или дадут сторонним ей воспользоваться. А то я вижу ситуацию, что в шарпе котируется только майковские поделки, что как бы не норма. А еще они скупают что-то годное...
>только не неси мне тот костыльный звездец на жабе
Ясна
>в тоже время на жабе лежит болт уже лет 10-15
Слушай, если ты не интересуешься, то это твои проблемы как бы.
Аноним 08/11/23 Срд 20:09:00 #73 №2912811 
javacs.png
>>2912801
Ну и не забываем что жаба это проприатарная говнина, а клон monojdk openjdk дико тормозной.
Аноним 08/11/23 Срд 20:09:48 #74 №2912813 
>>2912780
Ты по моему френдлифаер делаешь...
Кстати, хвостовую рекурсию ведь не оптимизировали?
Аноним 08/11/23 Срд 20:17:33 #75 №2912825 
>>2912809
>Слушай, если ты не интересуешься, то это твои проблемы как бы.
В том то и дело, я вылез из джавы секты. Там реально лежит болт, хз почему там что-то быстрее, когда все застыло в 2007. Да там пытаются пихать продукты поверх жабы, но внутри то ничего не точат.

Вот как пример, когда запилили микро гц в го, евангелисты кричали, какое же это говно и какой у нас продуманный гц, не то что это ваш из и го. В общем, нам такое ненужно и тут же начинают пилить Shenandoah и рассказывать, какой это вообще прорыв и какие мы жабьи молодцы. Это смешно же.
Аноним 08/11/23 Срд 20:18:28 #76 №2912829 
>>2912591
>>2912660
Окей, а предположим
у меня три проекта:
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>(); !
Аноним 08/11/23 Срд 20:19:19 #77 №2912831 
>>2912825
>>2912811
>openjdk дико тормозной
>когда все застыло в 2007
>тут же начинают пилить Shenandoah
Ясна, ты зеленый.
Аноним 08/11/23 Срд 20:27:19 #78 №2912849 
>>2912831
Слив засчитан, жабёнок.
Там котлиновские корутины рвут ваш лум, иди туда воюй, на своей протухшей пропритарной говнине, не мешай опенсорс господам наслаждаться оптимизациями и новыми технологиями.

Оказывается на одних только заточках дотнета можно целый подкаст сделать.
Как просохнешь, приходи еще
https://www.youtube.com/watch?v=2xipjiwodp4
Аноним 08/11/23 Срд 20:29:19 #79 №2912854 
>>2912849
>приходи еще
О, ты ждать будешь, мила. Ну приду тогда
Аноним 08/11/23 Срд 20:36:25 #80 №2912870 
>>2912742
Как по мне, основная фича шарпового рантайма - нормально реализованные дженерики, которые не проебывают инфу о типе в рантайме и позволяют нормально работать с значимыми типами без лишних боксингов/анбоксингов. Плюс позволяют JIT-у генерировать оптимизированные версии для параметров значимых типов.
Ну и поддержка кастомных значмых типов (ака структурки) штука хорошая. Позволяют не так сильно GC нагружать. Ибо запихивать в хип что-то типа Pair<int, int> это немножко шиза.
Это всё и чуваки близкие к разработке Java-рантайма признают, типа того же Углянского (он у меня в универе семинары по проге вёл, лол. На няшной сишечке, правда).
Аноним 08/11/23 Срд 20:40:26 #81 №2912876 
image.png
>>2912870
Если б жаба не сделала стирание типов, то вот эта https://namin.seas.harvard.edu/publications/java-and-scalas-type-systems-are-unsound-existential-crisis-null-pointers штука такие последствия бы имела... В этом случае и слава богу, что не внедрили.
Остальное вальхалла должна сделать, но это к 2030, наверное
>он у меня в универе семинары по проге вёл
Блин, завидно даже.
Аноним 08/11/23 Срд 20:41:31 #82 №2912878 
>>2912813
У меня нет безмерной любви к шарпу. Я (мульти) язычник. Так что кривое видиться мне сильнее. Просто на шарпе я зарабатываю и люблю изящное
Шарп лучше жавы, но WTF в нем хватает. И когда от этого отмахиваются, то язык страдает.
Ну и детские болезни всегда о себе напоминают - нуллы, ридонлилисты, вары, нерасширяемые статики и т.д.
Аноним 08/11/23 Срд 20:48:00 #83 №2912891 
>>2912876
> Блин, завидно даже.
Я даже к ним на стажировку пытался попасть. (Тогда их компанию ещё Huawei не купил и они свою AOT JVM Excelsior.Jet пилили). Тестовое решил, а вот собеседование не прошёл. На собесе прям душили вопросами про всякие низкоуровневые штуки, типа алгоритма синхронизации кешей и т.п.
Аноним 08/11/23 Срд 20:52:26 #84 №2912901 
>>2912891
>алгоритма синхронизации кешей
Это L кэши проца? Типа как там данные шуруются на регистры и складываются после операций... Еще барьеры там есть.
Ну теперь себя неполноценным чувствую, ех.
Аноним 08/11/23 Срд 20:53:13 #85 №2912902 
Аноны, верно ли, что C# работает медленнее только со всякими классами, функциями, и тп, но математические операции по типу умножения делаются одинаково во всех языках? Или чтоб нейросеть нормально работала нужно будет вычислительную часть кода на C++ писать?
Аноним 08/11/23 Срд 20:54:32 #86 №2912906 
PizdecYaRazbogateyu.PNG
я правильно понял, что на пикриле я использую т.н. .NET , который в C# вместо winapi, что если я хочу искать документацию по подобным инструментам в C#, мне надо гуглить про .NET? Мне очень понравилось в этой среде, хочу дропнуть winapi в пользу этой штуки.
Аноним 08/11/23 Срд 20:55:21 #87 №2912908 
>>2912901
Да про кеши процессора. Про протокол MESI (https://en.wikipedia.org/wiki/MESI_protocol) и барьеры памяти.
Аноним 08/11/23 Срд 20:57:16 #88 №2912912 
>>2912906
Ну. Да. Это вроде как .NET
Выглядит похоже на винформы, но не могу ручаться, потому что такое можно и на WPF делать.
Аноним 08/11/23 Срд 20:59:13 #89 №2912917 
>>2912902
Ну. Сверху же сам рантайм, сборки мусора и вот это вот.
Но учитывая, что нейронки на пистоне делают, я не думаю, что тебе шарповской производительности не хватит.
Аноним 08/11/23 Срд 21:04:13 #90 №2912925 
>>2912891
>типа алгоритма синхронизации кешей
ну их в жопу
это как с volatile. читаешь разные статьи и там типа "за счет когерентности кешей можно считать что"
а вот них. нельзя считать. нет ничего такого.
волатиле не гарантирует ничего кроме барьеров.
лучше вообще в эти темы не лезть, а писать круды и формачки.
Аноним 08/11/23 Срд 21:06:02 #91 №2912929 
>>2912902
У майков есть свой нахуй не нужный фреймворк для ML. Судя по репу, большая часть на шарпе написана. Но есть и часть на плюсах. Для узкий мест, видимо. https://github.com/dotnet/machinelearning/tree/main
Аноним 08/11/23 Срд 21:08:31 #92 №2912933 
>>2912902
У шарпа есть возможность на стеке, скажем структуры заюзать или низкоуровневый unsafe и прочее трюки, позволяющие делать быстрые числодробилки, не упираясь в ГЦ.
В теории будет достаточно шустро. На практике писать шустро надо уметь даже на плюсах.
Аноним 08/11/23 Срд 21:08:51 #93 №2912934 
>>2912912
>Выглядит похоже на винформы
да, это они.
>>2912912
>Да. Это вроде как .NET
Спс. А есть хорошие видеоуроки по .NET, чтоб там разбиралась и работа с изображением, как на пике, и со звуком, и с памятью других процессов? Или только на сайте майкрософта документацию читать?
Аноним 08/11/23 Срд 21:14:50 #94 №2912948 
>>2912933
и не опускаясь до реального unsafe то есть сишки
есть класс Unsafe, меморимаршалы разные и ref и до плюсов не опускаешься.
Аноним 08/11/23 Срд 21:16:15 #95 №2912950 
>>2912929
Я этот помню, но мне надо самому работать с архитектурами и тп, тк интересует именно математика и суть всего этого.

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

>>2912933
>У шарпа есть возможность на стеке, скажем структуры заюзать или низкоуровневый unsafe и прочее трюки, позволяющие делать быстрые числодробилки, не упираясь в ГЦ.
>В теории будет достаточно шустро. На практике писать шустро надо уметь даже на плюсах.
Т. е. будет как на плюсах скорость этих операций? Я хочу с виндой работать на .NET, тк это самая сложная и не очень затратная часть, можно потерять на ней в производительности, а вычислять необходимое с нормальной скоростью.
Аноним 08/11/23 Срд 21:17:01 #96 №2912953 
image.png
>>2912925
>волатиле не гарантирует ничего кроме барьеров.
Ха-ха. Барьеры часть реализации. И их жеба не гарантирует.
Надо смотреть в happen before(пик). И вот оно эту связность гарантирует. А на этом усе.
Аноним 08/11/23 Срд 21:18:27 #97 №2912956 
>>2912829
https://medium.com/dotnet-hub/clean-architecture-with-dotnet-and-dotnet-core-aspnetcore-overview-introduction-getting-started-ec922e53bb97

Короче, я понял.
API зависит от Домена и от Инфраструктуры.
Инфраструктура зависит от Домена. Домена не зависит ни от чего.
Интерфейсы лежат в Домене, а реализация в Инфраструктуре.
Аноним 08/11/23 Срд 21:20:19 #98 №2912959 
>>2912552
Потому что копрософт лицемерная хуйня. Лицензия-то свободная, но вся экосистема эыфективно запрещает кроссплатформернную разработку. Оракл же предоставляет возможность и себе заработать, и тем, кому важно, пользоваться попенсорсом.
Аноним 08/11/23 Срд 21:22:37 #99 №2912967 
>>2912950
> Т. е. он собирать свой мусор будет даже если ничего не создается в памяти, а просто перезаписываются большие массивы?

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

А если нужно много временных массивов создавать, то можно в сторону https://learn.microsoft.com/ru-ru/dotnet/api/system.buffers.arraypool-1?view=net-7.0 посмотреть
Аноним 08/11/23 Срд 21:22:52 #100 №2912968 
>>2912950
>Питон медленнее?
питон медленее. но он используется как прослойка над сями так что неважно
в остальном в силу динамики и выразительности языка в моем личном рейтинге питон рвет шарп. на питоне я думаю "что мне нужно сделать", а на шарпе приходится задумываться "а как"

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

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

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

>>2912953
я про статьи в которых пишут что волатиле гарантирует что значение в кешах процах будет одинаковое. И про те что волатиле гарантирует, что значение будет прочитано из памяти.
волатил не гарантирует кроме того что компилятор за тебя расставит барьеры.
Аноним 08/11/23 Срд 21:24:17 #101 №2912974 
>>2912968
А я тебе говорю, что даже барьеры не гарантируются. Ты в спеке ни слова не найдешь про барьеры. А компилятор как угодно может ее реализовать.
Аноним 08/11/23 Срд 21:25:16 #102 №2912976 
>>2912556
>хачу асинхронный
Джава тем и прекрасна, что любой синхронный код можно легко сделать асинхронным, засунув его в отдельный поток. Видимо, пользователям хуйни с дублятором методов не понять.

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

>>2912902
Неправда, петушарповый джит говно из под коня и не умеет нормально минимизировать оверхед не-нативности. Разница с плюсами огромная.
Аноним 08/11/23 Срд 21:26:54 #103 №2912981 
>>2912902
>Аноны, верно ли, что C# работает медленнее только со всякими классами, функциями, и тп, но математические операции

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

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

Я вообще пишу движок с Vulkan на шарпе, ебало?
Аноним 08/11/23 Срд 21:27:49 #104 №2912982 
>>2912974
и того круд и формсы. калькуляторы наше всьо
жаль их не покупают.

>>2912976
>У меня вот на примере OkHttp есть.
хуета. я на андроиде под котлином пытался юзать это напрямую
потом с корутинами и понял что это говно и взял ktor, где сразу все нормально ибо оно ЗНАЕТ что такое корутины
а твой OkHttp предоставляет ОДИН ИЗ ВАРИАНТОВ костылей.
Аноним 08/11/23 Срд 21:28:46 #105 №2912983 
>>2912982
>хуита
Аргументы будут или убежишь в харчках?
Аноним 08/11/23 Срд 21:32:06 #106 №2912994 
>>2912968
>используется как прослойка над сями так что неважно
Что это значит? На питоне легко между приложениями данные перекидывать и можно с данными из питона легко работать на другом языке?

>>2912968
>в остальном в силу динамики и выразительности языка в моем личном рейтинге питон рвет шарп. на питоне я думаю "что мне нужно сделать", а на шарпе приходится задумываться "а как"
>
Мне понравилось, за час разобрался с 0, когда на winapi несколько дней пытался нормально изображение считать и не смог в итоге (думаю смог бы когда-то, но не нужно уже).
Аноним 08/11/23 Срд 21:32:56 #107 №2912995 
>>2912976
>любой синхронный код можно легко сделать асинхронным, засунув его в отдельный поток
Смотрите, жабохолоп асинхронность от конкурентности не отличает! Хочешь сломаю тебе шаблон? Асинхронность возможна и на одном потоке. У асинхронности основной смысл в том, чтобы во время io-bound операций у тебя потоки не простаивали. А ты предлагаешь стартануть новый поток и его тут же заставить его простаивать, ожидая ответа.
Аноним 08/11/23 Срд 21:33:10 #108 №2912997 
>>2912976
>оверхед не-нативности
Что это?
Время запуска?
Аноним 08/11/23 Срд 21:33:49 #109 №2912999 
>>2912995
Я тебе секрет открою, но конкурентность тоже возможна на одном потоке.
Аноним 08/11/23 Срд 21:34:14 #110 №2913002 
>>2912959
Ну мы же не будем скатываться до примитивной льжи?

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

>Оракл же предоставляет возможность и себе заработать, и тем, кому важно, пользоваться попенсорсом.
Маня-фантазия какая-то.
У тебя там пропритарная платная херня, а то что есть monojdk, скажи спасибо сану, который перед тем как схлопнуться успел высрать жабу под опенсорс.
Аноним 08/11/23 Срд 21:34:32 #111 №2913003 
>>2912983
в шарпотреде? нах оно мне надо
это ты у нас обосрался принеся говно
тем более что ты оперируешь жавой, а не котлином

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

>>2912994
это значит что питон хоть и медленный, но мощный и простой
а популярен он не за скорость, а за то что по факту имеет кучу разных биндингов ко всему на свете (читай обвязок над сишным кодом). Так что медленность питона не сильно ему мешает, а вот гибкость сильно помогает, ведь все равно считает си.
Аноним 08/11/23 Срд 21:35:18 #112 №2913004 
>>2912995
Чем твои маняопределения понятий мешают разработке не поведаешь? Например, чем это
>стартануть новый поток и его тут же заставить его простаивать, ожидая ответа.
плохо? Тем, что на петушарпе так нельзя и тебе завидно?
Аноним 08/11/23 Срд 21:35:35 #113 №2913005 
>>2913003
>в шарпотреде? нах оно мне надо
Эээ, че за неуважение к этому тредику. Давай аргументируй.
Аноним 08/11/23 Срд 21:36:49 #114 №2913009 
>>2913003
Слив принят. Шарпохуйня опять обоссана.
Аноним 08/11/23 Срд 21:37:19 #115 №2913011 
>>2912981
>Всякие математические операции везде плюс минус одинаковы, если речь про то, что реализовано в камне.
>
>Если ты хочешь байтоебить и упарываться в ручную оптимизацию - шарп тебе это позволит через unsafe подмножество языка.
>
С этим unsafe я смогу получить код по производительности, как в C++?
Я смогу часть (считывать пиксели и звук) делать в обычном , а часть (перемножение матриц) в unsafe?
Аноним 08/11/23 Срд 21:40:13 #116 №2913021 
>>2913011
Unsafe и нативный код это разные вещи. Парой методов из ансейфа всю библиотеку со всеми нативными операциями из c++ не заменишь. Шарпоговно не поддерживает ускорения за счёт нативного кода, в Java есть интрисинки.
Аноним 08/11/23 Срд 21:41:06 #117 №2913024 
>>2913005
okhttp это жава либа. причем тут шарп
я когда НЕ ХОТЕЛ лишних прослоек в котлине хотел юзать ее напрямую
но там она прелагает СВОЙ ПУТЬ
каждая либа на жаве предлагает СВОЙ ПУТЬ (и обосранный говножавист конечно же это тактично обходит)

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

чтобы понять что нахуй такой путь. пусть жависты жрут говно цистернами, а я лучше как нибудь стандартный путь.
Аноним 08/11/23 Срд 21:42:28 #118 №2913030 
>>2913024
>каждая либа на жаве предлагает СВОЙ ПУТЬ
А минусы будут? Да и вообще спринг, например, не предлагает свой путь. Самая лучший фреймвор евер.
Аноним 08/11/23 Срд 21:43:31 #119 №2913031 
>>2913011
Если руки не из жопы - сможешь. Только не надо руками матрицы переумножать, есть System.Numerics которые работают через SIMD. Быстрее ты не напишешь.
Аноним 08/11/23 Срд 21:45:52 #120 №2913044 
>>2913021
>Шарпоговно не поддерживает ускорения за счёт нативного кода, в Java есть интрисинки.

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

Жабауебок уже даже не старается...
Аноним 08/11/23 Срд 21:45:58 #121 №2913045 
>>2913030
Никакого "своего пути" окхттп не предлагает, ему уже высрать просто нечего, да и выше он уже слился, подтвердив что за вспуки не ответит, но, как ты сам сказал, ничего плохого в "своём пути" нет, лопатоеду просто не понять независимости от положения сапога разработчиков языка. Окххтп позволяет писать стардартнейшие синхронные запросы и стандартнейшими методами их заставлять работать параллельно.
Аноним 08/11/23 Срд 21:46:23 #122 №2913046 
>>2912999
Не спорю, возможна. Но это уже не так тривиально.
>>2913004
> Чем твои маняопределения понятий мешают разработке не поведаешь? Например, чем это
>>стартануть новый поток и его тут же заставить его простаивать, ожидая ответа.
Только тем, что ты заставляешь простаивать достаточно дорогой поток ОС, который в этот момент времени мог выполнять другую полезную работу?
> плохо? Тем, что на петушарпе так нельзя и тебе завидно?
Можно ( Или ты думаешь в шарпе старых-добрых тредов нет?). Но нужно редко. Обычно только для CPU-bound операций. Для Io-bound операций, которых таки большинство (походы в БД, другие сервисы и т.д.) асинхронщина эффективней.
Аноним 08/11/23 Срд 21:47:29 #123 №2913047 
>>2913046
А кто заставляет поток ОС спавнить? Есть же лум.
Аноним 08/11/23 Срд 21:47:34 #124 №2913048 
>>2913030
да ну просто 1 путь который знают все вместо 1000 многих которых нужно читать доки, копать рецецпты, писать на гитхабе

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

котлин мне нравится (синтаксис и фичи). но все же я честен - с авайт мне проще, там тупо концепция проще. Исключения всегда на месте, а лишнее слово await так наобороот хоошо для чтения с планшета чужого кода.
Аноним 08/11/23 Срд 21:47:55 #125 №2913051 
>>2913044
О, а мои оптимизации не нашли >>2912764
Значет правда матка!
Аноним 08/11/23 Срд 21:48:30 #126 №2913053 
>>2913046
>можно
И где ты в петушарпе легковесные потоки нашёл? А нигде, шарпоскоту писать код без загрязнения асинк/авейт дриснёй не положено.
Аноним 08/11/23 Срд 21:49:56 #127 №2913058 
>>2913053
запущены в тредпуле и суспенд - считай легковесные
а память - так ты сам говорил что она ничего не стоит.
Аноним 08/11/23 Срд 21:50:43 #128 №2913063 
>>2913047
> Есть же лум.
А он таки добрался до релиза? Я просто за джавамирком не слежу.
Аноним 08/11/23 Срд 21:51:18 #129 №2913066 
>>2913058
Какие нахуй суспенды? Какой нахуй тредпул? У тебя простая задача — реализовать startLightweightThread {
code
}
без загрязнения code. Как это на петушарпе делается? А никак.
Аноним 08/11/23 Срд 21:51:38 #130 №2913070 
>>2913021
>Unsafe и нативный код это разные вещи. Парой методов из ансейфа всю библиотеку со всеми нативными операциями из c++ не заменишь
Мне не нужна библиотека никакая, мне надо заполнить массивы с любой скоростью, а элементы двумерных массивов перемножать с высокой скоростью.
Аноним 08/11/23 Срд 21:51:57 #131 №2913073 
>>2913063
Уже давно как в релизе, причём в LTS релизе.
Аноним 08/11/23 Срд 21:51:58 #132 №2913074 
>>2913063
21 в сентябре релизнулась. И там он там уже все, встроен.
>>2913058
Блокировка как бы цену имеет в тредпулах.
Аноним 08/11/23 Срд 21:54:40 #133 №2913082 
>>2913051
>О, а мои оптимизации не нашли >>2912764
Значет правда матка!

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

А джава. Ну джава пошла нахуй. Вместе с тобой, джавадебилом.
Аноним 08/11/23 Срд 21:55:32 #134 №2913084 
>>2913066
там просто делается асинк который выполнится на тредпуле НЕ ИНИЦИИРУЯ новый поток и вернет результат. вполне дешево
в коде у тебя будет только await для получения результат.

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

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

и совсем не решает бля почему нет калькулятора у капчи. хули я в уме считать должен.
Аноним 08/11/23 Срд 21:55:49 #135 №2913086 
>>2913082
То есть всё-таки не ответишь? Слив принят.
Аноним 08/11/23 Срд 21:56:19 #136 №2913089 
>>2913074
>Блокировка как бы цену имеет в тредпулах.
Так легковесные потоки тоже не бесплатные. Они тоже как бы пулятся (Fork Join Pool-ом вроде). Плюс копирование стэка тоже не очень безболезненная операция. У async/await большие накладные расходы отнюдь не от пула, а от реализации через конечные автоматы.
Аноним 08/11/23 Срд 21:56:30 #137 №2913091 
>>2913084
>в коде только await
>без загрязнения code
Попробуй ещё раз.
Аноним 08/11/23 Срд 21:56:39 #138 №2913092 
Аноны, приходите иногда в жаба треды и андроид сраться, а то скучно. У вас тут так оживленно, мне нраица, жаль не пишу уже на шарпе.
Аноним 08/11/23 Срд 21:57:44 #139 №2913096 
>>2913092
Нахуя загрязнять нормальные тредв?
Аноним 08/11/23 Срд 21:58:23 #140 №2913099 
>>2913096
ОНИ МЕРТВЫЕ НАХУЙ
Аноним 08/11/23 Срд 21:58:54 #141 №2913103 
>>2913099
Джаватред не мёртвый, просто чистый.
Аноним 08/11/23 Срд 22:01:31 #142 №2913113 
>>2913103
Чистый, но процесс разложения трупа уже начался.
Аноним 08/11/23 Срд 22:01:45 #143 №2913114 
>>2913031
А эти нумерикс в unsafe можно будет использовать, не проебав много (ну не более чем в 2 раза хотя бы) плюсам?

>>2913031
>Если руки не из жопы - сможешь.
От меня только алгоритмы зависят, если компилятор решит, например, постоянно обращаться к какой-то функции своей при умножении, то я ничего не смогу сделать с этим.
Аноним 08/11/23 Срд 22:02:19 #144 №2913116 
>>2913084
Нет там не пул потоков. Там вм исправили и еще вилки в код воткнули. Лучше посмотри/почетай где-нибудь реализацию. Если интересно, конечно.
>>2913089
Ну только копирование имеет цену. Ну еще и внутренние локи. Последнее мб в следующих версиях поправят.
>>2913082
Блин, че реально не находица? Грустна это.
>>2913103
Ну т.е. шизики которые периодически там срут, это норма?
Аноним 08/11/23 Срд 22:03:06 #145 №2913119 
>>2913103
>чистый
Как труп перед похоронами. Джавадебил, почему тебе так больно?
Аноним 08/11/23 Срд 22:04:57 #146 №2913124 
>>2913116
Ну и пусть срут, их там не много.

>>2913113
Регулярно тред перекатывается. Пока обсуждение хуёвости шарпоговна не перешло в шарпотред, в этом треде было актива раза в 3 меньше, чем сейчас в джаватреде?
Аноним 08/11/23 Срд 22:05:01 #147 №2913125 
>>2913114
>А эти нумерикс в unsafe можно будет использовать, не проебав много (ну не более чем в 2 раза хотя бы) плюсам?

Нет, JIT просто подставляет нативные методы платформы. Разве что первый вызов метода будет медленнее чем плюсовый. Последующие вызовы +- одинаковые будут.
Аноним 08/11/23 Срд 22:05:33 #148 №2913127 
>>2913124
>чем сейчас в джаватреде?
быстрофикс
Аноним 08/11/23 Срд 22:06:30 #149 №2913130 
>>2913119
>почему тебе так больно
Может не будешь проецировать?
Аноним 08/11/23 Срд 22:06:33 #150 №2913131 
>>2913011
Субъективно, ощущая твои познания, ты на С++ затрахаешься. Пробуй все, если шарпа хватает, оставляй его и радуйся, что не придется об плюсы биться. Есть границы шарпа, но если не упарываться до драйверов и эмбеддед, ты получишь универсальный инструмент.
Аноним 08/11/23 Срд 22:07:21 #151 №2913132 
>>2913044
Ты правда сравнил три класса на векторы с интрисинками в джаве?
Аноним 08/11/23 Срд 22:09:14 #152 №2913136 
>>2913132
>Ты правда сравнил три класса на векторы с интрисинками в джаве?

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

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

Джаваобезьяна, ты ведь даже не знаешь как этим пользоваться, прекрати комедию...
Аноним 08/11/23 Срд 22:10:13 #153 №2913138 
>>2913082
Жабёнок сегодня не просыхает.
Аноним 08/11/23 Срд 22:13:13 #154 №2913148 
>>2912982
>OkHttp предоставляет ОДИН ИЗ ВАРИАНТОВ костылей
на самом деле suspend функции это просто функции с объектом continuation под капотом последним параметром. OkHttp предоставляет способ асинхронный вызов делать через коллбэк по старому. Чтоб связать коллбэк и корутины, надо extension написать, где ты на более низком уровне будешь просто continuation брать и вызывать .resume() у него в коллбэке. Эту работу за нас делает библиотека retrofit, она на основе okhttp робит. Я бы не сказал, что костыль, просто низкоуровневый код. Корутины по сути на коллбэках и работают, только удобно оформленных.
Аноним 08/11/23 Срд 22:13:35 #155 №2913150 
>>2913125
>Разве что первый вызов метода будет медленнее чем плюсовый. Последующие вызовы +- одинаковые будут.
Т. е., можно и проеб будет только в самом начале? (издержки в начале меня не беспокоят, тк даже в 10 фпс бот за час игры вызовет эту функцию 100500+ раз)
Или все таки
>>2913125
>Нет
?
Аноним 08/11/23 Срд 22:15:42 #156 №2913155 
>>2913136
Шарподебил похоже даже не знает, как работают интрисинки в джаве и что они оптимизируют, и зачем-то противопоставляет им набор нативных методов в петушарпе, лол.

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

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

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

Шарп умеет и то и то, выбирай что хочешь.
Аноним 08/11/23 Срд 22:19:14 #158 №2913165 
Хуй.
Аноним 08/11/23 Срд 22:21:15 #159 №2913173 
image.png
>>2913155
>В джаве ты вызываешь Math.pow, а у тебя вызывается быстрый нативный метод под твою платформу
Джавадебил буквально гордится базовыми вещами, спешите видеть.

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

>Ну так просвящу
Чухан, плес...
Аноним 08/11/23 Срд 22:21:45 #160 №2913176 
>>2913173
Так если это такая базовая вещь, почему в шарпоговне такого нет?
Аноним 08/11/23 Срд 22:24:01 #161 №2913178 
>>2913176
Интересно этот еблан реально пикчу не посмотрел или это просто такая форма защиты...
Аноним 08/11/23 Срд 22:24:13 #162 №2913179 
>>2913158
Т. е. если один и тот же код прогоняется много-много раз, то похуй, что использовать, главное избавиться от фигни по типу garbage collection, для чего подойдёт unsafe?
Аноним 08/11/23 Срд 22:25:23 #163 №2913184 
>>2913179
>избавиться от фигни по типу garbage collection
Ух... Шел бы ты отсюда
Аноним 08/11/23 Срд 22:25:44 #164 №2913185 
>>2913178
Какую пикчу? Ты совсем что ли от мочи на ебале ошизел? В треде уже 50 постов пикч не было.
Аноним 08/11/23 Срд 22:26:56 #165 №2913186 
>>2913173
А итоговый асм/перфоманс кто-то сравнивал с жабой вообще? Интересно же.
Аноним 08/11/23 Срд 22:27:39 #166 №2913188 
>>2913179
Скорее всего тебе и о сборке мусора париться не надо будет, ты слишком утрируешь ситуацию, шарпа тебе даже без ультра-оптимизации хватит, вон люди фарм бота для финал фентези пилят (или хз что это, я не геймер, но вроде твоя стихия)
https://github.com/EasyFarm/EasyFarm
Аноним 08/11/23 Срд 22:28:04 #167 №2913190 
>>2913179
Можно и без unsafe allocation-free код писать. https://github.com/nazarovsa/csharp-zero-allocation
Аноним 08/11/23 Срд 22:28:10 #168 №2913191 
>>2913179
Да. А с JITом потенциально можешь выиграть в перфомансе на долгой дистанции.

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

>>2913179
>для чего подойдёт unsafe?
Для любого вида байтоебства, например, если ты любитель подрочить свое очко арифметикой указателей - вперед.
Аноним 08/11/23 Срд 22:28:15 #169 №2913193 
>>2913186
Сравнивали вчера, по итогу шарпоговно было обоссано самими же петушарперами (разница в 3+ раз), но шарподебилы объявили это великой перемогой, потому что не в 26 раз.
Аноним 08/11/23 Срд 22:28:58 #170 №2913196 
А в джаве можно отключить GC.
Аноним 08/11/23 Срд 22:30:09 #171 №2913198 
>>2913184
У меня нет никакого мусора при выполнении 125 кк умножений в децисекунду, как я понимаю.
Мне не нужны эти штуки, которых нет в c++, если они замедлят мои умножения.
Аноним 08/11/23 Срд 22:30:52 #172 №2913200 
>>2913196
Epsilon GC. Но правда смысла от этого...
>>2913198
Чел, cpp говно как бы. Нахуй с ним сравнивать? Даже раст лучше, но до сишечки далеко, конечно.
Аноним 08/11/23 Срд 22:31:13 #173 №2913201 
>>2913186
Я бы мб и сравнил. Но после того как мне местная джавапарашная либа высрала для первого прогона время больше чем для последующих, я не особо горю желанием тратить на это время. Но результаты бы посмотрел, по идее должен быть паритет потому что это буквально вызов камня.
Аноним 08/11/23 Срд 22:31:50 #174 №2913203 
>>2913200
>шарп был бы божественным языком, если бы можно было отключить гц
>а в джаве можно
>ррррря нинужно
)
Аноним 08/11/23 Срд 22:32:40 #175 №2913205 
>>2913198
В таком случае просто просишь GC не собирать мусор вообще.

Джавадебил, это твоя новая роль? Неплохо справляешь, я на самом деле даже поверил...
Аноним 08/11/23 Срд 22:32:43 #176 №2913206 
>>2913201
Ну как бы там gc подключился. Это раз, а два у тебя там cpu consumer, которые жрал цпу.
Аноним 08/11/23 Срд 22:35:30 #177 №2913210 
>>2913188
>>2913190
спс, посмотрю.
Аноним 08/11/23 Срд 22:39:47 #178 №2913216 
>>2913206
Братишка, джавадурачок, я тебе потом скинул с consume выигрыш не сильно большой вышел. Ты в любом случае выиграл, успокойся. Победа в ручного написанного примитива над линком не делает джавапарашу свежее.

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

Ну тогда и в шарпе тоже мусор собирался братишка. А код на самом деле выполнился за наносекунду бля буду
Аноним 08/11/23 Срд 22:40:41 #179 №2913218 
>>2913091
а в чем проблема await дебич?
код выглядит как и синхронныый за исключением ОДНОГО слова
плохо ли это? относительно
вот читая с планшета я благодарю что это есть
в котлине же suspend без IDE ХУЙ!!!!!!!!!!!! УВИДИШЬ

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

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


да вы задрали в среду вечером столько постов писать
Аноним 08/11/23 Срд 22:40:56 #180 №2913219 
А что вообще за сборка мусора?

>>2912906
Здесь, если я не делал Dispose, то потребление памяти росло. Компилятор бы на каком-то уровне потребления сам бы додумался очистить мой мусор, или сборка - это что-то еще?
Аноним 08/11/23 Срд 22:41:26 #181 №2913220 
>>2913216
>выебали всего на полшишки!
Может прекратишь позорится?
Аноним 08/11/23 Срд 22:42:35 #182 №2913221 
>>2913218
>доказывает, что лишний авейт не плох сравнением этого с петухлином
Ясн.
Аноним 08/11/23 Срд 22:43:51 #183 №2913222 
>>2913221
ЯВНО показывает место асинхнонного вызова
ясное ЛУЧШЕ неясного

магию засунь себе в одно место.
Аноним 08/11/23 Срд 22:45:13 #184 №2913224 
>>2913222
>продолжает сравнивать с петухлином, с которым никто и не сравнивал
Ясн.
Аноним 08/11/23 Срд 22:45:22 #185 №2913225 
>>2913216
>где буквально нихуя нет
Ну значит чета есть.
Аноним 08/11/23 Срд 22:45:33 #186 №2913226 
>>2913220
Братишка джавадебил, ты, лучше, напиши еще какую-нибудь смешную хуйню по типу Math.Pow. Или расскажи нам про крутые оптимизации в джаве, только обязательно с брендами.

Нам правда очень интересно.
Аноним 08/11/23 Срд 22:45:59 #187 №2913227 
>>2913226
Ничего не ответишь? Слив принят.
Аноним 08/11/23 Срд 22:47:31 #188 №2913228 
>>2913131
> на С++ затрахаешься
Там конкретно winapi ебанутый какой-то с миллиардом типов, которые хуй пойми как друг в друга конвертировать и кучей похожих функций, из которых надо выбрать одну правильную.
Хуйня с классами, указателями, памятью, и тп сложностей не вызывала.

>>2913131
>Пробуй все
для этого я у тредовичков узнаю, что нужно для оптимизированных вычислений.
Аноним 08/11/23 Срд 22:49:52 #189 №2913230 
>>2913205
А от этого функции .NET для работы с изображениями и клавиатурой не сломаются? Если не сломаются, то нахуй эта сборка нужна вообще?
Аноним 08/11/23 Срд 22:53:53 #190 №2913233 
>>2913230
Память будет пожираться, если ты будешь высирать много экземпляров классов. Если ты самоуверен, то можно загнать свой критикал перфоманс код в секцию без сборки мусора и вызывать ее потом когда тебе захочется.
Аноним 08/11/23 Срд 22:53:58 #191 №2913234 
>>2913228
>сложностей не вызывала.
Ну ты значит на cpp и не прогал особо. Про ub-то хоть в курсе?
Аноним 08/11/23 Срд 22:57:14 #192 №2913239 
>>2913228
Сначала пишешь чтоб работало и только потом оптимизируешь.
Для скрин-бота ты слишком упаролся в нативные дебри, оно тебе вообще не понадобится.
Аноним 08/11/23 Срд 22:58:34 #193 №2913242 
>>2913227
Почему джава так плохо развивается? Это конец?
Аноним 08/11/23 Срд 23:00:42 #194 №2913244 
>>2913218
>ну а предлагать "возьми ретрофит"
Я не предлагал. OkHttp в основном на котлине кста, там проблема не в библиотеке, а в том, что они поддерживают жабадебилов. Если бы сделали на корутинах, то жабадебилы не смогли бы пользоваться библой. Так что оставили колбэки, чтоб и на жабе можно было юзать, и с корутинами связать коллбэки можно, написав extension. Ты случаем не json rpc баловался?
Аноним 08/11/23 Срд 23:00:59 #195 №2913245 
javaiscobol.png
>>2913227
Аноним 08/11/23 Срд 23:01:57 #196 №2913247 
>>2913244
Так это че получается, котлин вторичен практически всегда?
Аноним 08/11/23 Срд 23:03:21 #197 №2913249 
>>2913234
Нет, наверное, но может и да.
Самое сложное, что я делал на c++ - алгоритмы удаления невидимых линий и чтение obj файлов в самодельный класс, все это в winapiшной форме. Еще потоки создавал с мьютексом и критической секцией.
Хз, насколько я программист, но у меня уже есть несколько рабочих ботов, которые работают по таймеру.
Аноним 08/11/23 Срд 23:04:28 #198 №2913253 
>>2913234
Нет, наверное, но может и да.
Самое сложное, что я делал на c++ - алгоритмы удаления невидимых линий и чтение obj файлов в самодельный класс, все это в winapiшной форме. Еще потоки создавал с мьютексом и критической секцией.
Хз, насколько я программист, но у меня уже есть несколько рабочих ботов, которые работают по таймеру. Сейчас буду делать полноценных и мой пассивный доход вырастет еще больше.
Аноним 08/11/23 Срд 23:05:05 #199 №2913255 
>>2913242
потому что говножрущие жавовцы орут "нинужна, зато ынтырпрайз"
не шутка. мои знакомые жавовцы все эти годы на вопрос "а хули у вас нет бля банальных лямбд" отвечали именно это
а потом, когда вводили очередную фичу, вовсю ее расхваливали

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

лол у жавистов сторонняя либа лечит некоторый!!! ОТСУТСТВУЮЩИЙ (И ОНИ БЛЯТЬ ЕЩЕ ЭТИМ ГОРДЯТСЯ ДЕБИЛЫ) сахар жавы, но не фундаментальщину. но говно настолько заполонило их ротешники что они думать не могут. (может мозги говном заместило)
Аноним 08/11/23 Срд 23:05:22 #200 №2913256 
>>2913247
Что делает его вторичным, поясни
Аноним 08/11/23 Срд 23:07:18 #201 №2913262 
>>2913255
>каких корутинах в жаве
перечитай сообщение, ты похоже не понял
Аноним 08/11/23 Срд 23:07:48 #202 №2913264 
>>2913233
>Память будет пожираться, если ты будешь высирать много экземпляров классов.
>>2912906
В этом скрине я изначально делал без Dispose и память утекала очень активно.

>>2913233
>Если ты самоуверен, то можно загнать свой критикал перфоманс код в секцию без сборки мусора и вызывать ее потом когда тебе захочется.
Отлично, а почему тогда плюсы быстрее шарпа, если можно выключать все ненужные фичи?
Аноним 08/11/23 Срд 23:09:09 #203 №2913265 
Как же хорошо, что существует такой загончик. Все долбоебы в одном месте. Не растекатесь по тредам, пожалуйста.
Аноним 08/11/23 Срд 23:10:38 #204 №2913270 
>>2913265
Остальные треды мертвые, увы
Аноним 08/11/23 Срд 23:12:18 #205 №2913276 
>>2913262
я пьян ибо среда
жава говно
а вы тут капец строчите, а ведь дотнеет 8 еще не вышел
обсуждаете жаваговнище зачем то
Аноним 08/11/23 Срд 23:12:31 #206 №2913277 
15702140309900.png
>>2913265
И главное самые актуальные джава технологии
Аноним 08/11/23 Срд 23:14:38 #207 №2913285 
bill-gates-nerd-stud.jpg
>>2913265
Аноним 08/11/23 Срд 23:17:02 #208 №2913291 
>>2913264
>В этом скрине я изначально делал без Dispose и память утекала очень активно.
Из-за того, что ты не вызывал этот метод - текла неуправляемая память, по сути на стороне плюсов, вызовы которых скрыты в этих шарповых классах. Dispose это просто метод-соглашение чтобы очищать память в конкретное время, типа имитировать delete - именно неуправляемую шарповым сборщиком память нужно очищать вручную - всякие там хэндлы окон, сокеты и прочая ОС параша.
Аноним 08/11/23 Срд 23:17:56 #209 №2913296 
>>2913239
>оно тебе вообще не понадобится.
В интернете написано было, что шарп медленнее, но я не понимаю, как операция, например, сложения (mov ax, x1 ;mov bx, x2; add ax, bx ; mov x3 ax), может выполняться с разной скоростью в разных языках, пытаюсь вот разобраться.

На плюсах о языке вообще не думал, тк его везде используют и называют быстрым, а теперь узнаю.
Аноним 08/11/23 Срд 23:21:16 #210 №2913303 
>>2913291
>неуправляемая память
>>2913291
>неуправляемую шарповым сборщиком память нужно очищать вручную - всякие там хэндлы окон, сокеты и прочая ОС параша.
А что такое тогда управляемая?
Аноним 08/11/23 Срд 23:24:45 #211 №2913308 
>>2913296
>В интернете написано было, что шарп медленнее, но я не понимаю, как операция, например, сложения (mov ax, x1 ;mov bx, x2; add ax, bx ; mov x3 ax), может выполняться с разной скоростью в разных языках, пытаюсь вот разобраться.

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

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

Пользуйся пока как инструментов, если при профайлинге ты заметишь узкие места - ты всегда сможешь их оптимизировать.
Аноним 08/11/23 Срд 23:27:19 #212 №2913313 
>>2913303
Любая, которую занимают объекты твоих классов, которые ты написал на шарпе. Ну или взял из либ.

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

Экземпляры такого класса будут в управляемой куче. Когда на них никто не ссылается - сборщик очищает их.
Аноним 08/11/23 Срд 23:27:43 #213 №2913314 
>>2913308
Да хватит джава дебила обсирать. Он обидится и уйдёт. Что делать будете, а?
Аноним 08/11/23 Срд 23:30:54 #214 №2913318 
>>2913242
>>2913245
Это ты так перекрыть решил или что?
Аноним 08/11/23 Срд 23:32:06 #215 №2913321 
>>2913313
А зачем это нужно? Просто чтоб деструкторы не вызывать?
Аноним 08/11/23 Срд 23:33:45 #216 №2913324 
>>2913255
>нинужно
Так это же любимое слово шарпоговна. Виртуальные треды? Нинужно, хочу писать авейты! Конструкторы? Нинужно, хочу ручками хуярить this.zalupa = zalupa! Скорость? Нинужно, у нас высокоуровневый язык Enterprise Edition! Обратная совместимость? Нинужно, потому что динозавр))) легаси)))! Кроссплатформенность? Нинужно, но как нам ее добавили сразу нужно, но то, что не добавили (среду разработки и гуи либы) то всё ещё нинужно!
Аноним 08/11/23 Срд 23:35:02 #217 №2913326 
>>2913308
>Тут JITы и могут попытаться обогнать нативно скомпиленный код. А могут обосраться и не обогнать. Для твоих задач энивей все это как инопланетная ракета для безмозглого инвалида джавадебила.
Т. е. нейросеть примерно одинаково работает по скорости на плюсах и шарпах, а разница появляется при использовании высокоуровневых штучек?
Аноним 08/11/23 Срд 23:35:22 #218 №2913327 
169947532079350534.jpg
По итогу шарподебил с его async/await был попущен Project Loom и слился после встречи с мощью превращения синхронного кода в асинхронный без его модификации. Последнее, что он сказал — что ему и так нормально и что у хох в петухлине ещё хуже.
Аноним 08/11/23 Срд 23:36:18 #219 №2913328 
>>2913324
>Конструкторы? Нинужно
Я в шарпе вызывал конструктор для класса Bitmap, о чем ты?
Аноним 08/11/23 Срд 23:36:45 #220 №2913329 
джаваГосподинВкатилсяВТред.png
>>2913314
Нового позовем.
Аноним 08/11/23 Срд 23:37:02 #221 №2913330 
>>2913328
Скажем правильнее возможность не писать шаблонные конструкторы.
Аноним 08/11/23 Срд 23:37:08 #222 №2913331 
>>2913326
Как ты заебал, тупее джависта. Это достижение
Аноним 08/11/23 Срд 23:39:48 #223 №2913334 
>>2913329
Я скажу, чтоб не ходили. Вы обидные слова пишите.
Аноним 08/11/23 Срд 23:42:46 #224 №2913336 
>>2913321
Да. Ну и в теории защищает тебя от утечек и рантайм может эффективнее работать с памятью проводя всякие там дефрагментации, сжатия и т.п.
Аноним 08/11/23 Срд 23:43:31 #225 №2913338 
>>2913331
Я умный, мне не нужно РАБотать, а другим нужно.
Мне не стыдно показывать свое незнание, чтобы мне изложили знание, которое я использую и получу прибыль.
Аноним 09/11/23 Чтв 00:04:39 #226 №2913364 
>>2913324
не понял связь между вирт тредами и авайтами. не думай что одно прямо лучше другого шопипец. всему свое место. и на шарпе можно родить что угодно если захочется. await всего лишь иснтрукция. Я могу хоть в разных процессах или вселенных выполнять.
конструкторы прикатят, хотя они мне еще с котлина не по душе
скорость? а что не так. синт тесты нас не интересуют. остальное зависиот от КОНКРИТНОЙ реализации. обратная совместимость счем? я в дотнет 7 юзаю либы написанные на дотнет 4
легаси не нужно это факт
кроссплатформа существует, чего сказать то хотел?
Аноним 09/11/23 Чтв 00:09:03 #227 №2913365 
>>2913364
>виртуальные треды нинужны, обратная несовместимость нинужна, скорость нинужна, конструкторы нинужны, комментарий про среду разработки и гуи проигнорим
Ты же блядь просто повторил моё сообщение. Ты правда считаешь, что что-то опроверг?
Аноним 09/11/23 Чтв 00:10:02 #228 №2913366 
>>2913365
если тебе кажется что я повторил твое сообщение то тебе пора в жавишный тред
у тебя шизофрения. а там как раз таким и место
Аноним 09/11/23 Чтв 00:11:01 #229 №2913367 
>>2913366
Нет, сидите здеся.
Аноним 09/11/23 Чтв 00:11:09 #230 №2913368 
>>2913366
>рррря шизафриния
Ничего посерьёзнее не высрешь?
Аноним 09/11/23 Чтв 00:12:19 #231 №2913369 
>>2913368
тебе пора. точно пора.
жавист и так по определению шизик
но ты прогрессируешь
Аноним 09/11/23 Чтв 00:12:52 #232 №2913370 
>>2913369
То есть не высрешь. Слив принят.

Какие же шарпобляди олигофрены, пиздец просто.
Аноним 09/11/23 Чтв 00:25:30 #233 №2913379 
>>2913370
>шарпобляди олигофрены
Шарп хороший, удобнее плюсов. Главное, чтоб работало, на шарпе все работает с полпинка, поэтому его и выбирают. Если челик выбрал шарп и имеет с этого гешефт, он не олигофрен, тк олигофрен гешефт получать не умеет.
Аноним 09/11/23 Чтв 00:26:49 #234 №2913381 
>>2912976
>Джава тем и прекрасна, что любой синхронный код можно легко сделать асинхронным, засунув его в отдельный поток.
Я бы на твоём месте не выёбывался своим незнанием фич шарпа, ты просто очень глупо выглядишь со стороны.
Прекрасно, напиши мне метод, который делает два запроса по разным url, получает json и возвращает объект, в полях которого записаны десерализированные результаты запросов (в одном поле первый, во втором — второй). Запросы должны выполняться одновременно. Библиотеки можешь использовать какие угодно, только напиши их называния.
Аноним 09/11/23 Чтв 00:29:14 #235 №2913383 
>>2913381
>делает два запроса по разным url, получает json
А это в каком разделе документации по .NET? Парсер мне тоже не помешает.
Мимо
Аноним 09/11/23 Чтв 00:33:09 #236 №2913385 
>>2913381
Future.
Аноним 09/11/23 Чтв 00:35:55 #237 №2913388 
>>2913385
Что Future, блять? Я уже два треда тебя прошу написать код, и ты пока что только выдал только одну строчку. Ты меня просто заебать решил, чтобы я от тебя отстал?
Напиши код уже.
Аноним 09/11/23 Чтв 00:40:03 #238 №2913389 
>>2913388
Future позволяет выполнить эту задачу. Код точно такой же, что я выше показывал, только вызов оборачивается в сабмит таски нужному экзекутору.
Аноним 09/11/23 Чтв 00:44:08 #239 №2913393 
>>2913388
Да это бесполезно. У душнил похоже пунктик просто заебать кого-то, какой-то поеботиной абстрактной.
Аноним 09/11/23 Чтв 00:59:28 #240 №2913418 
Доброго вечера, комрады. Скажите, а можно ли в си хэштеге слезть с капиталистической корпоративной иглы майкрософта? Вот в джаве, я могу взять спецификацию и написать свою жвм и не иметь дел с ораклом вообще. Можно ли написать свою жвм для сишорпа? Или, связываясь с этим языком, я становлюсь анальным рабом майкрософта навсегда?
Аноним 09/11/23 Чтв 01:08:33 #241 №2913433 
>>2913418
Лол, жабки спустя 4 года узнали что качали платную проприетарную херню, вместо попенЖдк.
Как так, это же шарп должен быть плохой, а мы хорошие, лол

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

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

Нет, упрощения, которую жертвуют явностью - зло. Никогда параллельный код не был простым, да и не будет. Это иллюзия.
Аноним 09/11/23 Чтв 01:14:02 #244 №2913437 
>>2913436
бла бла. бла бла
мы говорим про АСИХРОННОМ коде
если чел не знаает разницы пусть идет жрет говно
Аноним 09/11/23 Чтв 01:17:27 #245 №2913442 
>>2913437
Ты сам не знаешь терминологии. То что вы называете асинхронщиной, лишь её малая часть.
И я хуй знает, какой еблан это придумал. В анус бы сука ему что-то запихнуть
Аноним 09/11/23 Чтв 01:20:23 #246 №2913445 
>>2913442
Это не "вы", а один шарподебил, которого как-то такой же анальник на собесе попустил тупейшим вопросом про асинхронность и теперь у него на этом немного крышу сдвинуло.
Аноним 09/11/23 Чтв 01:38:29 #247 №2913452 
Жабёнок, просвети там со своим лумом, который лет 10 пилили. И сразу скажи почему такой отсос в сравнение с котлиновскими корутинами?
Аноним 09/11/23 Чтв 01:41:05 #248 №2913455 
>>2913452
А там тесты завезли? Скинь
Аноним 09/11/23 Чтв 01:43:24 #249 №2913456 
>>2913452
Там я слышал отладка слетела, из-за этой механики копирования стэка по чиху.
Я правда не в курсе, впервые можешь обосать хоть кого-то, только сорцы кинь.
Аноним 09/11/23 Чтв 01:47:15 #250 №2913459 
image.png
>>2913452
Лум быстрее корутин.
https://softwaremill.com/limits-of-looms-performance/
Аноним 09/11/23 Чтв 01:50:06 #251 №2913462 
req.JPG
>>2913381
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 на спринге. запросы выполняются параллельно, при получении ответа от обоих вернется объект, код неблокирующий
Аноним 09/11/23 Чтв 01:55:25 #252 №2913464 
>>2913459
Что за зоопарк безумия, лум же это просто запустил и все. И почему чем больше времени, тем лучше??
Аноним 09/11/23 Чтв 01:57:56 #253 №2913465 
>>2913381
Стандартная библиотека.
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());
}
}
Аноним 09/11/23 Чтв 02:02:10 #254 №2913468 
Screenshot20231109-055817.jpg
Если сделать ассемблерную вставку по типу пикрил, то компилятор не будет внутри этой вставки свой лишний тормозящий код вставлять, или ему похуй?
Аноним 09/11/23 Чтв 02:15:14 #255 №2913472 
>>2913468
ассемблерная вставка в энтерпрайз языке с гарбадж коллектором... Шарпухи совсем ебанулись
Аноним 09/11/23 Чтв 02:19:30 #256 №2913474 
>>2913472
Завидно? Жабёнок.
Аноним 09/11/23 Чтв 02:20:06 #257 №2913476 
>>2913468
В шарпе нет ассемблерных вставок. Пик ты либо нарисовал в пеинте, чтобы типа так потроллить, либо попросил нейросеть.
Аноним 09/11/23 Чтв 02:20:17 #258 №2913477 
>>2913474
А у них нельзя ассемблер вставить?
Аноним 09/11/23 Чтв 02:26:18 #259 №2913480 
>>2913472
Главное достоинство шарпа, как я понял, легкость работы с виндой в .NET, а главный недостаток - производительность. Совместив производительность ассемблера и легкость .NETа, я получу гигаимбу.
Аноним 09/11/23 Чтв 02:29:53 #260 №2913482 
image.png
Ппц вы алкошня, я спать пошел.
Аноним 09/11/23 Чтв 02:51:06 #261 №2913493 
В МВП треде написали что вас тут разъебали джава-господа, не читая врываюсь на подмогу.
Что там джаваскуфы еще не завезли async, как долбоебы пишите CompletableFuture? Ахахаха джава попущенки как всегда разбиты в пух и прах
Аноним 09/11/23 Чтв 02:58:46 #262 №2913495 
Ой у нас есть моно и флакс в джава кале, ебать, вот это сделали хуету с потоками которые крутятся в евент лупе ну в других языках то такого нету конечно ога, что там хуи насасываете когда в вашем моно во флет мапе ебашатся новые потоки, а? Какой флакс, моно.джаст дегенераты и блок как вы пюбите, флакс у вас будет в пете на баелдунге, а на практике только хуй во рту однопотоковый, как и засерание ОЗУ из-за корявого гарбидж коллектора.
Аноним 09/11/23 Чтв 02:58:49 #263 №2913496 
>>2913493
> вас тут разъебали джава-господа
Сами себя разъёбывают, ведясь на толстоту. Что джависты, что шарписты.
> async
Уже говорили про это, джависты сразу про свой лум запели.
Аноним 09/11/23 Чтв 03:05:44 #264 №2913501 
У нас в джава есть стримы, у нас тоже есть функциональный стиль! А в вашей ебаной джаве не думали стримы починить, чтобы они не ебашили лишние объекты, о чем пишет даже ваш джошу блох, а может расскажете про производительность форк джоин пулла внутри стримов или хуйли вы всегда потоки передаете из объявленного бина в тред пуллом, что хуета параллельно без этого нормально не работает, что глазки опустили, в космос ресурсы отжирает. Под шконку, раскукарекались тут, джава петушье, идите на свою парашу, обсуждайте "новинку" 21 версии - грин треды, которые у вас были до 1.8 а потом выпилили позор, правда вам все равно не светить их увидить на своем легаси калопроекте, на нем новинка это 11.
Аноним 09/11/23 Чтв 03:18:50 #265 №2913504 
>>2913501
Этот гопник хоть сам-то понял, что высрал?
Аноним 09/11/23 Чтв 03:20:29 #266 №2913506 
>>2913480
Нет, ты просто перейдёшь на ассемблер, лул.
Аноним 09/11/23 Чтв 04:12:22 #267 №2913527 
>>2913389
>Future позволяет выполнить эту задачу. Код точно такой же, что я выше показывал, только вызов оборачивается в сабмит таски нужному экзекутору.
А в экзекуторе коллбэки, и, соответственно, спагетти код. Что и требовалось доказать.
Ты есть ты признаёшь, что на жабе нормально такой код не написать, так?
Аноним 09/11/23 Чтв 04:24:03 #268 №2913528 
>>2913527
Какие нахуй колбеки? Я что-то про колбеки говорил разве?
Аноним 09/11/23 Чтв 04:30:46 #269 №2913530 
>>2913462
В задании требовалось вернуть объект, а ты вернул Mono. Я ведь не просто так поставил такое условие: все эти Mono, Future и т.д. в итоге придётся как-то разворачивать, чтобы добраться до данных, и тут тебя ждут два стула: либо ты навешиваешь коллбэк, усложняя код, либо ты вызываешь block(), который блокирует тред и не даёт ему в это время заняться чем-нибудь другим полезным.

И в этом прелесть await в с#: ты получаешь функционал коллбэка с более простым кодом. При этом в С# есть Task.Result и Task.Wait(), которые так же блокируют поток для мест, где нельзя использовать асинхронность.
Аноним 09/11/23 Чтв 04:31:46 #270 №2913532 
>>2913528
Что, я не прав? Ну напиши ты уже ёбаный код, чтоб меня посрамить.
Аноним 09/11/23 Чтв 04:35:26 #271 №2913535 
>>2913532
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));
Аноним 09/11/23 Чтв 05:07:46 #272 №2913549 
>>2913535
>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));
Вот, хорошо, у тебя тут нет коллбэков, код читается нормально, но зато ты сел на второй стул, который я упоминал в >>2913530
Твой тред блокируется до получения результата и ничего не делает. Если веб-ресурс медленный, а метод этот надо вызывать много раз (допустим, все url всегда разные, просто они идут в парах), у тебя скоро закончатся треды в пуле и просядет производительность. То есть для такого случая тебе придётся писать более громоздкий механизм, либо использовать те же колбэки, в то время как в шарпе я бы просто написал await вместо твоих get(), и всё бы работало из коробки.
Аноним 09/11/23 Чтв 05:11:58 #273 №2913551 
>>2913549
Ты может перестанешь подгонять решение под ответ и пытаться найти первое оправдание, почему шарпоговно не хуже джавы, и хотя бы думать о том, что ты несёшь?

>закончатся треды в тредпуле
Я хуею. Выше было обсуждение, в котором я говорил про лум, который поддерживает миллионы потоков (фактически столько потоков сколько можно вообще объектов средних размеров создать), ты его наверняка читал, и всё ещё несёшь такую хуиту.
Аноним 09/11/23 Чтв 06:40:31 #274 №2913587 
>>2913551
>Ты может перестанешь подгонять решение под ответ и пытаться найти первое оправдание
Я ничего не подгоняю. Все твои решения несут в себе изъяны, которые я тебе демонстрирую.
> почему шарпоговно не хуже джавы
Пока что ты в треде не привёл ничего, что в джаве было бы лучше щарпа. Весь написанный тобой код на джаве транслируется в код шарпа 1 в 1, причём код получается хуже, чем можно написать в шарпе.

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

Я реально не понимаю, чем ты гордишься.
Лямбды в шарпе появились в 2007, а в джаве в 2014. 7 лет отставания.
Таски в шарпе появились в 2010, а в джаве в 2022. 12 лет отставания.
Пока что джава отстаёт только больше и больше.
Аноним 09/11/23 Чтв 06:52:40 #275 №2913592 
а где на винде экзешник рантайма находится? типа у пиздона python.exe есть у жабы java.exe,а где у сишарпа?
Аноним 09/11/23 Чтв 07:15:03 #276 №2913602 
>>2913592
Зачем тебе отдельный экзешник для запуска другого экзешника? Запускатор рантайма находится в самом исполняемом файле приложения тупо в виде нативного кода.
Аноним 09/11/23 Чтв 07:35:05 #277 №2913607 
>>2913587
Причина тряски?
Аноним 09/11/23 Чтв 08:05:35 #278 №2913643 
>>2913587
>я ничего не подгоняю
>как доказательство этого приводит то, что он ищет изъяны, а не проводит фундаментальный анализ, о чём я и сказал изначально
Какой же дегенерат, пиздец просто.

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

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

Я тебе ещё раз повторяю, искать изъяны это только способ получить урины на ебальник, так как качество найденных тобой изъянов зависит только от выбранной до размышления стороны. Если твоя сторона изначально сосёт, то и выдавленные "изъяны" будут либо вообще ложью, либо ничего не меняющей мелочью.
Аноним 09/11/23 Чтв 09:40:51 #279 №2913681 
>>2913643
>>ничиво непревёл
>+конструкторы
Что конструкторы? Конструкторы везде есть.
>+асинхронность без загрязнения кода через 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 в шарпе. Тогда тебе не составит труда написать кусок кода с виртуальными тредами такой, что его аналог в шарпе с тасками загнётся.
Аноним 09/11/23 Чтв 09:45:17 #280 №2913684 
>>2913681
>Чего стоит одно стирание типа дженериков.
Ты похоже не в курсе >>2912876
Аноним 09/11/23 Чтв 09:59:04 #281 №2913687 
>>2913643
>конструкторы
Что?
>асинхронность без загрязнения кода через async/await
Какое загрязнение? Это разные подходы, зеленые треды имеют ряд ограничений и проблемы, но ты вау-дурачок даже не в курсе.
>скорость выше в 3-26 раз
Пруфы? Скорость чего? Чесания яиц?

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

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

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

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

>мавен
говна поел. Людям пришлось пилить свой билдер, потому что jvm не развивается. Это просто везение, что большой бизнес проспонсировал все это окружение, но мавен и гредл, это ппц ужас.
Аноним 09/11/23 Чтв 10:01:01 #282 №2913688 
Бля, бедный джавадебил, он уже наверное несколько раз превысил свою суточную норму потребления урины...

Джавадебил, ты когда все поймёшь и таки перейдешь на шарп - отпишись в тред, поблагодари нас, добрых шарпочан, за то, что вразумили тебя долбаеба
Аноним 09/11/23 Чтв 10:04:35 #283 №2913690 
>>2913684
Дженериков в байткоде нет, потому что жаба была изначально без них, а потом просто ради совместимости оставили кашей как есть. То есть, jvm практически не развивается, все лепят поверх старого говнища.
Аноним 09/11/23 Чтв 10:07:54 #284 №2913695 
>>2913684
Как только с Valhalla завезут поддержку дженериков (если я не ошибаюсь, то поддержка нормальных дженериков в JVM как одна из ее целей декларируется https://openjdk.org/projects/valhalla/ ), так по классике сразу окажется, что все хорошо и никаких проблем в этом нет. Останется лишь вопрос, что 20 (30 к тому моменту?) лет назад сразу это нормально сделать мешало.
Аноним 09/11/23 Чтв 10:11:28 #285 №2913697 
>>2913643
>Executors.newVirtualThreadPerTaskExecutor
Обосрался с нейминга

Джавапараша вся так написана?
Аноним 09/11/23 Чтв 10:12:51 #286 №2913700 
>>2913695
>Project Valhalla
Это какое-то около божество в мире жабы, о нем говорили еще когда я лет 5-7 варился в легасе говне, что это будет какой-то прорыв и супер технология. Как дурачок тогда в это верил и я, что это такое, до сих пор не знаю. Жаба увы протухает, евангелисты не вывозят.
Аноним 09/11/23 Чтв 10:15:00 #287 №2913703 
javacs.png
16922300250053.png
>>2913684
А я напоминаю
Аноним 09/11/23 Чтв 10:16:25 #288 №2913705 
>>2913690
Так Шарп в самой первой версии тоже без дженериков шел. (Я когда Шаблоны корпоративных приложений Фаулера почитывал , охреневал от шарпового кода без дженериков). Во второй версии их прикрутили, но прикрутили нормально. С нормальной поддержкой со стороны рантайма.
Аноним 09/11/23 Чтв 10:25:09 #289 №2913707 
>>2913705
Я поэтому и говорю, что евангелисты рассказывают какая жаба-супер технология, на острие науки, но на деле она почти не развивается, кусок легаси кала, который живет за счет подсевших крупных кабанчиков, которые и толкают кое-как в гору этот кал.

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

Это закат.
Аноним 09/11/23 Чтв 10:27:24 #290 №2913710 
>>2913530
>>требовалось вернуть объект, а ты вернул Mono
Ну блокировку добавь, будет тебе объект. Если я в контролере верну моно - пользователю придет объект по готовности, а не колбэк.

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

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

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

>>вместо твоих get()
гет это блокировка, ее не используют в асинхронном коде
Аноним 09/11/23 Чтв 11:04:57 #291 №2913752 
>>2913681
>Что конструкторы? Конструкторы везде есть.
Как в петушарпе перестать отмакакивать 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. Получится код джавы с лумом. Я не говорил, что существует код, который нереализуем на петушарпе, но реализуем на джаве, в конце концов оба тьюринг-полны. Я с самого начала говорил, что код на петушарпе загрязняется асинк/авейтами и потому там хуже реализован многопоток.
Аноним 09/11/23 Чтв 11:12:04 #292 №2913761 
>>2913687
>Что?
-> >>2913681

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

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

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

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

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

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

>говна поел. Людям пришлось пилить свой билдер, потому что jvm не развивается. Это просто везение, что большой бизнес проспонсировал все это окружение, но мавен и гредл, это ппц ужас.
Спасибо за объяснение причин того, что джава выебала петушарп! Как это отменяет тезис?
Аноним 09/11/23 Чтв 11:18:52 #293 №2913774 
>>2913687
>какое загрязнение
Лишние async/await, которые можно избежать на java. Невозможность вызвать await из не-async функции, из-за чего дублируются методы. Всего этого нет на джаве.
Аноним 09/11/23 Чтв 11:23:31 #294 №2913782 
>>2913761
Почему джава так плохо развивается? Они почти 7 лет пилили асинхронное программирование, которое в 2012 уже у всех было. Сколько ждать AoT?
Аноним 09/11/23 Чтв 11:25:30 #295 №2913785 
>>2913782
Медленно не значит плохо. Долго пилили лум, получилось охуенно и на голову выше говнорутин, сделанных на коленке на остальных васянских языках.

>AoT
Сто лет как уже есть.
Аноним 09/11/23 Чтв 11:32:04 #296 №2913795 
>>2913752
> Простой тредпул забивается небольшим количеством одновременных тасок, ждущих ответа от интернета/диска.
Я не он, но ту хуйню высрал. Если у нас есть асинхронные API для взаимодействия с сетью/диском (а в дотнете они есть), то тред пул это нормально переваривает, так как во время ожидания ответа от сети/диска для одной задачи, он снимает ее с треда и обрабатывает другие задачи. Когда ответ от асинхронного api придет, то продолжение задачи просто будет запланировано на одном из тредов пула. Тредпул наоборот боится долгих cpu-bound задач, так как они не дают возможности освободить поток. Для них приходится писать костыли типа Task.Yield().
В луме, кстати, такие же проблемы. Недавно анон кидал в тред запись доклада про Loom от Углянского. Он в этом докладе упомянул, что разрабы лума также советуют не использовать виртуальные потоки, для блокирующих и cpu-bound задач. А если приходится, то там отдельные костыли в код приходится добавлять (отдельно помечать блокирующие секции, чтобы под такой виртуальный тред отдельный поток ОС выделился. Также Thread.Yeild() дергать, чтобы планировщик дал другому виртуальному треду поисполнятся)
Аноним 09/11/23 Чтв 11:35:17 #297 №2913798 
К слову лум не 7 лет пилили, а 3 года всего.

>>2913795
Я говорил про простой тредпул, который в принципе не может знать про то, что кто-то куда-то долбится. Хочешь мне поведать, какой тредпул скрыт под Task и зачем тогда в C# завели иссую в сентябре 2022 года, в которой до сегодняшнего дня происходят попытки реализовать некие green threads, если всё то же самое есть уже в task?
Аноним 09/11/23 Чтв 11:43:59 #298 №2913805 
image.png
>>2913785
>Медленно не значит плохо
К херам просрав пол рынка го и нод.жс, а потом просрав котлину в ведроиде.
Каково ощущать себя кобол-инженером? И ладно ты бы работал программистом и в ус не дул, слизывая сливки пока хорошо платят за легаси, но нет, сидит толкает протухшее говно за бесплатно.
Аноним 09/11/23 Чтв 11:45:09 #299 №2913806 
>>2913805
Каким хуем ты от просёра рынка перешёл к мантрам о синтаксисе?
Аноним 09/11/23 Чтв 11:54:21 #300 №2913812 
Как же шарпух разъебали в их собственном треде, мама дорогая. Сколько вы рейдили джава тред, писали гадостей, ущемляли джаваговорящих и вот такой финал. Сдавайтесь и подписывайте мирное соглашение, что будете нейтральным тредом и прекратите набеги и агрессию.
Аноним 09/11/23 Чтв 11:58:58 #301 №2913814 
>>2913812
"Ай, Моська, знать она сильна,
Коль лает на слона"... (И. Крылов)
Аноним 09/11/23 Чтв 12:25:03 #302 №2913842 
>>2913798
> зачем тогда в C# завели иссую в сентябре 2022 года, в которой до сегодняшнего дня происходят попытки реализовать некие green threads, если всё то же самое есть уже в task
Скорее всего хотят дать более производительную альтернативу таскам. Их текущая реализация через конечные автоматы плохо оптимизируется JIT-ом (из самого банального - нельзя заинлайнить вызовы асинхронных методов).
Текущая же реализация тасок и пула не блокирует потоки ОС на ожидание окончания асинхронной операции с самого их появления в платформе и языке. Так что это проблемой точно не является. Пул с самого своего появления был интегрирован с такой штукой, как IOCompletionPorts, которые используются в .dotnet для реализации асинхронного ввода/вывода. С помощью них пул реагирует на завершение асинхронных операций ввода/вывода и ставит в очередь продолжение таски.
Аноним 09/11/23 Чтв 12:33:52 #303 №2913851 
>>2913752
>Как в петушарпе перестать отмакакивать this.zalupa = zalupa? Никак.
И снова тупорылая жавадебильная обезьяна пиздит и принимает очередную порцию урины - https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/primary-constructors

Ещё не устал, жабенок?
Аноним 09/11/23 Чтв 13:08:01 #304 №2913924 
>>2913851
Неужели, спустя 10 лет существования ломбока в петушарп интегрировали одну из его функций. Лан, уберу из списка обоссывания шарпоскота конструкторы, ибо выглядит даже хорошо, только не реви так.

Добавлю @ToString, @Delegate и @Getter с @Accessors на класс, и другие аннотации, которые были запилены за время, пока шарподебилы одни только конструкторы заменяли.
Аноним 09/11/23 Чтв 13:30:15 #305 №2913997 
>>2913924
Да нам похуй на твой лобок и любые другие костыли, порождаемые убогостью джавапараша. Приходи, когда сможешь сравнивать функции шарпа с функциями джавапараши. Функции твоей любой либы в джавапараше нам не интересны, жабенок.
Аноним 09/11/23 Чтв 13:35:02 #306 №2914010 
>>2913997
Да не реви ты так, ну подумаешь ещё 20 лет ждать придётся, прежде чем перестанете отмакакивать реализацию интерфейса через делегацию, а на джаве так уже лет 5 делают.
Аноним 09/11/23 Чтв 13:44:08 #307 №2914031 
>>2914010
>Да не реви ты так
Маня, таблетки

>>2914010
>реализацию интерфейса через делегацию
Чо за поток сознания, болезный?

Джавадебил, почему джава не умеет в сериализацию объектов в жусон, что является стандартом индустрии на протяжении многих лет? JEP уже есть и все будет скоро?
Аноним 09/11/23 Чтв 13:47:50 #308 №2914040 
>>2914031
>поток сознания
Есть интерфейс с 7 методами. Есть класс, его реализующий. По определённым причинам отнаследоваться от класса и создавать его ребёнка нельзя. Нужно изменить реализацию одного метода из этих 7. Дерзай.

>жисон
В смысле не умеет? А как тогда по твоему копросервисы общаются? Ставишь любую библиотеку и сериализуешь на здоровье. Долго ещё урину принимать в ебало будешь?
Аноним 09/11/23 Чтв 13:47:59 #309 №2914041 
>>2914031
А нахуя в язык пихать все блять? Типа чтобы что?
Аноним 09/11/23 Чтв 13:49:05 #310 №2914045 
Погодите, а что, c# 12 с этими хвалёными примари конструкторами ещё не вышел? Почему это 8 дотнет ещё на стадии релиз кандидата? Получается шарпомухи до сих пор пишут this.zalupa = zalupa? Приходите, когда перестанете.
Аноним 09/11/23 Чтв 13:54:48 #311 №2914053 
>>2914040
>>2914041
Ого, так джавадебил не один, а с дружком.

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

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

Главное, не забудь сходить нахуй
Аноним 09/11/23 Чтв 14:01:52 #312 №2914059 
>>2914040
> Есть интерфейс с 7 методами. Есть класс, его реализующий. По определённым причинам отнаследоваться от класса и создавать его ребёнка нельзя. Нужно изменить реализацию одного метода из этих 7. Дерзай.

Выглядит как не сильно частый кейс, чтобы наличие отдельного инструмента под это было такой киллер-фичей. Плюс, явно покинуть вызов 6 методов не такая и большая работа, тем более с современными-то ide, но да ручная.
Если же тебе приходится этим постоянно заниматься, или у тебя интерфейсы по несколько десятков методов, то значит архитектура просто говно.
Мимопроходил
Аноним 09/11/23 Чтв 14:03:10 #313 №2914061 
>>2914053
>>2914059
То есть никак, ручками переписывать кучу методов? Пынямаю. Ждём 20 лет, а пока нинужно.
Аноним 09/11/23 Чтв 14:11:36 #314 №2914068 
Жавадебил, а вы до сих пор, когда в БД ходите sql-код ручками пишите (походу да, так как ты упоминал подстановку интерполяцию аргументов в SQL-запросах в контексте интерполяции строк)? Или всратые QueryBuilder-ы используете? Есть у вас что-то похожее на ExpressionTree и linq2sql? Или не нужно?
Аноним 09/11/23 Чтв 14:13:20 #315 №2914069 
>>2914068
Есть ORM и DSL.
Аноним 09/11/23 Чтв 14:21:35 #316 №2914079 
>>2914069
Как понимаю, тут валидный пример использования этого DSL в Hibernate? https://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html
Ну как-то врато, честно говоря. Все равно по сути ручками sql, пардон hql, писать приходится.
Аноним 09/11/23 Чтв 14:26:04 #317 №2914082 
>>2914079
Во-первых это говно, а не dsl. Нормальный dsl это QueryDSL, например. Во-вторых, если не нравится писание запросов в принципе, даже в том виде как предлагает кверидсл, есть orm, про который я упомянул в начале.
Аноним 09/11/23 Чтв 14:37:27 #318 №2914097 
>>2914082
Ну, QueryDsl выглядит уже как что-то приличное. Напоминает запросы в SQLAlchemy из Python'а. (Хотя они может быть и вдохновлялись QueryDsl).
Аноним 09/11/23 Чтв 14:41:54 #319 №2914101 
>>2914031
>>почему джава не умеет в сериализацию объектов в жусон
Наркоман штоле? Это из коробки в спринге всегда было. Джэксон справляется со всем что надо.

>>JEP уже есть и все будет скоро?
Джэпы пилят про кишочки жвм и то что нельзя либами покрыть. Сахар если и делают то только если он дает прирост производительности или получился пока филили важную фичу.
Аноним 09/11/23 Чтв 14:45:10 #320 №2914107 
>>2914040
>>Есть интерфейс с 7 методами. Есть класс, его реализующий.
1 реализация?
Нахуй ты интерфейс для него выделил долбоеб?
Если не одна - то при смене сигнатуру один хуй страдать будешь и руками/через иде все править.
Аноним 09/11/23 Чтв 14:50:26 #321 №2914113 
>>2914107
>то при смене сигнатуру один хуй страдать будешь и руками/через иде все править.
Что блядь?
Аноним 09/11/23 Чтв 14:54:37 #322 №2914124 
>>2914068
>>когда в БД ходите sql-код ручками пишите
Самый ходовой варианд через квери дсл запросы писать
Для простых крудов и легаси параши - орм
Если хочется прям как диды на скл - то можно напрямую на ждбц, но я такого никогда не видел.
>>всратые QueryBuilder-ы используете?
для орма можно и всратым пользоваться, но лучше выкинуть его и использовать жук

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

>>linq2sql
hibernate - но по нынешним меркам орм уже легаси
Аноним 09/11/23 Чтв 14:55:56 #323 №2914127 
>>2914113
Ну блять если ты хочешь сигнатуру метода сменить в интерефейсе. тебе надо тогда сменить ее и во всех 10 реализациях.
Аноним 09/11/23 Чтв 14:57:14 #324 №2914128 
>>2914127
Я что-то говорил про смену сигнатуры?
Аноним 09/11/23 Чтв 15:02:54 #325 №2914139 
>>2914124
Даже жуковый шиз уже тут. Че весь жаба тред перетек?
Аноним 09/11/23 Чтв 15:12:43 #326 №2914153 
Снимок экрана 2023-11-09 171121.png
Снимок экрана 2023-11-09 171152.png
>>2913842
>Текущая же реализация тасок и пула не блокирует потоки ОС на ожидание окончания асинхронной операции с самого их появления в платформе и языке. Так что это проблемой точно не является.
Вот это вызвало у меня нестерпимое врёти. Настолько нестерпимое, что я установил райдер, дотнет и написал бенчмарк для проверки, а так ли это на самом деле. Переплевавшись с убогости синтаксиса, дебильной инициализации проекта, отсутствия возможности получить время в наносекундах для измерений и необходимости ради получения одного long юникс-миллисекунд генерировать целый объект DateTime, а также охуев от отсутствия банального AtomicLong в петушарпе (вы как вообще синхронизируетесь, ебанаты?) я всё-таки написал это.

Результат — 3 секунды на джаве и 148 на петушарпе. Джава 21, дотнет 8. Ты высрал хуйню. Task это не аналог виртуальных потоков. Вероятнее всего, там тредпул именно такой, какой я и представлял, т.е. самый обыкновенный.
Аноним 09/11/23 Чтв 15:15:32 #327 №2914156 
image.png
>>2914124
>хз что это, приведи пример запроса. Наверняка калька с жука или чего то подобного
https://learn.microsoft.com/ru-ru/dotnet/csharp/advanced-topics/expression-trees/
Если кратко, то компилятор вместо лямбды умеет подставлять её синтаксическое дерево, которое будет доступно в коде. Его можно анализировать, изменять, объединять с другими и т.д. По нему шарповые либы типа EntityFramework и Linq2db умеют генерировать SQL код. По итогу, можно писать обычный шарповый код, идентичный обычному использованию Linq для коллекций, а либа сконвертирует это в SQL-код.
Аноним 09/11/23 Чтв 15:16:46 #328 №2914157 
>>2914153
Сука, код забыл. https://pastebin.com/1dSgAeUz
Аноним 09/11/23 Чтв 15:17:43 #329 №2914159 
>> 2914153
Посмотрим что за хуйню ты там написал. Без кода твой вскукарек это просто вскукарек.
Аноним 09/11/23 Чтв 15:19:24 #330 №2914161 
>>2914157
Дебил. Ты блокирующий Thread.Sleep в асинхронном коде вызвал. В случае TPL нужно использовать await Task.Delay
Аноним 09/11/23 Чтв 15:22:15 #331 №2914164 
image.png
>>2914157
Плюс ждать пачку тасок лучше через Task.WaitAll, чем в цикле их перебирать.
Аноним 09/11/23 Чтв 15:23:58 #332 №2914166 
>>2914157
Ну и для замера лучше хотя бы StopWatch использовать https://learn.microsoft.com/ru-ru/dotnet/api/system.diagnostics.stopwatch?view=net-7.0
Аноним 09/11/23 Чтв 15:29:06 #333 №2914171 
Снимок экрана 2023-11-09 172517.png
Снимок экрана 2023-11-09 172546.png
>>2914161
Проиграл с часа ожидания, пролетающего за 50 миллисекунд. Уноси своё говно.
Аноним 09/11/23 Чтв 15:41:04 #334 №2914185 
>>2914157
Замер времени через now вместо стопвоча и лютый обсер с вызовом методов - блядь какой же джавадебил дегенерат, это пиздец просто...
Аноним 09/11/23 Чтв 15:44:01 #335 №2914191 
>>2914157
Проиграл с того как обезьяна использовала интерполяцию в шарпе

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

Мозг жабенка совсем искалечен жавапарашей
Аноним 09/11/23 Чтв 15:44:17 #336 №2914192 
>>2914185
Может что-нибудь по делу скажешь, вместо ад хоминум высеров?
Аноним 09/11/23 Чтв 15:44:24 #337 №2914193 
>>2914128
если контракт не меняешь, то в чем проблема?
Аноним 09/11/23 Чтв 15:45:15 #338 №2914197 
>>2914191
> Может что-нибудь по делу скажешь
?
Аноним 09/11/23 Чтв 15:45:23 #339 №2914198 
>>2914192
Ты хуйню написал, перепиши как тебе выше пояснили и возвращайся

Не забудь сходить нахуй
Аноним 09/11/23 Чтв 15:46:00 #340 №2914199 
>>2914197
¿
Аноним 09/11/23 Чтв 15:46:56 #341 №2914201 
>>2914198
Вы сами тесты запустить не смогли в шарпе нормально. О чем речь вообще, бля?
Аноним 09/11/23 Чтв 15:47:09 #342 №2914202 
>>2914198
Я не поменял только измерение времени на стопвоч и ожидание на через WaitAll. Таск делей выдал смешной результат и показал тупой ебальник шарподаунов, которые не знают, как их собственный язык работает.

Флажок в анус поставишь, если стопвоч и вейтолл изменят ситуацию?
Аноним 09/11/23 Чтв 15:47:52 #343 №2914204 
>>2914202
>не изменят ситуацию
быстрофикс
Аноним 09/11/23 Чтв 15:50:59 #344 №2914211 
image.png
>>2914171
Ты не авейтишь Task.Delay(), хлебушек. Из-за этого у тебя таски ничего не ждут о отбрабатывают сразу. На скрине пример того, как это должно быть правильно написано.
Причём ебал я ебаться с циклами, поэтому заюзал linq, который будет медленнее циклов. У даже с ним у меня это всё отрабатывает за 0.12 секунды.

Нахуя ты сюда лезешь и что-то пытаешься доказать, если вообще в реализации асинхронности в шарпе нихуя не понимаешь?
Аноним 09/11/23 Чтв 15:51:47 #345 №2914215 
Алсо, в огород общей скорости языков. Если в джаве удалить ожидание вообще, чтобы как в петушарпе было (т.к. таск делей что-то не хочет работать, лул), то получится 16 мс, или в 3 раза быстрее, чем то же самое на шарпе. А если поменять экзекутор с экзекутора с виртуальным потоком на таску на простой экзекутор (тот же, что, по всей видимости, используется в Task), то разница будет вообще в 8 раз, и результат на джаве будет равен 6 мс против 48 мс на шарпоговне.
Аноним 09/11/23 Чтв 15:52:46 #346 №2914217 
>>2914211
>async/await
Ты совсем что-ли даун? Task был предложен как аналог лума, а преимущество лума в отсутствии загрязнения асинк/авейтами.
Аноним 09/11/23 Чтв 15:54:15 #347 №2914221 
А ещё ты один ноль пропустил, лол, и вместо 100к запустил 10к.
Аноним 09/11/23 Чтв 15:57:18 #348 №2914225 
>>2914217
Этот ты даун. Было обсуждение, что текущая реализация асинхронности в шарпе действительно позволяет не блокировать потоки пула во время асинхронных операций. Текущая реализация асинхронности в шарпе сделана на основе оптимизированного пула + тасок с async/await. Никто про то, что это без async/await работает не писал.
Аноним 09/11/23 Чтв 16:00:30 #349 №2914227 
>>2914225
>Никто про то, что это без async/await работает не писал.
Нахуй ты влез в разговор, не прочитав бэкграунд, дегенератина? Я этого дауна опускал >>2913587, а конкретно его пункт в ответе на "я хуею...".
Аноним 09/11/23 Чтв 16:02:26 #350 №2914228 
image.png
>>2914221
Ну вот для 100_00
Аноним 09/11/23 Чтв 16:03:08 #351 №2914230 
>>2914228
Быстрофикс 100_000 сука!!!
Аноним 09/11/23 Чтв 16:04:14 #352 №2914233 
>>2913549
код читается как говно ибо это просто костыли через явное использование разных ехекуоторов.

>>2913643
>+асинхронность без загрязнения кода через async/await
ЕЩЕ РАЗ БЛЯТЬ ГОВОРЮ

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

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

как до сих пор этого можно не понять.
Аноним 09/11/23 Чтв 16:05:57 #353 №2914238 
>>2914233
>АСИНХРОННЫЙ КОД ДОЛЖЕН ВЫГЛЯДЕТЬ КАК СИНХРОННЫЙ
Додик, так джава в этом гораздо дальше ушла.
Аноним 09/11/23 Чтв 16:06:01 #354 №2914239 
>>2914233
>АСИНХРОННЫЙ КОД ДОЛЖЕН ВЫГЛЯДЕТЬ КАК СИНХРОННЫЙ
Нет не должен. Давай определение асинхронности, синхронности, конкурентности, параллельности и отличия между ними. Мне кажется, ты нихуя не понимаешь.
Аноним 09/11/23 Чтв 16:10:22 #355 №2914242 
>>2914239
мне срать на определение асинхронности
я говорю что в НОРМАЛЬНЫХ языках именно так
код НЕ ПРЕВРАЩАЕТСЯ в не пойми что
а выглядит так же просто и читаемо БУДТО ОН СИНХРОННЫЙ

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

Если ТЫ не согласен что асинхронный код НЕ ДОЛЖЕН иметь премудрости, а должен быть похож на такой же синхронный - НУ ЗНАЧИТ ТЫ ГОВНОЕД ИЗ ВРЕМЕН ПАЛЕОЛИТА и не заметил современные тенденции (повторюсь - асинхронный код можно было писать ВСЕГДА, речь идет о чистоте)
Аноним 09/11/23 Чтв 16:13:22 #356 №2914244 
>>2913798
>К слову лум не 7 лет пилили, а 3 года всего.
Я понимаю, что 7 лет назад ты скорее всего еще юзал памперсы, но увы начали в 2017
Аноним 09/11/23 Чтв 16:26:50 #357 №2914260 
>>2914233
> АСИНХРОННЫЙ КОД ДОЛЖЕН ВЫГЛЯДЕТЬ КАК СИНХРОННЫЙ
Как по мне, и да и нет. С одной стороны,, асинхронный код, который выполняет последовательность асинхронных действий должен выглядеть последовательно, блять. То есть коллбэки с реактивщиной идут нахуй (не примяну упомянуть, что этот ваш ReactiveUI в Avalonia лютая хуйня, которая тупо создаёт лишнюю когнитивную нагрузку.)
С другой стороны, должно быть видно, что код таки асинхронный и в каких=то случаях может исполняться параллельно, чтобы не страдать при отладке, если что-то пойдёт не так. В котлине с его suspend-методами и явными async-ами только для параллельных вызовов, как по мне, нашли идеальный баланс между читаемостью и явностью асинхронного кода.
Аноним 09/11/23 Чтв 16:28:12 #358 №2914263 
>>2914228
Лень читать все, жабенка снова обоссали?
Какой же бойлерплейтный код на жабе.
Аноним 09/11/23 Чтв 16:35:12 #359 №2914275 
>>2914260
так я и говорю что с await (или suspend в котлине) это отличный баланс когда "очень похожий на синхронный код" компилятор сам перепишет то что надо
Причем в таком стиле будет вся программа.

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

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

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

а костыли оправдатели пусть засунут себе в жопу.
Аноним 09/11/23 Чтв 16:46:11 #360 №2914290 
Хочу написать обертку для класса, есть тулзы для автогенерации методов? Самому писать целую сотню не хочется.
Аноним 09/11/23 Чтв 16:51:29 #361 №2914296 
>>2914275
А почему если асинки имба имбой, ебаные индусы на юпф пишут говно? Ряльно не выкупаю. Хуже софта от микрософта просто не бывает.
Аноним 09/11/23 Чтв 16:53:05 #362 №2914297 
>>2914296
>юпф
uwp.
Аноним 09/11/23 Чтв 16:57:33 #363 №2914300 
>>2914296
потому что они индусы - 90%;
потому что это UWP - 30%

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

сам я UWP не люблю, но не буду же я называть говном все, что не люблю. Такой чести удостоена только жава.
Аноним 09/11/23 Чтв 16:59:46 #364 №2914301 
>>2914296
Во первых какое говно они написали на UWP, во вторых платформа UWP написана на крестах а программы компилируется в нативный байт код.
Аноним 09/11/23 Чтв 17:04:57 #365 №2914306 
>>2914301
Калькулятор, просмотрщик фоток и прочая поебень, которая стандартна в винде. Все это вылетает из-за хуево реализованных проставленной асинхронщины.
>>2914300
>Такой чести удостоена только жава.
Вот это любовь
Аноним 09/11/23 Чтв 17:06:13 #366 №2914308 
>>2914306
>Калькулятор, просмотрщик фоток и прочая поебень, которая стандартна в винде.
Написано на C++
Аноним 09/11/23 Чтв 17:07:05 #367 №2914311 
image.png
>>2914308
А это что?
https://github.com/microsoft/calculator
Аноним 09/11/23 Чтв 17:08:31 #368 №2914313 
>>2914311
А это другой калькулятор, из 11 винды, написанный на WinUI, а не UWP
Аноним 09/11/23 Чтв 17:09:42 #369 №2914315 
image.png
>>2914313
Это че, 11 винда 4 года назад вышла?
> на WinUI
Тут мб, я не шарю в ваших гуях
Аноним 09/11/23 Чтв 17:12:01 #370 №2914321 
>>2913549
>код читается как говно ибо это просто костыли через явное использование разных ехекуоторов.
>яскозал!
Что-нибудь посерьёзнее высрешь?
Аноним 09/11/23 Чтв 17:18:55 #371 №2914346 
А что быстрее, java или шарп? Зачем вы хуйню обсуждаете? Просто посортируйте массивы.
Аноним 09/11/23 Чтв 17:21:18 #372 №2914353 
>>2914346
Да там жеба опять читерить будет. Ты не понимаешь
Аноним 09/11/23 Чтв 17:25:45 #373 №2914360 
>>2914296
Во времена создания UWP индусы из Microsoft настолько приисполнились, что хотели сделать основным языком под него JavaScript. Я помню, какое-то время под Js было больше UWP Api, чем под шарп. Я под JS его не пробовал, но это должно было быть что-то по настоящему жуткое, если учесть, что UWP приложения в нативный код собирались.
Аноним 09/11/23 Чтв 17:27:02 #374 №2914364 
Screenshot 2023-11-09 091000.png
>>2913752
> Как в C# защититься от SQL инъекций и одновременно с этим не отказываться от удобной интерполяции?
Писать руками SQL-запросы в 2023 — это что-то уровня ассемблерных вставок. Любая даже самая простая ORM всё спокойно экранирует. Опять же непонятно, какого хрена этим должен интерполятор заниматься.
> И решение гораздо лучшее. Если сборка становится чуть сложнее, чем "скачать зависимости", то приходится мигрировать на CMake.
Что? Я за 10 лет работы ни разу такого не встречал. Большая часть нужных вещей вставляется в csproj, а если нужно что-то экстраординарное, пишешь ps-скрипт и вставляешь в пре или постбилд.
> Так ты может объяснишь, чем это плохо? Так-то это ожидаемое поведение.
Я тебе весь тред это объясняю! Когда ты пишешь await task, а внутри таска он доходит до Task.Yield(), то тред не блокируется, а освобождается и загружается следующим таском из очереди (в зависимости от конфигурации scheduler). Это то же самое, что делает loom, только loom у тебя используется исключительно внутри экзекьютора, а в шарпе весь код асинхронный до самого верха. Вот я пишу веб-сервис на ASP.Net, и у меня каждый обработчик запроса уже асинхронный из коробки, и он не занимает тред, когда ждёт IO, он освобождает его для для обработки других входящих запросов. Таким образом, если у тебя веб-сервис с тяжёлым IO, он может обрабатывать в десятки или сотни раз больше запросов по сравнению даже с обычной асинхронщиной.
> Ответишь за слова, что именно тебе в них всех не нравится, или сольёшься по этому тейку?
Ты очень тугой. Зачем нужен лум, если в текущих библиотеках не убогая асинхронность? Вот выбирай, либо лум не нужен, либо библиотеки говно.
> Простой тредпул забивается небольшим количеством одновременных тасок, ждущих ответа от интернета/диска.
Они не ждут. См. пикрелейтид. Миллион тасок, ждущих секунду, выполнились за полторы секунды, потому что эту секунду они не потребляют процессорного времени.
> Я не говорил, что существует код, который нереализуем на петушарпе, но реализуем на джаве, в конце концов оба тьюринг-полны.
Я тоже ничего не писал про реализуемость. Я писал про то, что ты утверждаешь, что виртуальные треды очень лёгкие и быстрые и гораздо круче тасок. Я тебя прошу написать такой код, который это покажет. Я понимаю, что может быть ты не знаешь как нормально с Тасками работать, поэтому код с тасками я готов написать сам. Только ты напиши свой ультрабыстрый код с виртуальными тредами на джаве.
Аноним 09/11/23 Чтв 17:32:32 #375 №2914374 
изображение.png
>>2914364
Чтобы не было доёбов по поводу асинков/авэйтов, вот тебе без них: 3 секунды миллион тасков
Аноним 09/11/23 Чтв 17:49:59 #376 №2914410 
>>2914364
> Писать руками SQL-запросы в 2023 — это что-то уровня ассемблерных вставок.
Нинужно. Пынял.

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

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

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

>Они не ждут. См. пикрелейтид. Миллион тасок, ждущих секунду, выполнились за полторы секунды, потому что эту секунду они не потребляют процессорного времени.
Тебе лишь бы высрать, или чё? Речь не шла про async/await. Речь шла непосредственно про Task, который ты, каким-то хуем, возвёл в ранг замены лума.

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

>Я тоже ничего не писал про реализуемость. Я писал про то, что ты утверждаешь, что виртуальные треды очень лёгкие и быстрые и гораздо круче тасок. Я тебя прошу написать такой код, который это покажет. Я понимаю, что может быть ты не знаешь как нормально с Тасками работать, поэтому код с тасками я готов написать сам. Только ты напиши свой ультрабыстрый код с виртуальными тредами на джаве.
Ну так я тебе и ответил. Любой асинк/авейт код берёшь, выкидываешь нахуй загрязнитель async, получаешь код на джаве с лумом.
Аноним 09/11/23 Чтв 17:52:13 #377 №2914415 
>>2914374
А теперь попробуй воспользоваться результатом этого вне async функции, долбоёб.
Аноним 09/11/23 Чтв 17:58:31 #378 №2914427 
>>2914346
Оба медленные, неповоротливые и прожорливые.
Аноним 09/11/23 Чтв 18:06:59 #379 №2914432 
>>2914410
если что я другой чел

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

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

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

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

Но уринировали неплохо, увожаемо
Аноним 09/11/23 Чтв 18:18:33 #381 №2914443 
>>2914432
> и их ОЖИДАНИЕМ (то есть await)
Запускаешь таску в экзекутор и он за тебя ждёт её. Ждёт в обычной функции, не окрашенной в коричневый.

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

>вообще он знает. На этом свойстве даже некоторые орм работают.
Кто он? Каком свойстве? Ты хоть сам-то понял, что высрал?

>а нужно? Даже у меня, поклонника даппера, sql пишет LINQ транслятор.
Суть в том, что в джаве есть этот механизм, а в петушарпе не завезли. SQL это только пример, один пример. Можно придумать много примеров, в которых плейсхолдером может быть не что угодно и это нужно контроллировать, например запуск команд в консоль, в которой часть команды будет пользовательским инпутом. Без обработчика придётся каждый аргумент оборачивать в customValidator.validate(). А если какая-то более серьёзная логика, а не просто валидация аргументов, требующая знания всего сразу? С ходу придумать не могу пример, но когда она понадобиться, придётся пользоваться чем-то типо printf, где значения находятся далеко от того места, куда их вставляют.
Аноним 09/11/23 Чтв 18:20:37 #382 №2914448 
В споре никогда не рождается истина.
Аноним 09/11/23 Чтв 18:21:39 #383 №2914450 
image.png
Че-то task.delay() не работает. То что складывает неверно, это ладно, я просто не знаю аналога атомиков в шарпе. Но почему-то отрабатывает за 0 секунд. Как заставить честно считать?
Аноним 09/11/23 Чтв 18:24:26 #384 №2914456 
>>2914438
Фантазер.
Аноним 09/11/23 Чтв 18:25:25 #385 №2914457 
>>2914450
await
Аноним 09/11/23 Чтв 18:26:52 #386 №2914462 
>>2914457
а без него?
Аноним 09/11/23 Чтв 18:27:31 #387 №2914464 
>>2914410
> Нинужно. Пынял.
Ты же любишь библиотеки? Ну вот, берёшь, например, 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, получаешь код на джаве с лумом.
Ну вот я тебе написал с асинком и без асинка, результат практически одинаковый >>2914364 >>2914374. Если бы оно работало принципиально по другому, второй вариант бы вылетел или работал бы в тысячи раз медленнее.

>>2914415
Ты говна поел что ли? В этом коде нет ни одного асинка, он чисто на TPL 2010 года.
Аноним 09/11/23 Чтв 18:27:50 #388 №2914465 
>>2914462
Ну можешь Thread.Sleep() ебануть.
Аноним 09/11/23 Чтв 18:32:56 #389 №2914471 
>>2914438
Лучше жаву обсуждать, чем верстку в впфе, чел...
Аноним 09/11/23 Чтв 18:34:34 #390 №2914472 
>>2914464
>Где перегрузка опреаторов?
Лол? В жабе нет перегрузки операторов?
Аноним 09/11/23 Чтв 18:34:47 #391 №2914473 
>>2914471
Ору, зрада прям.
Аноним 09/11/23 Чтв 18:35:13 #392 №2914474 
>>2914471
Ммм, да, так чё там по мультиселекту в TreeView?
Аноним 09/11/23 Чтв 18:35:35 #393 №2914477 
>>2914472
Неа. Главный жаббист сказал, что не будет ее и не вводят. Мол это от лукавого.
Аноним 09/11/23 Чтв 18:35:41 #394 №2914478 
>>2914462
Никак. Только превратив вызываемую функцию в async, так как, фактически, await дробит функцию на две. Этим лум и лучше, потому что загрязнения не происходит.
Аноним 09/11/23 Чтв 18:36:16 #395 №2914480 
>>2914443
>"в петушарпе ты ограничен вызовом await только в async функции"?
у тебя какие то претензии к асинк функции? это было сделано чтобы не было проблем со старым кодом. В вашей ГОВНОжаве целые типы потерли лишь бы была совместимость.
Так что ротик на ноль с этими претензиями.
Тем более что "ограничен" требует нописать ОДНО (ОДНО БЛЯТЬ СЛОВО) и это ограничен? петросянишь что ли? говно с таблетками попалось и ты сожрал?

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

>Суть в том, что в джаве есть этот механизм, а в петушарпе не завезли
ЛЮДИИИ.У НАС ТУТ ДОЛБОЕБ.
это как раз в жаве не завезли подобие LINQ Expressions
что за хуйню ты вообще несешь
Аноним 09/11/23 Чтв 18:40:17 #396 №2914481 
>>2914480
>это было сделано чтобы не было проблем со старым кодом.
Нет для этого это было сделано.
Аноним 09/11/23 Чтв 18:48:04 #397 №2914485 
>>2914481
для этого. чтобы избежать проблем когда в старом коде есть await переменная и не создавать сложных эвристик для вычисления этого
я даже линк давал на летописи.
Аноним 09/11/23 Чтв 18:48:32 #398 №2914487 
>>2914374
Так, тут я всё-таки обосрался, потому что Task.Delay() сам по себе ничего не делает, и его надо ждать. А Wait() в TPL всё-таки блокирует тред.
Так что я признаю, что Loom всё-таки лучше TPL 2010, однако он всё ещё хуже async/await 2011, потому что основной тред программы на джаве всё ещё не может быть виртуальным.
Ну и отставание на 11 лет это пиздец, конечно. Тормознее только дельфи, наверное.
Аноним 09/11/23 Чтв 18:50:21 #399 №2914489 
>>2914485
Довольно тупо, кстати. Сделали бы код некомпилящимся, и ладно. Сколько вообще в мире было проектов, в которых была переменная await? А теперь всем приходится писать async.
Аноним 09/11/23 Чтв 18:51:06 #400 №2914490 
>>2914480
>у тебя какие то претензии к асинк функции? это было сделано чтобы не было проблем со старым кодом. В вашей ГОВНОжаве целые типы потерли лишь бы была совместимость.
Проблема в том, что ты не можешь вызвать асинхронную функцию синхронно
Аноним 09/11/23 Чтв 18:51:26 #401 №2914491 
>>2914485
>не создавать сложных эвристик для вычисления этого
Ну вот реальная причина. Я кстати, сомневаюсь, что их вообще возможно сделать.
>>2914487
>основной тред программы на джаве всё ещё не может быть виртуальным
Чево блять? Thread может быть как виртуальным, так и платформенным. Что ты под этим подразумеваешь вообще?
Аноним 09/11/23 Чтв 18:57:42 #402 №2914496 
>>2914487
ну ну. ты просто не разбираешься в обоих вещах сразу, а уже сразу решил что то там признавать.

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

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

>>2914491
>Я кстати, сомневаюсь, что их вообще возможно сделать.
а я не согласен. эвристики возможны как по мне. просто не нашлось общее согласие.
Аноним 09/11/23 Чтв 18:59:18 #403 №2914498 
>>2914490
Ещё как можешь. async функция возвращает Task или Task<T>, а у них есть метод Wait() и свойство Result, которые блокируют тред до окончания выполнения. Если у тебя просто вызов функции и Result, оно вообще будет выполняться всё в одном треде синхронно.
Аноним 09/11/23 Чтв 19:00:43 #404 №2914499 
>>2914496
> ну ну. ты просто не разбираешься в обоих вещах сразу, а уже сразу решил что то там признавать.
Окей, передаю тебе эстафетную палочку.
Мне вообще работать пора, уже 11 утра, а я тут срусь.
Аноним 09/11/23 Чтв 19:00:45 #405 №2914500 
>>2914464
>А что ваш интерполятор ещё поддерживает? 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!"));

>Ну вот я тебе написал с асинком и без асинка, результат практически одинаковый >>2914364 >>2914374. Если бы оно работало принципиально по другому, второй вариант бы вылетел или работал бы в тысячи раз медленнее.
>Ты говна поел что ли? В этом коде нет ни одного асинка, он чисто на TPL 2010 года.
Почему у меня твоя хуйня не компилируется? Откуда ты метод dump достал?

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

>У тебя всегда будет основной тред, работающий в физическом треде ОСи.
И чё?
Аноним 09/11/23 Чтв 19:02:34 #406 №2914503 
>>2914499
нафиг мне эта палочка
жава - говно
жавист - говноед
причем говноед, что несет откровенный бред уже не первый раз заявляя "эта фича есть в жаве и нет в шарпе", когда в реальности ровно наоборот

он пишет из психушки, а нормальным людям нужно отдыхать.
Аноним 09/11/23 Чтв 19:04:59 #407 №2914504 
Хочу написать библиотеку, которая будет поддерживать несколько платформ. Как это должно выглядеть - есть 3 проекта, один проект содержит различные интерфейсы и классы, общие для обеих реализаций, в остальных либах уже идут конкретные реализации под платформу. Как сделать так, чтобы пользователь мог переключаться между ними просто заменив nuget пакет? Короче как в EF Core например.
Пока есть мысль создать в общем проекте синглтон, содержащий некий объект реализующий интерфейс IFactory. Каждая из библиотек будет содержать метод расширение UseLibraryName(), который будет инициализировать фабрику конкретной реализацией под плафторму. Далее все классы библиотеки для создания объектов будут использовать эту самую IFactory. Как вам идея? Сам собой все реализации интерфейсов из библиотеки будут Internal, иметь приватные конструкторы и создаваться только через фабрики и сами фабрики будут возвращать только интерфейсы, чтобы пользователь в принципе не мог написать код, зависящий от определенной реализации.
Аноним 09/11/23 Чтв 19:05:54 #408 №2914506 
>>2914480
>у тебя какие то претензии к асинк функции?
Да, то, что async код нельзя вызвать из не-async.

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

>требует нописать ОДНО (ОДНО БЛЯТЬ СЛОВО) и это ограничен
Ну-ка напиши это одно слово во внешнем коде, вызывающим твой код. Но даже если представить, что внезапно весь внешний код испарился, и ты можешь сделать все свои функции async, то это одно слово превращается в штук 5 await в каждом методе и один async на каждом из них. Так что не одно.

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

> ЛЮДИИИ.У НАС ТУТ ДОЛБОЕБ.
> это как раз в жаве не завезли подобие LINQ Expressions
> что за хуйню ты вообще несешь
Какой нахуй линк? Какое он отношение к невозможности выбрать обработчик имеет? Тебя совсем тем перекрыло?
Аноним 09/11/23 Чтв 19:06:41 #409 №2914507 
>>2914498
>>2914496
>Правда можно получить дедлок, поэтому не рекомендуется
О чем и речь собственно. В десктопных апах у тебя 100% будут дедлоки, из-за чего лично у меня горит жопа от этих async await. Может в asp это и норм, но на десктопе то и дело создает проблемы
Аноним 09/11/23 Чтв 19:11:31 #410 №2914512 
>>2914504
А какой у тебя код платформозависимый?
Аноним 09/11/23 Чтв 19:11:51 #411 №2914513 
>>2914512
Жабий, например.
Аноним 09/11/23 Чтв 19:15:32 #412 №2914517 
>>2914512
Под платформой я имею в виду не ОС, а низкоуровневые API, opengl и directx например.
Но я сейчас подумал, и понял, что идея полного скрытия реализаций хуета, так как не дает пользователю воспользоваться преимуществами той или иной платформы и тогда не имеет вообще никакого смысла писать разные реализации кроме как для саморазвития
Аноним 09/11/23 Чтв 19:18:11 #413 №2914519 
>>2914506
>Да, то, что async код нельзя вызвать из не-async.
шта? ты вообще в теме не разбираешься
есть Task/Future/Deffered и есть async который попросит компилятор удобно переписать работу с ними.
вызывай как хочешь что хочешь. Это тебе не суспенд в котлине, который как раз требует контекст для корутин

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

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

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

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

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

>>2914507
нет не будут 100%. это чушь. Просто по дефолту был выбран ConfigureAwait(true) что ошибка как по мне. Но если руки не из жопы то дедлоков не будет. (у меня вообще false на глобальном уровне через фоди (ибо мс сколько лет просят добавить это на уровне компилятора, а они ленивые пидоры))
Аноним 09/11/23 Чтв 19:22:29 #414 №2914522 
>>2914519
>росто по дефолту был выбран ConfigureAwait(true) что ошибка как по мне.
А без этого тебя ждёт исключение если далее в этом же потоке ты пытаешься обновить UI.
Аноним 09/11/23 Чтв 19:23:45 #415 №2914525 
>>2914522
а кто запрещает в UI местах явно написать ConfigureAwait(true)? Fody его не тронет.
риторический вопрос.
Аноним 09/11/23 Чтв 19:26:36 #416 №2914531 
>>2914525
>а кто запрещает в UI местах явно написать ConfigureAwait(true)? Fody его не тронет.
Дедлок мешает. Ссука, у тебя в оперативке только последние два поста храниться могут?
Аноним 09/11/23 Чтв 19:29:56 #417 №2914533 
Зачем всё это, если в WinForms и в WPF можно async обработчики событий писать?
Аноним 09/11/23 Чтв 19:31:20 #418 №2914536 
>>2914500
В шарпе тоже есть возможность создать кастомные интерполяторы строк, вызовы которых компилятор будет подставлять для обработки шаблонов строк.
https://learn.microsoft.com/ru-ru/dotnet/csharp/whats-new/tutorials/interpolated-string-handler

Вот пример использования.
https://sharplab.io/#v2:CYLg1APgAgTAjAWAFBQAwAIpwHQBUCmAHgC4DcyamOASgK4B2xAlgLb7YDCA9iwA5MAbfACcAyiIBuTAMb4AzuSQUYAZnQBvZOm2YYMLTs1IdJ9NK705xKhgDuXYQODoAvOgBEAdQdP3i0zoAIvgARoJMAF74wNyWXEKewkzEItiJyfgAMkz0+AAUACTuABL4AgJcGvaOwAC+7gCU/jq1yK1KKGpYAGy66MFhApHRsXLx+OkpwshGJlBdcL1QACzok1k5+QPhEQCGzBaixEn0AOYAkowivPH7TBbFu/TAQsLoABZPLyINrgB86AMASwAE48p9nq9sABxfDEABiDhY+xSwAIJDyDSabWQyAA2pcpjcBPtokcTqdHpCRABdChqYT4ABm6Cswlo0ms2yGewO9HJOQuV2ExLuDy+rxmQPQvCSElJ6AFZwAQrRBMAROgAPohNVOETNbTS+b9UI7MX846CwnXW58qnfYR5HLWIZTXYCTL4M7Ed4AGnQLvQTKRKOiXp971+0pMLgBOr1GreblytkVVpViZEeTdIg9EdOvuxxh0xq6qwAgrxeN7gNl3QI8lgMGzfnHtbr1akqzXnnlW4bASXtCaVuge7XEcJkcRUQAeXB/PK4dDENsAmM6BNd4TYCfPKczvLudSoWroLENdwB4gAQjwXCVp0xxZM0pdInoHps6FhCNDs7ROixCYv8HZZruuCPhmz7FrUQA==
Аноним 09/11/23 Чтв 19:31:29 #419 №2914537 
>>2914533
От неумения читать документацию.
Аноним 09/11/23 Чтв 19:32:06 #420 №2914538 
>>2914533
>async обработчики событий писать
Главное не думать о том, что будет если во время обработки события оно вызовется ещё раз
Аноним 09/11/23 Чтв 19:33:16 #421 №2914541 
>>2914531
значит ты рукожоп наверное. Тебе к коду притрагиваться нельзя
дедлоки у него откуда то. Весь мир пишет UI приложения с асинк кодом чтобы не морозить UI и у них норм
а у него блин дедлоки.

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

>>2914538
думать надо
тут либо заблокировать возможность вызова
либо предусмотреть повторный вызов который отменяет то что делалось и начинает новое.
Аноним 09/11/23 Чтв 19:35:00 #422 №2914548 
>>2914541
>думать надо
>тут либо заблокировать возможность вызова
>либо предусмотреть повторный вызов который отменяет то что делалось и начинает новое.
И все эти трудности из-за отсутствия возможности работать с асинхронными методами синхронно
Аноним 09/11/23 Чтв 19:36:22 #423 №2914550 
>>2914541
>это у тебя оперативка слабая - тебе я написал что у меня ГЛОБАЛЬНО ConfigureAwait(FALSE)
>какой нахер дедлок может быть при таком конфиге вообще.
А я тебе написал, что в таком случае будет исключение из-за попытки далее в коде обновить UI вне UI потока, а если прописать вручную ConfigureAwait(true) то будет дедлок
Аноним 09/11/23 Чтв 19:36:50 #424 №2914552 
>>2914538
Это вообще с чём угодно где угодно случиться может, даже в консольке, если у тебя отдельный тред для интерфейса. И это не говоря о всяких браузерах и т.п.
Аноним 09/11/23 Чтв 19:38:11 #425 №2914555 
>>2914536
И что это за хуйня? Шарпоговно что ли выбирает тип значения возвращаемого ${} смотря по тому, как оно используется? Это же пиздец. Ну ладно, хоть что-то. Но хуже, чем в джаве.
Аноним 09/11/23 Чтв 19:40:40 #426 №2914559 
>>2914536
ого ты замудрил
написал бы простое
FormattableString str = $"Test {value1} {value2}";

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

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

К тому же в таких случаях вообще проще использовать Dispatcher.
Аноним 09/11/23 Чтв 19:53:28 #427 №2914566 
>>2914555
>Шарпоговно что ли выбирает тип значения возвращаемого ${} смотря по тому, как оно используется?
Чет не понял, что ты имеешь ввиду.
Вот ещё на хабре нашёл неплохой пример использования кастомного хэндлера для структурного логгирования.
https://habr.com/ru/articles/591171/
Аноним 09/11/23 Чтв 20:03:54 #428 №2914578 
>>2914555
Если не нравится такой билдер, то можно пойти более гибким путём. https://sharplab.io/#v2:CYLg1APgAgTAjAWAFDNgZgAQG9kbx2GXfHJfcjAYwHsA7AZwBcC4AGDJgJwwF4MAiAFIBDAEbCApqIwBXTgEta8ztQBuw2vwDcxChgAiU+QBt5ALwnAAwnXrVjEgOoLGEzgDpn81wBlFEgAoAEn4ACQljY2psOABfbBh3VnisLlj+AEodMnxY5DyUJChMKDgANgIYAyNTC2tbeycXN2Qscl0CEvKCABYML19/AIAxak4AW2FGRjEHAGVGBVoAcw5FjI7SPXxSgE4ArndRiams/A7yADMxiWFKAAsA9W5hTlXFNY8AcQlGAEE3jJxhJaIx6AEMhscnotttyHsAvwsMkQDF0gAaDCvZbuH6MAAqAE8AA6BDLuABywmBmOx7nx1AWS2WELOeAuuQ6BViQA=
Аноним 09/11/23 Чтв 20:19:39 #429 №2914597 
>>2914578
Долбоёб, суть осталась та же. Зависящий тип возвращаемого значения от того, как его будут использовать.
Аноним 09/11/23 Чтв 20:32:35 #430 №2914611 
>>2914519
>есть Task/Future/Deffered
Ну так попробуй распакуй это без await, даун.

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

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

>в шарпе есть FormattableString. вот он как раз содержит информацию о интерполируемой строке до реальной интерполяции. Впрочем, вы не о них говорили, а просто о вставках вида @Value
Выше было сказано, что это уже хорошо и лучше, чем просто в лоб выбросить ${}, и фактически, то, о чём я изначально говорил было опровергнуто, но и было сказано, почему всё-таки в джаве лучше: вывод типа по тому, как оно используется это очень хуёво, полностью ломается принцип возврата значения. На данный момент петушарп спрашивает, какой переменной будут присваивать значение, и на основе этого выбирает тип. А ещё myCustomInterpolator.interpolate($"{zalupa}") длиннее, чем MCI."\{zalupa}".
Аноним 09/11/23 Чтв 20:49:30 #431 №2914627 
>>2914263
>>Какой же бойлерплейтный код на жабе.
это шарп..
Аноним 09/11/23 Чтв 20:54:25 #432 №2914632 
image.png
ГУЛАНГ ГОСПОДИН В ТРЕДЕ
Тааакс, что тут у вас? Ахахахахаха, сретесь чей язык более древний? Ну-ка спокуху оформили, и под шконку на свои легаси галеры поползли говно кабанчиков поддерживать, олухи
Аноним 09/11/23 Чтв 20:55:29 #433 №2914634 
>>2914632
Ещё один. Не тред, а проходной двор
Аноним 09/11/23 Чтв 20:59:50 #434 №2914640 
Призываю в тред любителей Rust.
Аноним 09/11/23 Чтв 21:03:47 #435 №2914647 
>>2914640
Не скули, джавадебил, принимай урину достойно.
Аноним 09/11/23 Чтв 21:05:27 #436 №2914649 
>>2914597
> вывод типа по тому, как оно используется это очень хуёво, полностью ломается принцип возврата значения
Я б не сказал, что прям очень хуёво, так как такие штуки достаточно редко встречаются. Но да, если до этого не сталкивался, то голову сломать может. Особенно если ещё есть перегрузка метода, которая просто 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}");
Аноним 09/11/23 Чтв 21:09:06 #437 №2914651 
>>2914647
Ты ошибся, мне нахуй не сдалась эта помойная жаба.
Аноним 09/11/23 Чтв 21:13:39 #438 №2914657 
Ебать. С такими темпами срачай тред ещё раз перекатывать придётся до выхода .net 8
Аноним 09/11/23 Чтв 21:18:06 #439 №2914658 
>>2914632
Мне иногда приходится почитывать гошные исходники, так как у нас часть микросервисов на го (в основном инфраструктурщина). По ощущениям, так няшная сишечка более выразительный язык, чем говно. Надо каким-то натуральным лоботомитом быть, чтобы на нём писать.
Аноним 09/11/23 Чтв 21:22:27 #440 №2914662 
>>2914658
Поэтому и пишут на жабке. Ибо остальное нинужна
Аноним 09/11/23 Чтв 21:22:39 #441 №2914663 
>>2914658
>>Надо каким-то натуральным лоботомитом быть, чтобы на нём писать.
Туда в основном с пыхи перекатываются.

Если б это был реальный конкурент жвм языкам и туда ломанулись джаваны - там бы уже спринг был
Аноним 09/11/23 Чтв 21:25:40 #442 №2914664 
>>2914649
>привыкли
То, что привыкли к говну не умаляет вонь говна.
Аноним 09/11/23 Чтв 21:26:00 #443 №2914666 
>>2914663
>там бы уже спринг был
Это получается и шарп не конкурент жвм? Или шарпаны у вас есть аналог спринга?
Аноним 09/11/23 Чтв 21:27:02 #444 №2914667 
>>2914666
спринг на шарпе называется дотнет
Аноним 09/11/23 Чтв 21:32:21 #445 №2914671 
>>2914667
Аспнет.
Аноним 09/11/23 Чтв 21:36:04 #446 №2914682 
>>2914658
Да не трясись
Аноним 09/11/23 Чтв 21:37:22 #447 №2914688 
>>2914671
И че, прям магия спринговая присутствует? Или типа di есть и уже аналог?
Аноним 09/11/23 Чтв 21:40:00 #448 №2914691 
>>2914688
Да.
Аноним 09/11/23 Чтв 21:40:31 #449 №2914692 
>>2914688
ди есть, анотации на контролерах есть, орм есть, че там еще я не смотрел
Аноним 09/11/23 Чтв 21:42:49 #450 №2914694 
image.png
>>2914692
Скинь лайфсайкл вашего анолога бинов. Сровню хоть.
Аноним 09/11/23 Чтв 21:57:44 #451 №2914711 
>>2914694
Какого вашего то блять, я на джаве пишу.
А шарп вижу на мониторе у коллег когда в офис заглядываю за мерчем или пожрать тортов с пицей ну и в репах видел мельком
Аноним 09/11/23 Чтв 22:03:05 #452 №2914719 
>>2914711
> за мерчем или пожрать тортов с пицей
Ну ты и пупуня. Поделился бы хоть.
Аноним 09/11/23 Чтв 22:06:43 #453 №2914724 
Джавадебилы поняли, что лучше тусоваться у шарпогоспод в уютном тредике, а свой пускай потонет. Прямо как сама жабапараша. Безродные и бездомные джавадебилы, мы продаем вас и принимаем вас. Только перестаньте джавапараши жрать
Аноним 09/11/23 Чтв 22:07:31 #454 №2914726 
>>2914724
>продаем
Принимаем

быстрофикс
Аноним 09/11/23 Чтв 22:14:56 #455 №2914735 
В интернете написано, что в с# нет заголовочных файлов.
Как мне тогда свои функции и классы раздробить на несколько файлов, чтоб не копировать функции каждый раз?
Аноним 09/11/23 Чтв 22:20:10 #456 №2914747 
>>2914735
https://learn.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods
Есть partial классы, объявление которых можно разбить на несколько файлов. А недавно, для упоротых плюсовиков видимо, знаю-знаю, что для поддержки сорсгенераторов сделали ещё и partial-методы, которые позволяют разнести определение и имплементацию метода по разным файлам.
Аноним 09/11/23 Чтв 22:20:47 #457 №2914749 
>>2914735
>>2914747
Ребят, а нахуя хедеры нужны? В жабе такой хуйни нет.
Аноним 09/11/23 Чтв 22:22:15 #458 №2914752 
>>2914747
Не, мне надо определить в 1 файле, а потом все определенное подключить к другому.
как #include "MyClass.h"
Аноним 09/11/23 Чтв 22:22:49 #459 №2914753 
>>2914747
Этот чел либо троллит либо совсем залётный. Думаю ему нужно было пояснить что вместо хедеров в шарпе "модули" как единицы компиляции, и функционал ты шаришь просто через подключение неймспейсов.
Аноним 09/11/23 Чтв 22:23:08 #460 №2914754 
>>2914749
Чтоб 100500строк кода не копировать из проекта в проект.
Аноним 09/11/23 Чтв 22:24:32 #461 №2914760 
>>2914754
Какие блять 100500 строк кода? Что ты блять несешь?
Аноним 09/11/23 Чтв 22:28:01 #462 №2914764 
>>2914760
Вот я сейчас делаю функцию, которая обходит нужный мне прямоугольник пикселей, используя прямоугольники поменьше, с определенным шагом по иксу, по игреку. И ещё будет функция, собирающая статистику.
Я не хочу, чтоб это было в основной винформе, я хочу, чтоб этот код был в другом файле, а в винформе основной я буду просто использовать.
Аноним 09/11/23 Чтв 22:29:50 #463 №2914769 
>>2914764
Доку открой, еблан тупой
Этот прав, похоже >>2914753
Аноним 09/11/23 Чтв 22:30:55 #464 №2914772 
>>2914769
Где ее открывать? Там дохуя всего, из чего 90+% не нужно.
Аноним 09/11/23 Чтв 22:35:08 #465 №2914776 
>>2914749
Мне кажется ты жирнишь, но всё же отвечу.
Заголовочные файлы используются в няшной сишечки и плюсах нужны, в силу особенностей процесса их сборки и линковки. Каждый c/cpp файл обычно собирается в отдельный obj, а потом линкер собирает все obj в одну либу/исполняемый файл. Если имплементации сущностей с одинаковыми названиями будут лежать в нескольких объектных файлах, то линкер растеряется c какой из них линковаться и отрыгнёт. Усугубляет ситуацию то, что сишный #include по сути тупо вставка содержимого одного файла в другой. Если в с/cpp заинклюдить другой с/cpp файл, то в единцу сборки первого попадут все имплементации методов/функций из второго. Для того, чтобы классы/функции из разных файлов могли как-то друг с другом взаимодействовать, их объявления выносят в заголовочные файлы, которые реализации вообщне не содержат, и которые уже можно инклюдить в c/cpp файлы.
Аноним 09/11/23 Чтв 22:36:50 #466 №2914777 
>>2914776
Ясно. Технологии древних дидов. Легаси - нинужна.
Аноним 09/11/23 Чтв 22:49:04 #467 №2914786 
ппц шарп стал популярным, в жаба треде 10 постов за день, тут больше 200.
Аноним 09/11/23 Чтв 22:58:54 #468 №2914798 
Пока жабенок спит, скажите, почему тайпскрипт не скрестили с дотнетом?
Аноним 09/11/23 Чтв 23:06:46 #469 №2914805 
NihuyaNePonyatno.PNG
>>2914747
Почему не разбивается?
Что здесь надо делать, чтоб не копировать одни и теже строки в каждый файл?
>>2914776
Т. е. тут не надо .h делать, но можно другой cs добавить? Как?
Аноним 09/11/23 Чтв 23:10:56 #470 №2914809 
>>2914805
>. е. тут не надо .h делать
Какие млять хедеры, иди уже изучи синтаксис шарпа. Как ты методом тыка язык собрался освоить??
Аноним 09/11/23 Чтв 23:12:25 #471 №2914811 
>>2914805
В рамках одного проекта просто подключай неймпейсы тех классов которые тебе нужны - using namespace MyBiba.

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

Если ты совсем тупой, хедер файл в шарпе = неймспейс
Аноним 09/11/23 Чтв 23:15:39 #472 №2914815 
>>2914798
Видимо это особо никому не надо. MS одно время заигрывали поддержкой JS в WinRT, чтобы привлечь разрабов делать приложения для своего магазина. Но как-то не взлетело.
Аноним 09/11/23 Чтв 23:18:22 #473 №2914817 
>>2914811
Спс, как раз нагуглил , но все равно. Я даже не думал об этом, тк в C++ namespace вообще другая хуйня.
Аноним 09/11/23 Чтв 23:21:23 #474 №2914823 
>>2914817
В шарпе неймспейс это просто часть имени класса. Мне каж в плюсах примерно тоже самое. Но хедеров нет, потому что изначально сделали нормальную систему компайл юнитов. В современном с++ тоже есть модули чтобы не ебаться с хедерами, ток до сих пор поддержка в компиляторах хуевая
Аноним 09/11/23 Чтв 23:24:23 #475 №2914827 
>>2914611
>Ну так попробуй распакуй это без await, даун.
а в чем проблема ЖАВАДЕБИЛ?
дожидаешься таски в блокирующем режиме и спокойно достаешь результат.
способов больше одного даже в шарпе

>Каких кучи проблем, ебанько?
говноеду пояснили, но не понял. потому что ДЕБИЛ

>везде будет вести себя также, как код с лумом,
я знаю 2 варианта кода - с авайтами и суспенды из котлина
суспенды из котлина выглядят прямо ну копия синхронного кода, но с авайтами тупо легче жить, потому что это НЕ ТОЛЬКО тупой вызов асинкметодов (а вообще все в единой парадигме - а там много чего разного туда подмешивается -и комплетионсорсы, и процессы, и события и так далее),
(а вот с котлин корутинами там немного по другому устроено и потому есть куча подводных камней - паттерн отмены, исключения, всякие скоупы - с await всей этой поебени нет, с ним все куда проще)

но жаваговноеду этого не понять ибо он ДЕБИЛ

И нет не будет выглядеть так же. Лум похож на котлиновские корутины, но даже там ПРОИГРЫВАЕТ в читабельности лол

про стринги вмешиваться не буду ибо не знаю с чего все началось и о чем вообще речь
но просто лишний раз напомню что ты жавадебил
Аноним 09/11/23 Чтв 23:27:21 #476 №2914831 
>>2914786
В шарпе можно получать изображение и звук легко, а также легко управлять клавомышью. Язык тупа топ , делаем деньги.
Аноним 09/11/23 Чтв 23:29:56 #477 №2914834 
>>2914786
ну дык все любят покидать в жависта говном
тем более что он так забавно его ртом ловит )

конечно не гуд что идут срачи
но вспоминая прошлое уныние где тред просто тонул - лучше уж так, тем более что ну забавно смотреть за жавистом с его говном.
Аноним 09/11/23 Чтв 23:31:47 #478 №2914837 
Проблема джавадебила, между прочим, не в том, что он дебил. А в том, что она джавадебил.
Аноним 09/11/23 Чтв 23:32:53 #479 №2914840 
Что не так с джавой?
Аноним 09/11/23 Чтв 23:36:08 #480 №2914845 
>>2914840
ну сам видишь. делает из людей дебилов.
держись от нее подальше.
Аноним 09/11/23 Чтв 23:40:11 #481 №2914850 
image.png
>>2914805
Ебать хардкод... Где абстрактные фабрики фабрик фабрик? Где синглтоны? Где мвц в конце концов? Не ну это только выкинуть
Аноним 09/11/23 Чтв 23:41:12 #482 №2914851 
>>2914840
Да она в целом терпима, хоть и отстала от того же шарпа - но сейчас начинает догонять, а вот её евангелисты как были тупорылыми ебланами, так и остались.
Аноним 09/11/23 Чтв 23:46:50 #483 №2914857 
>>2914851
>отстала от того же шарпа
В чем отсталость?
Аноним 09/11/23 Чтв 23:49:34 #484 №2914859 
>>2914857
не. не получится спровоцировать. не старайся. На сегодня порции говна закончились.
Аноним 09/11/23 Чтв 23:51:05 #485 №2914860 
>>2914859
Блин, ну мне скучна. Расскажи интересненькое что-нибудь... Я вот хаскель хотел начать изучать, но чет времени понел, что нет. А у тебя как дела..?
Аноним 09/11/23 Чтв 23:52:28 #486 №2914862 
Лучше F# изучай, чем хаскелль.
Аноним 09/11/23 Чтв 23:52:41 #487 №2914863 
>>2914860
скучна? иди в жава тред и напиши "жава говно"
они тебе наперебой начнут доказывать почему она не говно и ты собственно узнаешь почему она говно.

а мы спать.
Аноним 09/11/23 Чтв 23:55:33 #488 №2914866 
>>2914863
>иди в жава тред и напиши "жава говно"
Ну тогда мне придется аргументы придумывать. Лень.
>а мы спать.
Пиздец ты ахуел. А меня спросить?
>>2914862
Хаскель лучший фп язык. Ну по крайней мере самый продвинутый. Я на его основе jmm хочу понять как можно лучше... Хотя странный путь, конечно.
Аноним 09/11/23 Чтв 23:55:40 #489 №2914868 
>>2914857
Субъективно - тулинг и управление зависимости хуже. Коробка беднее, приходится затыкать сторонними либами.

Объективно - сахара в шарпе больше и он появлялся все время пока джава стагнировала. Шарп породил несколько удачных концепций, которые потом позаимствовали другие - async/await например.

Ну и в целом сейчас шарп очень коммьюнити драйвен, майки успели вскочить в уходящий поезд удачно попенсорснув дотнет - теперь он активно пилится васянами задротами, которые от релиза к релиза бустят перфоманс и подвозят фич.
Аноним 09/11/23 Чтв 23:56:44 #490 №2914870 
>>2914850
>хардкод
Что это значит? Медленный типо? Так высокоуровневые штучки только замедлят, чи не?
Аноним 10/11/23 Птн 00:03:07 #491 №2914873 
>>2914868
> Ну и в целом сейчас шарп очень коммьюнити драйвен, майки успели вскочить в уходящий поезд удачно попенсорснув дотнет - теперь он активно пилится васянами задротами, которые от релиза к релиза бустят перфоманс и подвозят фич.
Кстати, как не парадоксально, учитывая проприетарное прошлое шарпа, но да. В разработке шарпа и дотнета очередняре сейчас сильно проще принять участие и как-то на неё повлиять (можно хоть сейчас пойти на гитхаб и свой proposal в issues добавить), чем в разработке жабы с её евангелистами из Ораклов и Редхатов, JEP-ами и листами рассылок прямиком из 90-х. (Но вы только посмотрите на это https://mail.openjdk.org/mailman/listinfo )
Аноним 10/11/23 Птн 00:04:02 #492 №2914875 
>>2914870
Магические константы в коде. Так не принято.
>Так высокоуровневые штучки только замедлят, чи не?
Пфф, кому не похуй? Сначала пишут так, как принято. Гоняют тесты перфоманса. Затыкают узкие места. Еще гоняют, затыкают жесче. Че там, 95% вычислений исполняет 5% кода? Вроде так. И еще этот, кнут говорил, что преждевременная оптимизация... Что? Надеюсь сам прочтешь.
>>2914868
>Коробка беднее
Она и не должна быть большой. По моему тот факт, что шарпом управляет только майки это огромный минус, про что ты вот в конце и сам пишешь.
>Объективно - сахара в шарпе больше и он появлялся все время пока джава стагнировала.
А его, кстати, сторонние тулы не могут завезти? Вот Linq expr точно вряд ли. Его даже в котлин вроде нет. Это фича на уровне аст. Надо будет когда-нибудь глянуть нормально, конечно.
Аноним 10/11/23 Птн 00:07:44 #493 №2914879 
>>2914837
У него просто потребность во внимании, не думаю что он на постоянной основе пишет на джаве, скорее безработный вечный вкатун. Получить 21 жабу в проде, это уже почти так же сложно как перейти с кобола на джаву.

Этим языкам нужна конкуренция. Даже зеленные треды заставили в шарпах пошуршать исследователей, а с учетом что там завозят новые технологии условно раз в 10-20 лет, это все печально. Тот же котлин так же еле двигается, го просто завис.
Аноним 10/11/23 Птн 00:09:27 #494 №2914880 
>>2914879
Ты как бы учитывай, что вы одним именем несколько людей называете.
Аноним 10/11/23 Птн 00:11:32 #495 №2914883 
>>2914879
>го просто завис.
Эти дурачки хотя бы до дженериков додумались в итоге. Всю дорогу проигрывал с этих шизиков.
Аноним 10/11/23 Птн 00:15:52 #496 №2914886 
javacs.png
>>2914840
Херня, которая вместо развития, выбрала путь буллшит маркетинга и гоняет легион евангелистов по конференциям, забивая головы о том, как мы хороши и вообще передовая технология.

В реале же положение около кобола, туча легаси мест, по которым может и платят вкусно, но черпать говно в канализациях тырпрайза, это труд не для всех.
Аноним 10/11/23 Птн 00:20:04 #497 №2914891 
>>2914875
>А его, кстати, сторонние тулы не могут завезти?
Могут. К примеру, есть такие штуки как 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. А могли бы его допинать и по-сути тайпклассы добавить.
Аноним 10/11/23 Птн 00:20:11 #498 №2914892 
>>2914875
>Магические константы в коде.
Как принято в физике: длина L, изменение d (нет треугольника), в дургих задачах еще обозначал объем и скорость V, силу F, радиус r и R, и тп.
>>2914875
>Гоняют тесты перфоманса
А как тестят, бтв? Есть программа специальная, которая количество тактов процессора считает, или внедряют глобальную переменную, которая инкрементируется с каждой операцией? В вузе и школе второй способ, но он, очевидно, хуже, чем считать количество тактов/комманд ассмеблера.
Аноним 10/11/23 Птн 00:23:03 #499 №2914895 
>>2914892
>А как тестят, бтв?
https://github.com/dotnet/BenchmarkDotNet
Аноним 10/11/23 Птн 00:31:38 #500 №2914900 
>>2914868
>>Коробка беднее, приходится затыкать сторонними либами.
Код пишешь в райдере?
Аноним 10/11/23 Птн 00:35:24 #501 №2914902 
>>2914900
Не понял при чем тут жава и райдер. В основном пишу в вижаке, изредка в райдере и вскоде.
Аноним 10/11/23 Птн 00:38:06 #502 №2914903 
>>2914866
>Хаскель лучший фп язык.

Хачкель - апофеоз функциональности. Как и любая крайность он ебанут и неудобен. Жаба задумывалась как апофеоз ООП. Результат налицо.
Аноним 10/11/23 Птн 00:39:25 #503 №2914904 
>>2914903
Ну а че, выбираю лучшее из двух миров так сказать. Ты, кстати, в фп разбираешься?
Аноним 10/11/23 Птн 00:39:45 #504 №2914906 
>>2914892
>>Как принято в физике:
Так принято у байтоебов, которые на количестве символов экономят.
А вообще речь о том что должно быть не "200", а "MAX_WIDTH" или что там эти твои циферки вообще значат.
Аноним 10/11/23 Птн 00:41:42 #505 №2914908 
>>2914902
Ну вот райдер это и есть "все из коробки", в вижл - беднее, который приходится затыкать плагинами.
Вот я и поинтересовался, а не лицемеришь ли ты указывая такой аргумент.
Аноним 10/11/23 Птн 00:42:29 #506 №2914909 
>>2914906
А, ну да, разумно. Вместо 200 действительно должно быть y0 , а вместо 800 ymax
Аноним 10/11/23 Птн 00:50:19 #507 №2914916 
>>2914908
Причем здесь ide вообще, речь про языки изначально. Под коробкой подразумевается набор стандартных апи/либ языка. И вот она в жабе беднее, с чем даже джавадебил согласен. Элементарно нет жусона - бери на стороне.

Вижак кстати нифига не беднее райдера, да он может выглядит не так модно, но как ide они плюс минус на равных, а профайлинг мне в вижаке больше нравится.
Аноним 10/11/23 Птн 00:53:59 #508 №2914919 
>>2914916
>джавадебил
Поуважительнее. Я ведь обижусь.
Аноним 10/11/23 Птн 00:55:34 #509 №2914920 
>>2914895
Спс, а видеоурок есть по этой штуке? Она популярная, как я понимаю.
Аноним 10/11/23 Птн 00:58:48 #510 №2914924 
>>2914919
Извини

>>2914920
Дядь, мы к тебе со всем уважением, но давай кринжа не наваливай. Инструменты учат не по видео урокам, а читают документацию и getting started - там тебе все покажут и расскажут - https://benchmarkdotnet.org/
Аноним 10/11/23 Птн 01:01:16 #511 №2914926 
Трёх дней не прошло, а вы уже до бамплимита досрали.
Аноним 10/11/23 Птн 01:02:44 #512 №2914928 
>>2914916
>>Элементарно нет жусона - бери на стороне.
Джава это прослойка между спрнгом и жвм, а в спринге все это добро уже есть.
Вообще можно не знать кто там жсоны грузит - я в контролер объекты получаю и отдаю тоже, а как там жсон образуется - ну магия спринг епта.
Разница в том что в сишарпе спринг и язык делает одна контора, а в джаве - разные и поэтому всунуть его в стартер пак не выйдет. ну и альтернативы спрингу есть для небинарных личностей
Аноним 10/11/23 Птн 01:05:05 #513 №2914929 
Шарпаны, я вам тут упоротую штуку принес., на которую случайно натолкнулся https://github.com/Tornhoof/SpanJson . Супероптимизированный Жидсон парсер, который почти не аллоцириует память.
Аноним 10/11/23 Птн 01:06:59 #514 №2914932 
>>2914929
Пет велосипед норм, но так как нет сравнение с System.Text.Json, то полагаем оно не быстрее, а то и медленее
Аноним 10/11/23 Птн 01:10:56 #515 №2914936 
>>2914929
Надеюсь, там ансейф.
Аноним 10/11/23 Птн 01:12:05 #516 №2914939 
>>2914932
Я на него в статейке с бенчами сериализаторов наткнулся, которую мне Chrome на мобиле в рекомендации подкинул. Там есть бенчи. И если им верить, то он быстрее, чем System.Text.Json. https://medium.com/justeattakeaway-tech/json-serialization-libraries-performance-tests-b54cbb3cccbb (VPN нужен). Правда статейка уже двухлетней свежести, так что стандартный сериализатор уже могли и прокачать с того времени.
Аноним 10/11/23 Птн 01:21:18 #517 №2914941 
>>2914936
Я бегло по коду пробежался и прямого использования именно unsafe блоков и указателей не нашел. Но таки там очень много использований MemoryMarshal, Span-ов, stackalloc-ов, ref-ов и методов из класса Unsafe. Даже занимательно немного. Unsafe код в сейфовой обёртке.
Аноним 10/11/23 Птн 01:41:35 #518 №2914948 
>>2914932
я измерял. поверь. рвет System.Text.Json как тузик по всем параметрам
просто меньше фич. и более низкоуровневый.
Аноним 10/11/23 Птн 01:42:34 #519 №2914949 
>>2914903
>>2914904
Ты если спать уебал тоже, то позже ответь, пожалуйста... Може контактики выпрошу, всегда хочеца иметь человечка, которому глупые вопросы позадавать можно.
Аноним 10/11/23 Птн 02:48:17 #520 №2914956 
Вот вы про асинхронность заговорили, а как мне cpu bound задачу распараллелить? Вот у меня игра на monogame есть, и я хочу чтобы у меня инпут поллился в отдельном треде и не ебал рендер. Что мне для этого использовать System.Threading? или tpl?
Аноним 10/11/23 Птн 02:50:21 #521 №2914957 
>>2914886
Как хорошо ты шарпоговно описал.
Аноним 10/11/23 Птн 03:01:48 #522 №2914961 
>>2914957
Этот подход в демагогии работает только до 3 класса.
Аноним 10/11/23 Птн 03:03:02 #523 №2914962 
>>2914956
PLINQ/Parallel.For*
Аноним 10/11/23 Птн 03:09:49 #524 №2914965 
>>2914956
Делай асинхронным хоть cpu bound, хоть io bound, вообще без разницы. Идею, что асинхронщина нужна именно для io bound, форсят во всякой динамикодрисне типа ноды или петухона, которые в принципе сосут в io bound задачах.
Аноним 10/11/23 Птн 03:21:13 #525 №2914970 
>>2914956
не слушай этого >>2914965 чела
он не знает о чем говорит.
Аноним 10/11/23 Птн 03:31:56 #526 №2914972 
>>2914970
А кого слушать?
Аноним 10/11/23 Птн 04:06:01 #527 №2914976 
>>2914972
зачем кого то слушать? иди спать

А так
- если у тебя cpu bound задача и тебе нужно заблокироваться в этом месте (не асинхронщина) то PLINQ/Parallel.For
- иначе чел правильно говорит что cpu bound задачи, что io-bound задачи выдадут тебе Task и ты получишь асинхронщину. В том же Parallel наконец то сделали Parallel.ForeachAsync, который выполнит cpu-bound задачи и выдаст тебе таску.

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

А так...хер знает что тебе надо. все уже спят давно. и я сплю.
Аноним 10/11/23 Птн 04:39:55 #528 №2914980 
Captu123re.PNG
А как удалить массив из памяти? Dispose, который раньше использовал не работает.
Аноним 10/11/23 Птн 04:49:59 #529 №2914982 
>>2914980
он сам будет скушан при следующей сборке мусора
Аноним 10/11/23 Птн 07:23:20 #530 №2915017 
Как получить hdc монитора? Graphics.FromHwnd(Null) не дает, как в плюсах.
Аноним 10/11/23 Птн 08:11:00 #531 №2915056 
>>2915017
Вот и писал бы на своих любимых плюсах.
Аноним 10/11/23 Птн 08:28:57 #532 №2915081 
>>2915056
На них битмапу сложно считать.
Алсо код уже готов нна шарпе, работает, но хочется, чтоб данные были презентабельны, поэтому я хочу рисовать на мониторе.
Аноним 10/11/23 Птн 08:41:51 #533 №2915095 
>>2915017
Что с тобой не так? Просто от лени загуглил и первая же строчка. Нахер ты в программирование полез. Или это жабенок стебется?
Аноним 10/11/23 Птн 10:50:54 #534 №2915254 
slojna.PNG
>>2915095
Мог бы и скинуть, если так легко это нашел.

Мне кажется ты троллишь тут сидишь, пиздя на меня, но ранний бот, между прочим, уже готов и вполне себе может делать сабжи, так что я с программирования профиты получаю и точно не зря полез.
Аноним 10/11/23 Птн 10:51:21 #535 №2915257 
>>2915095
>Или это жабенок стебется?
Сомневаюсь, у жабаеблана не хватило бы таланта.
Аноним 10/11/23 Птн 11:56:02 #536 №2915347 
Почему не сделают возможность отключить GC и очищать память вручную?
Аноним 10/11/23 Птн 13:14:02 #537 №2915479 
>>2915347
Почему не закроют туалеты и не дадут возможность срать на тротуаре?
Аноним 10/11/23 Птн 13:25:09 #538 №2915489 
>>2915479
>Почему не закроют туалеты и не дадут возможность срать на тротуаре?
Потому что для этого есть твой рот, джавадебил.
Аноним 10/11/23 Птн 13:47:45 #539 №2915500 
>>2915347
>отключить GC и очищать память вручную
Вообще-то это можно сделать, если прямо очень хочется.
Аноним 10/11/23 Птн 13:54:24 #540 №2915504 
>>2915500
Я не про регионы без сборки, где ты просит гц просто поспать, а прямо полноценный контроль как в плюсах, чтобы на вызовв конструктора я сам расставлял вызовв деструктора.

Мне каж это не сложно было бы сделать, просто никому это не нужно. Ну еще пришлось бы и System переписать с учетом этого.
Аноним 10/11/23 Птн 14:51:31 #541 №2915578 
>>2915504
И потом смачно посрать на тротуаре, как независимый от туалета индус!
Аноним 10/11/23 Птн 15:42:46 #542 №2915682 
>>2915578
Нет, просто я хочу синтаксис и сахар шарпа и одновременно как мужчина самому рулить памятью. Неужели я многого хочу?
Аноним 10/11/23 Птн 16:01:23 #543 №2915717 
>>2915682
>unsafe
И можешь срать себе хоть в штаны.
Аноним 10/11/23 Птн 16:06:57 #544 №2915726 
>>2915717
Каким образом ансейф поможет мне отказаться от сборки мусора, шиз
Аноним 10/11/23 Птн 16:08:03 #545 №2915730 
>>2915682
это тоже возможно (был цикл статей на эту тему) просто придется мудрить и патчить рантайм.
но выбирай лучше язык без GC, а сам донать миллиарды и требуй синтаксиса шарпа
все у тебя получится.
Аноним 10/11/23 Птн 16:13:17 #546 №2915742 
>>2915730
>(был цикл статей на эту тему)
Ссылки?
Аноним 10/11/23 Птн 16:14:11 #547 №2915744 
>>2915682
>как мужчина самому рулить памятью
Блять, тебе же сказали, что только тупые ебланы заранее оптимизируют. Как ты капчу-то решаешь вообще?
Аноним 10/11/23 Птн 16:22:05 #548 №2915755 
>>2915744
Я не хочу ничего заранее оптимизировать, ебло - я хочу ручной контроль памяти и опциональный
GC.
Аноним 10/11/23 Птн 16:28:20 #549 №2915765 
>>2915755
>я хочу ручной контроль памяти
Это и есть оптимизация. Причем я на 100% уверен, что твое управление будет хуже, чем у гц.
Аноним 10/11/23 Птн 16:35:15 #550 №2915782 
>>2915755
С такими хотелками тебе в плюсы и Раст. И то, наверно, даже Раст тебе не подойдёт, так как со своей моделью владения тебе такого "тру-мужицкого" экспириенса не даст.
Ну а по количеству свистелок и переделок современные плюсы скорее всего Шарп уделывают.
Аноним 10/11/23 Птн 16:35:42 #551 №2915784 
>>2915742
Сам ищи. Я лишь знаю что читал этот цикл
Аноним 10/11/23 Птн 16:38:46 #552 №2915794 
>>2915782
Так это как раз тупой крестовик. Хочет свою парадигму на другой яп перетащить.
Аноним 10/11/23 Птн 17:12:54 #553 №2915889 
>>2915782
>современные плюсы скорее всего Шарп уделывают.
Ебанулся?
Аноним 10/11/23 Птн 17:27:33 #554 №2915923 
>>2915889
В чем он не прав? Одни шаблоны в крестах стоят половины сахара шарпа. В шарпе объективно не хватает множества вещей из плюсов, например возможность делать константой не только встроенные типы, или константные выражения, перемещения, множественное наследование...
Аноним 10/11/23 Птн 17:49:56 #555 №2916004 
>>2915923
>Одни шаблоны в крестах стоят половины сахара шарпа.
Ага, а в js есть eval(), можно вообще что угодно нагенерить и выполнить.
Шаблоны в крестах — очередной способ выстрелить себе в жопу.
>возможность делать константой
Во, я бы хотел константные переменные.
>перемещения
Нет.
>множественное наследование
НЕТ.
Аноним 10/11/23 Птн 18:30:38 #556 №2916152 
>>2916004
>нинужно
)
Аноним 10/11/23 Птн 18:33:55 #557 №2916163 
>>2916152
Множественное наследование нужно только таким как ты выблядкам, результатам множественной ебли мамаш
Аноним 10/11/23 Птн 18:50:15 #558 №2916195 
>>2916152
Это не просто нинужно, это опасное и вредное явление, за которое палкой по голове бить надо.

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

На C# и так несложно наговнокодить, а ты предлагаешь устроить пиздец уровня перла. Спасибо, не надо.
Аноним 10/11/23 Птн 19:03:02 #559 №2916221 
>>2916195
Ну вы и маньки, не мужики. Паматью сами не управляете. Наследований нормальных нет. GOTO, так и его нет. Как на таком говноязыке хоть что-то можно написать? Оно ж медленное.
Аноним 10/11/23 Птн 19:13:43 #560 №2916242 
>>2916221
Вот и не пиши. Гуляй в свои плюсы подальше отсюда.
Аноним 10/11/23 Птн 19:21:22 #561 №2916246 
>>2916163
Причина баха?
Аноним 10/11/23 Птн 19:21:58 #562 №2916247 
>>2916195
>опасное и вредное потому что у нас такого нет
)
Аноним 10/11/23 Птн 19:24:41 #563 №2916255 
>>2916221
>GOTO, так и его нет.
И в очередной раз джавадебил лжет, принимая урину в свой гнилой ротешник.
https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/statements/jump-statements
Аноним 10/11/23 Птн 19:39:59 #564 №2916280 
>>2916255
Ща у тебя про longjmp спросят.
Аноним 10/11/23 Птн 19:44:58 #565 №2916285 
>>2916255
Он кастрированный жиесть...
Аноним 10/11/23 Птн 19:45:39 #566 №2916287 
>>2916221
>>2916255
>>2916247

За брейки вне switch надо ставить щелбаны.
За goto надо вырывать ногти.
За наследование не DTO надо таскать за уши.

Это всё есть в c# и лучше бы этого не было.
Аноним 10/11/23 Птн 19:46:22 #567 №2916288 
>>2916280
Для этого есть трай кэтч, даун. За использование лонгжампа нужно убивать сразу на месте нахуй.
Аноним 10/11/23 Птн 19:49:10 #568 №2916292 
>>2916288
Даун, какой трай кэтч, вы же сами любите запрещать эксепшены в крестовых проектах.
Аноним 10/11/23 Птн 19:57:18 #569 №2916299 
>>2916285
И такой не нужен
Использовал 1 раз
Аноним 10/11/23 Птн 19:57:19 #570 №2916300 
>>2915726
Работа с указателями, как ты хотел.
Аноним 10/11/23 Птн 19:57:45 #571 №2916302 
>>2916292
Экспешоны могут запрещать только такие ебланы как ты, меняя их на лонгжампы

Да и мне в целом похуй на вашу возню плюсовую мышинную, пишу на шарпе и кайфую
Аноним 10/11/23 Птн 20:01:38 #572 №2916308 
>>2916302
Вот и пиши ТОЛЬКО на шарпе
Аноним 10/11/23 Птн 20:04:04 #573 №2916309 
>>2916308
Унизил всех в шарпо треде
Аноним 10/11/23 Птн 20:04:50 #574 №2916311 
>>2916308
Так я только на шарпе и пишу. Просто хотелось бы иметь возможность ручного управления памятью. Тогда шарп стал бы по истине универсальным языком. А сейчас такой язык один - Дельфи.
Аноним 10/11/23 Птн 20:09:09 #575 №2916316 
>>2916309
Что поделать
Много чего хорошего в других языках - нет в шарпе
Много задумано криво и приходится с этим жить

Если пишешь только на шарпе то незаметно

Это касается любого языка.
Аноним 10/11/23 Птн 20:12:15 #576 №2916323 
>>2916255
>джавадебил
Каким образом ты так решил?
Аноним 10/11/23 Птн 20:13:20 #577 №2916328 
>>2916316
>Если пишешь только на шарпе то незаметно
Ты только на вонючей жабе пишешь, джавадебил, не надо пиздеть тут.
Аноним 10/11/23 Птн 20:22:19 #578 №2916342 
>>2916328
Давай я тебя джабе навучу... Мне кажеца ты прям хочешь
Аноним 10/11/23 Птн 20:25:48 #579 №2916349 
>>2916342
Я не хочу есть говно, не суй мне его, говноед.
Аноним 10/11/23 Птн 20:27:15 #580 №2916352 
>>2916349
Ну ты подумай подумай, больше предлагать ведь не буду.
Аноним 10/11/23 Птн 20:41:53 #581 №2916375 
Додик хотел раскачать джава тред, но был там послан своими же, пришел тут с новой выдуманной херней, почему шарп не плюсы и опять струя урины.
Ппц ты мазохист.
Аноним 10/11/23 Птн 20:42:32 #582 №2916378 
>>2916375
>Додик хотел раскачать джава тред
Ты про что?
Аноним 10/11/23 Птн 20:46:49 #583 №2916383 
>>2916375
Да, джавадебил, мы все верим, что это был не ты.
Аноним 10/11/23 Птн 20:56:23 #584 №2916400 
>>2916328
Ты ошибся
Я как раз тот кто жавадебила говном и поливает

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

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

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

И это не считая эзотерики типа немерле....

Так что недостатки каждого из языков мне заметней
Аноним 10/11/23 Птн 20:58:40 #585 №2916405 
>>2916400
>Так что недостатки каждого из языков мне заметней
Вот и расскажи нам про недостатки джавапараши
Аноним 10/11/23 Птн 21:03:47 #586 №2916412 
>>2916405
Прошлый тред об этом распинывался
У меня знакомые жависты и много лет мне говорили "это нинужно посмотри зато жава Ынтырпрайз"
А потом это "нинужно" вводили и мне выставляли как киллер фичи
Какое же это все таки говноедство такой подход

Но я не жавист и за новыми веяниями не слежу (жависты следят, но мне разбираться влом)
Просто котлин на жвм и иногда аж злость берет когда сталкиваюсь с необходимостью дженериков и что то не так.
Аноним 10/11/23 Птн 21:07:11 #587 №2916418 
>>2916412
>с необходимостью дженериков
У тебя просто говнокод, если такая необходимость возникает. Давай кейсы опиши
Аноним 10/11/23 Птн 21:13:57 #588 №2916432 
>>2916418
гошник в треде? Да нет, даже ОНИ признали необходимость дженериков.
кейсы ему подавай. У разработчиков библиотечного кода это сплошь и рядом.
Аноним 10/11/23 Птн 21:18:47 #589 №2916443 
>>2916432
Чиво блять, в котлине есть женерики. Я думал ты про случаи, когда тебе в рантайм нужно тип определить. Типа new T();
Аноним 10/11/23 Птн 21:27:52 #590 №2916469 
Уже нет смысла спорить за языки
https://www.youtube.com/watch?v=KffVhdWAgXc
Аноним 10/11/23 Птн 21:39:10 #591 №2916498 
Хз что эти линивые жопы не могут сделать транспайлер котлина в шарпунь или компилятор в дотнет. Местами котлин вкусный, но местами они там болт ложили, походу в торопях. Но в целом тоже нравится синтаксис, но как технология, дотнет сильнее.
Аноним 10/11/23 Птн 21:41:11 #592 №2916505 
>>2916469
Автор жабист, кста.
Аноним 10/11/23 Птн 21:51:28 #593 №2916527 
>>2916498
Хорошая возможность получить работу в житбрейнсе
Аноним 10/11/23 Птн 22:12:44 #594 №2916567 
что ж мы за люди такие
без обсирания жависта и поговорить не о чем
Аноним 10/11/23 Птн 22:16:53 #595 №2916571 
>>2916498
Какие-то движения идут
https://discuss.kotlinlang.org/t/kotlin-for-net/12801/38?page=2
Аноним 10/11/23 Птн 22:17:21 #596 №2916573 
>>2916567
Давай поговорим о вёрстке в WPF.
Аноним 10/11/23 Птн 22:19:44 #597 №2916580 
>>2916573
она говно. что о ней говорить.
любая верстка что является не кодом сама по себе - говно
и в виде кода как в кутях - тоже говно

норм она в MVI(U) моделях, хоть выглядит тоже громоздко, но то все же код.
но в шарпе это было что то в мауи этакое и хз че оно там.
Аноним 10/11/23 Птн 22:20:44 #598 №2916583 
>>2916567
Давайте тогда о фп поговорим
Аноним 10/11/23 Птн 22:22:22 #599 №2916585 
>>2916583
оно говно
потому что мелкие решили развивать свой F# вместо того чтобы взять под крыло немерле
после этого тьфу на них
о чем тут говорить
Аноним 10/11/23 Птн 22:22:52 #600 №2916586 
>>2916585
Я про хаскель
Аноним 10/11/23 Птн 22:24:39 #601 №2916589 
>>2916573
XAML одно из самых удачных и живучих решений для верстки гуя. Другое дело что майки пидоры и не развивают впф. В Авалонии например развили синтаксис
Аноним 10/11/23 Птн 22:29:43 #602 №2916592 
>>2916586
не изучал. да и тред про шарп.
но как по мне - упор на конкретную парадигму скорее вреден чем полезен

>>2916589
я могу лишь сказать что в нем можно выразить многое
но сам по себе ГОВНИЩЕ ЛЮТОЕ ЛЮТЕЙШИЙ КАЛ

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

А тут хмл, причем со вложенности. в итоге получается простыня пиздец. и если ты хочешь раздробить простыню - будь добр делай это в ОТДЕЛЬНЫХ файлах коих тем более пара.

один довод только - таблицы. если нужны таблицы то чет как то MVU модели не очень работают. И они избегают крутых навороченных таблиц почему то. Даже тот же сервелат без датагрида был изначально.
Аноним 10/11/23 Птн 22:34:16 #603 №2916599 
>>2916592
>да и тред про шарп.
И чево? Пообсуждать-то хочеца с няшами, а не душными уебанами.
>не изучал
А ф шарп изучал? Лямбда исчеления понимаешь...?
Аноним 10/11/23 Птн 22:35:50 #604 №2916601 
>>2916599
понимаю, но обсуждать не хочу
я щас никакой. тяпница же вечер.

да и вообще не хочу.
чего их обсуждать, зачем вообще. Это трата времени
Аноним 10/11/23 Птн 22:37:38 #605 №2916606 
>>2916601
>зачем вообще
Скуку развеять, мне помочь.
>Это трата времени
Афигел что ли? Обидно вообще-т.
Аноним 10/11/23 Птн 22:41:42 #606 №2916614 
>>2916606
шлюху закажи (айтишники зарабатывают много). а у меня тяпница
Аноним 10/11/23 Птн 22:46:06 #607 №2916619 
https://github.com/ikvmnet/ikvm

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

Эбало понадусерового джавадебила имагине?
Аноним 10/11/23 Птн 22:55:03 #608 №2916627 
почему в треде по шарпу спорят о джаве?
Аноним 10/11/23 Птн 22:55:39 #609 №2916628 
>>2916619
Далеко не все джависты в восторге от жабы.
Аноним 10/11/23 Птн 22:55:46 #610 №2916630 
>>2916619
Возродили проект из пепла для котлина. раз уж взял из того jбсуждения, мог бы и упомянуть. У людей есть кейсы котлин -> CLR
Аноним 10/11/23 Птн 22:57:23 #611 №2916633 
>>2916627
Любят очень, причем неиронично. Но перекатываться поздно уже.
Аноним 10/11/23 Птн 22:58:14 #612 №2916635 
image.png
Ебало?
Аноним 10/11/23 Птн 23:05:32 #613 №2916645 
>>2916635
Переведи на русский, а то местные олигофрены не поймут смысла.
Аноним 10/11/23 Птн 23:08:33 #614 №2916651 
>>2916619
Ебать манямирок. Дебилизм 1,5 промытых долбоёбов, которые ни разу в жизни не применяли композицию и судящих о выразительности языков по хелло ворлдам не отображает мнения большинства.
Аноним 10/11/23 Птн 23:09:30 #615 №2916653 
>>2916645
Радость за то, что жабий байткод превращается в динамикодресню без типов.
Это как если сказать, что деградация это круто!
Аноним 10/11/23 Птн 23:11:14 #616 №2916655 
>>2916653
Ну вот дозапрещались и донипущались, что все языки без собственного рантайма пишутся на базе jvm.
Аноним 10/11/23 Птн 23:12:24 #617 №2916658 
>>2916653
>higher-kinded types
>динамикодрисня без типов
Я же говорил, местные олигофрены не поймут без перевода на русский.
Аноним 10/11/23 Птн 23:14:57 #618 №2916664 
>>2916627
Потому что вся суть ассемблеропарашного продукта языкосодержащего это копротивление джаве.
Аноним 10/11/23 Птн 23:16:46 #619 №2916667 
жокир.mp4
В скрипте есть пачка методов типа:

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() ?
Аноним 10/11/23 Птн 23:24:04 #620 №2916676 
>>2914827
>дожидаешься таски в блокирующем режиме и спокойно достаешь результат.
Ну так попробуй дождись без await, даун.

>говноеду пояснили, но не понял. потому что ДЕБИЛ
Слив принят.

> я знаю 2 варианта кода - с авайтами и суспенды из котлина
> суспенды из котлина выглядят прямо ну копия синхронного кода, но с авайтами тупо легче жить, потому что это НЕ ТОЛЬКО тупой вызов асинкметодов (а вообще все в единой парадигме - а там много чего разного туда подмешивается -и комплетионсорсы, и процессы, и события и так далее),
> (а вот с котлин корутинами там немного по другому устроено и потому есть куча подводных камней - паттерн отмены, исключения, всякие скоупы - с await всей этой поебени нет, с ним все куда проще)
Что ты высрал, уёбище? Как это хоть что-то из сказанного мной отменяет?

> но даже там ПРОИГРЫВАЕТ в читабельности лол. Яскозал!!! СКОООЗЗАААЛ!!!! НУ ПАВЕРЬТИ МНИ ПРУФАВ НИ БУДИТ!!!!
Аноним 10/11/23 Птн 23:29:23 #621 №2916681 
>>2916667
Пиздос, то есть у тебя там 999 написанных руками методов, названия которых отличаются только числом в конце? Ну с таким уёбищным API остаётся только юзать рефлексию с генерацией названия метода в строке и последующим его вызовом: this.GetType().GetMethod("ViewCard_" + cardNumb).Invoke(this, new object[]{});
Аноним 10/11/23 Птн 23:33:47 #622 №2916686 
>>2916667
Петушарп момент.
Аноним 10/11/23 Птн 23:33:53 #623 №2916687 
>>2916655
Проблема в том что все эти языки мертвы, кложа, груви, скала, котлин (полу жив благодаря андроиду).

Прикинь, ты разрабатываешь супер язык и думаешь что обмажешь супер jvm, но на деле оказывается, это тухлях, раздутый пузырь и твой язык умирает из-за пропаганды джавы. Оказалось, что jvm никому не кроме самой джавы и не нужна и там джавистов все и так устраивало, тем более никто не хотел работать на двух языках за одну зарплату.
Аноним 10/11/23 Птн 23:34:52 #624 №2916691 
>>2916687
Как это отменяет хоть что-то из сказанного мной?
Аноним 10/11/23 Птн 23:35:41 #625 №2916693 
>>2916676
о жавадегенерат нарисовался
>Ну так попробуй дождись без await, даун.
А в чем проблема ДЕБИЛ?
начиная от Task.Wait() и опускаясь до низкоуровнего task.GetAwaiter().GetResult()
не говоря уже о том что я могу взять джоинаблефактори

жавадебил во всей красе

>Как это хоть что-то из сказанного мной отменяет?
А то что твой лум можно срванивать с корутинами котлина и то он выглядит, а с авайт вообще нельзя - это ПОХОЖАЯ но ДРУГАЯ концепция дебил

если не разбираешься в теме (а это исключительно так) то просто жри говно молча.
Аноним 10/11/23 Птн 23:37:41 #626 №2916697 
>>2916693
>о жавадегенерат нарисовался
Ну вы только посмотрите как он скучал.
Аноним 10/11/23 Птн 23:39:09 #627 №2916702 
>>2916691
Ты хоть иногда свои посты перечитывай, там же не разобрать.
Аноним 10/11/23 Птн 23:39:26 #628 №2916703 
image.png
>>2916645
Там еще лучше перлы есть. Прям базу выдают.
Аноним 10/11/23 Птн 23:40:54 #629 №2916706 
>>2916693
> А в чем проблема ДЕБИЛ?
> начиная от Task.Wait() и опускаясь до низкоуровнего task.GetAwaiter().GetResult()
> не говоря уже о том что я могу взять джоинаблефактори
Ну так попробуй воспользуйся этим, даун.

>это ПОХОЖАЯ но ДРУГАЯ концепция
И как это отменяет хоть что-то из сказанного мной?

Ебанько, тебе самому не надоело высирать тонны слабосвязанного текста и каждый раз читать мои претензии к тому, что этот текст никакого отношения к теме разговора не имеет / ничего по теме разговора не отменяет?
Аноним 10/11/23 Птн 23:42:02 #630 №2916709 
>>2916702
Где у меня что непонятно? Это ты, долбоёб, не знаешь даже основ дискуссии и поэтому выполняешь работу бредогенератора, и из-за этого сам запутался после предложения начать хоть что-то осмысленное выдавать.
Аноним 10/11/23 Птн 23:45:28 #631 №2916712 
>>2916681
>999 написанных руками методов, названия которых отличаются только числом в конце
На самом деле меньше, но в чем проблема если они типовые и отличаются по номерам, которые четко привязаны к номерам карт? Нужно придумать 70 разных, думаешь так станет проще?
>>this.GetType().GetMethod("ViewCard_" + cardNumb).Invoke(this, new object[]{});
чет совсем сложно, неужели нет стандартной реализации добавления индекса?

вот допустим пример попроще у меня есть много переменных типа:
int x_1;
...
int x_99;
Есть ли в принципе возможность добавить в их название переменный индекс, чтобы динамически менять например формулы с этими переменными превращая, допустим "х56 + х56" в "х3 + х3"
Интересует сама возможность
Аноним 10/11/23 Птн 23:50:56 #632 №2916713 
>>2916712
Был бы вот не порезанный goto...
Аноним 10/11/23 Птн 23:53:57 #633 №2916715 
>>2916712
Конечно нельзя. Ты как себе представляешь статическую типизацию с выбором переменной или метода в рантайме?
Максимум что ты можешь, это написать t4 шаблон, который тебе сгенерирует нужный код.
типа switch(a){ case 1: ViewCard_1();break; case 2:...}
Аноним 10/11/23 Птн 23:55:35 #634 №2916718 
>>2916651
>>2916619
Так это же не Petu# on Java, а Java on Petu#. Здесь же наоборот людям понадобился дотнет (зачем-то) и они не смогли смириться с убогостью самого петушарпового языка.

Опять вторая теорема шарпана отработала, да что-ж такое-то!
Аноним 11/11/23 Суб 00:00:52 #635 №2916723 
>>2916712
> если они типовые и отличаются по номерам, которые четко привязаны к номерам карт
Если методы типовые, то это должен быть один универсальный метод. Тут сложно что-то сказать, не зная контекста, но наверняка это можно сделать без костылей с нумерованными методами.
> неужели нет стандартной реализации добавления индекса?
Нет, потому что программы так не пишут.
> Есть ли в принципе возможность добавить в их название переменный индекс
Есть, называется массивы.
Аноним 11/11/23 Суб 00:03:38 #636 №2916732 
>>2916723
> > Есть ли в принципе возможность добавить в их название переменный индекс
> Есть, называется массивы.
Ебать, ты мне только что сломал тот кусочек мозга, что остался с тех бородатых времён, когда я только-только начинал программировать и горел от непонимания массивов.
Аноним 11/11/23 Суб 00:09:15 #637 №2916750 
>>2916715
Хорошо, в названия лезть нельзя, это я понял.
Как бы вы реализовали простой запуск метода с нужным индексом в названии, чтобы не писать для каждого условие типа
If (cardNumb = 1) {ViewCard_1() ; }
...
If (cardNumb = 999) {ViewCard_999() ; }

При условии что методы уже прописаны в виде:
public void ViewCard_1() { }
...
public void ViewCard_999() { }

И нужно организовать их относительно простой запуск при соответствующем изменении значения "cardNumb" в пределах 1...999
Аноним 11/11/23 Суб 00:10:55 #638 №2916752 
>>2916667
Чем меня этот говносценарий так зацепил, что аж покреативить захотелось. Вышло как-то так.
https://onecompiler.com/csharp/3zt4up7r3

Вроде как оптимально. Не нужно вручную все эти 999 говнометодов в массив или свич пихать. Плюс будет более производительно, чем чисто на рефлексии.
Аноним 11/11/23 Суб 00:11:02 #639 №2916753 
>>2916732
Да, все через это прошли.
Аноним 11/11/23 Суб 00:11:44 #640 №2916756 
>>2916718
Да что вы несёте, придурки?

Это для того, чтобы жабьи библиотеки запускать под дудкой.
Я один раз этим пользовался, чтобы потестить name entity recognition бибилиотеку, написанную жабами. Она в целом улавливала имена нормально, но раз в 100 медленнее, чем надо, поэтому я забил. Если бы подошло, я бы переписал на шарпе, чтобы прослойку не использовать.
Аноним 11/11/23 Суб 00:14:45 #641 №2916758 
>>2916723
>Если методы типовые, Если методы типовые, то это должен быть один универсальный метод
универсальный метод не подойдет, т.к. там прописано достаточно много разных, зачастую индивидуальных параметров. нужна именно пачка методов с индексами и способ их запускать по номеру, без прописыванию кучи условий с if для каждого
Аноним 11/11/23 Суб 00:16:47 #642 №2916762 
>>2916758
Можно завести массив делегатов
Аноним 11/11/23 Суб 00:17:26 #643 №2916763 
>>2916752
А линк не слишком медленный?
Аноним 11/11/23 Суб 00:18:01 #644 №2916767 
>>2916750
Да напиши один и больше не мучайся!
https://pastebin.com/xSznY9PU
Аноним 11/11/23 Суб 00:19:46 #645 №2916771 
>>2916767
Перепиши на swithc case. Будет за O(1)
Аноним 11/11/23 Суб 00:23:41 #646 №2916776 
>>2916763
Ты в качестве возвращаемого результата CreateByIndexDispatcher, который вызывается один раз при старте программы, получишь обычную скомпилированную лямбда-функцию, которую jit во время выполнения сможет оптимизировать как любую другую. Метод Compile у Expression именно что компилирует выражение для лямбды в IL.
https://learn.microsoft.com/ru-ru/dotnet/api/system.linq.expressions.expression-1.compile?view=net-7.0
Аноним 11/11/23 Суб 00:24:30 #647 №2916779 
>>2916771
Готово.
https://pastebin.com/DVZDB6mN
Аноним 11/11/23 Суб 00:25:53 #648 №2916785 
>>2916779
За один день 3к строк. Надбавку к зп должны дать. Вот это я понимаю - программирование.
Аноним 11/11/23 Суб 00:26:16 #649 №2916786 
Тесты обновили
https://www.techempower.com/benchmarks/#hw=ph&test=plaintext&section=data-r22
Аноним 11/11/23 Суб 00:29:46 #650 №2916796 
>>2916752
Спасибо, что расписал. реализация не выглядит простой для меня. сохранил в отдельный файл потом попробую разобрать поподробнее
>>2916767
да, нахуячу все через if пока, т.к. методов у меня не так уж и много, чтоб лезть совсем глубоко на данном этапе. просто думал есть волшебная кнопка

всем спасибо
Аноним 11/11/23 Суб 00:30:56 #651 №2916799 
>>2916786
Ура. Вы сможете сделать нормальные тесты, которые не за 5 сек завершаются?
Аноним 11/11/23 Суб 00:41:14 #652 №2916815 
image.png
>>2916786
А почему даже бенчи на жебе пишут?
Аноним 11/11/23 Суб 00:51:33 #653 №2916824 
>>2916756
Как минимум наличие разных причин для использования этого говнеца шлёт нахуй долбоёба, который наличие этого представляет как доказательство превосходства шарпоговна.
Аноним 11/11/23 Суб 01:07:13 #654 №2916856 
>>2916786
Весёлый, кстати, сайт для обоссывания шарподаунов. Во всех тестах джава превосходит шарпоговно, где-то сильно, где-то не сильно, и только в одном тесте petu# смог обойти джаву с отрывом в... 0,015%.

Шарподебилы, вот вам принесли реальные тесты, а не синтетические, что скажете? Скорость нинужна, у нас язык Enterprise Level?
Аноним 11/11/23 Суб 01:10:07 #655 №2916859 
image.png
>>2916856
Ты как-то по особому читаешь?
Аноним 11/11/23 Суб 01:10:36 #656 №2916860 
Кстати, эти тесты ещё и подтверждают мои слова в сторону лопатодебилов. Везде у шарпоговна в топе находится скормленный с лопаты аспнет. Там, где аспнет оптимизирован, петушарп не сильно отстаёт, но там, где он сосёт, никто и не подумал написать что-то своё, и все жрут скормленное с лопаты неоптимизированное говно от копрософта.
Аноним 11/11/23 Суб 01:10:58 #657 №2916861 
>>2916859
>луна это спутник земли
Что-то сказать хотел?
Аноним 11/11/23 Суб 01:11:45 #658 №2916863 
>>2916861
Ну типа буквально во всех тестах aspnet выше жабы на сотни пунктов.
Аноним 11/11/23 Суб 01:17:12 #659 №2916871 
Снимок экрана 2023-11-11 031302.png
Снимок экрана 2023-11-11 031346.png
Снимок экрана 2023-11-11 031618.png
>>2916863
Ты как-то по особенному читаешь?
Аноним 11/11/23 Суб 01:18:18 #660 №2916873 
>>2916871
Спринга не видно.
Аноним 11/11/23 Суб 01:18:55 #661 №2916874 
>>2916873
И чё?
Аноним 11/11/23 Суб 01:19:37 #662 №2916875 
>>2916874
Да ниче. Это фреймворк, на котором пишут все жаббисты. Нахуй тут кал какой-то сравнивать?
Аноним 11/11/23 Суб 01:21:20 #663 №2916877 
>>2916875
Не надо проецировать своё поедание говна от копрософта с лопаты на нас. Кому не нравится спринг те выкидывают это говно нахуй и перестают им пользоваться, благо обилие библиотек позволяет. У вас же что копрософт в рот насрал, то вы и проглотили, потому что лучше просто нет.
Аноним 11/11/23 Суб 01:22:15 #664 №2916879 
>>2916877
> Кому не нравится спринг те выкидывают это говно нахуй и перестают им пользоваться
АХАХАХАХАХ, бля запостите это в жабатред. А они-то и не знали, что так можно.
Аноним 11/11/23 Суб 01:22:41 #665 №2916880 
>>2916879
То есть по делу ничего не скажешь? Слив принят.
Аноним 11/11/23 Суб 01:24:46 #666 №2916885 
>>2916875
>сравнивайте только с тем, с чем рядом аспнет не так позорно выглядит
Ясн. Ты штаны-то постирай.
Аноним 11/11/23 Суб 01:33:52 #667 №2916896 
Кстати, те отрывы в 40-80% от петушарпа к джаве это если смотреть по пропускной способности. Если смотреть по задержке, то в норме обход джавой шарпоговна в 3-4 раза. В жисон сериализации джава вообще на 1 месте и обошла петушарп в 9 раз.
Аноним 11/11/23 Суб 01:50:53 #668 №2916916 
>>2916697
не скучал. тяпница же. не тупи

>>2916706
>Ну так попробуй воспользуйся этим, даун.
пользовался и пользуюсь если пишу расширения для студии
ЧТО СКАЗАТЬ ТО ХОТЕЛ НЕУЧ?

>как это отменяет хоть что-то из сказанного мной?
никак. ты имбецил. я никак иначе не могу пояснить. просто запомни
Аноним 11/11/23 Суб 01:52:49 #669 №2916919 
>>2916916
Цундерка
Аноним 11/11/23 Суб 01:56:16 #670 №2916924 
>>2916916
тяпница. я бухаю. мне конечно приятно напихать жависту полон рот дерьма пока ждем дотнет 8
но
1 у него и так полон рот дерьма, он только им и питается, так что не так забавно
2 дотнет 8 непонятно что мне полезного принесет. они (цензура) кучу полезного НЕ ДЕЛАЮТ, а делают полезное не пойми для кого

а еще конечно капча. я что считать должен (цензура)
Аноним 11/11/23 Суб 02:04:53 #671 №2916933 
>>2916916
> ЧТО СКАЗАТЬ ТО ХОТЕЛ
Ладно, ты меня запутал своим дебильным вопросом "какие претензии к async". Есть претензии не к async, а к петушарпу, в котором для того, чтобы перестать срать платформенными тредами на каждый запрос приходится загрязнять свой код асинк/авейтами.

> никак. ты имбецил. я никак иначе не могу пояснить. просто запомни
Слив принят. Не надоело мочу на ебальник принимать?
Аноним 11/11/23 Суб 02:12:27 #672 №2916944 
>>2916933
еще раз
подход асин авайт ОТЛИЧАЕТСЯ от подхода как в котлине или луме. вот кажется что это одно и то же - но НЕТ.
разница в том, что авайт работает с Task/Future и и может быть представлено много что. Также паттерн отмены и распространения исключений (не знаю в луме, но в котлине он бррр)
В итоге с асинк/авайт парадигмой работать сильно проще и гибче. А в котлине приходится головой подумать. (в луме не знаю, но лум выглядит как дешевый котлин).

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

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

и лум - он похож на котлин, а не на шарп. и отсуствие какого то там слова не является киллер фичей если несет с собой кучу разного. С авайт УНИФИЦИРОВАННАЯ работа с тасками - а такской может быть и корутина и процесс и событие и даже котики у которых лапки

не говоря уже про то что авайт читается на мобиле, а суспенд хер.
Аноним 11/11/23 Суб 02:15:11 #673 №2916950 
>>2916933
>Не надоело мочу на ебальник принимать?
дебил не понимает что он дебил. эффект даннига крюгера )
Аноним 11/11/23 Суб 02:15:36 #674 №2916951 
>>2916944
Причём здесь петухлин, ебанько?
Аноним 11/11/23 Суб 02:15:51 #675 №2916952 
>>2916950
Не ворочайся, самослитое.
Аноним 11/11/23 Суб 02:17:02 #676 №2916956 
>>2916944
>загрязнение кода это плохо
>асинк/авейт это не то же самое, что лум
У тебя с головой вообще всё в порядке?
Аноним 11/11/23 Суб 02:19:29 #677 №2916957 
>>2916956
ясно. петушок жавоебский, который КРОМЕ ЖАВЫ ни на чем не писал, был слит, обоссан и обосран

спокойной ночи говноед
Аноним 11/11/23 Суб 02:19:50 #678 №2916958 
>>2916957
Слив принят.
Аноним 11/11/23 Суб 02:30:39 #679 №2916965 
>>2916958
слив жаваговноеда. ну да
спокойной ночи бестолочь, которая кроме жавы ничего и не видела
и про шарп такую херь пишет, что явно что он шарп НЕ ЗНАЕТ


стоит ли слушать такого говнопидора? очевидно нет.
тем более ночью на субботу

все. я буду ждать дотнет 8, а вы тут кормите говноеда если хотите. Для меня он показал что он нихера не разбирается ни в чем.
Аноним 11/11/23 Суб 02:32:22 #680 №2916967 
>>2916965
Чё ты рвёшься, слитое?

Итог: джава обоссала петушарп и в асинхронности. Шарпобляди так и не смогли ответить, как не загрязнять свой код ничем ради достижения более высокой пропускной способности.
Аноним 11/11/23 Суб 03:53:42 #681 №2917004 
>>2916967
> как не загрязнять свой код
>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 — это просто образец элегантности.
Аноним 11/11/23 Суб 04:03:17 #682 №2917013 
>>2917004
Ах, ну да, и без перегрузки операторов любой математический код становится просто ужасным.
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()));
Пиздец. И ты мне ещё будешь про какое-то загрязнение кода в сишарпе рассказывать.
Аноним 11/11/23 Суб 04:18:28 #683 №2917019 
image.png
>>2916860
Уронотерапия
Аноним 11/11/23 Суб 04:22:59 #684 №2917020 
>>2917004
>На фоне этого пиздеца лишний 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 в каждом файле из-за того, что у каждого класса свой неймспейс.
Скрывается средой разработки. Импортируется всё автоматически той же средой. Так гораздо лучше, чем уповать на то, что классы не пересекутся ради сокращения объёма скрытого и автосгенерированного кода.

>>2917013
Нинужно. Кому нужно ставит Manifold и пользуется перегрузкой операторов.

По итогу обоссан каждый высер (кроме высера про несколько классов в одном файле, он обоссан эффективно доказательством реализуемости во всех случаях задачи многоклассового файла через пакет)
Аноним 11/11/23 Суб 04:24:36 #685 №2917021 
Снимок экрана 2023-11-11 031302.png
Снимок экрана 2023-11-11 031346.png
Снимок экрана 2023-11-11 031618.png
>>2917019
Уринотерапия.
Аноним 11/11/23 Суб 04:27:42 #686 №2917022 
image.png
>>2917019
Кстати, прогресс на лицо, это за 22 год, спринг там еще в ошибки выпадал.
То есть, представь, основный фрейм технологии, до того как его в тесты макнули, работал чуть быстрее джанги, да еще вываливался в ошибки. Вот оно джаво качество. и так во многом
Аноним 11/11/23 Суб 04:33:30 #687 №2917024 
>>2917021
Чувак, у тебя фаворит это спринг, вертекс и всякие нетти, я же рассказывал о рапидойде, который даже не был веб-сервером.

Там тонна васянских либ, а мы говорим о флагманах, я тебе даже джанго показал, спринг ее победил, лол.
Аноним 11/11/23 Суб 04:34:55 #688 №2917025 
>>2917024
-> >>2916885
Аноним 11/11/23 Суб 04:45:00 #689 №2917028 
image.png
Вот еще интересный момент, у джавы достаточно хорошие бд-драйверы, (если вы в сыром sql пишите), как только мы выбираем full-ORM, жаба начинает сосать, даже с лучшими дравами.
К-кал-качество
Аноним 11/11/23 Суб 04:53:54 #690 №2917030 
>>2917028
>сравнивайте только с тем, с чем рядом аспнет не так позорно выглядит
Да я понял уже. Дегенерат ни micro не показал, ни другие тесты, потому что в них не так удобно уже всё получается. И превосходство там не 15% в сторону петушарпа, а натуральное обоссывание в 40%+ на джаве.
Аноним 11/11/23 Суб 05:01:30 #691 №2917032 
>>2917030
>>сравнивайте только с тем, с чем рядом аспнет не так позорно выглядит
Ппц, 5 раз перечитал, так и не понял. Ппц ты шиз.
Аноним 11/11/23 Суб 05:02:32 #692 №2917033 
>>2917032
Ну это твои проблемы, что ты русский текст не понимаешь, лол.
Аноним 11/11/23 Суб 05:06:25 #693 №2917034 
Нужно всегда внимательно читать гринтекст. А то часто там отсебятина, которой в оригинальном посте не было.
Аноним 11/11/23 Суб 05:26:19 #694 №2917040 
>>2917020
> Дебил нахуй. Экзекутор с виртуальными потоками закрывать не надо, он один может быть на всю программу, в том и смысл виртуальных потоков.
Я код копировал из туториалов.
Ну тогда тебе его в виде зависимости придётся везде таскать. Вот блять загрязнение кода так загрязнение.
> var есть уже давно
Ох, и правда, аж в 2018 году появился.
> Но им никто не пользуется, потому что он вредит.
Точно, жабабляди не умеют лаконичный код читать. Приучили за 20 лет. Удивительно, что использовали var, при том, что все остальные спизженные из шарпа фичи специально делают менее похожими.
>Все пишут, потому что с ней более читаемо и красиво.
Что? Жабабляди добровольно замусоривают свой код? Заебись.
> А установка файл = класс даёт облегчение как обзора проекта по директориям
НИНУЖНА
> Мог бы сказать "когда я перехожу в жабу, я теряю свой сапог в жопе, потому мне неприятно", и тогда было бы по делу.
Я теряю свой сапог в жопе жабабляди, которая это писала, потому что она разработана на тысячу строк. Нет такой ситуации, когда у тебя класс логики страницы мобильного приложения одновременно является хэндлером событий. Это банальная лень, за которую нужно пиздить палкой. В шарпе такого не бывает, потому что события обрабатываются функциями и методами, а не лишними сущностями в виде объектов.
> Скрывается средой разработки.
ТОЛЬКО ВЫИГРАЛИ
Ну то есть фича языка и стандартной библиотеки (и всех других библиотек), которую приходится скрывать средой разработки, чтобы она не мешалась. Иначе открываешь файл, а у тебя на весь экран импорты, а логика никакая не влезает.

> Нинужно. Кому нужно ставит Manifold и пользуется перегрузкой операторов.
ТОЛЬКО ВЫИГРАЛИ
Ну то есть языку нужны костыли, чтобы им нормально пользоваться можно было.
> По итогу обоссан каждый высер
Ты понимаешь, что ты себе на ебало ссышь?
Аноним 11/11/23 Суб 05:55:29 #695 №2917053 
>>2917040
>Я код копировал из туториалов.
>Ох, и правда, аж в 2018 году появился.
>Точно, жабабляди не умеют лаконичный код читать. Приучили за 20 лет. Удивительно, что использовали var, при том, что все остальные спизженные из шарпа фичи специально делают менее похожими.
>Что? Жабабляди добровольно замусоривают свой код? Заебись.
>ТОЛЬКО ВЫИГРАЛИ
>Ну то есть языку нужны костыли, чтобы им нормально пользоваться можно было.
>НИНУЖНА
Тебе лишь бы высрать что-то, или чё?

>а у тебя на весь экран импорты, а логика никакая не влезает.
Шарподебилы не знают, что такое колёсико мыши?
>Ну то есть фича языка и стандартной библиотеки (и всех других библиотек), которую приходится скрывать средой разработки, чтобы она не мешалась.
Фича языка в том, что нет вероятности пересечения классов. Скрывается негативное последствие этого, оставляя только позитивные.

>Ты понимаешь, что ты себе на ебало ссышь?
Ну я не знаю, иди в дурку подлечись, а то с самоидентификацией у тебя проблемы, что аж своё ебало моим считаешь.
Аноним 11/11/23 Суб 07:35:00 #696 №2917108 
>>2917053
> Тебе лишь бы высрать что-то, или чё?
Ты этим два треда уже занимаешься. Пришёл к нам в тред и высрал что-то про загрязнение awaitами, в то время когда код на джаве является самой настоящей помойкой, состоящей из грязи чуть более, чем полностью. Но когда я тебе на это указал, ты стал весь этот мусор защищать с пеной у рта. Удивительно.

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

> Фича языка в том, что нет вероятности пересечения классов.
Ты реально думаешь, что в шарпе кто-то в одном неймспейсе объявляет два класса с одинаковым именем?
Ну вот представь, ты пишешь либу. У либы есть основное имя и подразделы. И ты в один из подразделов засовываешь два класса с одним и тем же именем. Прочувствовал? Оно не скомпилируется

Я правильно понимаю, что по остальным пунктам ты слился?
Аноним 11/11/23 Суб 08:53:00 #697 №2917150 
Дык вот чего ваши треды так быстро летят - вы просто сретесь 24/7
Аноним 11/11/23 Суб 08:57:32 #698 №2917153 
>>2917150
А ты апологет какого яп? На самом деле это не важно, потому что он скорее всего с проглотим сосет у дотнета и даже у джавы. Присоединяйся...
Аноним 11/11/23 Суб 09:08:40 #699 №2917156 
>>2917150
А что тут еще делать? Играть в стековерфлоу?
Аноним 11/11/23 Суб 09:13:30 #700 №2917160 
>>2917150
Здесь нет никакого срача, есть только бесконечное уринирование джавадебила. Ему нравится, а нам не жалко.
Аноним 11/11/23 Суб 09:38:22 #701 №2917173 
>>2917160
Скорее поза 69...
Аноним 11/11/23 Суб 10:50:51 #702 №2917202 
>>2916287
Шарпопидораха во всей красе. Ей бы лишь бы быть кем-то оттасканной за уши.
Аноним 11/11/23 Суб 10:57:29 #703 №2917210 
>>2917108
>Ты этим два треда уже занимаешься. Пришёл к нам в тред и высрал что-то про загрязнение awaitами, в то время когда код на джаве является самой настоящей помойкой, состоящей из грязи чуть более, чем полностью. Но когда я тебе на это указал, ты стал весь этот мусор защищать с пеной у рта. Удивительно.
Ты может по делу что нибудь скажешь, или и дальше будешь стрелочки метать? Например, почему тебе в рот нассали за высер про оверрайд?

>Ты не увиливай от темы. Дизайн языка оказался настолько уёбищным, что понадобился костыль, так?
Какой нахуй костыль?

>Ты реально думаешь, что в шарпе кто-то в одном неймспейсе объявляет два класса с одинаковым именем?
>Ну вот представь, ты пишешь либу. У либы есть основное имя и подразделы. И ты в один из подразделов засовываешь два класса с одним и тем же именем. Прочувствовал? Оно не скомпилируется
Чтобы не писать import нужно вообще отказаться от неймспейсов. Если ты используешь неймспейсы, у тебя абсолютно то же самое нагромождение using вначале класса.

>Я правильно понимаю, что по остальным пунктам ты слился?
По каким? По оверрайду, который ВНЕЗАПНО писать не нужно или по вару, который уже 6 лет в языке есть?
Аноним 11/11/23 Суб 11:03:16 #704 №2917214 
+асинхронность без загрязнения кода через async/await
+скорость выше в 3-26 раз
+огромное количество либ, выбирай не хочу
+много разных GC
+обратная совместимость
+кроссплатформенность (настоящая, в том числе для либ для гуёв и сред разработки и вообще для всей экосистемы)
+подход к разработке, когда буквально каждая фича, которая присутствует, сделана лучше, чем у пародий на джаву (как пример интерполяция строк)
+поддержка композиции без перепечатывания методов (@Delegate)
+поддержка изменения неизменяемых объектов через копирование через @With и @WithBy. Нет, шарподебильные рекорды это не тожисамае, потому что with и withby можно повесить куда угодно, а не только на рекорды.
+улучшенная генерация геттеров — не надо хуярить на каждое поле {get;}, можно просто повесить на весь класс @Getter, а также можно сделать их в fluent-style без убого префикса Get через @Accessors(fluent = true)
+мавен (лучшая система сборки ever)
+не пидорашье комьюнити, которое, в отличии от петушарпа, занимается написанием кода, а не запрещениями, наказаниями и тасканиями за уши
+-стирание типов (кто-то считает стирание очень хорошим, кто-то очень плохим, по факту это небольшая проблема, которая мешает создавать два метода с одинаковой сигнатурой после стирания, и всё)
Аноним 11/11/23 Суб 11:07:51 #705 №2917219 
>>2916323
Под кроватью нашёл.
Аноним 11/11/23 Суб 11:32:14 #706 №2917242 
>>2917214
Не кормите шиза, он уже копипасту по второму кругу кидает, и вероятно иногда сам себе отвечает. ну не верю что чел ему одно и тоже отвечает, уже раза три точно
Раз обоссали и хватит кормить
https://www.youtube.com/watch?v=1vgDUbK7Tao
Аноним 11/11/23 Суб 11:42:44 #707 №2917250 
>>2917242
Не рвись, пользователь говна.
Аноним 11/11/23 Суб 13:04:50 #708 №2917307 
>>2917214
Смешная агитка, жаль что пиздеж. Жавадебил, а ты настоящий евангелист или просто школьник?
Аноним 11/11/23 Суб 13:06:09 #709 №2917310 
>>2917214
Ты просто все русское ненавидишь, чел...
Аноним 11/11/23 Суб 14:00:29 #710 №2917384 
>>2917307
>>2917310
Аргументированными ответами удовлетворён.
Аноним 11/11/23 Суб 14:15:11 #711 №2917402 
>>2917384
А вот Oracle вряд-ли удовлетворен, 5 рублёвый. Старайся лучше, и возможно, мы разрешим тебе остаться - будешь у нас штвтным уриноприемником. Ласково будем звать тебя уриножавадебил.
Аноним 11/11/23 Суб 16:35:52 #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){ ... }
...
}

Делаю это я в случае, если не нахожу чего-то похожего в коде.

Вопрос. С какой вероятностью я не найду у вас в коде такого?
Аноним 11/11/23 Суб 16:50:42 #713 №2917694 
>>2917662
> В первый же свой рабочий день, я делаю что-то в духе:
На второй тебя выпинывают на мороз за попытку насрать в кодовую базу какой-то хуйней
Аноним 11/11/23 Суб 16:55:48 #714 №2917702 
>>2917662
Ни разу ни в одной из моих компаний такой хуйни никто не писал.
Для ошибок есть исключения, для отсутствия значения есть null. Это просто мусорный велосипедный код.
Аноним 11/11/23 Суб 16:57:49 #715 №2917703 
>>2917702
> Для ошибок есть исключения,
https://youtu.be/a1ye9eGTB98
Аноним 11/11/23 Суб 17:02:24 #716 №2917708 
>>2917702
> Для ошибок есть исключения
)))
> для отсутствия значения есть null
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Самому-то не смешно?
Аноним 11/11/23 Суб 17:21:04 #717 №2917752 
>>2917214
>+асинхронность без загрязнения кода через async/await
пояснял пояснял ДЕБИЛУ что это вообще то разные вещи. но он ДЕБИЛ.
>+скорость выше в 3-26 раз
смотря что сравниваем да и как.
>огромное количество либ, выбирай не хочу
насколько они актуальные? небось написанные в древнем стиле "создаем потоки и управляем вручную". А как же твоя хваленная асинхронность?
>много разных GC
лол. я ему и говорил что тюнить приходится, а он говорил что оно само. а теперь киллер фича - можно тюнить. ты эт - крестик сними
>обратная совместимость
с чем? кому она особо так нужна такая далекая? кому то важно запускать на последней жаве софт с жава 1? и он не может при этом поставить эту самую жава 1?
в шарпе обратка до 4 версии работает. На более старых можно поставить параллельно более старый рантайм и жить себе.
но вообще это признак застоя когда такая древность работает. (напоминаю про пунктик про актуальность либ, а то ты щас начнешь...)
>кроссплатформенность (настоящая, в том числе для либ для гуёв и сред разработки и вообще для всей экосистемы)
не поспоришь. но в шарпе она тоже есть. просто не от офф вендора
>подход к разработке, когда буквально каждая фича, которая присутствует, сделана лучше, чем у пародий на джаву (как пример интерполяция строк)
хз про интерполяцию, но если вводишь фичу через ДЕСЯТИЛЕТИЯ когда другие уже ввели, то да, можно учесть недостатки других. Просто нужно ПОДОЖДАТЬ
>поддержка композиции без перепечатывания методов (@Delegate)
не фича жавы.
>поддержка изменения неизменяемых объектов через копирование через @With и @WithBy. Нет, шарподебильные рекорды это не тожисамае, потому что with и withby можно повесить куда угодно, а не только на рекорды.
опять же вангую что это лобок.
>улучшенная генерация геттеров — не надо хуярить на каждое поле {get;}, можно просто повесить на весь класс @Getter, а также можно сделать их в fluent-style без убого префикса Get через @Accessors(fluent = true)
и снова лобок. сторонний тулз который популерен, но НЕ ТОТАЛЕН выдается за свойство жавы лол.
>мавен (лучшая система сборки ever)
такая лучшая что понаплодили альтернатив. создаю в идеа проект и там куча их на выбор. и вот допустим я знаю мавен. беру проект откуда то - там градле. и что мне с моим знанием мавена делать? в жопу засунуть? ну в общем то да.
в дотнете такой херни не встретишь.
>не пидорашье комьюнити, которое, в отличии от петушарпа, занимается написанием кода, а не запрещениями, наказаниями и тасканиями за уши
лол. да именно ты и показал что занимаешься не написанием кода, а пожиранием говна
>стирание типов (кто-то считает стирание очень хорошим, кто-то очень плохим, по факту это небольшая проблема, которая мешает создавать два метода с одинаковой сигнатурой после стирания, и всё)
Верно. тут ЗАВИСИТ. фломастеры в общем то. лично мне мешает. и идеа почему то тупит не умея вывести очевидные типы. как будто не в стат языке пишешь, в а руби каком то пиздец
Аноним 11/11/23 Суб 17:28:24 #718 №2917776 
>>2917703
>> Для ошибок есть исключения,
>https://youtu.be/a1ye9eGTB98
Если этого нет в виде статьи, я не буду тратить на это время.
Майкрософт в своём коде использует исключения, советует использовать исключения в гайдлайнах, мой десятилетний опыт говорит, что исключения хорошо подходят для ошибок. Почему я должен слушать какого-то ноунейма с ютьюба, если ему даже в комментах пишут, что он хуйню советует?
Аноним 11/11/23 Суб 17:32:36 #719 №2917789 
>>2917662
Ты из фп, няш?
Аноним 11/11/23 Суб 17:44:50 #720 №2917812 
2023-11-1117-30-28.png
2023-11-1117-30-57.png
2023-11-1117-30-08.png
Аноны, а как изменить хоткей для команды контрола в 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?
Аноним 11/11/23 Суб 17:55:11 #721 №2917829 
>>2917789
Ну. Скажем так. Я ФП-интересующийся.
И вот некоторых вещей оттуда - мне не хватает в шарпике.
Аноним 11/11/23 Суб 17:59:17 #722 №2917835 
>>2917662
Мы используем такое, но очень аккуратно, обычно в какой-нибудь сложной доменной логике.
На самом деле, таже Either с проверками что в ней лежит, временами замусоривает код не хуже try-catch, особенно если ошибку на несколько уровней верх надо прокинуть.
Ну и я предпочитаю делать все такие "монады" значимыми, чтобы не плодить кучу объектов которые в большинстве случаев нужны для одного использования.
Ну и отдельный базовый класс для всех ошибок выглядит как по мне хуёво. Иж лучше хотя бы интерфейс завести, чем все в одну иерархию пихать. Один хрен при прохождении между слоями одни ошибки обычно мапятся в другие.
Аноним 11/11/23 Суб 18:12:58 #723 №2917848 
>>2917703
Ладно, я таки посмотрел до середины.

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

Короче говоря, проблема высосана из пальца.
Аноним 11/11/23 Суб 18:17:03 #724 №2917858 
>>2917662
>В первый же свой рабочий день, я делаю что-то в духе:
Пиздюлей получишь как минимум. Если ты считаешь, что твое говно лучше, это не повод, чтобы тут же пихать его в проект. Сначала нужно всем его показать, дать распробовать и убедится, что оно не распидорасит все процессы в команде к херам.
>>2917662
>С какой вероятностью я не найду у вас в коде такого?
У нас есть подобное, но переделанное под наши нужды и мало похожее на чистое ФП. Поэтому с твоим подходом ты бы точно у нас нахуй пошел.
Аноним 11/11/23 Суб 18:19:13 #725 №2917868 
>>2917829
Ой вей, а можно у тебя контактики украсть? Я бы тебе глупые вопросики позадавал... А отплатил бы... Гм, ничем сугубо натурой, вот.
Аноним 11/11/23 Суб 18:22:43 #726 №2917881 
>>2917848
Твое апи - надо всегда считать публичным, а потому - потенциально - кто угодно его может дергать и соответственно - ты всегда должен валидировать. Сегодня дергает только фронт, завтра интеграция - апи идет партнеру, он просто забил на ваши правила, шлет че душа положит.

Два. Твоя валидация - может зависить от бизнес-правил. Ну. Вот ты провалидировал регулярками, что формат валидный. Положим- ты под "на уровень выше" имел ввиду мидлвар. Вот прилетает тебе запрос - снять 100500 денег со счета, а на счету у пользователя 500 денег. Запрос - составлен правильно. А бизнес-правила требуют вернуть ошибку: Тут нищук, нет у него столько денег. Если ты свою валидацию вынес в миддлварь - ты все еще должен это правило проверить. Так зачем - размазывать такого рода валидации по разным слоям, если у тебя может быть один сервис, который примет запрос, и все сразу проверит в одном месте? Конечно, можешь и в мидлваре бизнес-правила проверять, но это уже совсем какая-то срань получится.

Короче - такое.
Аноним 11/11/23 Суб 18:37:36 #727 №2917916 
Планирую переименовать папку Interfaces в Abstractions, чтобы она всегда была первой в списке папок. Какие подводные?
Аноним 11/11/23 Суб 18:43:47 #728 №2917924 
>>2917812
> wpf
Некрофил. Есть авалония, uno platform, нахуй тебе это тормозное говно мамонта на directx9?
Аноним 11/11/23 Суб 18:44:31 #729 №2917925 
>>2917662
Хотя бы поясните, что это такое и нахуя оно нужно?
Аноним 11/11/23 Суб 19:12:05 #730 №2917959 
>>2917916
_Interfaces
Аноним 11/11/23 Суб 19:15:33 #731 №2917967 
>>2917924
Засунь свою авалонию в свой растровый зад, а уно платформ в урезанную залупу с куцей вирутализацией, у которой список контролов за два года не изменился. И больше не советуй хуйни.
Аноним 11/11/23 Суб 19:16:17 #732 №2917971 
>>2917925
Один из пример, это случаи, когда ошибка - это один из нормальных исходов в твоём методе. Механизм выброса исключений для таких случаев несколько тяжеловесен, особенно если это должно происходить часто. Таким образом ты по сути можешь отделить ошибки бизнес-логики от действительно исключительных ситуаций (отвал соединения с базой, out of memory и т.д).
Самый банальный пример - ты запрашиваешь из репозитория сущность по Id. Если она найдена, то делаешь одно. Если не найдена, то что-то другое. Создаёшь её, к примеру.
Если сущности нет, то обычно все пишут выбрасывание исключения в методе репозитория. Но можно сделать и так, чтобы метод возвращал Either<Entity, Error>. Если сущность найдена то в Either будет лежать она. Если не найдена, то объект ошибки. В коде, который вызывал репозиторий, с помощью поля этого самого Either (к примеру оно может IsLeft называться) ты сможешь проверить, что в ней лежит.
Можно рассматривать такой подход, как альтернативу поддержанию в репозитории нескольких методов типа GetOrThrow, TryGet и т.д. Преимущества перед методом, который просто возвращает null, если сущность не найдена, в том, что ты можешь прокинуть инфу об ошибке.
Ещё из плюсов - ты зашиваешь возможные ошибки в контракт метода.
Аноним 11/11/23 Суб 19:19:26 #733 №2917982 
>>2917959
И лишаешься привязки неймспейсов к имени папки

>>2917916
Подводные в том, что на каком-то этапе из-за количества папок порядок будет уже не важен, но дурная привычка сохранится.
Аноним 11/11/23 Суб 19:21:15 #734 №2917986 
>>2917967
Хуя себе ты порвался. Ладно uno, но чем тебе Авалония не угодила? Во всем лучше тормозного древнего wpf
Аноним 11/11/23 Суб 19:22:05 #735 №2917989 
>>2917971
>Один из пример, это случаи, когда ошибка - это один из нормальных исходов в твоём методе.
Это же признак говнокода, нет?
Аноним 11/11/23 Суб 19:30:26 #736 №2917999 
>>2917986
Тут был анон и подробно рассказывал в чем ее проблема. Из-за унификации существует куча ограничений, в том числе при отображении шрифтов.

Впф позволяет добиться того, чего хотелось, к тому же моя приложуха заточена для работы графикой и шакальство местные эстеты не правильно поймут. К тому же возможность запуска приложений на маках конечно соблазнительна, но бессмысленна без лицензии разработчика и собсно мака для тестов.
Аноним 11/11/23 Суб 19:32:41 #737 №2918002 
>>2917925
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.

>>2917989
В бизнес-правилах - нет. Ну, не нравится операция снятия денег, можно другую придумать: чел оформляет покупку, пока до нее дошла обработка - товар кончился на складе. Это ожидаемо. И надо вернуть наверх - операция отклонена, товар закончился на складе, но вот вам список похожих товаров, которые еще не закончились. Без такой ветки и исключений - твоим выходом будет фигня в духе BuyResultBase, и начинать строить иерархию: BuyResultSuccess, BuyResultReject. Что выглядит опять же оверхедом и бойлерплейтом на каждый чих - заводить вот эти вот Result'ы.
Аноним 11/11/23 Суб 19:33:31 #738 №2918004 
>>2917989
А если называть ошибку исключением, то уже и не говнокод. Иногда хуже, когда твой метод ничего не делает и не говорит почему.
Аноним 11/11/23 Суб 19:33:54 #739 №2918005 
>>2918002
>Без такой ветки и исключений - твоим выходом будет фигня в духе BuyResultBase, и начинать строить иерархию: BuyResultSuccess, BuyResultReject.
Блять, а в жабе просто хандлеры делают. Нахуя вы какое-то говно изобретаете, шарпаны?
Аноним 11/11/23 Суб 19:35:03 #740 №2918007 
>>2917999
> Из-за унификации существует куча ограничений, в том числе при отображении шрифтов.
Тащемто кроме шрифтов никаких ограничений и нет. И то единственное ограничение это другое сглаживание
> Впф позволяет добиться того, чего хотелось, к тому же моя приложуха заточена для работы графикой и шакальство местные эстеты не правильно поймут.
Лично я соболезную тем, кто будет работать с твоей приложухой, потому что им придется терпеть бесконечные лаги, от которых на впф никуда не деться. разве что ты будешь хостить контрол из винформ или непосредственно directx контекст. Ну или использовать SkiaSharp, хотя использовать его и при этом ругать авалонию совсем уж шизой будет
Аноним 11/11/23 Суб 19:36:15 #741 №2918010 
>>2917989
С чего бы. В слое бизнес-логики ты всегда должен проверять корректность выполняемых действий. И ошибка при некорректном действии это ожидаемое поведение.
К примеру, ты дёрнул метод, который списывает со счета пользователя деньги. Перед тем как уменьшить сумму на счёте и сохранить его в базу, ты должен проверить, что у пользователя достаточно денег, его счёт не заблокирован и т.д. Если одна из этих проверок не пройдет, то ты либо выбрасыватель исключение, а потом ловишь его в вызывающем коде. Либо просто возвращаешь ошибку через Either. То, что у пользователя недостаточно денег на счёте или его счёт заблокирован - это нормальные ситуация. Ничего прям исключительного в ней нет.
Аноним 11/11/23 Суб 19:36:53 #742 №2918011 
>>2918002
> Success - представляет успешное выполнение чего-то. Допустим, если у тебя свой RPC без результата, но с возможной ошибкой. Можно намутить ErrorOr<Success>, просто метка, что все хорошо случилось(конечно, можно обойтись bool)
Не очень понятно, что мешает просто завести enum со список результатов и создать класс
Result<T>
{
public MyEnum Result {get;}
public T Value {get;}
}
И отдельные классы не нужны.
Аноним 11/11/23 Суб 19:37:16 #743 №2918012 
>>2918005
В жаве - все точно так же делается.
http://reactivex.io/RxJava/3.x/javadoc/io/reactivex/rxjava3/core/Maybe.html
Аноним 11/11/23 Суб 19:39:21 #744 №2918014 
>>2918012
Нахуй ты мне реактивный фрейм пихаешь?
Вот https://www.baeldung.com/exception-handling-for-rest-with-spring
Аноним 11/11/23 Суб 19:39:48 #745 №2918016 
>>2918010
> В слое бизнес-логики ты всегда должен проверять корректность выполняемых действий.
Но тут то речь о репозитории. А в бизнес само собой ты это проверяешь, и если данные не корректны возвращаешь соответствующий ответ. Не ошибку, не исключение, а заранее предусмотренный результат, потому что возможность нехватки денег стандартная ситуация.
Аноним 11/11/23 Суб 19:41:23 #746 №2918018 
>>2918007
>потому что им придется терпеть бесконечные лаги
У меня все летает даже в дебаг режиме. Если ты тот чел, который бугуртил на анимацию, то эта хрень нужна для всяких мелочей в контролах. Я либо анимирую через while, либо через адорнер слой, либо не анимирую вовсе.
Аноним 11/11/23 Суб 19:46:32 #747 №2918021 
>>2918011
Потому что это уродливо?
Типа какой пайплайн-то работы с этим вот:

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));
Аноним 11/11/23 Суб 19:48:34 #748 №2918027 
>>2918014
Ну уродство же, няша. Ну серьезно.
Аноним 11/11/23 Суб 19:49:36 #749 №2918028 
>>2918027
Зато объемы кода еще меньше. Где-то там далеко далеко лежит хандлер. А в бизнес логике ты проста кидаешь эксепшон
Аноним 11/11/23 Суб 19:54:22 #750 №2918035 
>>2918021
Первые вариант прост и понятен любому мимокрокодилу, второй вызывает недоумение тем, что сразу речь идет о каких-то ошибках, потом вызывается непонятный метод from, затем какой-то tap. Переусложнение на ровном месте
Аноним 11/11/23 Суб 19:56:24 #751 №2918041 
>>2918016
С репозиторием то же самое. Ситуация с тем, что сущности, удовлетворяющей каким-то критериям нет в базе, не всегда является исключительной.
Также как ситуация, когда объект требуемым уникальным ключем уже создан.
Either это просто ещё один способ описания результа работы метода. К примеру, чтобы под каждый метод не писать свой класс-результат типа CreateUserResult, WithdrawMoneyResult. Плюс, с Either можно всякие красивые штуки делать. Типа добавить оператор неявного приведения к нему, чтобы не return Either.Create<Entity, Error>(entity) писать, а просто return entity. Можно деконструтор добавить, чтобы в switch-е использовать и т.д. Можно добавить методы расширения, чтобы их вызовы в цепочку соединять (хотя мне не всегда такое нравится). Это все можно и в свои классы-результаты добавить, но будет по-запарней.
Аноним 11/11/23 Суб 20:02:01 #752 №2918053 
>>2918035
В первом варианте - ты на изи забываешь проверить что там в енуме лежит и при попытке почитать Value - падаешь на проде, а потом 2 недели пытаешься по логам понять, че же случилось
Во втором - такое падение - исключено
Аноним 11/11/23 Суб 20:04:13 #753 №2918054 
>>2918028
Это удобно до той поры, пока у тебя только HTTP API-ха бизнес-метод дёргает. А вот когда этот метод начинает ещё и в каких-нибудь background-сервисах, kafka-консьюмерах, grpc-stream ручках и т.д. дёргаться, то в них от ебучих try-catch уже не убежишь.
Аноним 11/11/23 Суб 20:07:12 #754 №2918058 
>>2918053
> а потом 2 недели пытаешься по логам понять, че же случилось
Увидев null reference и стактрейс ты через наносекунду поймешь где ошибка.
Аноним 11/11/23 Суб 20:14:36 #755 №2918067 
.png
>>2918058
Чет я не уверен, что сразу пойму...
Аноним 11/11/23 Суб 20:39:32 #756 №2918104 
>>2918002
>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 как раз чтобы код разворачивать.
Аноним 11/11/23 Суб 22:20:46 #757 №2918251 
>>2917868
Вот тебе база:
https://github.com/vkhorikov/CSharpFunctionalExtensions
Аноним 11/11/23 Суб 22:30:04 #758 №2918266 
image.png
image.png
image.png
>>2918251
Хуяза. В шарпе так можно?
Аноним 11/11/23 Суб 23:34:00 #759 №2918336 
Есть тонна времени чтобы накатить еще один язык (раст или шарп), работа, зп не важна, просто убедите почему ваш инструмент лучше чем другой.
Аноним 11/11/23 Суб 23:42:16 #760 №2918356 
>>2918336
Тут уже есть один шиз, которого надо убеждать, что шарп лучше. Ниша занята.
Аноним 11/11/23 Суб 23:45:26 #761 №2918361 
>>2918336
У шарпа не такое ебанутое коммунити как у раста.
На шарпе - ты просто берешь и пишешь код, в расте - ты воюешь с компилятором.
Синтаксис шарпа - простой и понятный. В расте за пределами учебных примеов - творится пиздец, в котором ты тратишь дохуя времени, чтобы распарсить(ну, тут может быть у меня просто опыта мало).
Раст луюбит поломать себя через колено каждые несколько релизов.
Инструментарий раста - хуевый и ломается постоянно.

Но конечно я не буду только за шарп топить.
У раста - все хороший перформанс.
И если именно что скучно, а хочется вспомнить времена, когда нихуя не мог написать без гугла - то раст прикольная тема(хотя тут - мне больше нравится F# какой-нибудь, хацкель и такое, потому что там - совсем не близко, а раст таки хоть и отличается, но не настолько).
Аноним 11/11/23 Суб 23:48:26 #762 №2918368 
>>2918361
Спб за мнение.
Аноним 12/11/23 Вск 00:01:11 #763 №2918393 
>>2918336
Зачем тебе учить язык, тред которог не тонет исключительно благодаря братушкам жаббистам?
Аноним 12/11/23 Вск 00:57:57 #764 №2918425 
16997394072689323.jpg
>>2917752
>пояснял пояснял ДЕБИЛУ что это вообще то разные вещи. но он ДЕБИЛ.
Естественно другое, а ты что думал? В джаве сделают одно и то же волшебным образом лучше? То, что другое не отменяет сказанное мной.
>смотря что сравниваем да и как.
Linq-Stream, Веб фреймворки на шарпоговне-веб фреймворки на джаве (a.k.a. все бенчмарки, что были в этом треде).
>насколько они актуальные? небось написанные в древнем стиле "создаем потоки и управляем вручную". А как же твоя хваленная асинхронность?
Ну как минимум в тестах веб фреймворков разнообразие либ выебать петушарп помогло. Мань, не подгоняй решение под ответ, легаси и на петушарпе есть. Алсо, создание потоков и управление вручную это древний стиль только для шарподебилов, которых заставили переписывать всю свою кодовую базу ради того, чтобы повысить количество реквестов в секунду с 10к до 1кк.
>лол. я ему и говорил что тюнить приходится, а он говорил что оно само. а теперь киллер фича - можно тюнить. ты эт - крестик сними
Тюнить не обязательно, но можно.
>с чем? кому она особо так нужна такая далекая? кому то важно запускать на последней жаве софт с жава 1? и он не может при этом поставить эту самую жава 1?
>в шарпе обратка до 4 версии работает. На более старых можно поставить параллельно более старый рантайм и жить себе.
Вот именно поэтому шарпоговно и легаси хуита, потому что есть обстоятельство, затрудняющие миграцию. Алсо обратная совместимость это не только "надо код на 1 жабе запускать", это еще и отсутствие цикла обратной связи, когда динозавры не мигрируют, и ради них код пишется на старом говне. Алсо2 ты пиздишь, даже в 8 дотнете поломали.
>но вообще это признак застоя когда такая древность работает. (напоминаю про пунктик про актуальность либ, а то ты щас начнешь...)
Выше было сказано, почему именно поломка обратной совместимости это застой.
>не поспоришь. но в шарпе она тоже есть. просто не от офф вендора
Ну раз не поспоришь, хули рот свой вонючий открываешь?
>хз про интерполяцию, но если вводишь фичу через ДЕСЯТИЛЕТИЯ когда другие уже ввели, то да, можно учесть недостатки других.
>Просто нужно ПОДОЖДАТЬ
Нахуй свой рот открываешь, если опровергнуть не можешь? x2
>и снова лобок. X3
Где такое на петушарпе?
>такая лучшая что понаплодили альтернатив. создаю в идеа проект и там куча их на выбор. и вот допустим я знаю мавен. беру проект откуда то - там градле. и что мне с моим знанием мавена делать? в жопу засунуть? ну в общем то да.
Наплодили альтернатив потому что соя ебаная, а не потому что мавен плох. Всё ещё лучше, чем жрать cmake-style билд на шарпоговне.
>в дотнете такой херни не встретишь.
Там просто всё собирается собственным аналогом симейка.
>лол. да именно ты и показал что занимаешься не написанием кода, а пожиранием говна
Что ты высрал? За время сидения в ваших говнотредах я раз 30 видел угрозы запретить что-то, кого-то наказать за что-то, кому-то дать палкой по голове. Пидорахи ебаные. В джаве такого нет (ну или меньше, соевые пидорахи, всё-таки, везде есть)
Аноним 12/11/23 Вск 01:04:18 #765 №2918432 
Алсо по мавену. Альтернатив не "наплодили", а всего один оплот копротивления сделали — дегенерадл.
Аноним 12/11/23 Вск 01:21:26 #766 №2918438 
>>2918425
>В джаве такого нет
Как результат - шизы, которые себя форсят. Стоило ли оно того?
Аноним 12/11/23 Вск 01:23:43 #767 №2918440 
>>2918438
Какие ещё шизы?
Аноним 12/11/23 Вск 01:26:39 #768 №2918441 
>>2918440
Ты, например.
Аноним 12/11/23 Вск 01:31:04 #769 №2918442 
>>2918441
То есть по делу ничего не ответишь?
Аноним 12/11/23 Вск 01:32:44 #770 №2918443 
14904105723570.png
Я не понимаю, как джависты находят столько времени, когда им постоянно надо писать геттеры и сеттеры.
Аноним 12/11/23 Вск 01:34:03 #771 №2918444 
>>2918442
Зайди в последний джаватред и почитай посты с начала. Или ты окончательно сюда переехал и вообще не вкурсах, че там да как?
Аноним 12/11/23 Вск 01:38:14 #772 №2918446 
>>2918444
Да вроде всё нормально.
Аноним 12/11/23 Вск 01:38:46 #773 №2918447 
>>2918446
Тяжело с катарактой, наверное. Впрочем геттеры и сеттеры писать не мешает похоже
Аноним 12/11/23 Вск 01:39:11 #774 №2918448 
>>2918443
Я не понимаю, как шарподебилы находят столько времени, если им постоянно приходиться писать {get; set;} на каждую переменную, когда в джаве ставится один @Data
Аноним 12/11/23 Вск 01:39:35 #775 №2918449 
>>2918447
Ломбок мешает писать геттеры и сеттеры
Аноним 12/11/23 Вск 01:42:44 #776 №2918450 
>>2918443
Да казалось бы примитивная задача, которая занимает от силы 1% рабочего времени. А срача столько, что за это время можно было бы пару гигабайт геттеров-сеттеров написать.
Аноним 12/11/23 Вск 01:46:16 #777 №2918451 
>>2918450
Самое главное что это ещё и доказательство второй теоремы шарпана, потому что в джаве как раз никто геттеры и сеттеры не хуярит, а шарподебилы дрочат свои гетсет
Аноним 12/11/23 Вск 01:54:05 #778 №2918455 
>>2918451
Был когда жабадауном, херачил руками геттеры и сеттеры. Так как был жаба-идиотом, то не сразу узнал об автогенерации.

Но моя большая радость была писать полные имена пакетов, ведь алиасов для неймспейсов тогда не было. Хотя, уверен, что и сейчас нет, ибо жаба не развивается толком.
Аноним 12/11/23 Вск 01:55:22 #779 №2918456 
>>2918455
>была писать полные имена пакетов
А я ведь вам говорил, что эти долбоебы неиронично импортируют все руками, а потом они на ровном ебле сравнивают идею с вскодом. Да-да, пару плагинов доставить и усе тоже самое.
Аноним 12/11/23 Вск 02:00:15 #780 №2918458 
>>2918455
Был когда-то долбоёбом-бойлерплейтщиком, но когда джава перестала быть королём бойлерплейта не смог смириться с реальностью и мигрировал в петушарп.
Аноним 12/11/23 Вск 02:33:34 #781 №2918468 
>>2918425
>В джаве сделают одно и то же волшебным образом лучше?
не лучше. ИНАЧЕ. С одной стороны кажется (как дебилу говножависту) "ой целое лишнее слово нам нужно для анпака футур". С другой же - унифицированная работа со всем что может быть предоставлена как футура, а это много чего - сорсы, процессы, события, отмены, диспозы.... В модели без await у тебя будет наслоение разных вещей - там типа потоки, а вот отмена вот так, а там вот футуры лол. при этом авайт работает одинаково и интуитивно. В случае же с корутинами начинается поебень (не знаю как в жаве в луме ибо мне насрать) но в котлине знатная поебень с отменами и исключениями. И все ради структурной че то там. А в с авайт просто ...авайт и все. Никаких тайных знаний

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

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

>которых заставили переписывать всю свою кодовую базу ради того
когда вышел авайт я удивился что я прошелся по коду проставил авайты и вот я герой. За это я и проникся к ним любовью. Ну а потом и за гибкость которую ты БЕСТОЛОЧЬ никак не вразумеешь

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

>Алсо2 ты пиздишь, даже в 8 дотнете поломали.
хз че там поломали. я не юзаю 8. он не вышел. а вот в с 7 отлично использую либы из старого доброго дотнет 4. Студия конечно при установке пакета злобно хмурит бровки что мол фреймворки разные и "поищи поновее", но все работает и даже под линуксом.

>поломка обратной совместимости это застой.
нет. застой это застой. и в шарпе обратка есть. просто не такая длинная. Я свои проекты которые делал под 3 не стал перекомпиливать. Просто подправил конфиг и снес старые дотнеты

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

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

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

>Пидорахи ебаные. В джаве такого нет
ты, тупая скотина, пришел в ЧУЖОЙ ТРЕД, куда тебя НЕ ЗВАЛИ. И ты мне еще про токсичность заливаешь. ахаха лол









Аноним 12/11/23 Вск 02:36:49 #782 №2918469 
Когда уже в форме уберут этот гребанный кораблик слева внизу в форме ввода. Тупо мешает писать, а потом в конце куча лишних строк.
Аноним 12/11/23 Вск 02:53:04 #783 №2918472 
>>2918469
>гребанный кораблик
Ты это, спать иди. Кораблики какие-то. Можем в обнимочку, шарпуш!
Аноним 12/11/23 Вск 02:54:59 #784 №2918474 
image.png
>>2918469
Тыж не жаба программист, сделай сам, ну или адблоком убери
Аноним 12/11/23 Вск 02:58:03 #785 №2918475 
>>2918468
>не лучше. ИНАЧЕ. С одной стороны кажется (как дебилу говножависту) "ой целое лишнее слово нам нужно для анпака футур". С другой же - унифицированная работа со всем что может быть предоставлена как футура, а это много чего - сорсы, процессы, события, отмены, диспозы.... В модели без await у тебя будет наслоение разных вещей - там типа потоки, а вот отмена вот так, а там вот футуры лол. при этом авайт работает одинаково и интуитивно. В случае же с корутинами начинается поебень (не знаю как в жаве в луме ибо мне насрать) но в котлине знатная поебень с отменами и исключениями. И все ради структурной че то там. А в с авайт просто ...авайт и все. Никаких тайных знаний
Долбоёб продолжает доказывать, что у них сделано по другому, когда я с этим даже и не спорил.

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

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

>в шарпе тпл уже куча лет. Все уже давно перешли на асинк модель. Сколько лет луму хуюму в жаве чтобы все в либах на эту модель перешли? небось только в популярных лол. А то и вообще тупо новые родили.
Долбоёб правда не понимает, что на лум переходить не нужно. Весь старый код с ним уже работает. Этим лум и лучше.

>когда вышел авайт я удивился что я прошелся по коду проставил авайты и вот я герой. За это я и проникся к ним любовью. Ну а потом и за гибкость которую ты БЕСТОЛОЧЬ никак не вразумеешь
То есть ты полюбил копрософт за то, что тебя как шавку потаскали по полу и заставили батрачить? Ну, я не зря про пидорах говорил.

>дык это проблемы динозавров.
Ты вообще дочитал до конца, додик? Не только динозаврам плохо.

>хз че там поломали. я не юзаю 8. он не вышел.
Даун, тебе показали что поломали...

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

>А обязана быть именно от вендора? Где такой закон?
Не обязана, но от вендора есть вещи, ломающие кроссплатформенность. Джава ничего платформозависимого вообще не выпускала.
>И да - не сравнивай допотопный подход к гуи типа жава свинг хотя бы даже с WPF лол. Покажешь от вендора lookless решения для гуи ака WPF? тогда и сравним. А так ваше жабовское это тупой аналог винформс несчастных
Джавафкс.....

>опровергнуть что? то что сделали лучше фичу которые другие ввели 10 лет назад?
Ну да, мы сравниваем текущее состояние языков, а не выясняем, какой язык родина слонов. Опровергай или признай, что джава поссала на твой ебальник.

>похуй что я жру говно. Главное что одна жопа в рот срёт
Лол.

>ты, тупая скотина, пришел в ЧУЖОЙ ТРЕД, куда тебя НЕ ЗВАЛИ. И ты мне еще про токсичность заливаешь. ахаха лол
Пидорашка не может мыслить без проекций, да? Причём тут я? Речь шла о комьюнити шарпоговна в сравнении с жабовским.
Аноним 12/11/23 Вск 03:09:25 #786 №2918477 
>>2918475
Натренированный на геттерах и сеттерах снова высрал портянку на всю страницу. Это кто-то читает?
Аноним 12/11/23 Вск 03:10:10 #787 №2918478 
>>2918477
Тут 75% это цитирование шарподебила.
Аноним 12/11/23 Вск 03:10:48 #788 №2918479 
>>2918477
Ты и читаешь. Фанат все таки. Уверен и минет не против ему сделать. Ну чисто доказать, что на шарпе так можно.
Аноним 12/11/23 Вск 03:15:05 #789 №2918480 
>>2918477
я прочту. но завтра. как раз порция урины будет готова. и я ему ее налью полный ротешник.

>>2918474
увы это только на десктопе. но спасибо что напомнил - убрал
Аноним 12/11/23 Вск 03:17:07 #790 №2918481 
>>2918480
С нетерпением жду твои высеры с актуальностью 1996 года либо повторение уже сказанного и обоссанного.
Аноним 12/11/23 Вск 03:20:06 #791 №2918483 
>>2918481
зачем тебе желать чтобы тебя обосрали? тебе бы к дохтору
Аноним 12/11/23 Вск 03:22:05 #792 №2918484 
>>2918483
Пока что ты только на себя серешь.
Аноним 12/11/23 Вск 03:35:38 #793 №2918485 
Когда тимлид нас наказывал, он заставлял заново писать геттеры и сеттеры для всех JavaBeans в проекте.
Аноним 12/11/23 Вск 10:33:58 #794 №2918554 
>>2918425
>Ну как минимум в тестах веб фреймворков разнообразие либ выебать петушарп помогло.
Маня, но ведь ты энивей будешь пользоваться спрингом, потому что тебе так сказал твой кабан. Это ты тут так круто перемогаешь, а ирл то приходится грести, джавуринодебил
Аноним 12/11/23 Вск 12:35:04 #795 №2918631 
Как сгенерировать диаграмму классов для проекта?
Аноним 12/11/23 Вск 12:38:07 #796 №2918635 
>>2918485
>>писать геттеры и сеттеры
Зачем они вообще нужны в 2к23?
Аноним 12/11/23 Вск 13:20:59 #797 №2918687 
>>2918635
Инкапсуляция. Например раньше данные приходили из базы, а сейчас из продвинутого и технологичного шарпового микросервиса. Ты меняешь поведения не ломая код другим 100 индусам в команде. конечно, это делается через di и полиморфизм интерфейсов, но как пример, так тоже можно сделать
Аноним 12/11/23 Вск 14:05:59 #798 №2918728 
>>2910820 (OP)
Как на C# реализовать identity function (функция возвращающая свой аргумент) наиболее лаконично? Чтобы лямбда принимала и возвращала аргумент любого типа.
На Тайпскрипте это делается так https://www.typescriptlang.org/docs/handbook/2/generics.html
Аноним 12/11/23 Вск 14:21:16 #799 №2918746 
Безымянный362.png
Есть ботяра для телеги на вебхуке написанный на шарфе. Хочу запустить его через compose вместе с базой и кешем локально через ngrok. Как настроить appsettings/launchSettings/compose файл чтобы все работало и ngrok не высирал Bad Gateway на каждый запрос от телеги...
Аноним 12/11/23 Вск 14:23:42 #800 №2918749 
>>2918728
А чем тебе не нравится public void TvoyaMamka(out int shluyha) ?
Аноним 12/11/23 Вск 14:24:14 #801 №2918750 
>>2918631
Вопрос в том, как это потом читать.
Я например создаю Markdown-документ, который хорошо крепится к nuget-пакетам, и где можно вставить Mermaid-диаграммы (с доп плагином).

Чтобы генерить код в диаграммы, можно заюзать это
https://www.nuget.org/packages/Cs2Mermaid/
Аноним 12/11/23 Вск 14:24:21 #802 №2918751 
>>2918554
Проекции просьба оставить при себе, раб аспнета.
Аноним 12/11/23 Вск 14:31:31 #803 №2918763 
ну вот выйдет дотнет 8 и сколько уже лет этому
https://github.com/dotnet/csharplang/issues/2542
и где воз? где там? почему ныне?

фоди конечно решает, но все же хотелось бы искаробочного решения.

>>2918751
а ты, говножавист, погодь. и до тебя доберусь. Я уже проснулся и скоро...или нет ибо голова болит (нужно меньше пить....ммм зачем) в общем как очухаюсь, то уринизирую тебя в полной мере.
Аноним 12/11/23 Вск 14:48:29 #804 №2918772 
>>2918728
Либо с дженериками
T Id<T>(T x) => x;

Либо, если прям any как в typescript хочется, то
dynamic Id(dynamic x) => x;
Но в приличных местах за использование dynamic могут и обоссать.
Аноним 12/11/23 Вск 15:01:58 #805 №2918779 
Однажды, когда я забыл написать сеттер, тимлид схватил с полки толстенную книгу по java EE и начал меня ею бить.

Бил так сильно, что у меня на лбу отпечаталась надпись Java EE 7. После этого, коллеги подшучивали надо мной, называя меня уже не Сергеем, а сервлетом.
Аноним 12/11/23 Вск 15:06:20 #806 №2918786 
Как Dependency Property сделать зависимым от другого свойства? Часто чтение одного свойства запускает обращение к данным другого свойства, и с INPC все достаточно легко в этом плане, а как быть с DP?
Аноним 12/11/23 Вск 15:08:00 #807 №2918788 
>>2918779
Т.е. фраза "в шарпотреде обитает пришибленный джавист" - это не миф?
Аноним 12/11/23 Вск 15:23:31 #808 №2918797 
>>2918786
ну читай, кто тебе не дает. просто это побочные эффекты, а код не должен быть основан на побочных эффектах.
Аноним 12/11/23 Вск 16:10:19 #809 №2918843 
>>2918772
>T Id<T>(T x) => x;
Спасибо. Не нашел такой пример в доках, она запутанная. Какого типа будет в данном случае Id? Делегат?
Аноним 12/11/23 Вск 16:11:39 #810 №2918849 
>>2918843
>>2918772
Лол, шарподебилы познают дженерики.
Аноним 12/11/23 Вск 16:13:14 #811 №2918854 
>>2918849
да, потому что они есть. и в рантайме тоже
это вам не жава/котлин, где шаг в сторону и "не могу вывести тип" и ты такой сидишь и охуеваешь
Аноним 12/11/23 Вск 16:14:46 #812 №2918861 
>>2918772
>T Id<T>(T x) => x;
Что вообще есть T? В доках много примеров, но нет явного объяснения что это и как и в каких случаях синтаксически верное должно применяться. Где хорошо описано?
Аноним 12/11/23 Вск 16:23:53 #813 №2918869 
>>2918843
В данном случае это просто метод. Из него можно создать стандартный делегат Func<T,T>, к примеру передав его в качестве аргумента методу, который Func<T,T> ожидает.
>>2918861
T это просто название для типа-аргумента дженерика. Оно может быть любым (TKey, TValue, TItem и т.д.). Просто все аргументы дженериков принято именовать с префиксом T, чтобы их можно было отличить от имен свойств/классов и т.д.
Рекомендую для начала с докой ознакомится https://learn.microsoft.com/ru-ru/dotnet/standard/generics/
Аноним 12/11/23 Вск 16:24:11 #814 №2918870 
>>2918854
Додик, вывод типов это дело компилятора, а не рантайма.
Аноним 12/11/23 Вск 16:24:55 #815 №2918873 
>>2918854
Кстати, в шарпе женерики куда менее мощные чем в жебе.
Аноним 12/11/23 Вск 16:29:18 #816 №2918879 
>>2918763
>ну вот выйдет дотнет 8 и сколько уже лет этому
>https://github.com/dotnet/csharplang/issues/2542
>и где воз? где там? почему ныне?
Это будет очень медленный и болезненный процесс. Они изначально проебались, а теперь это так просто не исправить, процесс будет очень медленный и болезненный.
Но есть маленькие подвижки: они добавили перегрузку ConfigureAwait с флаговым enum, где дефолтное значение - не сохранять контекст синхронизации.
А ещё asp.net core приложения запускаются в консоли, где нет контекста синхронизации, поэтому в них ConfigureAwait(bool) ничего не делает, ну и соответственно не нужен.
Аноним 12/11/23 Вск 16:40:14 #817 №2918893 
>>2918870
При чем тут вывод типов, жабадебил? Я в шарпе в рантайме могу выяснить рефлексией, что List<int> хранит int, а List<string> хранит string, в то время как в жабе это будут просто два одинаковых ArrayList.
Аноним 12/11/23 Вск 16:43:01 #818 №2918898 
>>2918893
А нахуя это узнавать? Ну типа буквально, какие же кейсы вы таким образом реализуете?
Аноним 12/11/23 Вск 16:51:33 #819 №2918915 
>>2918870
ну у него не получается.
Почему?
видимо он считает что в рантайме тип будет потерян и та цепочка что я формирую работать не будет
и в общем то он прав

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

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

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

(ну и я жалуюсь когда пишу WPF ибо засоряется код)
Аноним 12/11/23 Вск 16:59:19 #820 №2918925 
>>2918797
Чет затупил. Все, решил проблему.

>а код не должен быть основан на побочных эффектах.
Это не всегда возможно, а порой и неэффективно. Особенно когда побочные действия имеют тяжелые расчеты и к тому же уже рассчитаны.
Аноним 12/11/23 Вск 17:05:05 #821 №2918939 
>>2918687
>>Инкапсуляция
когда в последний раз логику в гетере/сетере писал?
Аноним 12/11/23 Вск 17:06:13 #822 №2918942 
>>2918939
Так писать там логику моветон же. Хуйню несешь.
Аноним 12/11/23 Вск 17:07:32 #823 №2918944 
>>2918939
> когда в последний раз логику в гетере/сетере писал?
В пятницу, сеттер на 50 строк вышел, обычная ситуация.
Аноним 12/11/23 Вск 17:07:43 #824 №2918947 
>>2918898
>в жабе нет, значит ненужно
>до тех пор, пока это не появилось
>потом это киллерфича жабы
Жабоуёбышь, вот через 10 лет в жабе появится await, и ты сам тут будешь жидко попёрдывая в треде всем рассказывать, что жабовский await куда круче шарповского.
Аноним 12/11/23 Вск 17:09:13 #825 №2918951 
>>2918947
Ты может на вопрос ответишь?
Аноним 12/11/23 Вск 17:09:39 #826 №2918952 
>>2918947
А нахуя нам авейт, если есть green thread, которой лучше авейтов. Так че там по кейсам? А то я подозреваю, что в основном это надо для какой-то невообразимой грязи с хуевой архитектурой.
Аноним 12/11/23 Вск 17:10:21 #827 №2918954 
>>2918915
Что ты несёшь нахуй? То, что он показал отлично работает даже на джаве, в которой в рантайме типов нету.
Аноним 12/11/23 Вск 17:11:18 #828 №2918956 
>>2918952
Правильно подозреваешь, эти дебилы аргументы метода суют в <>. И это есть даже в стдлибе ихней.
Аноним 12/11/23 Вск 17:18:02 #829 №2918967 
>>2918942
хуйню несешь ты, когда утверждаешь что тебе нужен геттер для инкапсуляции
Аноним 12/11/23 Вск 17:25:46 #830 №2918986 
>>2918967
Так он в самом деле нужен. Бывает, что значение свойства это не поле, а вычисляемая величина, однако с точки зрения пользователя класса разницы нет никакой. Это и есть инкапсуляция.
Аноним 12/11/23 Вск 17:29:13 #831 №2918994 
Джавадебилы, если в джаве такие охуенные дженерики со стиранием типов в байткоде, то какого хуя тогда в Project Valhalla поддержку параметризованных дженериков в рантайм протащить хотят?
Вот занюхните своих евангелистов и успокойтесь
https://openjdk.org/projects/valhalla/design-notes/parametric-vm/parametric-vm#john-rose-and-the-project-vahalla-team
Аноним 12/11/23 Вск 17:31:58 #832 №2919001 
>>2918994
Лень читать, давай цитату.
Аноним 12/11/23 Вск 17:37:14 #833 №2919013 
Screenshot2023-11-12-20-35-35-189com.android.chrome-edit.jpg
>>2919001
Мне тоже лень искать. Но вот тебе из соседнего дока ( https://openjdk.org/projects/valhalla/design-notes/in-defense-of-erasure ) от Брайна Гоетца, на которого вы так дрочите.
Аноним 12/11/23 Вск 17:39:26 #834 №2919023 
>>2918994
Потому что НИНУЖНО, но если НУЖНО, то давайте

Джавадебил - это такое одноклеточное.
Аноним 12/11/23 Вск 17:40:59 #835 №2919029 
image.png
>>2919013
Ты дальше почитай как бы. Или хотя бы название статьи. Это ж буквально манифест оправданий стирания типов. Я сам удивился, что в вальхале его хотят убрать, ибо все высокие жаббисты наоборот за него.
Аноним 12/11/23 Вск 17:44:06 #836 №2919036 
>>2919029
>Я сам удивился, что в вальхале его хотят убрать
Забыл уточнить, что поэтому и спрашиваю конкретное место. Тк лень разбираться в этой мутотени, которая будет готова ну к 2030
Аноним 12/11/23 Вск 17:47:29 #837 №2919043 
>>2918994
Никто не говорил, что оно охуенно. Это просто небольшая проблема (для конечного разработчика). Возможно, самим разработчикам джавы легче будет без стирания, потому и решили от него избавиться (если они решили, потому что я впервые слышу, что решили стирание типов выпилить).
Аноним 12/11/23 Вск 17:47:54 #838 №2919046 
>>2919036
Брайан Гётц говорил, что вальхалла на финальной стадии.
Аноним 12/11/23 Вск 17:51:17 #839 №2919052 
image.png
>>2919046
Уверен, что он именно это говорил? А то вон он как ахуенно книгу обновляет.
Аноним 12/11/23 Вск 17:52:36 #840 №2919057 
Screenshot2023-11-12-20-48-02-166com.android.chrome-edit.jpg
>>2919036
Если говорить относительно Valhalla, то без runtime-дженериков value-objects будут крайне хуево работать.
Аноним 12/11/23 Вск 18:04:05 #841 №2919099 
>>2919057
Вроде пишут же
>support efficient generic programming, using Java’s current generic constructs
И лучше подождать, че они в итоге решат, а не вот эти черновички их читать.
Аноним 12/11/23 Вск 19:10:27 #842 №2919220 
>>2919052
Ну вроде что-то подобное слышал я от него в его последнем интервью.
Аноним 12/11/23 Вск 19:13:24 #843 №2919224 
>>2918954
я не ебу кто что показал
я сказал о своем опыте где мне приходилось сталкиваться с тем, что я не могу написать дженериковый код потому что компилятор в итоге просто теряет тип

и это фактические факты. и мне срать на фантазии жаваговноеда.
Аноним 12/11/23 Вск 19:16:34 #844 №2919231 
вот бы в жабе экосистема не была уебанской... так бы на ней писал
Аноним 12/11/23 Вск 19:17:57 #845 №2919232 
>>2919231
не писал бы. нахер она бы тебе сдалась с ее громоздким синтаксисом и необходимостью лобковых лобков. ты бы писал на котлин.
Аноним 12/11/23 Вск 19:21:58 #846 №2919238 
хотя кому я пизжу яб и близко к жавахуйне не подходил
Аноним 12/11/23 Вск 19:31:52 #847 №2919245 
>>2919224
Уёба, нахуй ты тогда встреваешь в разговор, если даже не удосужился контекст прочитать? Просто нравится урину на ебальник принимать?
Аноним 12/11/23 Вск 19:34:30 #848 №2919247 
>>2919245
где я встрял бестолочь? или это продолжение диалога со мной же или это ты встрял в диалог
Аноним 12/11/23 Вск 19:53:19 #849 №2919268 
>>2919247
>я не ебу кто что там показал
Аноним 12/11/23 Вск 19:57:13 #850 №2919274 
>>2919268
и тем не менее, это ты влез в мой диалог.
так что если ты жавист то прими говна
если не жавист - ну просто прими истину и уринируй жависта
Аноним 12/11/23 Вск 19:58:06 #851 №2919278 
>>2919274
Ну значит хули ты вообще открываешь рот, если у тебя ебаная деменция и ты не помнишь то, что было написано в прошлом посте.
Аноним 12/11/23 Вск 20:01:03 #852 №2919281 
>>2919278
ага. значит ты жавист
и даже если нет
принимай урину полон рот.
все равно будет перекат

а тут тред уринирования жавистов и тех у кого задрано чсв
Аноним 12/11/23 Вск 20:04:28 #853 №2919286 
>>2919281
Шлюха с разлагающимся мозгом от гетсетов и перепечатывания методов продолжает бредогенерировать.
Аноним OP 12/11/23 Вск 20:40:31 #854 №2919312 
Пиздец накормили джавадебила.

Я вам не для этого перекатывал.

Чтобы на новый год такого не было.
Аноним 12/11/23 Вск 20:43:59 #855 №2919316 
>>2919312
Он тут срёт всё реже, ещё несколько тредов - и упокоится.
Аноним 12/11/23 Вск 20:48:06 #856 №2919321 
>>2919316
Скорее шарподебилы быстрее сливаются.
Аноним 12/11/23 Вск 20:50:30 #857 №2919324 
>>2919321
Считай, что все шарподебилы уже заранее слились и можешь с чувством победителя съебаться отсюда подальше.
Аноним 12/11/23 Вск 21:24:15 #858 №2919372 
>>2918869
>В данном случае это просто метод.
Скорее лямбда, а лямбды если не ошибаюсь являются делегатами. Если не ошибаюсь, в .NET вообще нет типа метод или функция, есть класс, структура, перечисление, интерфейс и делегат.

>>2918869
>T это просто название для типа-аргумента дженерика.
Нашел в доке, но инфы очень мало. Как то даже не серьезно.
https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/generic-type-parameters

>>2918869
>Рекомендую для начала с докой ознакомится
Мне непонятно понятие универсальные шаблоны или универсальные типы. Гуглил такое для C#, но инфа попадается поверхностная. Либо в книгах надо смотреть, либо через Джаву попробовать, там небось то же самое. В доках некоторые темы освещены очень плохо.
Аноним 12/11/23 Вск 21:33:46 #859 №2919381 
>>2918952
>green thread
С конкурентностью в джаве знаком слабо, но если там вручную нужно крутить потоки, то в дотнете многозадачность реализована намного круче, потоки абстрагированы.
Аноним 12/11/23 Вск 21:35:16 #860 №2919385 
>>2918967
А что это? Инкапсуляция и есть. Слой абстракции, который позволяет устанавливать или получать значение, без необходимости лезть руками в данные.
Аноним 12/11/23 Вск 21:49:00 #861 №2919402 
>>2919381
Количество абстракций, которые есть в джаве, просто ни в какое сравнение ни идет с шарпом. Это блять мем уже. https://gwern.net/doc/cs/2005-09-30-smith-whyihateframeworks.html
Аноним 12/11/23 Вск 22:11:03 #862 №2919448 
>>2919402
>Количество абстракций, которые есть в джаве, просто ни в какое сравнение ни идет с шарпом.
Пустая болтовня. Насколько я успел выхватить инфы, в самой джаве потоки, которыми нужно управлять руками. В отдельных либах может что и есть. В самом дотнете параллелизм и конкурентность намного более высокого уровня. В отдельных либах есть что угодно, в том числе модель акторов как в Эрланге.
Аноним 12/11/23 Вск 22:32:24 #863 №2919473 
>>2919448
Че это за долбоебизм? Типа если не искаропки, то нещитова? Это не так работает, алеша.
Аноним 12/11/23 Вск 22:43:39 #864 №2919493 
tpl-architecture.png
>>2919473
Не пудри мне мозги. В дотнете не нужно касаться потоков или пула потоков. В джаве такого нет. А что там в либах не имеет значения. В дотнете в либах тоже все есть.
Аноним 12/11/23 Вск 22:49:34 #865 №2919502 
>>2919493
>В дотнете не нужно касаться потоков или пула потоков.
Из-за таких долбоебов как ты и пишут лагучее говно с дедлоками и вылетами. Не нужно блять ему касаться, любые абстракции так или иначе протекают. Скажем задача запустить 2 таски параллельно, не знаю чтобы в ThreadLocal было индивидуальное значение. Хуй ты это без потоков сделаешь.
Аноним 12/11/23 Вск 23:05:44 #866 №2919519 
>>2919473
>МОИ ЛЮБИМЫЕ ВАСЯНСКИЕ ДЖАВА ЛИБЫ КРУЧЕ ВАШЕГО ДОТНЕТА
Блядь какой же этот долбаёб убогий, уже даже обоссывать лень
Аноним 12/11/23 Вск 23:09:29 #867 №2919525 
>>2919502
Объясняю последний раз. В дотнете параллелизм и конкурентность абстрагированы от потоков. Под капотом потоки естественно используются. Но руками их трогать необязательно, если нужно, то можно конечно.
Аноним 12/11/23 Вск 23:09:49 #868 №2919526 
>>2919402
Ебанат на джавадебиле уже совсем обезумел и кидает ссылки на какой-то тред за 2005 год. Это год актуальности джавы, джавадебил?
Аноним 12/11/23 Вск 23:11:00 #869 №2919529 
>>2919502
> Скажем задача запустить 2 таски параллельно
Task.Run(() => Console.WriteLine("Пошел"));
Task.Run(() => Console.WriteLine("на хуй"));
Аноним 12/11/23 Вск 23:14:16 #870 №2919533 
>>2919519
Тезис был в том, что зеленые потоки лучше. Это не либа. Дальше мне шлют притензии
>АРРРРРРРРРРРРРРРЯЯЯЯЯЯЯЯЯЯЯ ГДИ АБСТРАКЦИИ
Надеюсь васяны в виде Apache/IBM/Red Hat с абстракциями смогут справится.
И сука, прекращайте сами создавать срачи, долбоебы тупые, вы реально ж зависимые.
>>2919525
>В дотнете параллелизм и конкурентность абстрагированы от потоков.
Ну в жабе тоже абстрагированы. Пакет concurrent в помощь. Тебе до какой степени абстракция нужна?
>>2919526
Согласен, Spring многократно более абстрактен, чем няшная Java EE.
>>2919529
Гугли что такое параллельность. WriteLine содержит критическую секцию, потому это будет serialized. Тем более цель была в ThreadLocal.
Аноним 12/11/23 Вск 23:18:30 #871 №2919540 
>>2919533
>И сука, прекращайте сами создавать срачи, долбоебы тупые, вы реально ж зависимые.
Так съеби отсюда, животное.
Аноним 12/11/23 Вск 23:19:37 #872 №2919542 
>>2919540
Не ну это тралленг. 4 поста мне высрали, >ря ну уйди пж.
Ладно, пока.
Аноним 12/11/23 Вск 23:21:45 #873 №2919545 
>>2919533
> Тебе до какой степени абстракция нужна?
До такой степени, чтобы отморозить себе уши назло джаве.
Аноним 12/11/23 Вск 23:23:22 #874 №2919548 
>>2919529
Такое в джаве с 1995 было. У вас как говорят в 2010 появилось или 2005, не важно, всё равно проглотили. А теперь показывай, как всё то же самое, но не загружая тяжёлый платформенный поток ожиданием.
Аноним 12/11/23 Вск 23:40:30 #875 №2919574 
.png
>>2919548
Так платформенный поток не загружается ожиданием. Когда мы пишем await - шедулер - выходит из метода, и передает управление другому коду. Переодически - ходит, проверяет, че там, закончили и надо возвращаться или еще нет. В этом как-бы суть асинхронного выполнения...
Чи я тебя не понимаю.
Аноним 12/11/23 Вск 23:45:52 #876 №2919581 
>>2919574
Пусть все эти потоки еще в соснольку пишут хелло.
Аноним 12/11/23 Вск 23:51:08 #877 №2919585 
В другой раз, мы с коллегой сидели в туалете и показывали друг другу новые JEP'ы. Мы фантазировали и громко смеялись, пока в туалет не ворвался тимлид и не выбил ногой дверцу кабинки. На этот раз у него была толстенная книга по спрингу и он без устали бил нас её. Мой друг поскользнулся на луже соплей, говна и крови и потерял сознания, после чего мишенью остался только я. Я хорошо помню как летели станицы, переплет был менее качественный чем у Java EE, книга быстро рассыпалась, я даже узнал там пару страниц, которые ранее уже прочел.
Аноним 12/11/23 Вск 23:58:05 #878 №2919601 
.png
.png
>>2919581
Ну. Держи...
Аноним 13/11/23 Пнд 00:03:59 #879 №2919606 
>>2919601
Ебать удобно. Пиздос.
Аноним 13/11/23 Пнд 00:09:26 #880 №2919610 
>>2919606
Я правда уточню, что время прошедшее - это мульен тасок. Вывод в консоль даже таким макаром - медленнее. Потому что консоль в винде пиздец медленная. Можно конечно - увеличить размер буффера и флаш делать вручную, тогда будет быстрее. На линуксе - консолька быстрее даже без таких изъебств, хз почему.
Аноним 13/11/23 Пнд 00:11:07 #881 №2919611 
>>2919533
>Пакет concurrent в помощь.
Это шутка или ты не понимаешь в теме? В этом пакете семафоры и прочие синхронизаторы, тогда как в дотнете это вообще не нужно. В дотнете работаешь на более высоком уровне абстракции, не касаясь ничего этого. Нет никакой работы руками. 3 или 4 раз это пишу тебе.

>Тезис был в том, что зеленые потоки лучше.
Лучше чего? Ими по прежнему нужно управлять вручную. В дотнете это все автоматизировано.
Аноним 13/11/23 Пнд 00:12:04 #882 №2919613 
>>2919611
Я блять выше вижу эту автоматизацию. Можешь не рассказывать.
Аноним 13/11/23 Пнд 00:18:55 #883 №2919621 
>>2919613
Так а что не так? Я ни одного потока в коде выше руками не создал. Ни разу не попросил тредпул мне достать поток, я просто написал функцию, дотнет все что связано с потоками и парралельным выполнением сам сделал.
Аноним 13/11/23 Пнд 00:32:37 #884 №2919640 
image.png
>>2919621
Ну вот. Идентичная хуйня. Проста функция. Без ченелов и прочей поеботы. Правда скорость уух, прям. Мда
Аноним 13/11/23 Пнд 00:32:46 #885 №2919641 
>>2919613
Ну и да. В реальности - вот так - никто не пишет.
В реальности у тебя будет просто
// io
await Some();
// cpu
myList.AsParallel().Sum();
Аноним 13/11/23 Пнд 00:35:50 #886 №2919642 
image.png
>>2919641
Тип того?
Аноним 13/11/23 Пнд 00:41:40 #887 №2919648 
>>2919642
Ну, типа да.
Я правда не понимаю, по какому поводу тут срач и че жависты в треде про шапр делают.
Типа блин. Языки - буквально друг у друга фичи пиздят, на кой сраться - хз.

Лучше бы кто-то объяснил, че думают про новый синтаксис с созданием массивов и про дефолтные конструкторы новые. Мне вот массивы - нра, а дефолтные конструкторы новые - шляпой показались.
Аноним 13/11/23 Пнд 00:42:30 #888 №2919650 
>>2919648
>че жависты в треде про шапр делают.
Братушкам ненаглядным постинг поднимаем. А то хули тоните.
Аноним 13/11/23 Пнд 00:46:46 #889 №2919659 
>>2919640
>>2919642
Мы же не спрашивали тебя, еблуша, почему ты думаешь что нам не похуй на джавапарашу?
Аноним 13/11/23 Пнд 00:47:55 #890 №2919661 
>>2919659
Когда спать пойдешь? Поздно уже. Волнуюсь все таки за тебя, шарпуш
Аноним 13/11/23 Пнд 00:49:23 #891 №2919663 
>>2919661
Я пойду спать когда захочу, мудло. А вот ты нет, потому что тебе нужно нам что-то доказать. Жаль мы не можем понять что, ведь нам похуй
Аноним 13/11/23 Пнд 00:53:58 #892 №2919666 
>>2919663
Ты че себя дохуя активом почувствовал? Тебе не к лицу, прекращай. Шлеп по попе.
А если серьезно, то сами просили абстракции искаропки.
Аноним 13/11/23 Пнд 00:54:02 #893 №2919667 
>>2919640
Как же джава тормозит
Аноним 13/11/23 Пнд 00:58:33 #894 №2919673 
>>2919666
Джава и гомосексуализм - неразрывны. Местный джавадебил это очередное подтверждение. Уйди, пидор
Аноним 13/11/23 Пнд 01:19:29 #895 №2919691 
>>2919667
>>2919673
Мне уже надоело отвечать. Спокойной ночи.
Аноним 13/11/23 Пнд 05:05:21 #896 №2919797 
qpi3-7igilxfsvtapy0zshpmfqm.jpeg
Насколько кал и можно ли скормить чайнику?
Аноним 13/11/23 Пнд 05:32:23 #897 №2919799 
>>2919797
На двоще распространено предвзятое отношение к книгам издательства Packt, так что не жди объективных оценок.
Аноним 13/11/23 Пнд 08:26:57 #898 №2919837 
>>2919797
Кал, потому что изучать C# через юнити хуевая идея.
Аноним 13/11/23 Пнд 08:57:28 #899 №2919853 
image.png
>>2919797
С этой все бегают, говорят для ньюфага норм, возможно даже может осилит джавист.
Аноним 13/11/23 Пнд 10:08:18 #900 №2919908 
>>2919853
О, у меня такая есть, но на 4.6 НЕТ. Придётся аутдейтом пичкать.
Аноним 13/11/23 Пнд 15:07:41 #901 №2920199 
image.png
Школьные каникулы закончились, джава шизик пропал.
Совпадение?
Аноним 13/11/23 Пнд 15:33:03 #902 №2920249 
image.png
Подводные?
Аноним 13/11/23 Пнд 15:51:00 #903 №2920281 
image.png
Это что за хуйня такая?
Аноним 13/11/23 Пнд 18:25:58 #904 №2920470 
>>2920281
Наоборот надо кастить, от потомка к предку.
Аноним 13/11/23 Пнд 18:58:55 #905 №2920494 
>>2920281
Это в шарпоговне такое скомпилируется? Пиздееееееец.
Аноним 13/11/23 Пнд 19:10:06 #906 №2920508 
>>2919574
Тебе ещё раз напомнить, что в джаве всё это делается без загрязнения кода await'ами и весь старый синхронный код как на петушарпе в момент добавления await переводить под асинхронщину не надо?
Аноним 13/11/23 Пнд 19:31:52 #907 №2920529 
image.png
>>2920281
Бля, а ахуенно. Я сначала подумал, что оно sealed, а тут еще интереснее. Мол раз они рантаймовые, можно любую грязь разрешить, касты-то проверит. Ну жаба соснула тут конечно.
Аноним 13/11/23 Пнд 19:33:17 #908 №2920531 
>>2920529
Хотя стоп. Жаба тоже может касты проверить в этом случае. Ну в общем шарпаны объясните смысл фичи. Как защищать-то?
Аноним 13/11/23 Пнд 19:34:09 #909 №2920532 
>>2920508
конечно не надо, ведь уже 10 лет как все стало асинхронным. И просто НЕ НУЖНО никому магия перевода синхронного кода в виртуально асинхронный
Аноним 13/11/23 Пнд 19:37:25 #910 №2920536 
>>2920532
Да вам всё нинужно. Композиция нинужна, отсутствие тысяч гетсет нинужно, кроссплатформенность нинужна, производительность нинужна, обратная совместимость нинужна, и т.д.
Аноним 13/11/23 Пнд 19:39:47 #911 №2920537 
>>2920536
нам ТУПЫЕ жависты не нужны. а все тобой описанное - просто есть и с ним все хорошо.
Аноним 13/11/23 Пнд 19:40:17 #912 №2920538 
>>2920537
>нам ТУПЫЕ жависты не нужны
А няшные?
Аноним 13/11/23 Пнд 19:41:36 #913 №2920541 
>>2920537
> просто есть
> яскозал! поверьти мне! а то если начну приводить пруфы в конце концов всё равно обосрусь и скажу что нинужно!
Аноним 13/11/23 Пнд 19:42:58 #914 №2920544 
Шарподебил, кстати, обещал мне вот на это >>2918475 ответить. Это произойдёт когда-нибудь или можно сразу записывать проглот мочи шарподебилом по всем тейкам сразу?
Аноним 13/11/23 Пнд 19:44:35 #915 №2920549 
>>2920538
>>2920541
Долбоебы в паре работают, или один и тот же контуженный?
Аноним 13/11/23 Пнд 19:45:05 #916 №2920554 
>>2920538
ты еще скажи что дед мороз существует. Меру то во вранье знать нужно.

>>2920541
я тебе привел за эти треды достаточно пруфов
просто ты ТУПОЕ

>>2920544
да отвечу я. просто была тяпница до понедельницы и не закончилась. Но я не забыл. Урины тебе заготовил от души.
впрочем если ты тупой, то что тебе доказывать ОЧЕВИДНОЕ
Аноним 13/11/23 Пнд 19:45:28 #917 №2920555 
>>2920549
По делу что-нибудь будет или сольёшься в очередной раз?
Аноним 13/11/23 Пнд 19:45:39 #918 №2920556 
>>2920549
Я просто от скуки пишу. Нет реально котаны, а зачем вам вот это >>2920529 ?
Аноним 13/11/23 Пнд 19:46:18 #919 №2920557 
>>2920554
> я тебе привел за эти треды достаточно пруфов
Так почему все твои недопруфы закончились на нинужно и переходах на личности?
Аноним 13/11/23 Пнд 19:47:56 #920 №2920560 
>>2920556
Не зачем, а потому что. Потому что петушарп. В джаве такая хуйня ловится в момент компиляции, в шарпоговне будет рантайм исключение.
Аноним 13/11/23 Пнд 19:48:09 #921 №2920561 
>>2920555
Ебанат, чтобы отвечать тебе по делу, нужно решить одну проблему - ты должен перестать быть понадусеровым жабавуринодебилом и съебаться с треда.

Выполни условия и получишь ответы
Аноним 13/11/23 Пнд 19:48:56 #922 №2920565 
>>2920561
Ясн, слив принят.
Аноним 13/11/23 Пнд 19:49:16 #923 №2920567 
>>2920557
чушь. я НАЧАЛ с того что назвал жаву говном, а тебя говноедом
(и другими разными вполне заслуженными словами) а все остальное время просто пояснял почему я так думаю
Аноним 13/11/23 Пнд 19:49:56 #924 №2920568 
>>2920565
Да, маня, ты принимаешь слив у любого мимокрока. Слив урины в свое тупое ебло.
Аноним 13/11/23 Пнд 19:50:42 #925 №2920569 
>>2920567
Мань, если назвать слив пруфом это пруфом не станет.
Аноним 13/11/23 Пнд 19:51:12 #926 №2920570 
>>2920568
Да не ворочайся, слитое. Тебе ещё силы понадобятся для написания гетсетов.
Аноним 13/11/23 Пнд 20:17:01 #927 №2920602 
>>2920569
уже стало. я мог просто молчать
ты уже показал всем какой ты упоротый говноед.

ладно. уринирую

>>2918475
>Долбоёб продолжает доказывать, что у них сделано по другому, когда я с этим даже и не спорил.
Нет. ДЕБИЛ. ты СПОРИЛ. я тебе говорю что это РАЗНЫЕ концепты. Концепт "все есть футуры" и концепт "корутины + футуры" похожи, но разные. И обладают разными плюсами и разными минусами. А ты, БЕСТОЛОЧЬ, их в один ряд ставишь
лум сравнивать можно с корутинами типа котлин, но не с авайт, потому...да я пояснял почему, но ты дебил

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

>Да, разные, в шарпоговне медленнее.
нет. они просто разные. Есть разные показатели - скорость, гибкость, возможности и так далее. Что то менее быстрое но мощное оно хуже? да ну. Вот я беру даппер за скорость, но он не дает мне возможностей что дает EF или хибернате. Так значит хибернате говно выходит? нет. просто у каждого свой набор лучше хуже и тут кому что нужнее. А ДЕБИЛ справнивает чисто по генерации хелло ворлд. не не долбоеб ли.

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

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

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

>Джавафкс.....
какое то странное поделие до ужаса напоминает QT с его возможностью "можно допилить стилями css" или если мне нужно овальную кнопку то я вижу подход вида btn.setShape(new Circle(1)); что в корне отличается от луклесс подхода где поведение отделено от визуальной части и ты создаешь ее какую хочешь, а не просто живешь в рамках дозволенного
не говоря уже о том что делается это кодом, что даже хамл лучше будет

>Ну да, мы сравниваем текущее состояние языко
аргумент принят. да. но
1 много где еще используется тупо старая версия жавы и им срать на твои лобки и виртуальные треды
2 за эти годы шарписты уже наработали (вот как я) огромные проекты и в них живут и кормятся, пока жависты мыли посуду как в вилабаджо

>Лол.
твоя реальность. в общем то, ты за этим в этот терд и пришел

>Причём тут я
а кто? это ты сюда пришел. причем тебя сюда не звали
пришел и начал всем показывать какой ты говноед.
зачем? хз. тут никто не понимает. может ты мазохист.
Аноним 13/11/23 Пнд 20:23:07 #928 №2920608 
>>2920602
>что в корне отличается от
Ты это сделал вывод по одному гугл запросу, серьзено? Может пасть не будешь раскрывать на технологию, которую ты толком не использовал. Это разделение есть даже в AWT блять. Пиздец.
>что делается это кодом
Опять же, первый пункт. Молчи, за умного сойдешь.
Аноним 13/11/23 Пнд 20:26:15 #929 №2920609 
>>2920608
>Ты это сделал вывод по одному гугл запросу
это я сделал по тому что активно пишу на шарп и котлин
и знаю плюсы и минусы каждого подхода и я даже упоминал некоторые из них, но ты благополучно пропустил мимо ибо (ну ты вообще хз че там в другом языке, ты других языков и не видел)

БРАТЦЫ. нам жависта подменили. ОНО НЕ ОДНО
НЕ ПОМНИТ ЧТО ЕМУ ГОВОРИЛИ

похоже это не просто тупой жавист , а ТОЛПА тупых жавистов
Аноним 13/11/23 Пнд 20:31:55 #930 №2920613 
>>2920609
>это я сделал по тому что активно пишу на шарп и котлин
Ну хуево ты пишешь. Где конкретно в этом месте поведение определяется формой кнопки?
>подход вида btn.setShape(new Circle(1));
Пальцем ткни, писарь блять. И я говорю, что это не единственный способ, ты можешь любую форму сделать.
>ты других языков и не видел
У тебя ахуенная фантазия. Продолжай.
Аноним 13/11/23 Пнд 20:37:58 #931 №2920617 
>>2920613
>Ну хуево ты пишешь
упс пардоньте мистер говноед. я думал ты про асинк авайт
а ты про луклесы
впрочем на шарпе я пишу на WPF,а на котлине жетпак копмпосе который ахуенный, так что технически я прав - оба этих подхода отличаются от жавафх

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

>У тебя ахуенная фантазия
а еще я постоянно зрю в суть дела. продолжаю.
Аноним 13/11/23 Пнд 20:39:39 #932 №2920619 
>>2920602
Мань, ты не уринировал, ты просто набредогенерировал. Тут буквально ни одного высера по делу, только складывание лапок (сливы) и повторение уже обоссанного. Раньше хотя бы уж что-то в ответ высирал, теперь вообще нихуя.

> Нет. ДЕБИЛ. ты СПОРИЛ. я тебе говорю что это РАЗНЫЕ концепты. Концепт "все есть футуры" и концепт "корутины + футуры" похожи, но разные. И обладают разными плюсами и разными минусами. А ты, БЕСТОЛОЧЬ, их в один ряд ставишь
> лум сравнивать можно с корутинами типа котлин, но не с авайт, потому...да я пояснял почему, но ты дебил
И долбоёб продолжает доказывать, что оно разное, когда суть в том, что у нас лучше...

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

> а кому еще.
Тебе объяснили, кому...

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

> кто чего ломает? что за вещи ломающие кросс? а ну просвети?
> то что вендор выпустил мауи и забил на линукс ну никак не влияет на мой проект на авалонии или формсах или вообще аспнетах. так что не ебу о чем ты чудило
Оперативка вмещает последние два поста? >либ для гуёв и сред разработки<

>где поведение отделено от визуальной части
Так это вообще тогда не задача библиотеки для гуя. Так-то идея MVC в этом. Вот этот анон прав >>2920608. Это что получается, раз ты говорил не про изменение внешнего вида без изменения кода простой загрузкой темы, то на петушарпе такого нет, а на джаве есть, и опять отработала вторая теорема шарпана?

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

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

> а кто? это ты сюда пришел. причем тебя сюда не звали
> пришел и начал всем показывать какой ты говноед.
> зачем? хз. тут никто не понимает. может ты мазохист.
Пидоран со стрелочным мышлением опять продолжает кукарекать что-то про меня, когда речь шла про >комьюнити шарпоговна в сравнении с жабовским<.
Аноним 13/11/23 Пнд 20:43:18 #933 №2920622 
>>2920602
> за эти годы шарписты уже наработали (вот как я) огромные проекты и в них живут и кормятся, пока жависты мыли посуду как в вилабаджо
Шарподебил до сих пор не может понять, что все наработанные хоть в 1995 джавовские проекты работают на современной джаве и пользуются всеми современными её фичами. Видимо всё-таки сильно по мозгам хуярит писание на петушарпе.
Аноним 13/11/23 Пнд 20:46:38 #934 №2920628 
>>2920617
>в впф я могу сделать комбобокс с прогрессбарами из кпноко с котиками и все это внутри таблицы. то есть задается шаблонами (и не кодом)
Скачай, потыкай https://gluonhq.com/products/scene-builder/
Потом эта хуйня в fxml переводится. Поведение задается отдельно. Попаболь может возникать только с динамическими данными и то решаемо. Кстати, лучше чем в впф, но имхо.
>асболютно кастомный вид кнопки который не задать тупо имаджем или шейпом.
https://stackoverflow.com/questions/25043990/styling-button-in-javafx-using-css
Можно через css, причем в той же хуете сверху. Вроде есть интерфейсы для изменения ui в коде, но мне щас лень искать.
>ну ничем не отличается от QT
А в чем проблема с QT? Ты поклонник GTK?
>а еще я постоянно зрю в суть дела.
Везет же
Аноним 13/11/23 Пнд 20:51:38 #935 №2920633 
>>2920602
> нет. они просто разные. Есть разные показатели - скорость, гибкость, возможности и так далее. Что то менее быстрое но мощное оно хуже? да ну. Вот я беру даппер за скорость, но он не дает мне возможностей что дает EF или хибернате. Так значит хибернате говно выходит? нет. просто у каждого свой набор лучше хуже и тут кому что нужнее. А ДЕБИЛ справнивает чисто по генерации хелло ворлд. не не долбоеб ли.
Ну так проведи нормальные сравнения, раз уж тебе не нравятся такие сравнения.
Аноним 13/11/23 Пнд 20:53:44 #936 №2920636 
>>2920619
>Тут буквально ни одного высера по дел
не. это твоя парафия. это ж ты у нас любишь говорить " в шарпе нет того то (на деле есть), а в жаве есть( на деле нет)" от чего я просто...ну в ахуе я

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

>Слив принят
что поделать. я не пишу на жаве и конечно не умею делать бенчи правильно. впрочем я и на шарпе не делаю бенчи. я на шарпе ДЕНЬГИ ЗАРАБАТЫВАЮ, а не бенчаю

>Тебе объяснили, кому...
это тебе так кажется

>Говорил именно что с тобой...
нет. не забывай. жавистов тут 1-2 долбоеба, а шарпистов много и не каждый кто тебя говном называет является мной.

>>либ для гуёв и сред разработки<
ты говорил не со мной, я не знаю о чем ты. и ческно сказал что не читал 200 постов треда ибо пипец тут наболтали. так что я не знаю о чем ты. и если либ для гуев это ты про мауи то что? ничего
а среда разработки чего?

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

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

>То есть по делу ничего не скажешь? Слив принят.
по какому делу. ты пришел пожрать говна. ты жрешь. о чем еще говорить?

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

>>2920622
верю что работают. а зачем? ну и брехня про современные фичи
старый код НЕ ЗНАЕТ про современные фичи. он просто стартует в рантайме и...все

>>2920628
>Скачай, потыкай https://gluonhq.com/products/scene-builder/
ой как похоже на Qt Designer
прямо нет разницы.

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

>А в чем проблема с QT?
ни в чем. просто имел с ним дело. и когда смотрю на жавафх то вижу прямо "ну тот же подход"

>Везет же
а то. я никогда не ошибаюсь когда называю жависта говноедом

>>2920633
>Ну так проведи нормальные сравнения
не приведу. это разные вещи. просто по природе разное. EF жрет больше памяти зато дает абстракцию. даппер жрет копейки - зато сликом низкоуровневый. нельзя сравнивать по одной скорости
а в итоге - нельзя сравнивать вовсе
я все сравнения называю сравнения теплого с мягким.
и говорю что все они фуфло. а ты их возводишь в абсолют
Аноним 13/11/23 Пнд 20:59:28 #937 №2920639 
>>2920636
>и когда смотрю на жавафх то вижу прямо "ну тот же подход"
А в чем аргумент? Типа похоже и...? Какой ты вывод из этого сделать хочешь?
Аноним 13/11/23 Пнд 21:01:18 #938 №2920640 
>>2920639
в том что это не совсем то же самое что впф
ты настраиваешь стили, но стиль не то же самое что переопределить шаблоны
да ты можешь с помощью дизайнера что то там создать, но это же опять контейнер компоновки из каких то элементов. это не совсем полный кастом
и даже если так (чего я проверить не могу) - то не выглядит легким, когда впф именно задуман под такое легкое переопределение визуальной части
Аноним 13/11/23 Пнд 21:01:59 #939 №2920641 
.jpg
Угадайте, кто.
Аноним 13/11/23 Пнд 21:05:59 #940 №2920649 
>>2920640
>в том что это не совсем то же самое что впф
А он тут причем? Я думал все гуи давным давно сдохли, и остались только браузеры. Цсс в этом случае куда выйгрышнее.
>легкое переопределение визуальной части
Ну хуй знает, где там легкое. Помню я заебался кондишен сделать. Ну скажем пользователь вошел в приложение, надо скрыть кнопачки и высветить его имя. Так такие костыли блять, что я ебал это делать. Просто забил на впф и шарп туда же. Сука, ссылку на верхний класс во вложенный не давать по дефолту, форичи по child классам делать и ошибку не кидать.. Это ж долбоебизм.
Аноним 13/11/23 Пнд 21:20:52 #941 №2920677 
>>2920649
> Я думал все гуи давным давно сдохли
думай дальше. все так думают. а на деле ты даже щас пишешь в браузере который не в браузере )
просто да, мир идет по пути ГОВНА когда все пихают в браузер. только ПРИЧЕМ ТУТ ЖАВА?????????

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

>Ну хуй знает, где там легкое
не буду спорить. херни там много. но все таки переопределение визуального шаблона делается не через костыли, а через дефолтные механизмы
просто хмл ну такой себе выбор
А оно все "такой себе выбор". тут без вариантов.
Аноним 13/11/23 Пнд 21:26:22 #942 №2920683 
>>2920636
> было бы оно лучше я бы тут щас ссал бы кипятком
То есть ничего по сути в ответ не высрешь? Слив принят.

> что поделать. я не пишу на жаве и конечно не умею делать бенчи правильно. впрочем я и на шарпе не делаю бенчи. я на шарпе ДЕНЬГИ ЗАРАБАТЫВАЮ, а не бенчаю
Не ворочайся, слитое.

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

> нет. не забывай. жавистов тут 1-2 долбоеба, а шарпистов много и не каждый кто тебя говном называет является мной.
Флажок с логотипом джавы в анус вставишь с пруфами, если покажу сообщение, в котором тебе было сказано об этом?

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

> и это ж хорошо. разве нет? хахаха
То есть пруфов не будет? Слив принят.

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

> не приведу.
Слив принят.

> а зачем?
То есть даже не то чтобы два сообщения в памяти хранить, ты как single-turn gpt отвечаешь только на последнее? Затем, чтобы старые огромные проекты продолжали работать, которые ты как аргумент за петушарп привёл.
Аноним 13/11/23 Пнд 21:38:53 #943 №2920694 
>>2920683
>Слив принят
>>2920683
>Слив принят.
>>2920683
>Слив принят
>>2920683
>Слив принят.

Обезьяна совсем обезумела, становится страшно.
Аноним 13/11/23 Пнд 21:42:37 #944 №2920698 
>>2920694
Хочешь сказать, что не слит? Тогда ответь по делу.
Аноним 13/11/23 Пнд 21:46:21 #945 №2920704 
>>2920698
Долбаёб, я с тобой вообще беседы не виду, просто зоонаблюдаю, таблетки прими.
Аноним 13/11/23 Пнд 21:47:13 #946 №2920706 
>>2920704
Ну так не влезай, если не хочешь получить лишнюю урину на ебальник.
Аноним 13/11/23 Пнд 21:47:29 #947 №2920707 
>>2920698
с жавадебилом говорить бесполезно
если ОНО НЕ ПОНЯЛО аргументации то считает за слив
пей урину долбоеб, а я пройду мимо
Аноним 13/11/23 Пнд 21:49:25 #948 №2920713 
>>2920706
>урину
Это твое питание на протяжении второго треда, но ты неугомонен, ебанат. Джавпараша полностью высушила твой ганглий или его никогда не было?
Аноним 13/11/23 Пнд 21:49:33 #949 №2920714 
>>2920707
>>пруфы будут?
>нет, не приведу
>не поняло аргументации
Ясн, ты иди зашивайся.
Аноним 13/11/23 Пнд 21:49:56 #950 №2920715 
>>2920713
Не нервничай, а то сил на гетсеты не хватит.
Аноним 13/11/23 Пнд 21:51:53 #951 №2920718 
>>2920715
>Не нервничай, а то сил на гетсеты не хватит.
Какие гетсеты, обезьяна в цикле? Охуеть. Пошел нахуй из треда тебе говорят, животное.
Аноним 13/11/23 Пнд 21:53:27 #952 №2920722 
>>2920718
Ну {get; set} которые, которые даже я заебался уже в треде в полном виде писать чтобы вас в парашу макать, а вы которые не устаёте писать каждый день.
Аноним 13/11/23 Пнд 21:57:49 #953 №2920728 
>>2920722
Долбаёб, если твой работа писать нет сеты а мы оба знаем что твоя работа - жрать говно, то смени ее. Джава обезьяна, я понимаю, это тяжело осознать, но у нормальных людей программирование не состоит из написания миллиарда dtошек. Такое программирование только в вашей джавапараше, поэтому и приходиться всякие ломбоки применять.

Но лучше бы ты, уебок, применил лоботомию. Как же в треде стало хорошо.
Аноним 13/11/23 Пнд 21:59:35 #954 №2920730 
>>2920728
>нинужно
Пынял.

Алсо, я же сказал не нервничать...
Аноним 13/11/23 Пнд 22:06:37 #955 №2920744 
>>2920730
>нинужно
Что не нужно, уебок? Сокращение бойлепрейта не нужно? Всегда нужно. Но костыли, типа ломбока с которыми, ты конченный бегаешь перемогаешь срешь в треде - не нужны. Не нужны - запомни это джавапарашный выблядок. Как и не нужна джавапараша. Как и не нужен здесь ты, жаль пизда твоей мамаши не была зашита.

>Пынял.
Так как из /b сбежало, дурное?

>Алсо, я же сказал не нервничать...
Таблетки, шизло, таблетки. Ты не вызываешь ничего кроме жалости. Злость вызывает ленивая моча, которая не может тебе по башке тупой дать. Зато моча хорошо залетает тебе в ротешник тугой струёй второй тред, а ты жадно хватаешь каждую каплю, ублюдище
Аноним 13/11/23 Пнд 22:11:22 #956 №2920752 
>>2920744
Ну и зачем ты повторил "нинужно"?
Аноним 13/11/23 Пнд 22:19:42 #957 №2920775 
Чуваки, а посоветуйте книги по wpf. Читал рихтера, с основными основами впф знаком (1.5 года интерпрайза)
Аноним 13/11/23 Пнд 22:21:29 #958 №2920781 
>>2920775
Нахуя тебе впф в 2023? Либо читай доку Авалонии либо Винурины 3
Аноним 13/11/23 Пнд 22:42:33 #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
Аноним 13/11/23 Пнд 22:45:11 #960 №2920804 
>>2920802
Этот долбоёб даже не понял, к чему претензия.

К тому, что геттер сеттер можно повесить на класс, а {get; set} надо возле каждой переменной хуярить.
Аноним 13/11/23 Пнд 22:48:35 #961 №2920811 
>>2920804
и что? это можно повесить на сниппет
и не каждое поле должно быть свойством? не понимаешь?
а для случаев когда должно есть рекорды

в шарпе можно кстати НИЧЕГО не вешать
это просто будут поля, но вести они себя будут..как поля
и ПОТОМ можно превратить их в свойство и СИНТАКСИС ВЫЗОВА не изменится

вызов поля
obj.Age = 10
вызове такого же свойства с сеттером
obj.Age = 10

бинарно да, разница есть. но на уровне кода нет
впрочем эти несчастные гет сет....я уже пояснил про рекорды
Аноним 13/11/23 Пнд 22:49:21 #962 №2920812 
>>2920802
>@Setter(AccessLevel.PROTECTED) private String name;
Вкусно, вот это джавадебилы гурманы.
Аноним 13/11/23 Пнд 22:49:53 #963 №2920814 
>>2920811
Ну так если можно, показывай, как повесить гетсет на класс.
Аноним 13/11/23 Пнд 22:50:23 #964 №2920815 
>>2920812
Не отвлекайся, а то норму по гетсетам увеличат в два раза.
Аноним 13/11/23 Пнд 22:58:09 #965 №2920828 
>>2920815
>Не отвлекайся, а то норму по гетсетам увеличат в два раза
Смешная мантра, мань. Особенно она смешна теперь на фоне высера в ломбоке. Вот это починили джавапарашу так починили, посыпали понос сухим говном, ух победа.
Аноним 13/11/23 Пнд 22:59:20 #966 №2920831 
>>2920828
Если ломбок это высер, то я боюсь представить, что там с петушарпом, если там даже гетсет на класс повесить нельзя...
Аноним 13/11/23 Пнд 23:07:13 #967 №2920840 
>>2920831
>Если ломбок это высер
>@Setter(AccessLevel.PROTECTED) private String name
>Если

Апофоез жавадебилизма. От урины совсем плохо бедняге.
Аноним 13/11/23 Пнд 23:09:03 #968 №2920844 
>>2920831
А зачем вешать на класс дебил
В жаве лобок делает гет сет для приватных полей. То есть пишет методы вместо компилятора (ведь разрабы жавы срут десятилетиями на жавадебичей)

В шарпе свойство это самостоятельный элемент
И даже рефлексия о нем знает, а не тупо дописанные методы

но
жавадебич такой дебич
Аноним 13/11/23 Пнд 23:28:55 #969 №2920848 
>>2920840
Так почему шарпоговно ещё хуже?
Аноним 13/11/23 Пнд 23:29:14 #970 №2920849 
>>2920844
Ну не знаю, наверное чтобы на каждое поле отдельно не вешать.
Аноним 13/11/23 Пнд 23:31:14 #971 №2920850 
>>2920848
Согл, долбоеб, лобок очень крутой, вот бы у нас в шарпе можно было писать @Setter(AccessLevel.PROTECTED) private String name...
Аноним 13/11/23 Пнд 23:31:52 #972 №2920851 
>>2920850
Ясн, дебилоид на смехуёчки после интенсивного обоссывания перешёл.
Аноним 13/11/23 Пнд 23:32:11 #973 №2920852 
>>2920849
Для этого есть рекорды
А свойство это спец элемент, а не просто указание компилятору дописать за тебя методы
Конечно проще написать свойство, чем поле, но это далеко не всегда верно.
Аноним 13/11/23 Пнд 23:33:20 #974 №2920853 
>>2920852
>рикорды
А в обычном классе никак? Жаль шарподаунов.
Аноним 13/11/23 Пнд 23:34:35 #975 №2920854 
>>2920851
Подожди, джавадебил, держи рот шире - почему джавапараша до сих не может кодгенить свойства и вашу обосранную жопу приходится затыкать васянской либой?

Почему, джавадебил?
Аноним 13/11/23 Пнд 23:36:37 #976 №2920857 
>>2920854
Так на вопрос, как в шарпоговне повесить гетсет на класс не ответишь значит?
Аноним 13/11/23 Пнд 23:37:47 #977 №2920860 
>>2920854
Есть record...
Аноним 13/11/23 Пнд 23:38:29 #978 №2920861 
>>2920857
Ожидаемый слив джавадурачка принят. Крепче сжимай анусом лобок, манюнь.
Аноним 13/11/23 Пнд 23:38:46 #979 №2920862 
>>2920853
Сорс генераторы и фоди могут все
Только ценность этого идиотизма низкая.
И поэтому сторонников нет
Это в жаве где другого пути нет - они жрут и выдумывать говно
В шарпе никого не парит написать гет сет тем более что это делает сниппет
И сразу видно где поле, а где свойство (напомню жовососу что это разные по своей сути элементы)
Аноним 13/11/23 Пнд 23:39:02 #980 №2920864 
>>2920861
Слив принят.
Аноним 13/11/23 Пнд 23:39:44 #981 №2920865 
>>2920862
> фоди
Без поддержки в ide бесполезно.
Аноним 13/11/23 Пнд 23:46:33 #982 №2920867 
>>2920865
У сорс генераторов она есть
На таком принципе свойства пишет фреймвворк от мелких (INPC свойство)

Но лично для меня и миллионов шарпистов просто ДИКО писать приватное поле и превращать его магией в обычное свойство.... Просто потому что гладиолус
Когда можно просто написать , по которому
а) Видно что оно свойство. Никакой магии. Не нужно догадываться о скрытой генерации "это приватное поле станет свойством, ТЕМ более если указание находится не рядом, а где то ьам"
Б) сразу видно уровни доступа (а они бывают разные, не знал?)
в) это свойство как специальный элемент для рефлексии
Г) жавист имбецил
Аноним 13/11/23 Пнд 23:47:11 #983 №2920869 
>>2920867
Ну раз всё есть, показывай, как в вашем говне повесить гетсет на весь класс или его аналог.
Аноним 13/11/23 Пнд 23:55:37 #984 №2920872 
>>2920869
Кому это вообще нужно
Это в жаве ты пишешь приватные бэкфилды и просишь сгенерить для них
В жаве ты ВЫНУЖДЕН писать именно так

В шарпе пишется сразу нужное и генерация попросту не нужна
Не натягивай ВЫНУЖДЕННЫЙ УЕБИЩНЫЙ подход жавы на другие языки где таких проблем в принципе нет
Аноним 13/11/23 Пнд 23:56:33 #985 №2920873 
>>2920872
>всё есть!
>где
>нинужно!
Лол.
Аноним 13/11/23 Пнд 23:57:08 #986 №2920874 
>>2920860
Ну так они и в шарпе есть, манюнь. И ты это знаешь. Ты в целом все знаешь и понимаешь. И с рекордами даже не надо писать гет сеты. И ты это знаешь. И даже без протыка васянской либой. И ты это знаешь, джавуринодебильная обезьяна.

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

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

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

Джавадебил, пора очнуться - сопротивляйся кабану. Лучше один раз сжать челюсти, не сожрав @Setter(AccessLevel.PROTECTED) private String name, чем постоянно сжимать анус, пытаясь удержать пятикратно переваренный джавапонос.
Аноним 13/11/23 Пнд 23:59:04 #987 №2920877 
>>2920874
Ебать оно от отсутствия гетсетов на классе бахнуло.
Аноним 14/11/23 Втр 00:02:13 #988 №2920878 
>>2920873
смотрите
ИМБЕЦИЛ предлагает написать так

private int age;
private String name;
private String foo;

и потом попросить сгенерить из этих бэкфилдов свойства, когда можно спокойно СРАЗУ писать
public int Age {get; set;}
public String Name {get; set;}
public String Foo {get; set;}

при этом эти несчастные гет сет которые ОДНОЗНАЧТНО указывают на то что это свойство (что ВАЖНО), и без всякой магии, будут написаны тупо идешкой со сниппета

но нет. ИМБЕЦИЛ предлагает именно путь магии. В его УЕБИЩНОМ языке просто другого пути нет - вот он и считает это верным. А то что в других языках магия НАХЕР НЕ НУЖНА - долбоебу понять не получается

в общем иди учи другие языки, дебил. а я вторникать.
Аноним 14/11/23 Втр 00:04:28 #989 №2920879 
>>2920878
> ИМБЕЦИЛ предлагает написать так
>короткий код
> когда можно спокойно СРАЗУ писать
>бойлерплейт
Лол.
Аноним 14/11/23 Втр 00:07:23 #990 №2920882 
>>2920878
>В его УЕБИЩНОМ языке просто другого пути нет - вот он и считает это верным.
В хаскеле без магии даже IO не работает...
Аноним 14/11/23 Втр 00:14:25 #991 №2920887 
перекат >>2920885 (OP)

я вас умоляю не кормите залетного перед НГ хотя бы
Аноним OP 14/11/23 Втр 00:15:48 #992 №2920889 
>>2920887
легитимный
Аноним 14/11/23 Втр 00:16:22 #993 №2920891 
>>2920879
твои привате бэквфилды не бойлерплейт?
такие самые же
в жаве пишешь бэкфилды и генеришь гет сет
в шарпе сразу пишешь гет сет и сгенерятся бэкфилды

в чем разница имбецил?
НЕ ОТВЕЧАЙ.
Аноним 14/11/23 Втр 15:16:58 #994 №2921589 
>>2910820 (OP)
Прошу прощения, что прерываю ваши срачи. Но мне нужен совет знающих людей. Я слышал от вас, что все самые крутые программисты пишут на шарпах. Ну вот подскажите пожалуйста.
Есть предприятие. В нём десятки разных рассылок. Большинство из них отбирают получателей всяким хитроумным образом по неким данным о случившихся событиях. Всё это захардкожено в разных местах. Периодически захардкоживается сам получатель или даже только его мейл или номер телефона, куда слать смс.
В итоге есть куча получателей, которые уже давно уволились и куча потенциальных получателей, которые даже не знают, какие рассылки специально для их должности уже сделаны, и служба поддержки, которая затрудняется всё это перенастраивать. Плюс компания на одних только смсках теряет кучу бабла, тогда как у всех сотрудников есть емейлы, есть приложения от нашей же компании, но мы всё равно шлём смс "для надёжности".
А как это у вас сделано и организовано?
Аноним 14/11/23 Втр 15:51:18 #995 №2921653 
>>2920878
>>когда можно спокойно СРАЗУ писать
>>public int Age {get; set;}
В современной джаве правильнее писать без гет/сет. Все это говно должно умереть вслед за IInterface и Impl.

>>эти несчастные гет сет которые ОДНОЗНАЧТНО указывают на то что это свойство (что ВАЖНО)
Просто не пиши логику в геттерах и сеттерах.
Это конечно не работает с рич моделями, но нехуй слушать этого вашего ункл боба и его "чистым" говном.
Аноним 14/11/23 Втр 16:20:40 #996 №2921744 
>>2921589
Кидаешь уведомления в шину евентов (ребит/кафка). Сервисы рассылки подключаются и слушают. Получив ивент своего типа мейлы/смс и тп делают свое дело.
Сервис смс уведомлений можно просто выключить - система не сломается.
В самом евенте отмечаешь получателей рассылки - группы или ид пользователей.
Сервис рассылки уже по группам/ид сам достанет что ему там надо - телефоны/емейлы. как неважно - хоть по ресту

То есть сервисы рассылки только шлют уведомления, кому они заранее не должны знать.

Сама логика определения кому рассылать - на стороне сервиса который эвенты создает.
Какая логика - тут абстрактно не скажешь. Наверное там какие то группы потребителей есть. Заблокированных / уволенных где то в этом месте надо фильтровать.
Если надо прям конкретному пользователю что то отправить - то надо вынести его из хардкода в конфиги.
Аноним 14/11/23 Втр 17:24:49 #997 №2921881 
Как с 8 джавы перекатиться на 8 дотнет?
Аноним 15/11/23 Срд 02:33:14 #998 №2922422 
>>2921881
обновиться до 21 жавы и можно не перекатываться
Аноним 15/11/23 Срд 04:55:59 #999 №2922429 
>>2922422
>обновиться до 21 жавы
Нужно что-то более реалистичное.
Аноним 15/11/23 Срд 09:52:10 #1000 №2922505 
перекати меня, братан
Аноним 15/11/23 Срд 12:06:47 #1001 №2922690 
>>2920887
>>2922505
Аноним 17/11/23 Птн 13:54:25 #1002 №2925392 
Я выучил основы сисярпа, что мне дальше делать/учить?
comments powered by Disqus

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