Этого треда уже нет.
Это копия, сохраненная 7 апреля в 01:42.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Duke(Javamascot)waving.svg.png72 Кб, 800x1441
Java Thread №261 /java/ 2994733 В конец треда | Веб
Программирование — это не только про анальное крудошлёпство. Java собирает в себе лучшие стороны программирования как стиля мышления.

Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>2970953 (OP)
image18 Кб, 215x317
sage 2 2994742
еблан блядь
3 2994745
>>2994742
Поч в жаве маскот - зуб с пульпитом?
4 2994746
>>2994742
К макаке претензии.
5 2994748
>>2994745
Это Дюк.
6 2994752
>>2994748
Надо тред в медач перенести
7 2994760
>>2994746
Претензии к тому кто картинку выбирал. Не мог что ли аи генератором воспользоваться?
8 2994762
>>2994760
Не из-за выбирающего картинку бекграунд у прозрачной пикчи на сосаче чёрный, а не соответствующий цвету поста.
9 2994766
>>2994762

>пук

10 2994767
>>2994766

>уиииии

11 2994977
Остаться работать в сбере джава 8 легаси моноблок за ~320к/мес + премия ~650к/год
или
новая компания джава 17, сотни рпс, свистелки-перделки, кликхаузы, сыкулее и ноу сыкулее, но за 250к/мес без премии

я просто мидоль и на синьора меня не зовут, да я и не знаю особо ничего, 4 год уже сижу в легостане этом. Деньги или крутой опыт? Конвертнется ли крутой опыт в еще большие деньги в РФ?А?
Пишем Ваши мнения, это важно, потому что январь это месяц нереста сберунов, после годовой премии в декабре.
12 2994978
>>2994733 (OP)
Очень важный пост >>2994977 этого ИТТ треда. Глубокие философские рассуждения, страхи, надежды, реальность. Не проходите мимо.
13 2995047
>>2994977
как найти такой легаси моноблок за 300к?
14 2995055
>>2995047
вырасти на нем
15 2995083
>>2994977
Остаться конечно. 17 джава это тоже легаси, плюс и на новом стеке пиздец может быть и даже часто бывает. Обмен не стоит того.
16 2995224
>>2994977
Остаться работать в Сбербанке параллельно ища работу где бы платили бы столько же. Зачем добровольно себя даунгрейдить?

В плане перспектив в РФ не знаю. Такое чувство, что банки и безопасность это и есть все перспективы. Халявные заграничные деньги кончились.
17 2995254
>>2995224

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


Если так подумать, то это очень разумно. Но я боюсь я потом никуда не устроюсь, потому что у меня опыт только с монолитом и задачи которые я решаю однотипные и скорее для кодерка, чем программиста. Что на это скажешь? Или типа циферки в стаже везде меня пристроят, сейчас 4 года опыта, станет 5, 6 я то понимаю, что это только циферки и все равно дадудт 300к+ и в коммерции? Пездец сложно, почему просто нельзя во всех компаниях использовать нормальный стек
18 2995307
>>2995254
Не знаю, я уже давно забил на изучение нового стека. Я читаю книжки написанные пердунами в нулевых и это всё моё повышение квалификации.

Я бы выбрал стабильность и там где меньше работать.
19 2995315
>>2995254
как устроился в сбер? после вуза?
20 2995380
>>2995307
Опасно, в один момент все перейдут на го и вместо переписывания монолитов сразу начнуть писать микросервисы на гохе, для этого дела естественно позовут тех кто держал нос по ветру, кто не успел еще все на котлин переписать и уже переписывает на го, а мне и тебе скажут сиди пока на поддержке, а потом укажут на выход
>>2995315
На последнем курсе вуза
21 2995419
>>2995380
Да пофиг если честно. Ну, уволят и уволят. Деньги счастья не принесли, чего за них сильно держаться. 100 к, 300 к, 500 к - однохуйственно. Лишь стены квартир меняются на посвежее, да всякую фигню не заморачиваясь покупаешь. При этом просто взять и уйти денег не хватает и никогда не хватит. Ловушка Джокера. Хочется просто, чтобы мозги поменьше трахали и работы поменьше подкидывали.
22 2995428
>>2993747 →
>>2993851 →
Ну так, спиай, хуйпиай мастер что нибудь ответит? Как нам обустроить Россию JDBC?

А то сейчас, когда подключаешь к последней JDK старый драйвер и пытаешься использовать новое API получаешь NoSuchMethodError. Всё из-за дурацких интерфейсов! А вот был бы полноценный API&SPI вот бы житуха была!
23 2995443
>>2995428
Ответит, но не сегодня и не завтра, надо таски закрыть. Твой вопрос помню, мне самому выгодно понять не хуйню ли я делаю, так что будет свободное время разобраться отвечу
24 2995446
>>2995380
Я думаю, что скоро все поумнеют, и перестанут делать микросервисы вообще. Ну, кроме тех 1.5% случаев, где они действительно нужны.

Алсо, чего именно тебе лично не хватает в 8-й джаве, из того, что есть в 17-й?
25 2995457
>>2995446
17 джава приближает меня к грин потокам в 21, и спринг буту 3. А еще там более понятный стектрейс, наллпоинтер пишется не в какой строке, а в какой переменной. Да и вообще, в 11 есть вары и куча всего
26 2995493
>>2995457
Спринг вообще не нужен, ни бут, ни ебут. Это дичайший bloat.
Когда я вижу, во что превратилась современная джава, то вижу только 2 пути - или продолжать сидеть на 8-й, или перекатиться в Go.
27 2995606
>>2995443
Ох уж эти мамкины достигаторы, которые говорят, что основывают все свои действия на выгоде, но при более близком рассмотрении классические пидорюндели с принципами. Правда извращёнными уж слишком.
28 2995616
>>2995457

> к грин потокам в 21


У меня есть подозрение, что лум как реализация провалился. Переключение контекста всё ещё дорогое, кал беки быстрее. Более правильным подходом была бы глубокая автогенерация методов с калбеками по любому байткоду, бьющихся по тем местам, где сейчас стоят лумовские блокеры + дать возможность самому ставить синтаксические блокеры и читать их для кастомной реализации разбивалки методов. Не так, как сделано в петухлине, с оверхедом в 10 раз, а по джавовски. И не как в шарпоговне, а чтобы все синхронные библиотеки разом стали асинхронными.
29 2995645
>>2995493
Без бута и джава не нужна. Питон и го проще для простых задач.
image.png378 Кб, 854x480
30 2995651
31 2995909
>>2995493
>>2995645
То что вы дрочите на го сразу показывает что вы ни строчки на нем не написали. Это недоязык на котором невозможно приличную систему писать
32 2995930
>>2995909

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


А я тебе что написал?
Для хуйни энтерпрайз уровня - жаба/шарп на фреймворках.
Для примитивных вещей - го и питухон.
Если б на го хотели писать что то сложное - то там появился бы свой спринг.
33 2995951
ку, аноны
подскажите имеются ли какие-то бест практисы для следующего кейса:
имеется микросервис, который принимает жсонину, и на основании данных в этой жсонине отправляет запрос на другой микросервис, по сути гейтвей такой. каким лучше образом определять, что за жсон прилетел, через некий json path/spring expression language? очевидно, хочется, чтобы не уходило дохуя времени на определение типа жсона, всякие regexpы наверное будут сжирать много проца, да и если огромный пейлоад, то будет только хуже
34 2995952
>>2995951
Что значит определять какой жсон пришел? Определять какие поля в нем?
35 2995958
>>2995952
ну типа того, да. допустим, жсон на регистрацию пользователя нужно отправить на юзер-сервис, а жсон на получение хуй его знает его кредитной истории на какой-нибудь пейментс-сервис. очевидно, что эти два жсона абсолютно разные
36 2995961
>>2995958
Api gateway из спринг клауда не пробовал?
37 2995963
>>2995958
Вообще задача интересная,сейчас глянул,у нас используется зуул для таких целей. Абсолютно не знаю как он работает,но в гейтвее даже контроллера нет,там пишешь класс фильтров и прописываешь роуты в ямлике
38 2995966
>>2995961
ну он по сути облегчает саму настройку роутов, куда конкретно пробрасывать, сам же механизм определения как и куда в любом случае придется писать самому, о чем, собственно, и был вопрос - юзать какие-то json path или есть что-то более производительнее/удобнее
39 2995973
>>2995951
JSONPath.
40 2996001
>>2995930

>Если б на го хотели писать что то сложное - то там появился бы свой спринг.


Это не говей. На Го просто пишут много кода, а если проект сложный то очень много.
41 2996020
>>2996001
Покажите им сервлеты и вебсокеты,они сразу полюбят джаву
42 2996022
>>2995951
content based routing
43 2996089
>>2996020

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


Сервлеты это ± уровень фреймворков го.
44 2996091
>>2995951

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


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

>>2996091
потому что такие требования
46 2996111
>>2996091
Потому что HTTP это транспортный протокол, и роутинг должен делать веб-сервер. Так как веб-сервер не умеет в динамический роутинг, то все такие запросы должны должны приходить на один и тот же url.
А ещё надо всегда 200 возвращать.
47 2996134
>>2996111
тут, кстати, я проебался и не написал дополнительных условий. сообщения могут приходить откуда угодно (kafka/mq/rest) и уходить куда угодно
48 2996266
>>2996111
При чём здесь транспортный протокол?
Я думаю, там дело в том, что клиенты просто не знают (не могут или не должны знать), куда это должно пойти. Именно для этого и нужен тот сервис, который знает, и, после анализа контента, маршрутизирует это туда или сюда.
49 2996361
>>2996111

>А ещё надо всегда 200 возвращать.


>200


>Service Unavailable

50 2996375
>>2996361

>Service Unavailable


Это 503.
У вас ещё каникулы не закончились?
51 2996442
>>2996375
Но ведь нужно всегда возвращать 200, а Service Unavailable вернуть в String errors.
200 коллеги?
52 2996448
>>2996106

>потому что такие требования


Чел, не может быть бизнес требований всё слать на один и тот же урл. Это какой то не очень умный техлид придумал. И это говно надо менять.
53 2996517
>>2996442
роутинг это транспорт, значит возвращаешь http коды.
Если мессага дошла куда надо и была успешно обработана (даже если сработала бизнес-валидация) - возвращаешь 200
54 2996560
>>2994748
Нюкем?
55 2996785
>>2996001

>>Это не говей. На Го просто пишут много кода


Они поэтому туда пыхеров берут, чтоб те не были испорчены фремворками, архитектурой и прочими бест практисами?
56 2996928
>>2996785
В гугель, если решаешь литкод медиум, и проходишь по софтскилам то берут.
57 2997041
>>2996560
Нет, просто Дюк.
58 2997042
>>2995616
А ещё из-за реализации лума теперь все синхронайзеды обратно задепрекейчены, да.
59 2997047
>>2995651
Никто нн проходил? Охуенный же квест.
60 2997054
>>2997047
Здесь половины треда в 1990 ещё даже в мыслях не было.
61 2997059
В прошлом треде мне никто не ответил, поэтому переспрошу.
Как правильно обновлять сущности?
Сейчас обновляю путом со всеми полями. Ну или дтошкой с почти всеми полями. Ну то есть фронт читает гетом все поля, что ему доступны, меняет те, что поменял пользователь, а какие не поменял - передает без изменения. И я обычно все без каких-то проверок, кроме валидаций апдейчу в бд. Ну или иногда там что-то есть в дто, но обновлять это в некоторых случаях нельзя. Ну и тогда или игнорирую поле или эксепшон выкидываю.
Но мне кажется это тупо, особенно если в дто 30-50 полей, а измениться может только одно или два. Гонять туда-сюда лишние сотни килобайт не ясно зачем. Особенно если некоторые поля могут быть побольше. Не огромные, но пару тысяч знаков. Но патчем это надо по одному полю передавать? 50 эндпоинтов это тупо.
На первой ссылке в гугле нашел вот такую статью на баелдунге:
https://www.baeldung.com/spring-rest-json-patch
У этого подхода есть даже стандарт:
https://datatracker.ietf.org/doc/html/rfc6901
И свой Content-Type: application/json-patch+json
Выглядит неплохо:
- Получаем список операций. Меня интересует replace. Ну и remove, чтобы занулять поля, потому что вроде бы в replace null запрещены. Список операций лежит в JsonPatch
- Достаем сущность по ид и иерез apply делаем мердж нужных полей с нужными операциями.
- Полностью сохраняем сущность в бд.
Но вот вопросы:
1. Реально ли таким подходом пользуются? На гитхабе у библиотеки https://github.com/java-json-tools/json-patch всего 700 звездочек и <groupId>com.github.java-json-tools</groupId> какой-то васянский.
2. Норм все будет с валидациями? У меня на 50 полей 40 валидаций раскидано, чисто с содержимым связаны, не просто ненулевое. Ну вот допустим они будут применяться во время apply. И так же все схватится адвайсами и выкинется правильная ошибка. Но валидации они не на сущности, а на дтошки, потому что в разных эндпоинтах валидации могут быть разные. Это получается нужно мапииь сущность в дтошку и уже ее мерджить и потом обратьно мапить?
3. В бд все сохраняется все равно скопом. И нужно делать предзапрос с селектом по ид. Чтобы сделать upate запрос с произвольным количеством полей через jdbc эта библиотека не подойдет, придется самому что-то похожее на список ReplaceOperation городить. Самому валидировать есть ли все пришедшие поля, самому доставать валидации на поля, а потом уже строить запрос.
61 2997059
В прошлом треде мне никто не ответил, поэтому переспрошу.
Как правильно обновлять сущности?
Сейчас обновляю путом со всеми полями. Ну или дтошкой с почти всеми полями. Ну то есть фронт читает гетом все поля, что ему доступны, меняет те, что поменял пользователь, а какие не поменял - передает без изменения. И я обычно все без каких-то проверок, кроме валидаций апдейчу в бд. Ну или иногда там что-то есть в дто, но обновлять это в некоторых случаях нельзя. Ну и тогда или игнорирую поле или эксепшон выкидываю.
Но мне кажется это тупо, особенно если в дто 30-50 полей, а измениться может только одно или два. Гонять туда-сюда лишние сотни килобайт не ясно зачем. Особенно если некоторые поля могут быть побольше. Не огромные, но пару тысяч знаков. Но патчем это надо по одному полю передавать? 50 эндпоинтов это тупо.
На первой ссылке в гугле нашел вот такую статью на баелдунге:
https://www.baeldung.com/spring-rest-json-patch
У этого подхода есть даже стандарт:
https://datatracker.ietf.org/doc/html/rfc6901
И свой Content-Type: application/json-patch+json
Выглядит неплохо:
- Получаем список операций. Меня интересует replace. Ну и remove, чтобы занулять поля, потому что вроде бы в replace null запрещены. Список операций лежит в JsonPatch
- Достаем сущность по ид и иерез apply делаем мердж нужных полей с нужными операциями.
- Полностью сохраняем сущность в бд.
Но вот вопросы:
1. Реально ли таким подходом пользуются? На гитхабе у библиотеки https://github.com/java-json-tools/json-patch всего 700 звездочек и <groupId>com.github.java-json-tools</groupId> какой-то васянский.
2. Норм все будет с валидациями? У меня на 50 полей 40 валидаций раскидано, чисто с содержимым связаны, не просто ненулевое. Ну вот допустим они будут применяться во время apply. И так же все схватится адвайсами и выкинется правильная ошибка. Но валидации они не на сущности, а на дтошки, потому что в разных эндпоинтах валидации могут быть разные. Это получается нужно мапииь сущность в дтошку и уже ее мерджить и потом обратьно мапить?
3. В бд все сохраняется все равно скопом. И нужно делать предзапрос с селектом по ид. Чтобы сделать upate запрос с произвольным количеством полей через jdbc эта библиотека не подойдет, придется самому что-то похожее на список ReplaceOperation городить. Самому валидировать есть ли все пришедшие поля, самому доставать валидации на поля, а потом уже строить запрос.
62 2997082
>>2997059
Проблемы спрингодебилов. Новые поля в нормальной архитектуре устанавливаются дефолтным значением/инициализатором, удалённые отбрасываются/передаются в сокращатель.
63 2997121
>>2996517
Неправда, роутинг динамики это уже уровень приложения, поэтому на неправильный урл надо возвращать 200 с текстом, что урл неправильный.
64 2997125
>>2997121
клиентский код не знает про роутинг и ему это до пизды. Это транспорт
65 2997179
>>2997082
Причем тут новые поля?
Я о том, как лучше и правильнее частично обновлять значения полей.
Там где я работал/стажировался/читал чьи то проекты всегда обновляли все полностью. Или писали эндпоинт для одного поля.
Да, пример на баелдунге на спринге, но на жаваее или на микронафте будет все тоже самое.
66 2997180
>>2997179
я пишу разные ручки для разных сценариев обновления. И в каждой ручке обновляются только возможные для этого сценария поля
67 2997251
>>2997125
Рутинг или маршрутизация. Открой словарь и смотри, как читается, прежде чем писать.
68 2997287
на собесе прозвучал следующий вопрос: сколько потоков стоит использовать для системы с четырьмя ядрами? что вы бы ответили, учитывая, что нужен конкретный ответ?
69 2997292
>>2997251
Тише шиз
70 2997298
>>2997287
По задачам. Если там числодробилка то 4, если дохуя конкурентного I/O то десятки-сотни грин тредов, если скрипутха какая-нибудь то один поток, если программа состоит из нескольких подсистем то можно сделать по одному потоку на подсистему, ну или на какую-нибудь подсистему несколько потоков выделить а на остальные по одному. В чём не прав?
71 2997313
>>2997287
насколько частей делится процесс программы, столько бы и сделал. Числодробилки в большинстве нет смысла делить, но лучше измерять
72 2997335
>>2997287

>колько потоков стоит использовать для системы с четырьмя ядрами?


потоки создаются под конкретные задачи, а ты должен был рассказать что будет при создании малого колва потоков и большого, поэтому мы тебя и не взяли джун
73 2997336
>>2997287
N потоков
74 2997417
>>2997287
Если это все условия и вопросов больше задавать нельзя, то ответ: один. Если можно задавать вопросы, то конечно же: для какой конкретной задачи?
75 2997484
>>2997287

>>на собесе


Если это простые ядра с гипертредингом - то 2n-1
Если это всякая ебала с разными ядрами типа экономичных - то хз как оно там распределяться будет на практике, наверное 2n-1 + k

виляние жопой - "по задачам" - принимается как незнание
76 2997600
>>2997179
Что значит частично обновлять значения полей? Entity#yoba(newValue) и dto.upsert(entity).
77 2997608
>>2997484

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


А что не так? Если потоки загружены на 100% задачами от контролируемого кода то равное количеству логических процессоров. Если есть взаимодействие с чужим кодом, если часто блокируется на I/O, и т.д. то цифры (и подход) будут различаться. А ты вообще программист, уважаемый?
78 2997643
>>2997287
Дебильный вопрос. Это ты в епам ходил, что ли? На десктопе нужен один поток для гуи и по потоку на каждую тяжелую задачу уровня проверить орфографию или скомпилировать и показать ошибки. Для серверов нужны асинки, а количество потоков в пуле задается параметром в настройках.
79 2997673
>>2997608
Это стандартный вопрос, на который ожидается стандартный ответ. В лучшем случае уточнят что это числодробилка, в худшем - поставят крестик и пойдут к следующему вопросу.

>>А ты вообще программист, уважаемый?


Тебя это ебать не должно.
80 2997829
>>2997484

> 2n-1


Зачем оставлять одно логическое ядро свободным?
81 2998040
>>2997673
Так а хули ты высираешься про какие-то манякрестики, если сам ещё егэ не сдал, дегенерат?
82 2998043
>>2997829
Чтобы поумнее чем 2n формула выглядела. Нашёл кого спросить за базар, это же школота голимая. Он даже не знает что в джаве ничего умножать не надо, потому что рантайм сразу логические процессоры возвращает.
83 2998298
>>2997287
Четыре.
Предполагается равномерная непрерывная нагрузка на потоки.
Больше - толко если задача этого явно требует, т.к. увеличения скорости это не даст.
Смысл такого вопроса - понимает ли человек, как это вообще работает. И что если сделать 100 параллельных потоков, это не будет работать в 100 раз быстрее.
84 2998302
>>2998298
Если с гипертредингом - то 8, я думаю, смысл понятен - столько, сколько в процессоре физических потоков вычислений.
85 2998387
>>2998302
Гипертрндинг не про физические потоки вычислений. У тебя остаётся один армфметически-логическмй блок в ядре, но дублируется всё остальное, что нужно для работы с потоком. В итоге переключение контекста потоков занимает минимальное время, но инструкции продолжаются выполнятся в одном калькуляторе.
86 2998407
>>2998302
И дополню, твой ответ и ответы остальных про 2n неверные, потому что у вас всё также остаётся 4 физических ядра даже с гипертредингом, то есть выигрыша в производительности вы не получите при условии отсутствия IO операций. Если в алгоритме есть IO операции, то тут вопрос уже как часто они вызываются.
87 2998418
>>2997287
https://stackoverflow.com/questions/1718465/optimal-number-of-threads-per-core
36-40
Но от тебя хотят услышать или 4, или 5.
88 2998666
>>2998418
Чувак, на этот вопрос есть только 2 правильных ответа:
1. Четыре
2. Хуй его знает, зависит от задачи
89 2998668
>>2998418
Добавлю, что по твоей ссылке примерно это и написано.
90 2998673
>>2998387
>>2998407
Школьник опять поясняет за вещи, в которых не имеет ни малейшего понимания. Переключение контекста блядь минимальное время занимает, охуеть просто.
image.png134 Кб, 1257x747
91 2998733
>>2996111

>HTTP это транспортный протокол


Ты идиот?
92 2998736
>>2998733
1. Никто не мешает дальше слои инкапсуляции наращивать. Почитай про слои в протоколе mtproto у телеграма. Сколько их там.
2. Эта RFC не про написание поддерживаемых программ. Поэтому буквально ограничиваться ей невозможно. Иначе у тебя клиент будет слишком много знать как устроен сервер приложения.

мимо
93 2998742
>>2998736
https://core.telegram.org/mtproto

Transport component: defines the method for the client and the server to transmit messages over some other existing network protocol (such as HTTP, HTTPS, WS (plain WebSockets), WSS (WebSockets over HTTPS), TCP, UDP).
94 2998751
>>2998673
По делу есть что сказать или только хрюкать умеешь?
95 2998768
>>2998751
Я по делу и сказал, ты высрал хуйню, не в минимальном времени переключения контекста преимущество.
96 2998770
>>2998768
И в чем тогда?
97 2998772
>>2998770
В более полной загрузке одного ядра, которое, внезапно, не монолитно.
1000006775.jpg401 Кб, 1517x1146
98 2998779
>>2998772
Вспоминаем схему CPU. Вот у тебя ALU стоит (в центре, красная штуковина, которая занимается выполнением инструкций), вот файл-регистр, вот кэши, вот блок управления и где-то там главная память.

Каким образом дублирование контекст-релейтед блоков, но не дублирование ALU даёт большую производительность для параллельного алгоритма без IO операций?

Никак, потому что блять калькулятор как был один так и остался
99 2998785
100 2998793
>>2998785
Да пофиг, схематично та же самая байда.
101 2998804
>>2998793
Какая ещё байда?
102 2999623
Вы зачем шиза-вахтера со своими цпушными транзисторами и потоками в мвп тред выпустили? Забирайте его к себе обратно
103 2999645
>>2998733
application-level protocol если у тебя апликейшен это гипертекстовая страница
104 2999809
Кто-нибудь работал с генерацией docx документов? Сталкивались с проблемой что для гиперссылок нет стиля по умолчанию?
105 2999867
>>2998733
В контексте обсуждаемой проблемы - это транспортный протокол.
Надо своей головой думать, а не волшебные слова в интернетах выискивать.
106 2999902
>>2999809
По умолчанию в пустом документе ворда нес стиля для ссылок.
Он появляется, как только в документе появляется ссылка.
Стиль называется Hyperlink.
Если вставить ссылку и тут же ее выпилить - стиль останется
107 2999906
>>2999902
То есть это нормальное поведение? Нельзя как-то автоматически включить этот стиль в документ при генерации?
108 3000364
Вот, кстати, отличный образец того, что называется днище ёбаное.
И это программисты, блядь, вообще охуеть.
https://www.youtube.com/shorts/RG-DLbmsr3A
109 3000366
>>3000364
Лол, не в тот тред запостил.
Но, так даже смешнее.
110 3000374
>>3000364

>Вот, кстати, отличный образец того, что называется днище ёбаное.


>И это программисты, блядь, вообще охуеть.


>shorts


Действительно.
111 3000380
>>3000364

> В http2 запросы бинарные


В hhtp1 были небинарные?
112 3000591
>>2995254
Анон, у меня аналогичный опыт, я решил перейти на современный стек и более сложные задачи(надеюсь осилю). В банке уже несколько лет делаю однотипные бизнес задачи, деградирую. Правда на новой работе зп повыше хоть и не сильно, при уходе предлагали контоффер по которому я получал бы больше. Решил, что сам я учиться не буду (учусь только для собесов), а на новой работе придется. Если б мне платили 650к в месяц ,я б наверное не дёргался, с премиями получаю меньше 400
113 3000877
>>2999906
Прочитал в доках, вроде никак это не обойти. Ну ок, сделал синий текст с подчеркиванием, пойдет.
Еще вопрос: когда я открываю сгенерированный документ, он начинает перестраиваться на ходу. Там большая таблица, которая начинает сжиматься, как я понял из-за того что что ворд расставляет переносы строк в ячейках. С этим можно что-то сделать?
114 3000883
>>2999809
>>2999906
>>3000877
А нахуя тебе всралось генерировать в уёбищном интернал проприетарном формате копрософта?
115 3000930
>>3000883
docx открытый формат, дуралей.
116 3000944
>>3000380

>В hhtp1 были небинарные?


Да they/them
117 3000966
>>3000930
Даже если так, остаётся уёбищный, интернал и копрософта.
118 3000970
Как же меня заебали некомпетентные хуесосы, которые лезут своим свиным рылом туда, где ничего не понимают, и еще имеют наглость иметь "свое" мнение. Животные блядь.
119 3001029
>>3000970
например?
120 3001651
Зачем нужен котлин/scala/groovy если есть джава? Нахуя люди пытаются его заменть/упростить/занять какую то из его ниш?
121 3001733
>>3001651
Котлин - не нужен.
Груви - просто охуенен для скриптования джавы, для тестов, для утилит.
Можно встроить груви веб-консоль прямо в свой сервер, и пилить скрипты, дёргая бины, выполняя запросы к бд и т.п. прямо на живом сервере.
Писать большие программы на нём вместо джавы не нужно.
122 3001736
>>3001651
А, чуть не забыл - скала - это академический язык.
Для повышения квалификации - хорош, для реального программирования - нет.
123 3001930
>>3001651
нескучный синтаксис. Забывают что они нужны чтобы приносить велъю кабану, а не чтобы играться в свои игрушки
124 3001932
>>3001651
Ну, если синтаксис жабы тебе нравится больше чем синтаксис котлина, то кажется ты переболел ковидом. В остальном, та же байда только в профиль.
125 3001936
>>3001932
Там скуф энтерпрайзный судя по постам. Он просто не может осознать выразительность языка после убогой джавы.
126 3001937
>>2994733 (OP)
А на чем я буду получать больше анончики?
1. Подучить вротенд и стать фулстекером?
2. Подучить скалу и стать разрабом на скале?
127 3001939
>>3001937
Забудьте про скалу, она мертва, это пет-проект одного профессора. Получать больше ты будешь на голанге.
128 3001981
>>3001939

>говноланге


Жир.
129 3002028
>>3001981
Где мне 400к за три года опыта получить в джаве? А вот в го это изи, чел просто устроился в вб.
130 3002044
>>3002028
Жир.
131 3002073
>>3001651
Потому то программистишки, когда разговор заходит о стоимости поддержки, техническом долге и легаси, как правило за деревьями леса не видят.

Вместо того чтобы честно уже признать, что единственная обьективная причина существования легаси - это прокладка между сиденьем и монитором, они сваливают вину на язык, технологии - что угодно. Ложные суждения ведут к невменяемым потугам - программистишки бросаются переписывать "все с нуля(тм)", с закономерным итогом. Обнуляют язык, обнуляют коммьюнити и экосистему, и все равно получают среду, где бывшие джависты пишут такое же легаси, как и раньше.
132 3002102
>>3002073
То есть ты хочешь сказать, что поломка обратной совместимости от языка не увеличивает количество и проблематичность легаси?
133 3002107
Работали ли вы на багованном говно копролите, где максимум что есть это спринг бут? Бывало ли у вас чувство, переписать все с нуля и никто в принципе не против, но при этом вам платят мизерную зп?
Как вы побороли это чувство, как задушили в себе желание сделать как надо и просто съебали на нормальный стек?
134 3002116
>>3002107
Какая разница что делать? Если тебе интересно этим заниматься, то идёшь к тим лиду и говоришь, что теперь вместо фич, хочешь заниматься рефакторингос, но тебе для этого нужно, например, 1-2 месяца выделить и не трогать другими тасками.

Если тим лид согласен, будешь делать то что нравится. Если он против, будешь искать работу в новом месте.
135 3002121
>>3002116
Так они только двумя руками за, лид, продукт, потому что постоянно все падает, работы больше чем на 2 месяца.
Но есть один существенный ньюанс - зп маленькая и бюджета на повышение нет.
136 3002140
>>3002121
Значит проект ни при чем. Ты просто хочешь больше денег. Начинай искать работу, смысл себя через силу заставлять что-то делать.
137 3002141
Если Kotlin такой пиздатый, то какого хуя он сдох?
138 3002143
>>3002141
Оба утверждения в твоём вопросе неверны.
139 3002144
>>3002143
схуяли
140 3002146
>>3002144
С того что петухлин кал с убогим синтаксисом, но он живее всех живых, как минимум в андроиде.
141 3002160
>>3002141
В котлин есть null safety ради этого уже можно отказаться от джавы
142 3002161
>>3002160
Угу, такой нулл сейфти, что все нуллы приходящие из джавы падают в рантайме. Ух как безопасно.
143 3002162
>>3002146
У нас все сервера на нем написаны.
144 3002166
>>3002162
Как это противоречит хоть чему-то из мной сказанного?
145 3002168
>>3002160
В джаве скоро будет null safety лучше чем в котлинге.
146 3002181
>>3002168
Если ты про нулл-рестриктед типы, то, насколько я помню, они только для валью типов. То есть условный стринг сделать ! не получится.
147 3002185
>>3002181

>A normal class type can be converted to a null-restricted type, and vice versa, much like the type Integer can be converted to and from the type int. When converting to a null-restricted type, a null check occurs at run time.

148 3002187
>>3002168
Никогда не будет, для этого необходимо перелапачить кучу либ, а самое главное исчезнет обратная совместимость
149 3002188
Хотя да, я наебался.

>A null-restricted type is a reference type expressed with the name of a value class followed by the ! symbol. It asserts that the value of a given variable or expression will not be null.

150 3002192
Ну мб строки сделают value-типами тогда.
151 3002199
>>3002162
Сервера? На котлине?
Это язык для gui.
От оттуда появился. И поэтому он так популярен на андроиде. Зачем писать на нём серверы?
Их надо писать на Go, лол.
152 3002200
>>3002102
Ты так говоришь, как будто подавляющее большинство релизов, которые ты пофейлил в своей жизни по срокам, пофейлились из-за того, что какой то чел тебе обратную совместимость в языке сломал.

То что делают разработчики ЯП с обратной совместимостью языков, на фоне пиздеца, творимого прикладными даунами под ярмом кабанов в конечных продуктах - детская хуйня.
153 3002201
>>2994733 (OP)
Как объяснить уважаемому Кабан Кабанычу, что команде нужна подписка на Intellij IDEA? Кабан Кабаныч говорит санкции и что платежи не проходят, а у всей команды идея краснит код...
154 3002203
>>3002201
Почему у меня бесплатная идея ничего не краснит?

Я б помножил такую команду на ноль нахуй.
155 3002204
>>3002201
Триалками пользуйся, лол.
156 3002205
>>3002188
>>3002185
Возможно тут имеется в виду что любой (normal) класс может быть превращён в велью и нот нулл одновременно.
157 3002207
>>3002203

>Почему у меня бесплатная идея ничего не краснит?


Потому что ты ничего сложнее хеллоу ворлда не разрабатывал
158 3002208
>>3002207
Да что ты говоришь. А может это вы просто идеей пользоваться не умеете нихуя? Равно как и обосновывать перед кабанычем нужду в дополнительных расходах?
159 3002210
Какой еблан будет в здравом уме покупать ультимейт, когда есть безлимитные месячные триалки?
160 3002215
>>3002210
триалки заебно, лучше нагуглить рабочий код или кряк.
161 3002217
>>3002215
Что заёбного в том, чтобы потратить 3 минуты раз в месяц?
162 3002235
>>3002208
Успокойся, курсовой вкатыш. Никому твои хеллоу ворлды не интересны
163 3002245
>>3002187
Её можно делать в компайл тайм, как делает тот же Котлин. Т.е. в твоем коде у тебя будет null safety, а как начинаешь вызывать библиотеки - все гарантий нет.
прям как дженерики
164 3002249
>>3002235
Ну вот те и ответ на твой вопрос. Ты просто чмо с говном во рту и обиженным ебалом - такому ни баба не даст, ни кабаныч идею не оплатит.
165 3002250
>>3002208
Мальчик, бесплатная идея - это только джава, груви и котлин.
Если тебе нужен фронтенд или энтерпрайзные фреймворки - ты соснёшь. Но, как уже заметили выше - ты школьник, и это тебе пока ещё рано.
166 3002251
>>3002250

>энтерпрайзные фреймворки


Например?
167 3002255
>>3002200
Нет, не говорю так, хоть я и немало говна из-за отсутствующей обратной совместимости поел. Ты сказал, что проблема только в конечных программистах, я объяснил тебе, что это не так.
168 3002258
А value типы это структуры типа?
169 3002263
>>3002251
Например - зайди на сайт jb, и посмотри отличия ultimate от community.
Там довольно много всего. Включая возможность через плагины иметь в одной идее весь зоопарк - пичарм, голенд, вебшторм и т.д. И деньги они берут не просто так.
170 3002264
>>3002263
Жаль, что оплату прикрыли. Теперь хз как продлевать..
171 3002276
>>3002210
Триалки к аккаунту привязываются
172 3002292
>>3002276
И что? Зарегать аккаунт дело двух минут.
173 3002297
>>3002263
То есть ты даже сам не можешь ни одного примера привести, зачем конкретно тебе ultimate? Жалкий слив.
174 3002300
>>3002292
Создать почту, активировать, перелогиниться. Это не 5 минут, ежемесячная мозгоебля
175 3002303
>>3002300
Ну у меня минут 5 уходит.

>ежемесячная


Ну не ежеминутная же.
176 3002310
>>3002303
И ты каждый 29 день, выходишь из аккаунта и логинишься на новый? Да и почты вроде по номеру создаются
177 3002313
>>3002310
А ты каждый 29 день видишь списание в 100 долларов за говно? Почты можно на разных сайтах создавать, если ты не знал, на некоторых (мыло.сру) не нужен телефон.
178 3002332
>>3002310

>Да и почты вроде по номеру создаются


Я не знаю ни одной почты где нельзя было бы использовать один и тот же номер для всех почтовых ящиков. Можно прям так и писать имена почт и аккаунтов jetbrains.free.ebka.january2024@
tempupload.jpg200 Кб, 776x1119
179 3002342
>>3002313
Не,я через реестр ультимейт 2021 обнуляю в два клика
180 3002343
>>3002332
Тебе не стыдно воровать? Поделом тебе карты отключили, вор!
181 3002347
>>3002343
Я не ворую, просто использую пробную версию. Да и вообще они ушли из рф и напрямую вроде купить нельзя, а значит воровством это быть не может.
182 3002353
>>3002342

> 2021


Ну и нахуй ты долбоёб?
183 3002361
>>3002199
Go раскритиковал наш техлид, так что на нём мы не пишем.

> зачем писать на нем сервера


Потому что это та же самая жаба.
184 3002366
>>3002342

>ультимейт 2021


А петпроектов на Delphi 7 у тебя нет случайно?
185 3002374
>>3002361
Только в десятки раз медленнее го и более ресурсоемкая
186 3002383
>>3002361
Как раскритиковал?
187 3002388
>>3002374

> Только в десятки раз медленнее го


Смеялись всей маршруткой. Не покажешь, где здесь говно? https://www.techempower.com/benchmarks/
188 3002394
>>3002383
Я не помню уже, это год назад было. Он переписал один из серверов на него и после этого сказал, что конечно интересно, здорово, но пожалуй мы остаёмся на жабе/котлине.
189 3002407
>>3002394
Эм, сейчас бы джависту давать переписывать сервисы на гоулэнге, чел... Идиоматичный код на год можно научиться писать минимум лет за 5-7. Вчерашний джавист, который всю жизнь круды лепил на спрэнг фримверке и настраивал муппинги в хубирнейте, чтобы запрос правильно собрался, в принципе не может называться инженером.
190 3002429
>>3002407
Тех. лид на С++ у нас пишет в основном. Жаба это так, процентов 20 от его работы.
image.png6 Кб, 1133x24
191 3002445
>>3002388
Не покажешь где здесь настоящий индустриальный фреймворк для джавы, ну который в реальном мире юзают? А все сам нашел.
192 3002449
>>2994733 (OP)
А посоветуйте хороших книг и ресурсов, чтобы привести знания к структурированному виду и посмотреть на так сказать лучшие практики, плез. Как не приду на проэкт, то вижу одну и ту же картину - деление на контроллер, сервис, репозиторий. Тонкий контроллер, раздутый донельзя сервисный слой где насрано по 2.5-3к строк и репозиторий в виде интерфейсов через спрэнг дэйту. По итогу это нихуя не покрыто тестами, а связи между сервисными слоями образуют огромный комок грязи..
Или это нормальный подход в джэве?
193 3002452
>>3001736

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


https://yandex.ru/project/autoru/vac-scala

Эм...
194 3002464
>>3002407
Я так себе и представляю. Приходит тех лид к менеджменту и говорит: "Мы решили дальше писать на го. Но так как на го надо учиться писать 5-7 лет, мы на это время приостанавливаем выпуск фич, а будем писать экспериментальные штуки на выброс. Приходите через 5-7 лет."
195 3002472
>>3002464
Все проще. Нанимаются уже готовые спецы, а скуфидоны-джависты идут на мороз. Полно молодых ребят, которые заменяют целые отделы таких скуфов. Современная разработка это тебе не круды на спринге лепить, старичок, кхе-кхе
196 3002484
>>3002445
А причём тут спринг?
197 3002493
>>3002484
Меня не интересуют хобби-подделки вроде vertx. Речь шла об индустриальном стандарте для бэкенда в 2024 - голанге, я и пошел его по твоей ссылке сравнивать с используемыми в реальности фреймворками в мире JVM.
198 3002523
>>3002449

>Или это нормальный подход в джэве?


Ну да, это монолит энтерпрайз эдишен
199 3002529
>>3002472
Так джавистов же заменили молодые спецы котлинисты еще несколько лет назад, переписав все на котлин-убийцу джавы
200 3002532
>>3002449
есть ещё вариант ActiveRecord - где вся логика по сущности складывается в эту сущность, в том числе доступ к бд.
А разделение на слои это база. В твоём случае в тестах надо поднимать базу и дёргать методы сервисов или контроллеров по максимуму
201 3002533
>>3002493
А причём тут твои интересы?
202 3002534
>>3002472
у меня в микрогалере джавистов переучивали на скалу. Где там щас эта скала и где эта галера?
203 3002535
>>3002452
Это ты как-то неудачно набросил.
Ну что такое хуяндекс, в самом деле? Это троечники.

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

Что касается скалы - то на ней, вообще-то, Акка написана. Это и надо было привести в пример. Если ты, конечно, знаешь, что это такое.
И это совершенно не отменяет того, что это академический язык И что те, кто лет 10 назад ввязался в разработку реальных систем на нём, эпично соснули в итоге. Вот как хуяндекс.
204 3002547
>>3002449
Я бы начал с Code Complete, потом бы навернул Practical API, а дальше пока сам не знаю.
205 3002551
>>3002452
лол, алгоритмических секций уже одна, как же ебут яндексоидов, скоро как все конторы будут осуществлять найм за 1 собес в 1-1,5 часа с одной задачкой уровня изи
206 3002555
>>3002452

>Затем решим задачку на кодинг. Для подготовки подойдёт LeetCode.


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


Отказываюсь. Код писать буду только в идее, в ней же и работаю. Сложность только по циклу в биг О, никаких тета и подсчет по действиям +-= и */, а также никакой теории про сложность алгоритмов, p np проблему и прочую фигню ненужную в работе на джаве, МЯУ?
207 3002559
>>3002555
Эти дурачки продолжают нанимать олимпиадников.
Совершенно не понимая, что это немножко другое программирование. И что олимпиадник в принципе не понимает, как делать реальную энтерпрайзную систему.
208 3002624
>>3002555
Ты котик?
209 3002642

>рабочий код без ide


окей я начну: 0xCAFEBABE...
210 3002647
Однажды котлин сдохнет как скала
211 3002663
>>3002647
Уже.
212 3002778
>>3002647
А я думаю освоить его для строчки в резюме
213 3002793
>>3002778
Чё там осваивать-то?
214 3002828
>>3002793
Уебищный синтаксис и корутины
215 3002864
>>3002828
Зачем нужны корутины если есть треды?
котлин разработчик под Андроид
216 3002872
>>3002864
Переключение контекста дорогое.
217 3002941
Вы меня обосрете, но где могут быть подводные?

Собираюсь уволиться со своей экономической хуйни, за 3 месяца подготовиться к собесам по жабе кор когда-то учил и устроиться на 200к. Там делать все с гпт, пока не догоню обучение
218 3002950
https://openjdk.org/jeps/8300911
ахуй
почему этого еще нет в java
219 3003057
>>3002941
Зачем увольняться? Если так уверены в себе, то ищи работу не увольняясь
220 3003074
>>3003057
Тяжело совмещать обучение с работой, часто приходится задерживаться. В день час максимум получается, потом я становлюсь выжатым как лимон
221 3003098
>>3002950
Жаба не умеет в pem. Чем дальше, тем чудесатее.
image.png7 Кб, 213x177
222 3003110
Аноны, очень нужна ваша помощь. Написал я в NetBeans вот такие три файла (структура на пике):
MainClass: https://pastebin.com/wnuzg1Nn
MainFrame: https://pastebin.com/HHgfk8jb
GUIFrame: https://pastebin.com/mYJYVz8d (начало на 65 строке)

При запуске отдельно GUIFrame всё работает корректно, но если я запускаю весь проект, или создаю JAR файл - запускается просто серый прямоугольник 640:480. Как я понимаю, это из-за отсутствия указания что надо подтянуть данные из GUIFrame. Лучший результат что у меня вышел - GUIFrame и MainFrame запускаются при запуске проекта, но в разных окнах. Как заставить это говно работать?

Алсо дайте пожалуйста сурс по НетБину, чисто чтобы узнать самую базу, ибо в общем-то он мне нахуй не нужен, но придётся сдавать экзамен по этой залупе в скором времени. Английский понимаю, но в идеале на русском.
223 3003162
собираюсь перекатиться в ламповую джаву из пхп, какие подводные?
224 3003171
>>3003074
Тогда увольняйся с финансовой подушкой. У тебя должны быть деньги, чтобы прожить всё время обучения и время поиска работы. Учитывая твои требования (0 лет стажа и 200 к зарплата), то времени ты можешь потратить очень много.
>>3003110
Офигеть, кто-то ещё требует знать NetBeans? Да я про него только в книжках читал мол был такой фреймворк, да сгнил уже.
225 3003203
>>3003110
Чувак, NetBeans тут вообще не при делах.
Хотя, было бы лучше тебе использовать IDEA community.
Хотя, родной GUI дизайнер в нетбинсе, наверное, получше.
Но, ещё лучше использовать JFormDesigner, в виде плагина или как отдельное приложение. Он, правда, платный, но его можно крякнуть самому. Или найти кряк в интернетах.

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

В запускающем классе тебе надо создавать экземпляр GUIFrame.
А твой MainFrame тебе просто не нужен вообще, удали его.

Другой подход - форму в дизайнере надо делать не на JFrame, а на JPanel.
А затем вставлять её в contentPane твоего MainFrame.
Так будет более правильно.
Но, в любом случае, два JFrame тебе не нужно.
226 3003231
>>3003162
Не знаю
227 3003388
>>3003162
1. Будет неламповое спрингоговно если не будешь знать куда именно тебе надо перекатываться.
2. Выкатишься и не сможешь вкатиться из-за текущего состояния рынка, став безработным.
228 3003403
>>3002872
А вызов шедулера корутин дёшевый? А убитый стейт машиной флоу поднимает перформанс?
229 3003429
>>3003403
Я думаю правильная реализация корутин может избавиться от этих проблем.
230 3003453
>>3003388
А что такое с текущим состоянием рынка?
Просто лютая нехватка специалистов везде.
Если только ты не хочешь пинать хуи за 300KK/ns, конечно.
231 3003455
>>3003453

> Просто лютая нехватка специалистов везде.


Греф, иди-ка ты нахуй, заебал уже.
232 3003472
>>3003455
Я не греф. И я даже ещё не начинал, дружок.
По поводу рынка - вот я сейчас нанимаю, например.
Но, никто не нанимается, почему-то.

Подробностей не будет, ибо деанон.
И у нас есть условия - кандидат должен быть местным, а у нас немножко ебеня.
233 3003481
>>3003472

> Подробностей не будет


Ну вот и иди нахуй, долбоёб. Портфель собрать не забудь, а то видимая рука мамаши порешает.
234 3003483
>>3003472

>галера немножко в тамбове


>зарплата немножко 30к


>лютая нехватка специалистов

235 3003490
>>3003483
Не в тамбове, лол. И не галера. И не 30к, хотя и не 300.
Но, суть в том, что везде людей не хватает.
Потому, что всех хотят очень много денег, а работать не хотят совсем. Соискатели - просто охуевшее быдло, которое ведёт себя так, как будто делает тебе одолжение. При этом видно, что человкек не умеет почти ничего. А денег хочет как в яндексе. Волки позорные, лол.
236 3003500
>>3003429
Правильная это на уровне JVM, а чисто на уровне компилятора сделать лучше чем в Котлине не получится.
237 3003502
>>3003500
Потому что тыскозал?
238 3003505
>>3003490
Дай угадаю: вы требуете тестовое задание, на собесе ебете мозги литкодом и душните про сборку мусора и конкаренси, будто ваша сраная фирмочка пишет свою джава машину, а не перекладывает джейсоны.
239 3003510
>>3002864
Эта хуйня чисто для серверов, для десктопа не нужна. Суть в том, что в типичной микропенисной архитектуре код 95% тупо висит на сокете и ждет ответа от другого сервера. В то же время поток нехило так отжирает память. Если создавать по потоку на каждый реквест, можно легко заддосить сервер, у него тупо закончится память и пиздос. Поэтому придумали асинки, там таски не занимают по потоку каждая, а лежат кучкой и ждут, пока их обработают.
240 3003521
>>3003502
Иыскозатель, по делу есть что?
241 3003523
>>3003510
>>3002872
Спасибо, стало понятней
242 3003524
>>3003521
По делу было тут: >>3003429.
243 3003700
>>3003203

>ты вообще не понимаешь, что делаешь


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

Вообще я уже и сам разобрался, сделал MainClass как на пике. А изначально у меня MainFrame и GUIFrame раздельно, ибо делал по видосу индуса, ибо это было первое что я нашел на понятном мне произношении ангельского и с использованием JFrame Form, что является обязательным условием для сдачи экзамена.

Пик2 - то что мне нужно сделать. Просто пару пара полей ввода для имени и фамилии, выпадающий список выбора должности, а слева поле ввода количества знаков при генерации пароля, и чекбоксы касательно того, какие символы использовать. Нажимаешь генерировать пароль - высвечивается отдельное окно с паролем, нажимаешь "Подтвердить" - получаешь окно со всеми введёнными данными. Из этого мне непонятно следующее:
1. Как сделать белую обводку с закруглёнными углами для двух блоков?
2. Как сделать генератор пароля? Могу только на питухоне через библиотеку рандома. Важно учесть, что это должно быть реализовано на Java with Ant, ибо интернета на экзамене не будет.
3. Как сделать всплывающее окно при нажатии кнопки?
244 3003704
>>3003171

>сгнил


Да, вот на таких штуках готовят будущих 300ккк наносеков в загнивающей гейропе, из которой тащемта и капчую
245 3003706
Пишите репорты в /d/ на шарподаунов. Пока же поссу на них уже проверенными средствами:

1. Семантика.
1.1. Неймспейсы. Полный пиздец. Рассинхрон с пакетами, лишние отступы, проблемы с уникальностью названий - полный пиздец.
1.2. Перенос { на новую строку. Это уродливо. Читать код с кучей не пустых, а заполненных одним ебучим символом строк - неудобно.
1.3. Наследование интерфейса через :. Бесполезное сокращение.
1.4. IZalupa как название интерфейса по дефолту. Убивает семантику полиморфизма. Когда ты обращаешься в джаве к интерфейсу, ты чувствуешь, что обращаешься к живому объекту, а не к гондону между объектом и тобой.
1.5. Названия методов с большой буквы. В джаве после прочтения первого символа сразу понятно, что это не операция делегирования, а уже непосредственно вызов.

2. Функционал.
2.1. Наличие бойлерплейта (в джаве есть ломбок, который наглухо разъёбывает уродские попытки в избавление от бойлерплейта в петушарпе с помощью get; set;.).
2.2. Отсутствие record'ов (позорные структуры ни в какое сравнение с рекордами не идут).
2.3. Отсутствие виртуальных тредов.
2.4. Прибитость гвоздями к винде.
2.5. Отсталые енумы.
2.6. Отстутствие модулей.
2.7. Отсутствие системы сборки. Нугет/мсбилд - это посмешище, которое даже с антом сравнивать без смеха нельзя.

3. Экосистема. У петушарпа позорная экосистема.

4. Свобода и распределённость. На петушарпе половину всего кода пишут майки, водя за ручку петушарповых детишек и говоря им, что и как делать. Следствием из этого является пункт 3 и ограниченность петушарпа ровно на том, что нахуевертили майки. Пока на джаве ты волен, как барин, воротить нос и выбирать лучшую библиотеку под твои задачи, на петушарпе ты жрёшь то, что тебе с лопаты майки скормили. Пока на джаве ты выбираешь между жуком и queryDSL, на петушарпе ты жрёшь огромную кучу говна, слепленную из несовместимых вещей, что в здоровом Java мире даже никак не пересекаются, под названием LINQ.

5. Поддержка кода. Пока код с Java 1 работает на Java 19 и будет работать вплоть до Java 119, на петушарпе каждую версию ломается обратная совместимость, нельзя просто взять и заюзать библиотеку, в которую не было завезено апдейтов за последние несколько лет.
245 3003706
Пишите репорты в /d/ на шарподаунов. Пока же поссу на них уже проверенными средствами:

1. Семантика.
1.1. Неймспейсы. Полный пиздец. Рассинхрон с пакетами, лишние отступы, проблемы с уникальностью названий - полный пиздец.
1.2. Перенос { на новую строку. Это уродливо. Читать код с кучей не пустых, а заполненных одним ебучим символом строк - неудобно.
1.3. Наследование интерфейса через :. Бесполезное сокращение.
1.4. IZalupa как название интерфейса по дефолту. Убивает семантику полиморфизма. Когда ты обращаешься в джаве к интерфейсу, ты чувствуешь, что обращаешься к живому объекту, а не к гондону между объектом и тобой.
1.5. Названия методов с большой буквы. В джаве после прочтения первого символа сразу понятно, что это не операция делегирования, а уже непосредственно вызов.

2. Функционал.
2.1. Наличие бойлерплейта (в джаве есть ломбок, который наглухо разъёбывает уродские попытки в избавление от бойлерплейта в петушарпе с помощью get; set;.).
2.2. Отсутствие record'ов (позорные структуры ни в какое сравнение с рекордами не идут).
2.3. Отсутствие виртуальных тредов.
2.4. Прибитость гвоздями к винде.
2.5. Отсталые енумы.
2.6. Отстутствие модулей.
2.7. Отсутствие системы сборки. Нугет/мсбилд - это посмешище, которое даже с антом сравнивать без смеха нельзя.

3. Экосистема. У петушарпа позорная экосистема.

4. Свобода и распределённость. На петушарпе половину всего кода пишут майки, водя за ручку петушарповых детишек и говоря им, что и как делать. Следствием из этого является пункт 3 и ограниченность петушарпа ровно на том, что нахуевертили майки. Пока на джаве ты волен, как барин, воротить нос и выбирать лучшую библиотеку под твои задачи, на петушарпе ты жрёшь то, что тебе с лопаты майки скормили. Пока на джаве ты выбираешь между жуком и queryDSL, на петушарпе ты жрёшь огромную кучу говна, слепленную из несовместимых вещей, что в здоровом Java мире даже никак не пересекаются, под названием LINQ.

5. Поддержка кода. Пока код с Java 1 работает на Java 19 и будет работать вплоть до Java 119, на петушарпе каждую версию ломается обратная совместимость, нельзя просто взять и заюзать библиотеку, в которую не было завезено апдейтов за последние несколько лет.
246 3003726
>>3003700
1. Это реально сложно. Надо делать свой субкласс Border, со своим пайнтингом. Ты не сможешь, судя по тому, что ты тут пишешь. Хотя, можешь попробовать загуглить.
2. Это достаточно просто. Если не сможешь - иди крутить хвосты bydlu. Потому, что такие программисты не нужны.
3. Это зависит от того, какое окно. В общем случае - гугли JDialog.

>>3003505
Не угадал.
Постоянно попадаются вот такие вот деятели, как этот: >>3003700
Которым просто надо 300KK/ns, а "это говно" они хотят "забыть, как страшный сон". Причём, у многих ещё и хватает наглости бычить и качать права, и приходится жёстко озалупливать в прямом эфире.
247 3003734
Где все пупуни и почему в треде ругаются?
248 3003736
>>3003734
Потому что тупорылый мочух не банит одебилевшее шарпоговно, которым дали выходной час между написанием гетсетов.
249 3003747
>>3003726

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


Уже есть готовый https://docs.oracle.com/javase/8/docs/api/javax/swing/BorderFactory.html#createLineBorder-java.awt.Color-int-boolean-
250 3003758
>>3003747
Блять, век живи - век учись.
251 3003848
>>3003704
Я тоже в загнивающей Европе, но на работе такое не использую
252 3003957
>>3003848
А я в нищем техникуме числюсь. Впрочем это последний учебный год, дальше госэкзамен и на работку
253 3004025
>>3003505

>душните про сборку мусора и конкаренси


В смысле душите? Я мимокрокодил и ты знаешь мне знание как работает gc и какой для проекта выбрать, как его затюнить очень даже пригождается. Про многопоточку я вообще молчу, я не веру в существование реального проекта без нее.
Вывод: ты жулик.
254 3004042
У меня появилась такая мысль, что спринг необязательно хейтить. Вот что конкретно из говна он сделал, кроме уёбищного перформанса? Или этого достаточно? Вопрос направлен, кстати, в том числе сидящим тут шарподебилам, интересно и ваше жужжание послушать.
255 3004056
>>3003957
Странно, что ваш техникум не выбил бесплатную учебную лицензию у jetbrains. А community, видимо, из каких-то соображений использовать не хотят.

А то, что у вас NetBeans - это благо.
Было бы в разы хуже, если бы была Eclipse. Вот это говно так говно. И оно вовсе не считается устаревшим, а регулярно дорабатывается и обновляется. Но, при этом, идеологически - это древний как говно мамонта IBM VisualAge for Java (на базе него сделано). Вот такой вот пердимонокль.
256 3004070
>>3004056
А чем именно эклипс говно?
257 3004075
>>3004070
Ну, если такое надо объяснять - то не надо объяснять.
258 3004080
>>3004075
Ну чё ты блядь как этот а, интересно же. Я никогда эклипсом не пользовался.
259 3004116
>>3004080
Ну, если коротко - в идее код на кончиках пальцев. А в эклипсе - код отдельно, а пальцы - отдельно.

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

Идея тоже появилась 20 лет назад.
И тогда она была как глоток свежего воздуха после IBM VisualAge и Borland JBuilder. И до сих пор остаётся.
260 3004137
>>3004025
предположу что у тебя иллюзия что твой "тюнинг gc" помогает
261 3004176
>>3003700
Kurwa ja pierdole! Polacy piszą na SWING!
262 3004180

>>3004074


Что ты имеешь ввиду под "двусмысленное"?
263 3004191
>>3004042
Ну там тип аннотации,рефлексия хех мда хуе мое
264 3004192
>>3004180

>>3004074

265 3004199
>>3004042

>что конкретно из говна он сделал


сделал слишком многое, из-за чего джава-господину нужно писать меньше кода, в отличие от Си-Жжжжжж
266 3004204
>>3004025
А я предположу, что в многопотоке ты нихуя не знаешь. Хоть в спеку-то заглядывал?
267 3004215
>>3004042
Спринг всем хорош. Один из немногих проектов, который можно открывать и показывать как надо писать на жабе
268 3004241
>>3004215
Толсто.
269 3004348

>>3003434


В гошечке гетсетов нет, дуралей
270 3004357
>>3004241
Ты читал исходники? Я читал, они охуенные.
271 3004374
>>3004116

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


Это максимум причина. Ты мне конечную разницу покажи. В чём эти кончики пальцев выражаются.
272 3004390
>>3003505
Так так все делают, чего ты? Приходишь потом в контору, а там геттер без чиф продукт архитекта не могут переименовать.
273 3004393
>>3004042
Можешь хейтить, можешь не хейтить, все равно у джависта на работе его спросят с вероятностью 95%
274 3004408
>>3004374

>Ты мне конечную разницу покажи.


Нихуя ты дерзкий, щенок.
Мне вообще похуй, в чём ты там будешь писать свой говнокод.
Нравится эклипса - пиши в ней, лол.
275 3004419
>>3004408
Слив принят.
276 3004424
>>3004419
Ну, глотай тогда.
277 3004425
>>3004424
Не ворочайся, слитое.
278 3004439
>>3004425
Пиздец, ты деревня.
279 3004473
>>3004419
>>3004424
>>3004425
>>3004439
Вы прослушали сверхинтеллектуальный диспут синьоров джавагоспод.
280 3004475
>>3004390
Потому что геттер в публичном API всё логично.
281 3004587
>>2994977

>Деньги или крутой опыт?


>Пишем Ваши мнения


В первую очередь всё зависит от того на что ты свои сотыги тратишь.
Если ты хорошо какашечку откладываешь или ипотеку почти закрыл, то добивай то красивой суммы/закрывай ипотеку и тогда спокойно перекатывайся на нужный тебе стек и на меньшие деньги.
Если же ты дебил, который спускает такие денжища в нулину в день зарплаты, то перекатывайся прямо сейчас, так как всё равно на говно тратишь.
Сам обдумываю вариант вкатиться в банк на гавно за дорого, лет 10 отработать складывая всё под матрас (как вариант прыгать из банка в банк для поднятия зэпки) и потом в вечный гэп дауншифтить.
282 3004709
Как сбрасывать триал 2023 идеи?
283 3004716
>>3004587
Где ты собрался в банке так работать, лол? Может где-нибудь в провинциальном бандитском банке где будешь пахать за копейки. Современный финтех двигают упругие зумеры и там поганому скуфиндяю не место. Он лишь будет затягивать сроки и выбивать время чтобы "тщательно ознакомиться с техническим заданием", пока зумеры будут выкатывать сервис за сервисом, принося кабану вэлью
284 3004725
>>3002217
мне удобнее 1 минута раз в год, чем 30 минут раз в месяц
285 3004741
>>3002343
так они сами карты отключили, поэтому и вынудили бесплатно ей пользоваться, до этого я платил как честный гой
286 3004761
>>3004716

>Современный финтех двигают упругие зумеры


И получается ППРБ и ЕФС
287 3004767
>>3004439
Ну и нахуй ты продолжаешь ворочаться, слитое?
288 3004784
>>3004716

>Современный финтех двигают упругие зумеры и там поганому скуфиндяю не место.


Сижу в банке с 40летними скуфами и скуфихами. Зумера видел один раз в соседней команде, но он съебал через два месяца потому что СЛОЖНА
мимо скуф 30 лвл
code.JPG305 Кб, 1643x1128
289 3004789
>>3004709
держи код до 15 мая
290 3004813
>>3004789
А ты приколист.
291 3004820
Ящитаю неправильно привязывать точку входа именно к входу через консоль. Надо делать что-то типа extends CommandLineEntryPoint для мейн класса и абстрактный метод run(args).
292 3004830
https://blog.ydb.tech/how-we-switched-to-java-21-virtual-threads-and-got-deadlock-in-tpc-c-for-postgresql-cca2fe08d70b
А вот и первые проблемы с виртуальными тредами. Интересно почему нет поддержки synchronized блоков? Кто нибудь слышал объяснения этому?
293 3004860
>>3004725

>нагуглить рабочий код


>1 минута



>кряк


>пользоваться легаси 2021


Нахуя ты долбоёб?
294 3004910
>>3004830
Потому что сое тяжеловато было реализовывать правильно.
295 3004915
Вот смотрите этот ролик https://www.youtube.com/watch?v=WGwECgPmQ-8 . Обратите внимание на цветовую схему. А потом посмотрите на цветовую схему в своей идее. Они отличаются. Как сделать такую же как на видео? Дарк слишком блеклый, даркула это просто старая схема натянутая на новое уи, всё остальное это вообще другое. Так где?
296 3004933
>>3004830
Виртуальный тред? Что это за зверь?
297 3004964
>>3004784
Я таких скуфов регулярно вижу в ленте линкедина где они плачутся что "внезапно" закончили работать на позиции сеньки, лида или хэд оф департмент, лул. Открываешь профиль, а там - ба! лысенькое говно в пинджаке и обвисшим ебалом)) Прямо сладко на душе)))
298 3004969
>>3004964
Скуфы мразотнее даже пидарасов, которые судят других людей по фото.
idea.JPG15 Кб, 701x176
299 3005079
>>3004860

>>кряк


>>легаси 2021


ты че ебанутый?
как раз код нагуглить быстрее, чем эти твои ебучие триалы регистрировать
300 3005082
>>3005079
Где гуглить код?
301 3005090
>>3005082
Выкладывают на гитхубе, находятся такие через гугл.
302 3005092
>>3004910
Так хули ты не помог, раз такой сеньор пиздабол девелопер?

>>3004933

>Виртуальный тред? Что это за зверь?


Это что-то на Go.
303 3005109
>>3005090
А потом тебе банят учетку, лол
304 3005138
>>3005092
Нет, на го Грин треды
305 3005154
>>3005138
А чем тебе виртуальный тред не грин?
307 3005223
>>3005201

>зелёные потоки — это потоки выполнения, управление которыми вместо операционной системы производит виртуальная машина. Green threads эмулируют многопоточную среду, не полагаясь на возможности ОС по реализации легковесных потоков. Управление ими происходит в пользовательском пространстве, а не пространстве ядра.


Так что и горутины, и виртуальные треды, и процессы эрланга это всё зелёные потоки.
308 3005228
>>3005138
Имелись в виду горутины, я думаю.
Горутина = витруальный тред.
Они шедулятся на грин треды.
И т.д. и т.п.
309 3005233
>>3005223
Да зачем они нужны то! Чем не нравилось когда операционная система их реализовывала?
310 3005246
>>3005233
Если ты сделаешь миллион зелёных тредов, оно будет долго выполняться.
Если ты сделаешь миллион обычных тредов, у тебя всё упадёт.
311 3005250
>>3005154
>>3005223
Нет. Горутины это _не_ грин треды. Это то, что работает поверх грин
тредов:
Go’s mechanism for hosting goroutines is an implementation of what’s called an M:N scheduler, which means it maps M green threads to N OS threads. Goroutines are then scheduled onto the green threads. When we have more goroutines than green threads available, the scheduler handles the distribution of the goroutines across the available threads and ensures that when these goroutines become blocked, other goroutines can be run. We’ll discuss how all of this works in Chapter 6, but here we’ll cover how Go models concurrency.
Цитата из известной книги Concurrency in Go.
312 3005284
>>3005246
Зачем кому-то может понадобиться миллион любых тредов?
313 3005308
>>3005284
Чтобы обрабатывать миллион входящих запросов
314 3005340
>>3005284
Ну пришла тебе коллекция с n элементами, каждый из которых является входными данными для одной и той же подзадачи. Ты просто запускаешь n подзадач, каждую на своём зеленом треде, и ждёшь пока они все закончатся.
С обычным тредами тебе придётся писать дополнительный код, который берёт треды из тред пула и ждёт, если нет свободных. С зелёными тредам это всё за тебя делает рантайм, причём лучше, чем если бы ты это написал.
315 3005346
>>3005340
А если мне нужно выполнить работу только на двух ядрах, потому что они мощные, а остальные слабые (Big little architecture)? Рантайм будет таким умным, что догадается об этом или как?
316 3005374
>>3005346

>В моём очень специфическом случае этот инструмент бесполезен, поэтому он не нужен вообще


Так? Подавляющее количество кода исполняется на x86 и arm с равноправными ядрами.
Но я даже про твой случай могу сказать, что подзадачи не поровну делятся на ядра, а по мере освобождения. В этом случае мощные ядра просто сделают гораздо больше подзадач. Специфика планирования, конечно же, от рантайма зависит.
317 3005384
>>3005090
Так ты может покажешь, как за минуту нагуглить код, петушня?
318 3005403
>>3005384
У нищих слуг нет, дружок.
Учи китайский.
319 3005428
>>3005374
Хм, а это единственное преимущество использования зелёных потоков? Я имею ввиду то что мне не нужно будет писать код по дозагрузке данных в поток когда он отработал предыдущие? Звучит как большая работа разработчиков этих потоков ради маленького эффекта.
320 3005480
>>3005428
Ещё есть плюс в том, что неактивный зелёный тред (в котором вызван sleep) снимается с активного треда, а вместо него загружается работающий, а реальный тред в слипе просто висит и ничего не делает. Это может значительно увеличить пропускную способность, когда много IO операций.

Ну и это хорошо работает в шарпе, где уровень абстракции ещё выше и ты просто можешь у коллекции написать .AsParallel() или сделать .Select(x => Task.Run(...)), что экономит кучу кода, в то время как джаве тебе всё равно надо ебаться с бойлерплейтом создания тредов.
321 3005527
>>3005480

>экономит кучу кода


И делает то, не знаю что.

Вам, детишки, надо просто печатать научиться всеми пальцами, а не только хуем. И проблема экономии кода отпадёт сама собой.
322 3005541
>>3005403
Слив принят.
323 3005543
>>3005527

>>экономит кучу кода


>И делает то, не знаю что.


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

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


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

Если ты хочешь продолжать дискуссию, пиши в холивар-тред, а то опять всё потрут.
324 3005589
>>3005541
Деревня, ты заебал уже.
Принял - глотай молча, лол.
325 3005653
>>3005480
Хочешь сказать я могу совершать блокирующие IO операции на одном реальном треде не блокируя реальный тред и на нем же вычисления на CPU для другой задачи если используется зелёные потоки? Я правильно понял?
326 3005657
>>3005653
на нем же запуская вычисления на CPU из другого зелёного треда
фикс
327 3005719
Привет. Это что за хуйня в логах?

SLF4J: No SLF4J providers were found.
328 3005741
>>3005719
Мы вам перезвоним.
image.png2 Кб, 244x31
329 3005786
>>3004830
Дальше не читал.
330 3005790
>>3005250

>Нет. Горутины это _не_ грин треды. Это то, что работает поверх грин


>тредов:


Тред это наименьшая единица исполнения команд и в го это горутина. Поскольку горутины управляются рантаймом го, а не ос то это самый обычный грин тред. А то что там в низу, рантайм создаёт свои Грин треды на которые мапит горутины, это особенность конкретной реализации.
331 3005792
>>3005346

>А если мне нужно выполнить работу только на двух ядрах, потому что они мощные, а остальные слабые (Big little architecture)? Рантайм будет таким умным, что догадается об этом или как?


В обычной джаве у тебя будет пара нативных потоков которые молотят как не в себя и планировщик ос должен понять, что надо бы этих ребят перевести на big ядра.
332 3005803
>>3005792
Йеп, это на обычных потоках, а как на зелёных непонятно (мне по-крайней мере)
333 3005804
>>3005792
А понял, что ты имел ввиду. Я имел ввиду что если использовать для алгоритма больше тредов чем больших ядер, то тогда сработает закон Амдала и мы получим падение производительности из-за вовлечения медленных ядер в работу
334 3005805
>>3005804
p.s. конечно если мы говорим про алгоритм без IO операций
335 3005809
>>3005653
У тебя странное написано.
Видите, господа, какая путаница возникает, когда у вас треды поверх тредов?

Если ты запускаешь код в зелёных потоках, то когда у тебя планировщик увидит, что первый тред уснул, он сохранит его состояние до того, как он проснётся, а тем временем загрузит второй тред, который не спит.
336 3005837
>>3005809
Супер, спасибо, я понял теперь. Но чем это поведение отличается от использование обычных тредов? Я тоже могу создать 10 потоков и когда один уснет, то другой начнет выполнятся на физическом CPU, которое ранее было занято тредом, который уснул.

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

Окей, если зелёные треды это как корутины, тогда я понимаю в чем смысл их использовать.
337 3005843
>>3005480

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


.parallelStream() ?
338 3005946
>>3005790
Ты на ходу сочиняешь правила и терминологию.
Я тебе процитировал авторитетный источник, но, тебя даже это не останавливает.

>в низу


Русского языка лучше выучи.
339 3005964
>>3005843
Это давно у вас появилось? Впрочем, good for you.
340 3005967
>>3005109
да и ладно, найду новую
341 3005971
>>3005589
Не ворочайся, слитое.
342 3005973
>>3005964
10 лет назад, с релизом Джабба 8

>у вас


А ты из шарпистов чтоли будешь?
343 3005996
>>3005973
Был бы я джавистом, я бы должен был это знать, так ведь?
344 3005998
>>3005480
>>3005843
>>3005964
Опять шарподауна обоссали на его же высерах. Это уже не классика, это уже теорема.
345 3006006
>>3005843
Низкопроизводительный кал, на реальных проектах вы это не увидите
346 3006011
>>3005971
Степан, ты очень предсказуем.
Поди лучше свинарник почисти.
347 3006013
>>3005998

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


Опять ты вылез, болезный? Это всё не отменяет того, что Task.Run и штуки типа Task.WhenAll короче, чем аналогичные штуки с фьючерами в джаве.
И опять же, если ты хочешь спорить, пошли в холивар тред.
348 3006046
>>3006013
С чего ты взял, что краткость сама по себе ценна?
Шарп - мусорный язык. С кучей "оптимизаций" на каждый пук.
Нормальных людей воротит от такого говна.
Плюс - этот стойкий запах микрософта с изрядным душком дельфи ничем не перебить.
349 3006048
>>3006013

>Task.Run и штуки типа Task.WhenAll


CompletableFuture.supplyAsync() и CompletableFuture.allOf() ? Ну на несколько символов короче, да, тут не поспоришь
350 3006067
>>3006006
Да на реальных проектах какой только низкопроизводительный кал не увидишь, но почему-то именно этого нет.
351 3006069
>>3006048

>CompletableFuture.allOf()


А результат?
352 3006075
>>3006069
Результат - Future, который ждёт выполнения всех Future, то же самое что и в решётках
353 3006081
>>3006075
Нет, в решётках Task.WhenAll(Task<T> []) возвращает Task<T[]>.
То есть я могу написать
Data[] result = await Task.WhenAll(smallTasks); и иметь массив их результатов, а в джаве тебе придётся собирать эти результаты руками.
354 3006088
>>3006081
Только если все таски у тебя возвращают одинаковые типы, насколько я понимаю
355 3006099
>>3006088
Ну как правило, когда у тебя n тасок, это одна функция с разным инпутом.
Эти WhenAll и allOf не нужны, если у тебя 3 разных функции с разными типами, можно просто сделать им всем await/get().
Они нужны, чтобы цикл не писать.
356 3006356
>>3004116

>таким монструозным


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

Ебал Идейку. На 8ой яве кодирую на НетБинсе, на 17ой - Эклипс.
Я ж не соевое гомочмо лизать марку. Мне для работы, а не по тому что какой-то говноютубер нализывает очелло ЖопоБрайнзу.
357 3006363
>>3005804

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


С чего бы это? Лучше чтобы работали 2 больших и 2 маленьких ядра, чем только 2 больших.
На каком нибудь Интеле с турбобустом, может быть ситуация когда лучше 2 ядра на 4 ГГц, чем 4 на 2 ГГц. Но тут надо бенчмарки гонять. Гадать смысла нет.
358 3006367
>>3005946

>Ты на ходу сочиняешь правила и терминологию.


>Я тебе процитировал авторитетный источник, но, тебя даже это не останавливает


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

>Русского языка лучше выучи


Всё,ты подебил.
359 3006373
>>3006363
Ебать вы смешные. Это точно темя про Java?
Если у вас на Java пара потоков жестоко конкурируют за процессорное время, то с вероятностью близкой к единице вы выбрали не тот язык для своих задач или решаете не те задачи.
В тех областях, где требухается Java, задач, которые постоянно грузят CPU, практически нет. Это задачи вычислительной математики. Там до сих пор живёт и здравствует Fortran и деды с большим индексом Хирша. Изредка туда пробиваются плюсовики.
И остальные по мелочи.

В обчных же приложениях многопоточость позволяет оптимально загрузить ядра и позволяет во многих случаях писать более простые приложения, когда часть работы за вас сделает ядро ОС. Но это явно не средство выжать из процессора максимум. Я имею в виду многопточность.
360 3006376
>>3006363

> бенчмарки


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

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

Это закон Амдала, применимый для параллельных алгоритмов без IO операций.
361 3006386
>>3006067

>но почему-то именно этого нет


мы вам перезвоним
362 3006560
>>3006373
Иксперт, спокуха! Помимо вычисления 100500 числа Фибоначчи есть другие практические задачи, которые CPU intensive. Например та же криптография, или архивация, да тупо агрегация данных в памяти. Не все задачи которые грузятся проц числодробилки.
363 3006574
>>3006376

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


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

>Это закон Амдала


Закон Амдала совсем не про это.
364 3006586
>>3006560

> Например та же криптография, или архивация,



Это хуйня, а не задачи.
Если тебе надо шифровать или архивировать большие объёмы данных, то можно и нативным кодом это делать
https://stackoverflow.com/questions/71685564/native-library-loads-but-calling-native-function-throws-unsatisfiedlinkerror

> да тупо агрегация данных в памяти.


Часто приходилось делать?
365 3006598
>>3006574

> не про это


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

Да, возможно моя трактовка его на ядра некорректна.

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


Перефразировал как понял твою мысль. Разве такое возможно? На ходу выполнения перекинуть выполнение треда на другое ядро?
366 3006603
>>3006011
Ну и нахуй ты продолжаешь ворочаться, слитое?
367 3006611
>>3006013
Какие ещё таск ран? Ты высрался про AsParallel(), который в джаве выглядит короче, как parallel(), и даже он не обязателен, ведь можно сразу любую коллекцию превратить в параллельный поток данных через parallelStream(), и тебя обоссали, показав аналог в джаве.

Хочешь быть обоссаным ещё и по таскам? Показывай код на петушарпе, который якобы на джаве будет длиннее.
368 3006647
>>3006603
Степан, ты из 1с-треда сбежал?
Иди обратно, элита программирования, лол.
369 3006655
>>3006647
Слитое, ты ворочаешься-то нахуя?
370 3006679
>>3006655
Слитое у тебя во рту, сынок.
Глотай, не дёргайся.
371 3006684
>>3006679
А ворочаешься-то ты нахуя, слитое?
372 3006723
>>3006684
Тебе неприятно, токсичный вафлёр?
373 3006724
>>3006723
Так а ворочаешься-то нахуя ты, слитое?
374 3006747
>>3006724
Вижу, вижу, что неприятно, петушок.
375 3006749
>>3006747
А ворочаешься-то чё, слитое?
376 3006759
>>3006749
Не проецируй тут, маня.
377 3006761
>>3006759
Слитое, ворочаешься-то ты чё?
378 3006767
>>3006761
Ладно, маня, расслабься.
Давай, пукни ещё раз, и свободен.
379 3006769
>>3006767
Слитое, так нахуя ты ворочаешься?
380 3007073
>>3006598

>Разве такое возможно? На ходу выполнения перекинуть выполнение треда на другое ядро?


А в чём проблема? Планировщик останавливает тред, сохраняет состояние, восстанавливает на другом ядре, запускает тред. Это абсолютно нормальная ситуация, вот заставить его на одном ядре исполнять задачу, как раз требует специальных усилий.
381 3007123
>>3007073
Интересно какая потеря производительности из-за того, что нужно загружать из главной памяти состояние треда на другое ядро. Наверное небольшие.
382 3007265
Коллеги, поконструктивней в треде пожалуйста.
Зачем нужен gRPC если есть кафка стрим?
383 3007306
>>3007265
Судя по вопросу, ты вообще не понимаешь, о чём говоришь. Поэтому объяснить вряд-ли получится.
384 3007312
>>3007306
Прошу прощения, это конечно не такая интересная тема, как сраться с шарпистами у которых есть await. Но попробуй объяснить, покажи свои познания.
385 3007334
>>3007312
Задай себе вопросы:
- Что такое gRPC?
- Что такое Kafka streams?
- Есть ли между ними что-то общее?
- Логично ли их сравнивать?
386 3007336
Коллеги, поконструктивней в треде пожалуйста.
Зачем нужен int если есть interface?
387 3007357
>>3007334

>Есть ли между ними что-то общее?


С помощью них можно обмениваться бинарными данными

>Логично ли их сравнивать


Ну ты же не знаешь какую задачу я выдумал под их использования. Для чего стоит использовать gRPC а для чего Kafka streams?
388 3007378
>>3007357
А небинарными можно? :3
389 3007381
>>3007378
КоАП РФ Статья 6.21. Пропаганда нетрадиционных данных
390 3007384
>>3007381
Так бинарные протоколы же нетрадиционные. Традиционно это жсоны перекладывать.
391 3007387
>>3007378
Николай Брусенцов, плиз.
392 3007389
>>3007384
джейсоны переводятся в байты и отправляются, если это не древние ресты
393 3007394
>>3007389

> если это не древние ресты


Так-то в любом случае интернет кабель бинарный. "Бинарный протокол" другое означает.
394 3007398
>>3007357
Ты вообще понимаешь, что для кафка стримов нужна ещё кафка, как минимум? А gRPC - это просто протокол.
395 3007399
>>3007394
Ты решил до слов докапываться?
Для чего стоит использовать gRPC а для чего Kafka streams? А,
396 3007400
>>3007399

> Ты решил до слов докапываться?


Так это ты какую-то хуйню высрать решил. Зачем-то высрал про сжатие, которое протокол не изменяет.

> Для чего стоит использовать gRPC а для чего Kafka streams? А,


Для чего нужен int, а для чего interface?
397 3007402
>>3007400
Ты токсичный, надеюсь найдется другой анон, который ответит на этот вопрос.
398 3007406
>>3007402
Тебе уже ответили, оболдуй.
download.jpg6 Кб, 204x192
399 3007407
>>3006386
А я вам и не звонил
400 3007416
>>3007336
Потому что без face'а как-то не очень
401 3007432
>>3006373
Ну хз, мы вот пишем поисковик по петабайтам данных на джаве, с многопоточностью, перемалывает байты только вжух
402 3007434
>>3003726

>деятели, как этот


Ну вот зачем ты так? Подумаешь лично мне конкретно жаба не нужна. Я вообще попал не на то направление что хотел, и мне остался последний курс перед выходом в мир. Программировать учусь для себя, чтобы в свободное время игры делать, чем в общем-то и занимаюсь. Алсо 8 лет музыкального образования, и 6 хуйдожки, так что мне в кайф делать арт и саунд. А копаться в вебе или легаси энтерпрайзе меня и за 300ккк не затащишь (максимум кнопки красить, но там средняя зп по региону).

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


Да чего тебя трясёт то так? Все с чего-то начинали, в том числе и ты. Я задавал вопрос не с позиции что это неебаться сложно. Просто спросил, ибо что б не спросить, раз уже пишу в тред.
403 3007451
>>3007265
Кафка - это как RabbitMQ, а gRPC - это как REST, грубо говоря. Одно - это очередь, другое - протокол обмена данными. Кафка стримс - это вообще потоковая обработка, она не нужна для связи между компонентами.
Конечно можно использовать очереди для связи между компонентами, но для простых случаев это перебор, оверинжинеринг и андерперформинг.
404 3007465
>>3007434
А, ну раз ты просто случайный пассажир на нашем корабле, тогда ладно.

Про генерацию пароля - мне кажется, это элементарно вообще.
У тебя есть списки: буквы, буквы + цифры, буквы + цифры + знаки. Ты генеришь случайное целое число в диапазоне от 0 до последнего индекса списка, и получаешь очередной символ пароля. Список выбираешь в зависимости от выбранного типа пароля.
Конечно, можно не делать явные списки, а просто работать с кодами символов, они идут подряд. Но, мне кажется, тебе с явными списками будет проще.
405 3007468
>>3007451

>Кафка - это как RabbitMQ


Но кафка это журналируемый реплицируемый лог, а раббит это протокол AMQP.

>а gRPC - это как REST


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

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


А если у меня лимит на соединение и мне нужно асинхронно получить ответы из нескольких внешних систем рестом, мне доставать кучку комплитаблфьюч и отправлять?
406 3007489
>>3007468

>Но кафка это журналируемый реплицируемый лог, а раббит это протокол AMQP.


Нет, кафка - это сообщения Avro, а рэббит - это брокер сообщений.

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


А ты думаешь там не сокеты используются?

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


Да
407 3007504
>>3007489

>А ты думаешь там не сокеты используются?


Нет, а что они?

>Да


(( Я хочу отправить в разные топики и вычитав из них выполнять
408 3007508
>>3007468

>а раббит это протокол


Чувак, раббит - это не протокол. это кролик

>А почему тогда там соединение не сбрасывается как у сокетов



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

>Нет, а что они?


А они используются
410 3007514
>>3007504

>(( Я хочу отправить в разные топики и вычитав из них выполнять


Отправляй!
image.png455 Кб, 1920x942
411 3007515
412 3007525
>>3007465

>случайный пассажир на нашем корабле


Так и есть, спасибо за понимание.

>генеришь случайное целое число


Дк не особо разница, выбрать рандомное значение из диапазона чисел, или из диапазона букв. Непонятно только как именно сделать этот выбор рандома. Писал такое в питоне через randint, а как на джаве да ещё и без интернета не знаю. ...или падажы, неужели импортируемые библиотеки вшиты в язык, и для импорта не требуют интернета? Во всяком случае не знаю как такое на жабе делать. Впрочем в гугле меня всё ещё не забанили, так что да.
413 3007532
>>3007514
Это точно нормально или лучше комплитаблфьюч навалить и allOf?
414 3007542
>>3007532
Если любишь поднавалить, то не думаю что тут стоит себе отказывать
415 3007551
>>3007542
Коллега, от твоих ответов зависит судьба проекта из двух трени и одного джуна уровня трени, завтра это может оказаться уже на проде, отнесись серьезней.
Дана ручка посчитать и ручка получить расчет, жмем посчитать и обращаемся в 8 разных сервисов рестом, запросы в сумме минут на 10, а ручка получить расчет вызывается раз в 30 секунд, пока не посчитается. Есть идея возвращать ничего, а когда посчитается вернуть сумму того что надо, реализовать это можно несколькими способами, какой сам выберешь?
416 3007569
>>3007551
Очевидно как только первый раз дернул ручку посчитать - кладешь результат в тайник в памяти и продолжаешь возвращать его пока не будет готов следующий результат, который ты опять кладешь в тайник.
417 3007578
>>3007525
https://stackoverflow.com/questions/20389890/generating-a-random-number-between-1-and-10-java
Интернет, конечно же, не нужен - это часть стандартной библиотеки.
Вообще, весь твой пример делается на стандартной библиотеке.
418 3007581
>>3007569
Что такое эти ваши "ручки"?

https://www.youtube.com/watch?v=2Znv19Gy_Sc
419 3007619
>>3007581
Поддерживаю вопрос
420 3007635
>>3007569

>пока не будет готов следующий результат


Но ведь можно отправить эти 8 запросов сразу асинхронно, это ведь сократит время расчета? Проблема только в том, что это 8 потоков из комон пулла, я конечно моку сделать бин с еще одним тред пуллом, но в арр их уже прилично. А сделать меньше я очкую, потому что по ощущением они все в работе в разных задачах. С другой стороны расчеты производятся ну раз 5 в день и выделять под них отдельный тред пулл жирновато... Коллега?
421 3007640
>>3007581

>ручки


это древнеславянские эндпоинты, они же апи
422 3007645
>>3007640
Дошло.
Я как-то упустил из виду, что эти вещи называются rest api handler.

Но, я бы заметил по этому поводу, что, на мой взгляд, это немножечко деградация. Ибо когда-то давно, ещё до появления node.js и до набега в индустрию полчищ долбоёбов, по-русски такие вещи так и назывались хендлерами. Но, видимо, зумерам современным инженерам такое непонятно.
423 3007667
>>3003203
Есть ли в NetBeans какой-то встроенный гайд/мануал доступный без интернета? Давеча сдавал экзамен по MySQL, так там некоторый синтаксис подсмотрел непосредственно на самом сайте через код элемента, да и встроенный мануал помог. Так что бы мне очень пригодился таковой, если имеется в NetBeans.
424 3007675
>>3007667

>NetBeans


Поставь JetBrains или vsc, ну ненужен NetBeans и Eclipse
425 3007702
>>3007667

>доступный без интернета?


Ты имеешь в виду чтобы смотреть во время сдачи экзамена?
Насчёт NB - я его последний раз трогал лет 15 назад, примерно.
Но, я думаю, что там если что и есть (по F1) - то это подсказки по самой IDE, а не учебник по джаве.

Но, в любой IDE есть отображение JavaDoc - встроенной документации по классам, методам и т.п. из стандартной библиотеки, которые ты видишь в написанном коде. Например, тот же JFrame. Но, даст ли тебе это что-нибудь, я не уверен. В NB это отображается для выбранного объекта (где курсор) по Ctrl + Shift + Space. Или по правой кнопке, наверное, тоже должно быть в меню.
image.png118 Кб, 1055x1186
426 3007703
>>3007675

>ненужен NetBeans


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

З.Ы. Почему не применяется цвет?
427 3007706
>>3007702
Спасибо, надеюсь поможет 🤞🤞🤞.

А что по этому подскажешь >>3007703?
428 3007707
>>3007706
Посмотри ниже свойство opaque. Если оно false - сделай true.
429 3007709
>>3007703
Ебать, ты в какой залупе учишься что вас нетбианс заставляют юзать?
430 3007711
>>3007709
Сам в ахуе. Благо при переводе из прошлой шараги годы засчитали так, что пошел на предпоследний курс (алсо мне так и так 2 года оставалось, так что ничего не потерял). Похуй, всего несколько месяцев этого цирка с конями осталось, если не завалю этот экзамен
image.png10 Кб, 719x328
431 3007712
>>3007707

>opaque


Уже и так стояло true.

Впрочем я выкрутился из ситуации добавив дополнительный Panel, и растянул на весь экран. Не думаю что кто-то реально полезет в код, во всяком случае надеюсь
image.png86 Кб, 915x432
432 3007713
>>3007707
Спасибо за помощь.

Ещё есть такой вопросик, а как применить к этому говну тему windows aero, в частности чтобы полоска со свернуть/закрыть была прозрачной аля пикрил?
433 3007715
>>3007635

> жирновато


Что ты имеешь ввиду?
>>3007640
Эндпоинты. Это слово я знаю в этом контексте.
434 3007757
>>3007715

> Эндпоинты


Однако же "ручка" это хендл или хендлер. Просто по смыслу.
А эндпойнт тогда уже "конец". Или даже хуец, лол.

>в этом контексте


Это не "контекст". Это просто значение.
А "контекст" - это, дословно, окружающий, сопутствующий текст.
435 3007828
Нахуй вы форсите что нет удаленки, сука вот в это я до последнего верил
436 3007831
>>3007828
И че взяли тип? Можно к вам?
437 3007916
>>3007581
Очевидные хэндлы же
438 3007920
>>3007635
Согласен с тем что жирновато, во всех смыслах.
С другой стороны чего ты мнешься как девочка, редко используешь - общий тред пул, боишься за производительность - смотри профайлером.
439 3007927
>>3007831
Нет
Camunda BPMN 440 3007929
Кто использует?
Как оно?
Сложно вкатиться?
На собесах спрашивают про неё?
handler.JPG68 Кб, 1488x1050
441 3007947
>>3007645
Хендлеры и раньше и сейчас называют обработчиками.

Как будто увидели глагол to handle (обработать) и перевели как существительное handle (ручка)
442 3007954
>>3007757

>>"ручка" это хендл


>>эндпойнт тогда уже "конец"


А bearer token у тебя это жетон медведетеля?
443 3007983
>>3007929
Не использует. Это легаси
444 3008133
>>3007954
Жетон носильщика или жетон несуна
445 3008189
>>3007983
Как будто миллионы компаний не используют легаси
446 3008224
>>3008133
Вопрос: Жетон носильщика, 5 букв.
Ответ: БЛЯХА
447 3008486
>>3002529

>Так джавистов же заменили молодые спецы котлинисты еще несколько лет назад, переписав все на котлин-убийцу джавы


Котлинисты уже соскуфились, а котлин уже протух. Так что теперь Go и gRPC. Колесо хайп-дривен-девелопмент сделало оборот.
448 3008520
>>3008486

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


Типа просто постепенно поутих энтузиазм и стали меньше использовть?
Или была какая-то громкая история?
449 3008560
>>3008520
Просто не хватило хайпа прорваться в мейнстрим. По моему опыту его сделали слишком гибким и люди в попытках использовать все фишки языка превращали код в не читаемое месиво.
450 3008581
>>3008560
Да, у меня такое же мнение. Именно - нечитаемое говно.
Причём, в отличие от той же Скалы - с не очень понятным профитом.
Вообще, это не "гибкость", это показатель плохой архитектуры.
Потому, что, как говорят умные люди, архитектура - это, прежде всего, ограничения.
1000006848.webp31 Кб, 912x608
451 3008596
>>3008581
Лозунг главного архитектора, кста
452 3008607
>>3008581
А какой профит от скалы?
453 3008608
>>3008607
можно в резюме написать
454 3008613
>>3008607
Будешь не таким как все
455 3008691
>>3008520

>Типа просто постепенно поутих энтузиазм и стали меньше использовть?


Меньше хайпа, плюс в джаву немного улучшений завезли. Плюс то что хайп утих просто означает, что стали меньше переписывать существующие проекты. Но те что уже на Котлине, продолжают на нём пилить.
456 3008694
>>3008607
Ну, там есть удобная работа с монадическими конструкциями, например. Это очень большое дело. Есть нормальные литералы коллекций. Есть возможность делать развитые DSL. В котлине ничего этого нет.
И вообще, скала выглядит как достаточно продуманный самостоятельный язык (в отличие от котлина).

Серьёзный минус скалы в том, что Одерский и Ко её с самого начала позиционировали как полную замену джаве, как вещь в себе. А надо было - как дополнение. Потом они переобулись, где-то к версии 2.13, примерно, и начали петь другие песни, но, было уже поздно.
Короче - проблема скалы - в недостаточной интеграция с джавой, не позволяющая эффективно использовать скалу в гетерогенных проектах. А без этого она не нужна.
В котлине это сделано гораздо лучше. Но, котлин - безблагодатное говно, которое, кроме андроида (и внутренних проектов jet brains) нигде не нужно. Он, в общем-то, даже и полноценным языком не является.
457 3008703
>>3008691

>Но те что уже на Котлине, продолжают на нём пилить.


Это известная проблема.
Называется sunk cost fallacy. Можешь погуглить.
По русски это "ошибка невозвратных затрат" или "ловушка невозвратных затрат".

Я, например, этой зимой перестал так делать, и переписал один свой большой проект с перла на питон. Проект был не старый, года 3 всего. На перле был написан совершенно сознательно, но, потом выяснилось, что это себя не оправдало, и, при этом, затрудняет доработки.
Так вот - котлин - это сильно хуже, чем перл. Перл, хотя-бы, очень практичный и довольно забавный.
458 3008704
Если бы петухлин не менял синтаксис, а просто добавлял фичи в джаву, то он бы реально мог составить конкуренцию. Но жидбрейнсы насрали себе в штаны.
459 3008707
>>3008703
Можешь объяснить в чем проблема с котлином?
460 3008713
>>3008707
Как я тебе это объясню в рамках коммента на дваче?
Это вот как раз тот самый случай - если надо объяснять, то не надо объяснять.
Подрастёшь - сам поймёшь, лол.
461 3008735
>>3008713
Ясно, слив принят.
462 3008740
>>3008735
Я уже говорил тебе, что ты очень предсказуем?
Это показатель невысоких умственных способностей, чтобы ты знал.

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

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

>Это известная проблема.


>Называется sunk cost fallacy. Можешь погуглить.


>По русски это "ошибка невозвратных затрат" или "ловушка невозвратных затрат".


А нахер тебе переписывать работающий проект, с вполне нормального языка? У котлина нет никак фатальных недостатков: на нём удобно разработывать, поддержка ide и всех основных туловище есть, библиотеки есть и свои и все джавовские.
У котлина нет убер фишки, чтобы на него переходить в существующем джава проекте. Но и недостатков чтобы переходить с него на джаву, тоже нет.
464 3008764
>>3008694
Минус скалы, что Одерский хотел одной жопой усидеть на двух стульях. Он хотел, и better Java, и haskell for JVM. Как итог и то и то вышло не очень. ООП часть была переусложнена для среднего разраба, а функциональная часть была слабовата для хардкорных функциональщиков.

Помню когда учил скалу, натыкался на моменты когда нужно было явно писать типы и объяснение было, что система вывода типов не очень хорошо работает с ООП наследованием.
465 3008779
>>3008764
Да, всё так.
466 3008786
>>3008750
Ну, не знаю.
Вот, допустим, писали (фронтенд) на джаваскрипте.
Потом придумали кофе-скрипт. И довольно много на нём написали.
Было много хайпа. Учитиля и гуру учили и гурили.
И где он сейчас? И где те проекты?
А бэк живёт подольше. 20 лет - вообще не срок для энтерпрайзного проекта. Джава никуда не денется, как никуда не делся джаваскрипт. А вот насчёт котлина я совсем не уверен.
467 3008832
>>3008786
Ты думаешь, что народ всё бросит и побежит переписывать с Котлина обратно на джаву? Не будет такого. Только если жидбрейнс забросят Котлин.

Фронтенд другое дело, там за пару лет всё меняется и надо постоянно поддерживать код. Потому там переписать с кофе на тайп скрипт это ок.
468 3008874
Да вы достали тут уже, разумничались. Раз такие умные отвечайте:
Я могу в джава проекте сделать сервис на котлине и написать в рюземе что я джава/котлин разработчик вызвать его в контроллере написанном на джава и чтобы все это вместе работало?
Я могу сделать дто на котлине и передавать в джавовские сервисы и наоборот?
Вот отвечайте теперь, раз такие умные.
469 3008876
>>3008874
Вроде бы да? Там же туда обратно всё конвертируется под капотом если Kotlin/JVM, а не Kotlin/Native.
470 3008879
>>3008876

>Вроде бы да?


Зачем ты у меня спрашиваешь, я ни одной строке на котлине не написал, только стремлюсь накакать им в проект. Ждем опытного.
Еще интересует как работают корутины, они привязываются к основному потоку джавы или что вообще с потоками, жвм там их рулит сама
471 3008882
>>3008832
Да нет, на самом деле, я не думаю, что он куда-то денется.
Даже руби никуда не делся, и даже типа "развивается".

Но, у котлина есть одна очень серьёзная проблема - она называется "too much language". И чем дальше - тем больше, это идёт по нарастающей. Такое не бывает успешным в долгосрочной перспективе. Язык - для людей. И если он игнорирует человеческую природу - он исчезает. См. тот же руби, скалу, кложуру. Да тот же перл - где он сейчас? А ведь был популярнейшим языком в своё время. Или тот же C++ - сдулся на несколько порядков.
А джава - цветёт и пахнет. Потому, что простой язык. И именно поэтому мне не нравятся современные тенденции напихать в неё побольше разного говна.
473 3008895
>>3008874
Такое можно сделать даже на Clojure. Причём, несколькими способами.
И на любом другом jvm-языке, включая jruby и jpython.
А уж на котлине - без проблем вообще.

Про корутины - хз, я не залазил в эту клоаку так глубоко. Но, думаю, что этим рулит рантайм котлина. Который тебе придётся подвязывать к своему проекту, если ты будешь так делать. То же касается и любого другого jvm языка.
474 3008900
>>3008891

>The Kotlin plugin also bundles a Java to Kotlin converter (J2K) that automatically converts Java files to Kotlin. To use J2K on a file, click Convert Java File to Kotlin File in its context menu or in the Code menu of IntelliJ IDEA.


Ну все прод тобi пизда, я начинаю эксперемент
475 3008901
>>3008882

>Или тот же C++ - сдулся на несколько порядков.


>


То что в стандарты с++ несут всякую хуйню, это без_порно. Но никто не завставляет пользовать всю новую чушь. И по закону больших чисел некоторая часть "чуши" оказывается годной.
Сдулся С++? Это вряд-ли, просто он для решения специфических задач. Он не для всех. Это Си с классами и шаблонами. А ещё его синтаксис перекочевал в вашу Яву и Сишарп. Не в стиле Паскаля вы пишите, и не в стиле пролога. Если бегло издалека смотреть, Яву можно плюсами спутать. В первое мгновение.
476 3008912
>>3008874
Да можешь. Там могут быть тонкости типа вызова котлиновской функции не метода класса, а именно функции, но в целом все решаемо.
477 3008923
>>3008901

>просто он для решения специфических задач. Он не для всех.


Вот вот.
А был - для всех.
На нём делали всё то, что сейчас делают на джаве. Которую, собственно, и придумали, чтобы заменить это говно. И это получилось на все 100.
478 3008935
>>3008912
Это хорошо, но мне зададут вопрос: НАХУЯ ТЫ ТУТ НАПИСАЛ НА КОТЛИНЕ?. Что отвечать на это, есть какие-то аргументированные ответы (вариант для резюме и прост)0 не подойдет), я могу как-то козырнуть, что мол котлин делает Х лучше, чем джава, вот пруф?
479 3008940
>>3008900
А ты думаешь как я конвертил спринг, чтобы показать, что за 15 % стало меньше количество символов?
>>3008935
То что меньше кода пишешь?

spring-boot
https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConfigurationPropertiesTests.java

Жаба
3279 lines
94812 chars
2047 lines of code

Котлин
2161 lines (-34 😵
81549 chars (-14 😵
1816 lines of code (-11 😵
480 3008945
>>3008940
Напоминаю, этот обрыган так и не показал итоговый сокращённый код, хотя его ни раз просили за базар пояснить.
481 3008948
>>3008945
Блять, зайти в IDEA и щелкни по одной кнопки, вот тебе гайд скинули >>3008900
482 3008949
>>3008935
Дарю:
Maintaining poor legacy code, interpreting cryptic comments, and writing the same boilerplate over and over can suck the joy out of your life as a Java developer. Fear not! There's hope! Kotlin is an elegant JVM language with modern features and easy integration with Java. The Joy of Kotlin teaches you practical techniques to improve abstraction and design, to write comprehensible code, and to build maintainable bug-free applications.

"Это из аннотации Амазона к книжке The Joy of Kotlin, которую написал автор книги FP in Java. А ещё Рунар Бьярносон (который FP in Scala) тоже разродился книжкой FP in Kotlin. В общем - всё просто охуенно. Пока сам в это не нырнёшь, лол.
483 3008950
>>3008940

>меньше кода пишешь?


Это не пойдет, мне кабаныч пезды вломит, скажет и так на наши копейки идут работать только долбоебы такие как я, а ты еще котлин в него занес, теперь дурачков в команду искать станет еще сложнее. Тут нужно техническое обоснование, должно же оно быть, потому что писать часть кода на котлине только ради того чтобы строчек было меньше это тупо и отмазка что из-за одного сервиса из тысячи проект стал на долю секунды собираться быстрее не прокатит
484 3008953
>>3008948
Напоминаю, этот обрыган так и не показал итоговый сокращённый код, хотя его не раз и ещё один раз просили за базар пояснить.
485 3008956
>>3008950
Ты буквально на 10 % кода сможешь написать больше за год. Это тоже хуйня для кабана?
>>3008953
Иди нахуй.
486 3008957
>>3008956
Напоминаю, этот обрыган так и не показал итоговый сокращённый код, хотя его не раз и ещё два раза просили за базар пояснить.
487 3008958
>>3008949
мда что-то уровня нескучных обоев...
488 3008962
>>3008957
Скинул тебе сокращённый код за щеку. Проверяй
489 3008965
>>3008950
Безопаснее, надёжнее, легче поддерживать, future proof - вот чем надо кормить кабана.
490 3008970
>>3008958
Не, ну безопасность - это основная идея котлина.
Остальное уже потом намотали. А исходным было null safety, контракты и вот это вот всё.
Цитата, возможно, неудачная. Надо было из предисловия в самой книге взять.
491 3008973
>>3008970

> А исходным было null safety


Да нихуя подобного. Ты их выступления вообще смотрел или просто из башки хуйню несешь?
492 3008974
>>3008962
Напоминаю, этот обрыган так и не показал итоговый сокращённый код, хотя его не раз и ещё три раза просили за базар пояснить.
493 3008977
>>3008973
Я вообще-то помню, с чего это начиналось давным-давно, задолго до v1.0.
А что они сейчас (или три года назад) говорят - это неважно.
494 3008978
>>3008965

>Безопаснее


это про нуллабл сейфти надо затирать?

>легче поддерживать


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

>future proof


это еще что? кабаныч не дурак, он прочитал про голанг
495 3008980
>>3008977
Они это говорили как раз до v1.0. Где-то тут https://youtu.be/HE4yyPpUsy4?si=2Ga8ZZ7DNXn9sUq7
Мне щас искать впадлу, можешь потратить свои 50 минут)
496 3008986
ВЫ ЗАЕБАЛИ СРАТЬ
497 3008988
Короче неубедительно, попробую лучше с джавы 11 на 21 или 17 перейти, тут хотябы можно будет пездеть про сверх оптимизацию жвм, надеюсь она есть, а то пеально будет если работать станет хуже
498 3008989
>>3008986
Согласен. Как я ушел тред превратился в хер пойми что. Терпите, что ж.
499 3008991
>>3008988
Доклады шипилева глянь. Он про маняоптимизации часто затирает как раз.
500 3008992
>>3008988
Так не только оптимизации жвм. Ещё много крутых фич для программистов.
501 3008993
>>3008988
Переходить на 17 при наличии 21 это преступление.
502 3008998
>>3008992

>много крутых фич для программистов


я не буду пользоваться рекордами, новыми свитчами, sealed классами. А больше там ничего в 17 нового нет, ну еще npe по перемееной. А в 21 вроде только грин потоки не?
503 3008999
>>3008980
Так а что "это" они говорили?

Я, обычно, не смотрю видео. Потому, что владею старинной магией чтения текстов. И вот, в каком-то из текстов я про безопасность и прочёл.
504 3009002
>>3008999
А, да то что эту фичу им предложили извне. И изначально ее даже не предвиделось. Но тааак она им понравилась. Подобное короче
505 3009003
делайте перекат с нормальной щапкой
506 3009004
>>3008998

> новыми свитчами, sealed классами


Вот это всё в 21 только из превью вышло.

А вот вошло:

🌟 Structured Concurrency - контроль асинхронности.
🔑 Scoped Value - гибкий ThreadLocal.
✨ String Interpolation - вставка переменных как ABC.
🚀 Unnamed Classes и Instance Main Methods - хелло-ворлд в одну строчку!
507 3009006
>>3008978

>future proof


>это еще что?


Ну, это, выгода будет, но в потом, в будущем, так ему и скажи.
508 3009008
>>3009006
Я думаю он в голос проиграет с этого и скажет давайка назад все
509 3009015
>>3009004

>Structured Concurrency - контроль асинхронности.


Надо будет глянуть что это, а я думал у нас и так есть котроль асинхронности комплитаблфьючами, видно это какой-то другой контроль, более расово верный. Все остальное выглядит как юзлес, разве что понять зачем мне Scoped Value
510 3009030
511 3009124
>>3008923

> И это получилось на все 100.


Я пишу на С, С++, C#.
Могу читать код на Java, но не пишу на ней.

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

У меня так - С++ для души, C# - для прокорма. Конечно бы я мог найти высокооплачиваемую работу и для С++, но это не язык для зарабатывания денег. А вот Сишарп и, вероятно, Ява - это чтобы деньги зарабатывать. Ибо при одинкаовом вложении труда результат у Явы/Сишарпа достигается быстрее и проще, чем на плюсах. Напрягать мозги ради дяди - ой, да ну нвхуй.
512 3009314
>>3008956

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


Может ему курсы слепой печати пройти, тогда он еще на 30% больше кода напишет, как думаешь?
513 3009316
>>3008988

>>попробую лучше с джавы 11 на 21 или 17 перейти


Это скучно, там ничего не ломается. Апни лучше спринг бут до 3.2, чтоб у тебя полпроекта отвалилась из за сломанной обратной совместимости.
514 3009419
>>3009314
Перефразирую, меньше мусорного кода придется писать.
515 3009713
>>3009419
Этот мусорный код на скорость разработки не влияет. Или ты прям 8 часов в день код пишешь и опшионалы хз что там еще сократишь в типичном сервисе тебя сильно тормозят?
516 3009717
>>3009713
Да нет конечно, но не писать код лучше чем писать код
517 3009866
>>3009717
Так довольно мало кода сокращается. И чем дальше джава развивается - тем меньше разница.
Выгода от его внедрения в бэкенд не превышает издержек на его изучение (не только себя, но и других разрабов).
518 3009887
>>3009866
Согласен. Мы в плену у жабы. Навсегда.
519 3010214
>>3009866
Да нихуя там не сокращается. Он ведь так и не показал итоговый якобы сокращённый код, че ты с ним разговариваешь?
520 3011858
>>3009316
Речь про ап с 2.х до 3.х или в 3.2 что-то дополнительно сломали?
Аноним 521 3055577
>>3004820
Каво?
522 3060024
>>3055577
public static void main — единственный способ запустить джава-программу.
523 3065767
>>3008949

>Maintaining poor legacy code, interpreting cryptic comments, and writing the same boilerplate



Все таки любят анальники перекладывать ответственность за свое говно на кого то другого. Неееет, это не вася-пупкин-пидарас наговнокодил - это все джава. Ну конечно.
Тред утонул или удален.
Это копия, сохраненная 7 апреля в 01:42.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски