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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 166 10 46
Java Thread №285 /java/ Аноним 13/09/25 Суб 13:47:29 3540166 1
f74d95ce-2f58-4[...].png 1349Кб, 1024x1024
1024x1024
Аноним 13/09/25 Суб 13:56:28 3540172 2
Аноним 13/09/25 Суб 13:59:35 3540176 3
Аноним 13/09/25 Суб 14:11:21 3540183 4
>>3540176
Что за slowdowns имеются ввиду? Типа, если идее заблочить коннект к сети, то она лагать будет?
Аноним 13/09/25 Суб 14:22:21 3540195 5
>>3540183
Мб у него сама идея фризить начала из-за плагина. Я хызы. У меня не фризит ничего.
Аноним 13/09/25 Суб 18:06:35 3540291 6
Пример будет, где из-за сахара нечитаемый код получается?
Не балабольство на несколько абзацев, а просто пример кода.
Аноним 13/09/25 Суб 18:24:10 3540297 7
>>3540291
Какой смысл? Один пример ничего не докажет, да и ты всегда на все будешь говорить врети.
Тем более спрашивать это в треде, где мало кто пишет на языке где много сахара. Иди в котлин тред, если интересно.
Аноним 13/09/25 Суб 19:49:14 3540314 8
>>3540297
так нытье о нечитаемом коде из-за сахара только тут
Аноним 13/09/25 Суб 20:37:27 3540333 9
>>3540183
ja-netfilter написан на ява и, соответственно, тормозит как и любое другое ява поделие.
Аноним 14/09/25 Вск 00:16:57 3540395 10
>>3540291
>нечитаемый код
Это какой код ты считаешь не читаемым?
Аноним 14/09/25 Вск 00:43:42 3540405 11
>>3540291
Да изи: весь код с let/with/че-то там еще в котлине.
Аноним 14/09/25 Вск 01:58:49 3540407 12
>>3540405
Что тебе в таком коде конкретно не понятно, скуфчик? Могу тебе объяснить.
Аноним 14/09/25 Вск 02:00:25 3540408 13
>>3540405
Тем более let, with и т д - это просто функции, а тебя, скорее всего, пугают лямбды с контекстом.
Аноним 14/09/25 Вск 09:37:21 3540458 14
>>3540291
На джаве - создал объект и заполнил данными. Всё логично. На котлине вызвал очередную непонятную функцию
val user = User().apply {
name = "Pidor"
age = 30
}
Ещё лучше блять
val user = User("Pidor", 30).also { println("User created: $it") }
Геттеры и сеттеры под капотом, ну спасибо ебать
user.name
user.name = "Pidor blya"
Ой, а откуда метод? Может это какой-то стандартный метод String? Нихуя. Это любитель скотлина где-то там его насрал.
fun String.capitalize(): String { ... }
myString.capitalize()
Аноним 14/09/25 Вск 11:47:30 3540531 15
>>3540458
Тебе сколько лет?
Нормальный код, все понятно.
apply можно не использовать, передавай аргументы сразу в конструктор.
С экстеншенами надо аккуратно, но так же можно засрать джава проект статическими методами, так что так себе доеб
Аноним 14/09/25 Вск 15:28:02 3540684 16
>>3540458
Из странных фич тут только also, все остальное давно есть в сишарпе. Ты литерали живешь в 2005 году.
Аноним 14/09/25 Вск 16:04:21 3540748 17
>>3540684
так это даже не фича, это просто функция, которая принимает лямбду. Котлин хорош тем, что в нем кейвордов очень мало, пожалуй только suspend добавляется к джаве, а больше ничего на ум и не приходит.
Аноним 14/09/25 Вск 16:42:41 3540797 18
image.png 100Кб, 801x291
801x291
Джава скуфы, ваши паттерны, геттеры-сеттеры нахуй никому не упали в 2к25. Делайте как в нормальных современных языках или отправитесь к коболу.
Аноним 14/09/25 Вск 18:28:09 3540909 19
>>3540797
А в каких современных модных языках нет геттеров и сеттеров?
По моему эта параша везде, буквально.
Аноним 14/09/25 Вск 21:16:56 3541063 20
>>3540797
>ваши паттерны
Паттерн всегда где-либо будет. Явно или неявно - другой вопрос.

>геттеры-сеттеры
Частично соглашусь, что можно писать код без геттеров и сеттеров. И в теории такой код может стать быстрее хотя бы по той причине, что изменение публичной ссылки напрямую(без вызова геттера/сеттера) не требует затрат на вызов метода.
Аноним 14/09/25 Вск 21:25:00 3541078 21
>>3541063
>И в теории такой код может стать быстрее хотя бы по той причине, что изменение публичной ссылки напрямую(без вызова геттера/сеттера) не требует затрат на вызов метода
Только Егорка топит за то, чтобы все поля в классе объявлять final, чтобы их вообще изменить нельзя было после создания.
Аноним 14/09/25 Вск 21:28:46 3541081 22
Аноним 14/09/25 Вск 21:29:21 3541085 23
>>3541063
>не требует затрат на вызов метода
jit это поймет после 2-3 вызова
Аноним 14/09/25 Вск 21:30:32 3541088 24
>>3541063
> такой код может стать быстрее
Да-да. Губами быстрее, ведь jvm не умеет инлайнить методы. Невероятные блять иновации. И типичная экономия на спичках. Почему у каждого второго жависта, руки блятб чешутся, чето пооптимизировать
Аноним 14/09/25 Вск 21:32:11 3541092 25
Аноним 15/09/25 Пнд 02:56:37 3541232 26
>>3541092
Кажется я нашел его гитхаб.
Аноним 15/09/25 Пнд 02:57:40 3541233 27
>>3541088
А кто говорит, что кто-то хочет что-то где-то оптимизировать?
Аноним 15/09/25 Пнд 10:30:21 3541306 28
Асинхронщину изучать надо? Сложная штука, чёрт побери. А реактивщина - вообще какая-то хуйня непонятная. В реактивщине отдельный тред делает только кусочек своей работы типа? Стрек-трейс состоит типа из пайплайнов или как?
Аноним 15/09/25 Пнд 12:39:19 3541458 29
>>3541306
>Асинхронщину изучать надо?

Надо.

>А реактивщина - вообще какая-то хуйня непонятная.
Если вкрадце - реактивщина == асинхронщина + backpressure. Эдакий умный listener, который может сказать эмиттеру "горшочек - не вари", и тот - не будет.
Аноним 15/09/25 Пнд 12:41:47 3541460 30
>>3541078
Егорку можно за многое хуесосить, но в отношении геттеров-сеттеров он прав.
Аноним 15/09/25 Пнд 12:50:28 3541468 31
>>3541458
Дашь рекомендации какие-то? Типа книг или ресурсов по изучению асинхронного программирования в джаве?
Аноним 15/09/25 Пнд 13:03:15 3541493 32
>>3541458
>Надо.
А зачем, если есть виртуальные потоки? Какое она применение имеет в жабе на данный момент?
Аноним 15/09/25 Пнд 13:22:23 3541519 33
>>3541493
Особо смысла нет, только если тебе интересно.
Эта штука была раньше популярна в андроиде (RxJava), до корутин из котлина.
Ничего сложного там нет, нужна такая же база, как и для написания обычного многопоточного кода. Но вся сложность в функциональном стиле - куча разных операторов, которые полностью никто не знает и юзают только маленькое множество этих операторов.

На бэке есть реактивная популярная либа Reactor, которая тесно связана с Spring WebFlux, но проектов, где такое используется очень мало.
Рациональнее такое учить только тогда, когда попадешь на такой проект.

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

В снг на джаве в 99% пишут блокирующие сервисы, к ним вся это история с асинхронщиной практически неприминима
Аноним 15/09/25 Пнд 13:22:57 3541520 34
Аноним 15/09/25 Пнд 13:50:32 3541549 35
>>3541520
Спасибо за развёрнутый ответ. Думаю тогда отложу пока эту затею из изучением реактивщины, т.к. времени на это нужно не мало, а использовать его я вряд ли где-то буду. Ну или пройдусь по базе, чтобы было представление хотя бы.
Аноним 15/09/25 Пнд 15:00:22 3541605 36
>>3541493
Так анон не уточнял - какую конкретно асинхронщину.
Аноним 15/09/25 Пнд 15:42:25 3541652 37
>>3541605
А че, все non-blocking алгосы - это автоматом асинки? Я думал это строго спизженная из мира фп парадигма.
Не очень удобно, когда один и тот же термин используется для разных вещей.
Аноним 15/09/25 Пнд 16:26:16 3541715 38
>>3541652
Это вообще про другое. Неблокирующие алгоритмы - это когда у тебя есть две версии данных - старая и новая - а потом ты через атомик делаешь свап указателя и дальше все работают с новыми данными. В классических алгоритмах кто-то один берет блокирвовку, остальные стоят и ждут под дверью туалета. Асинки тут вообще не при чем, асинки - это про экономию трех копеек на потоках, по сути просто модная хуита без какой-то реальной пользы.
Аноним 15/09/25 Пнд 16:39:05 3541738 39
>>3541715
Точно, решение проблемы 10к. А эти неблокриующие алгоритмы, их и только их можно использовать например в корутинах. Типа блокировка все разрушит. Поскольку там своя, крутая асинк блокировка - await. Которая позволяет что-то типа switch-context, но в рамках вм.
Так, а реактивщина тут тогда что?
Аноним 15/09/25 Пнд 17:38:30 3541792 40
>>3541652
>А че, все non-blocking алгосы...

А где речь шла о неблокирующих алгоритмах?
Аноним 16/09/25 Втр 16:05:43 3542393 41
Аноним 16/09/25 Втр 23:06:47 3542686 42
>>3540797
Пиздец, этот фрик ещё и лекции ведёт, я хуею
Аноним 17/09/25 Срд 11:01:03 3542829 43
>>3542686
А что тебя смущает? Любой может предложить в вузах лекции читать как подработку, у нас так несколько предметов читали около 10 лет назад.
Аноним 17/09/25 Срд 21:21:32 3543511 44
Хочу написать свой простой бэкэнд клона твиттера с микросервисами. Тут подошел бы и монолит, но сейчас модно делать микросервисы.
Как можно спроектировать систему?
Я хочу сделать так. Будет центральный сервис для работы с твитами, там follow, лайки. Микросервис авторизации с jwt токенами. Микросервис мультимедиа для работы с картинками (например, аватарки пользователей). У каждого микросервиса своя база данных, как утверждается в одном микросервисном паттерне. Через очередь RabbitMQ информация о пользователях и картинках переходит в центральный микросервис, так как надо связать твиты с юзерами и реализовать follow.

Пойдет такая система? Как можно улучшить?

Фреймворк для работы с БД будет, наверное, spring data jpa, а не MyBatis, потому что будут простые сущности со связями

Тут будет сложно, потому что доступ к ресурсам (картинки) должен быть при помощи jwt токена (только для авторизованных пользователей) и надо, чтобы сервис авторизации выдавал токены, которые может проверять другой сервис
Аноним 17/09/25 Срд 21:32:13 3543524 45
>>3543511
Два вопроса:
1) Нахуя?
2) Почему не спросишь чатжпт, он очень хорош для проработки сисдизайна
Аноним 17/09/25 Срд 21:37:31 3543532 46
>>3543511
>Микросервис авторизации
Есть готовые.
>Микросервис мультимедиа
Также есть готовые. Зачем писать аналог amazon s3?
>Через очередь RabbitMQ
Зачем здеся очередь?
Аноним 17/09/25 Срд 21:59:13 3543551 47
image.png 28Кб, 799x556
799x556
>>3540172
>>3540176
Короче чекнул я эту блокировку доменов жидбрейнсов. Енто дает возможность впихивать любой ключ, который был отозван после его выпуска. Таким образом можно использовать поюзанные юзерами ключи, но ограничение в том, что их надо будет искать каждый раз где-то. Т.е. должен быть человек, который их купил и слил соответсвенно. Не очень удобная хуйня.

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

Я еще думал сделать вайт лист по доменам, но лишь понял что я пиздец не шарю в теории сетей. Это 7 лвл по сути, ты можешь ресолв днса заблочить, но если ты уже знаешь ip до домена, то на 3 уровне нет блокировки. И пакетик легко пролетит.
И вот тут хуй знает как фильтровать, типа че распаковывать пакет вплоть до http и смотреть че там в хедере? Но тебе даст? В итоге забил, проще белые ip сделать, чем велосипед уровня ркн писать.
Вот - https://pastebin.com/gWVakps4

И решил знания по сетям подтянуть, хз зачем, это зона девопсинга, но мне интересно чет стало.
В итоге пару сайтов неплохих нашел, мб кому-то тоже интересно будет.
http://www.tcpipguide.com/
http://linux-ip.net/
Аноним 17/09/25 Срд 22:02:13 3543552 48
>>3543551
Лол, меня пастебин блокнул. Бывает же. Ну и хуй с ним.
В общем-то линки малваря, плюс полезные +-

# https://msucharski.eu/posts/application-isolation-nixos-containers/
# https://gist.github.com/nort3x/dde6757cb630afe052331e04ca1ab79e
# https://gist.github.com/PathumRathnayaka/c8179784a89d4011d19099bf06813e68
# https://boommanpro.cn/post/ja-netfilter

# Ключи до 2099 года
# https://ckey.run/

# Быстрая активация линух
# curl -sSL ckey.run | bash
# Винда
# irm https://ckey.run/ | iex

# source code malware
# https://github.com/neKamita/ToolBox-Activator/
# https://gitee.com/ja-netfilter/ja-netfilter/
# https://gitee.com/ja-netfilter/plugin-native
# https://gitee.com/ja-netfilter/plugin-dns
# https://gitee.com/ja-netfilter/plugin-power
# https://gitee.com/ja-netfilter/plugin-url
# https://gitee.com/ja-netfilter/plugin-hideme
Аноним 18/09/25 Чтв 01:10:04 3543715 49
Всё, что ниже 25 теперь официально легаси-помойка
Аноним 18/09/25 Чтв 07:25:28 3543753 50
>>3543551
Кого в вайтлист закинул? Я думаю айпишники мавена и гита туда запихнуть, как-будто больше никто и не нужен.
Аноним 18/09/25 Чтв 12:19:52 3543859 51
>>3543753
8.8.8.8 еще. Да и не факт что у таких больших сайтов ip один.

Я думал еще попробовать впихнуть небольшой сервер, aka nginx, который сидел бы на https://plugins.jetbrains.com/ и преобразовывал бы все обращения к себе в обращения в https://downloads.marketplace.jetbrains.com/ при условии, что спереди есть file, иначе просто обращался бы к внешнему plugin.
Тяк можно будет без впнов качать плагины прям внутри жидеи. Ну по идее.
Аноним 18/09/25 Чтв 12:45:40 3543873 52
Аноним 18/09/25 Чтв 12:50:30 3543875 53
>>3543873
У тебя в браузере защита стоит значит, что мол раз https, я работать не буду. Нахера на таких сайтах тебе https, я хз.
Аноним 18/09/25 Чтв 13:55:38 3543895 54
>>3543859
В идее можно указать прокси. Если он применяется для всех вызовов, в том числе и проверок лицензии что маловероятно можно все сделать через него.
Аноним 18/09/25 Чтв 16:42:44 3543990 55
>>3543895
А зачем собственно, если у меня ide в контейнере? Я могу на уровне ос настроить. Да и даже без контейнера как-то спокойнее/надежнее на уровне ос все сделать, чем доверять уровню приложений.
У меня больше сомнений вызывает, а будет ли это работать и как лучше организовать все енти редиректы. Плюс сертификаты для https надо бы сделать.
Аноним 18/09/25 Чтв 19:22:05 3544058 56
>>3543511
>Тут подошел бы и монолит, но сейчас модно делать микросервисы.

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

>Пойдет такая система? Как можно улучшить?

Тебе никто адекватно не ответит.

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

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

А между тем правильность архитектуры именно от таких вещей на практике и зависит. Пропускная способность. Футпринт. Количество девяток аптайма. Стоимость обслуживания, сопровождения. Вот это вот все.

Вот и думай.
Аноним 21/09/25 Вск 04:24:50 3545916 57
17580656422341.png 641Кб, 1066x1454
1066x1454
В силу обстоятельств перекатываюсь с C# на джаву. На руках есть крупный бекендовый проект, который требуют взять в поддержку. Есть вопросы

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

Почему так много xml-кода и аннотаций? Нельзя что-ли на джаве писать?

Есть шансы, что checked exceptions исправят или хотя бы введут структуры на стеке?

Есть шансы, что async/await завезут? На каждый http вызов гору кода писать надо?

Как устроены дженерики? Что такое стирание типов?

Нахуя вы транзакции открываете интерцептерами? Вы совсем ебанулись?

Это норм, что половина кода на джаве, а половина ка котлине? Как собирать проект правильно, у меня собирается градлом, затем надо другую часть собирать мавеном
Аноним 21/09/25 Вск 07:33:08 3545962 58
>>3545916
Скинь эти вопросы тому кто требует, он тебя обратно в петушарпик к шарподебилам отправит
Аноним 21/09/25 Вск 16:21:13 3546296 59
>>3541519
>На бэке есть реактивная популярная либа Reactor, которая тесно связана с Spring WebFlux, но проектов, где такое используется очень мало.
>Рациональнее такое учить только тогда, когда попадешь на такой проект.
Я полтора года работал на проекте с вебфлаксом, и вообще ничего про рекативщину не изучал. Просто оборачивал ответы сервиса в Mono и хуй с ним.
Аноним 21/09/25 Вск 17:12:04 3546344 60
Аноним 22/09/25 Пнд 03:42:16 3546681 61
Решил перекатиться в жабу. Это просто пиздец. Нахуя вам 100 систем сборки, каждя из которых работает через одно место? В этом даже разобраться невозможно
Аноним 22/09/25 Пнд 03:50:52 3546682 62
>>3546681
А иначе как зарабатывать на издании книг и чтении лекций?
Аноним 22/09/25 Пнд 04:34:48 3546688 63
>>3545962
>Скинь эти вопросы тому кто требует, он тебя обратно в петушарпик к шарподебилам отправит

Скорее всего придётся так и сделать. Просто перепишем на сишарп, спасибо
Аноним 22/09/25 Пнд 06:02:51 3546700 64
image.png 104Кб, 1506x631
1506x631
>>3545916
>>3546681
Так и быть, раскрою карты - вся эта сложность и нелогичность жава-экосистемы создана абсолютно искусственная. На жабе пишут серьезный банковский софт и чтобы откровенные дебилы не смогли попасть в компанию и набедокурить придумали спринги, грэдлы и прочие XML-конфигурации. Глупо было бы думать, что это всё нужно для написания типичных микрачей с rest-ручками, записью в бд и пуками в кафку. В середине 10-х пытались даже сделать ещё более жесткую фильтрацию внедряя Scala, но эпидемия ковида оказала серьезное воздействие на ментальные способности населения и пришлось возвращаться обратно на джаву.
Аноним 22/09/25 Пнд 07:43:39 3546722 65
>>3546700
>На жабе пишут серьезный банковский софт

На жабе когда-то писали серьезный банковский софт
Аноним 22/09/25 Пнд 08:10:06 3546728 66
>>3546700
Хз, Джереми писал, что если каждый десятый проект переписывают с джавы на сишарп, то обратного пути уже нет.

А там по сути только нугет лучше и сборочная система простая как палка. Всё остальное примерно то же самое
Аноним 22/09/25 Пнд 08:26:48 3546731 67
>>3546681
>Нахуя вам 100 систем сборки
Мавен, градл. Из которых мавен используется гораздо чаще. Откуда 100-то?
Аноним 22/09/25 Пнд 08:59:54 3546752 68
>>3546731
Оттуда, что разные проекты нужно собирать разными версиями гредла.

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

У меня докерфайл на 1000 с лишним строк, отладка только в кубере. Эту ебанину локально никто уже лет 5 не запускал, только сталагмиты наросьают
Аноним 22/09/25 Пнд 09:05:55 3546758 69
>>3546752
На каждом проекте свой набор скриптов сборки. Только дурачок может надеяться на волшебный карго или мсбилд.
Аноним 22/09/25 Пнд 09:28:38 3546767 70
>>3546752
Легаси какое-то ебаное? Что держит людей на таких проектах, деньги?
Аноним 22/09/25 Пнд 09:32:40 3546770 71
>>3546752
Технически, это все еще одна система сборки. Просто в очередной раз кто-то все переусложнил, это не вина градла, а вина разрабов. Ровно также можно нахуевертить и на шарпе и где угодно еще.
Аноним 22/09/25 Пнд 09:59:01 3546795 72
>>3546767
>Легаси какое-то ебаное?
вроде нет, просто у нас разные проекты на разных версиях котлина, некоторые обновить невозможно. Поэтому весь котлин собирается своими скриптами.

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

>>3546700

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

Я хуй знает,
Аноним 22/09/25 Пнд 10:03:41 3546803 73
>>3546722
Напиши в револют, они об этом не в курсе
Аноним 22/09/25 Пнд 13:00:42 3547048 74
Ураа, я официально шизик - f60.1. Надеюсь вы тоже этому рады.
Аноним 22/09/25 Пнд 13:18:57 3547066 75
>>3546728
>Джереми писал, что если каждый десятый проект переписывают с джавы на сишарп, то обратного пути уже нет.
Доказательств этого, как обычно, никто не привёл.
Аноним 22/09/25 Пнд 13:19:32 3547067 76
>>3546728
>Джереми писал, что если каждый десятый проект переписывают с джавы на сишарп, то обратного пути уже нет.
Доказательств этого, как обычно, никто не привёл.
Аноним 22/09/25 Пнд 13:21:56 3547072 77
>>3546803
А почему потерли пост с вакансиями из революта? Они не нанимают шарпистов, если что
Аноним 22/09/25 Пнд 16:33:49 3547221 78
Что не так с джавой? Почему ее здесь так хуесосят? Это один из немногих вменяемых языков на самом деле

мимо писал на крестах, питоне, джсе, го и паскаль
Аноним 22/09/25 Пнд 19:55:34 3547303 79
>>3546700

Проебался букувально во всех инсайдах, анон.

>чтобы откровенные дебилы не смогли попасть в компанию и набедокурить придумали спринги, грэдлы и прочие XML-конфигурации

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

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

А че уж не на джаваскрипт, лол?

Скала сдохла по очень простой причине - потому что вышла тройка, несовместимая с двойкой. Все. Примерно с выходом тройки весь публичный дискус вокруг скалы и сходит на ноль. Такой трюк мог прокатить с питоном 15 лет назад, у которого порог входа ниже плинтуса. Но не с функциональным языком, которому дали небольшой шанс войти в кровавый энтерпрайз, и который этот шанс проебал.
Аноним 22/09/25 Пнд 20:05:08 3547309 80
>>3547303
>и который этот шанс проебал.
И это очень грустно. Благо вроде жаба движется в сторону фп, не все потеряно, возможно.
Аноним 23/09/25 Втр 03:27:06 3547516 81
>>3547303
>Но не с функциональным языком, которому дали небольшой шанс войти в кровавый энтерпрайз, и который этот шанс проебал.

Не совсем. В кровавый интерпрайз вошёл f#. Он не такой категоричный, там ненавязчивое ФП и современный рантайм с нугетом.

А скала просто оказалась невостребованной
Аноним 23/09/25 Втр 07:21:21 3547549 82
>>3547516
Никуда он не вошёл, это совершенно мёртвое поделие.
Аноним 23/09/25 Втр 14:28:06 3547895 83
>>3547549
Игнорируй шарпомуху.
Аноним 23/09/25 Втр 19:25:41 3548219 84
>>3547516
Какой нах ф-шарп... Окстись, шарпей, в каждой жопе затычка. На скалу хоть немного, но вакансии были. На эту поделку вакансий никогда не было и нет по сей день, хоть сам язык и неплох.
Аноним 23/09/25 Втр 19:29:27 3548220 85
>>3547309
Все движется в сторону ФП. В сторону ФП следовало двигаться еще в нулевых, когда многопоточка стала мейнстримом. Но хули делать - инертность и необучаемость самой прогрессивной профессии на свете, которая вдовесок требует от своих специалистов быстрой и постоянной переобучаемости, не знает дна.
Аноним 23/09/25 Втр 19:47:39 3548228 86
>>3548220
Я думал это в основном потому, что фич именно для ооп особо-то и не придумаешь: часть недоступна из-за идеологии, а часть из-за обратной совместимости, другая очень сложно внедряется. А вот фп целая парадигма, которую можно потихоньку подпиливать и себе внедрять.
Просто странно считать, что фп прям во всем лучше ооп и последнее просто тупиковая ветвь развития.
Аноним 23/09/25 Втр 20:42:54 3548257 87
>>3548220
Оно начало двигаться еще до твоего рождения, да все никак. Единственную полезную фичу из ФП - замыкания - давно реализовали во всех языках, остальное дрочение никому не нужно.
Аноним 23/09/25 Втр 20:45:03 3548259 88
>>3548228

>часть недоступна из-за идеологии

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

Дело даже не в ФП и ООП. Холивар ФП/ООП просто всем привычен, потому что парадигмы на слуху. ИМХО, этот холивар - просто частный случай более общего холивара - "императивное vs декларативное программирование". И общий холивар ИМХО гораздо интереснее частного.

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

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

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

Сам этот холивар туп по своей форме. Разница меж ФП и ООП на самом деле лишь в том, что используется в качестве first-class citizen. Все. Остальное - лирика и реалии на местах.

Что же касается более общего холивара - всю дорогу разработка двигалась в сторону все более и более высокоуровневых подходов. От ассемблера к фортрану и си, от сей к плюсам, от плюсов к джаве, и даже в джаве превалируеит спринг, который, хоть и тяжело язык повернуть чтоб назвать его так, но декларативен. Декларативка - это просто следующий шаг в этой эволюции. Все само туда придет рано или поздно.
Аноним 23/09/25 Втр 20:48:12 3548264 89
>>3548259
>джун прочитал обложку SICP
Аноним 23/09/25 Втр 20:57:40 3548273 90
>>3548259
>Да кого когда либо волновала идеология
Ну архитекторов джавы. У них очень много решений именно на основе идеалогии. Типа нет перегрузки операторов, нет именнованных параметров и тд и тп. Да даже сама вот эта всепронизывающая обратная совместимость часть идеологии жабы. Ты не прав, я хуй знает, но мне кажется если ты почитаешь пару жепов и последишь хотя бы за развитием языка, то станет понятно, что там очень много вот таких вот решений.
>ту же проблему решают на порядки проще
Ты хоть знаешь как именно они её решают? Ну просто IO её скидывают и все. А там все та же мемори модель и прочее. Гениальное решение, ничего не скажешь.
Ну может как с parallel стримами ты можешь распаралелить чистые функции ну и проблему 10к решить.
>всю дорогу разработка двигалась в сторону все более и более высокоуровневых подходов.
Я не знаю, если смотреть в историю, то фп родилось примерно тогда же, когда появилась машина тьюринга. Тут нет развития, что мол вот, эта следующая ступень или что-то подобное. Фп всегда было просто паралельным путем.
Аноним 23/09/25 Втр 21:32:32 3548313 91
>>3548273
>Типа нет перегрузки операторов, нет именнованных параметров и тд и тп

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

>Ну просто IO её скидывают и все. А там все та же мемори модель и прочее.

Пиздец ты душный. А ты каких чудес то ожидал?

Ну расскажи как ты бы делал, раз тебе такое неинтересно.

>Ну может как с parallel стримами ты можешь распаралелить чистые функции ну и проблему 10к решить.

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

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

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

Разделяй кровавый энтерпрайз и науку. Так то и многопоточка появилась задолго до нулевых. Просто она особо не нужна была никому до появления многоядерных процов.
Аноним 23/09/25 Втр 22:00:43 3548333 92
>>3548313
>не захотели хлебать его дальше в джаве
Это и есть идеология. Что вот, наша жавочка не потерпит эти ваши старые практики. Но и новые тоже, хуй вам, а не сахар.
>А ты каких чудес то ожидал?
Нет, ты просто так вкусно описываешь, что вот, в фп такииие решения. Что диву даешься, смотришь как там на деле, ну литерали жаба, только структурного канкаренси нет в жабке пока еще. А если еще посмотреть на историю, то JMM и вовсе самая первая из подобных моделей, получается жаба впереди всех вообще в этом плане. Невероятно.
> никогда не было проблемой для разраба
Если бы еще абстракции не протекали...
>Разделяй кровавый энтерпрайз и науку.
имхо, фп практически нет в энтерпрайзе. Зато вот именно оно двигает науку, по всяким теориям типов и прочей поеботе, которую потом языки типа жабы забирают себе как готовое решение.
Аноним 24/09/25 Срд 00:06:51 3548377 93
>>3548333

>Это и есть идеология

Хера притянул за уши. Ты б еще Гойца фашистом обозвал. Жесть.

>Но и новые тоже, хуй вам, а не сахар.

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

>Если бы еще абстракции не протекали...

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

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

Теперь тебя куда то в идеологию повело - капиталистическую пропаганду вон начал цитировать. Ты уж определись - мы что обсуждаем то? Идеологию, историю, или парадигмы?
Аноним 24/09/25 Срд 00:20:59 3548381 94
>>3548377
>фашистом обозвал. Жесть.
Эээ, ну может неудачный подбор термина, ну я думаю ты понял, что я имел ввиду.
>И к чему это было?
А ты ну.. Писал когда-нибудь на фп языке-то? Вот допустим возьмем самый абстрактный из абстрактных. Я вот когда еще начинал пробовать делать на нем всякое обнаружил интересную вещь - я не могу оценить насколько перфомансен мой код. Я даже больше скажу, я не могу сказать, а вот это вот чудо вообще tailrec для ghc или нет? И вот знаешь как именно оценивается производительность в хаскелле и как именно оптимизируются программы? Правильно, заходим в гит ghc и смотрим исходники компилятора и вот под него и его оптимизации пишем программы, если нам нужен перфоманс. Более того, из-за ленивости там обнаруживаются проблемы с thunk. Тоже та еще поебота, которую приходится решать черти как и очень, очень трудно отслеживать.
Так вот, мы говорим про область, которая доавляют в это еще больше пиздеца - многопоточку. Она существует исключительно ради перфоманса. Я просто блять не представляю, как ты будешь оценивать вот все это абстрактное чудо, если когда-нибудь будешь писать. Но да, абстракции в фп не протекают, главное в это верить, броу.
>капиталистическую пропаганду
Не понял.
>чего тебе еще надо
Я просто констатирую факт, что не завозят фичи не только потому, что они устарели, но и новые в том числе, что мол они временем не проверены, а вот это будет костылем и вообще у нас есть более заебатое общее решение (как было с интерполяцией строк), поэтому ждите.
Аноним 24/09/25 Срд 02:19:02 3548405 95
>>3548219
>Какой нах ф-шарп

Ну мы его в основном для скриптов используем и если надо накидать прототип. Удобно, что собирается тем же компилятором и не надо ебаться с градлом и прочей поеботой
Аноним 24/09/25 Срд 17:08:44 3548781 96
>>3548381
>Вот допустим возьмем самый абстрактный из абстрактных. Я вот когда еще начинал пробовать делать на нем всякое обнаружил интересную вещь - я не могу оценить насколько перфомансен мой код.

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

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

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

>Я просто блять не представляю, как ты будешь оценивать вот все это абстрактное чудо, если когда-нибудь будешь писать.

Твои проблемы. На меня то че пенять?

>Я просто констатирую факт, что не завозят фичи не только потому, что они устарели, но и новые в том числе

Да расслабься уже. Я почти на 100% уверен что в конечном итоге вы выклянчите у гойца эти многострадальные операторы. Завез же он питоняшам короткий мейн, в конце концов. Станете ли вы после этого меньше ныть и бугуртить? Скорее всего нет.
Аноним 25/09/25 Чтв 02:24:02 3549223 97
>>3547895
Я сам шарпомуха. Я уже шесть работ сменил с начала карьеры, и нигде не было ни одной строчки на фшарпе. Даже, прости г-ди, вижуал бейсик встречался, а фшарпа нигде не было совсем.
Аноним 25/09/25 Чтв 02:47:39 3549225 98
>>3549223
Хз, у меня легаси монолит на спринге и микросервисы на c#. Всякая мелочевка, скрипты на f# написана.

Намеренно питон не используется нигде, чтобы это говно ни через какие щели не просочилось
Аноним 25/09/25 Чтв 03:12:10 3549233 99
>>3548273
>>Да кого когда либо волновала идеология
>Ну архитекторов джавы. У них очень много решений именно на основе идеалогии. Типа нет перегрузки операторов, нет именнованных параметров и тд и тп.
Так тут вопрос двое не в перегрузке операторов, а вообще в их определении. Почему я могу через плюс сложить два числа, а две матрицы не могу?
Это тупо, нельзя ставить идеологию во главу угла.
Именованные параметры вообще по идее должны быть идеологически одним из столпов ООП, ведь методы это не функции, где аргументы порядком определяются, это вызов команды с данными, а данные сами как объект. У объекта же нет порядка полей и методов.
Аноним 25/09/25 Чтв 05:15:04 3549281 100
>>3549233
>Почему я могу через плюс сложить два числа, а две матрицы не могу?

На сишарпе можешь
Аноним 25/09/25 Чтв 05:17:50 3549282 101
>>3549233
>
>Так тут вопрос двое не в перегрузке операторов, а вообще в их определении.

Потому что джава это в первую очередь ООП и DDD. Операторы это статика. Статика запрещена на всех нормальных проектах.
Аноним 25/09/25 Чтв 07:31:42 3549334 102
>>3549281
Адекватный лид такое говно не пропустит на ревью. А плюс б - это всегда сложение двух чисел и только, ты читаешь код и сразу понимаешь, что происходит. В плюсах наелись этих ебаных операторов, хватит. По этой же причине в сишарпе нет макросов, чтобы малолетние долбоебы не высирали свой синтаксис.
Аноним 25/09/25 Чтв 07:33:30 3549336 103
>>3549281
Спасибо, я в курсе.

>>3549282
Ну так и не вводили бы статические классы и методы. Что за полумеры?
Аноним 25/09/25 Чтв 07:41:06 3549339 104
>>3549233
Насколько я понимаю, они не хотят вводить слишком инвазивные и общие решения, которые радикально изменят кодовые базы. Типа вот начнут использовать тот же оператор сдвига для in/out https://en.cppreference.com/w/cpp/io/cout.html и все, конец света случится. И поэтому они вот пишут ( https://openjdk.org/jeps/401 ):
>In the future, this programming model will support new Java Platform APIs, such as classes that encode different kinds of integers and floating-point values, and new Java language features, such as user-defined conversions and mathematical operators for domain values.
Но также, они не хотят вводить решения, которые слишком костыльные и не вписываются в существующую кодовую базу, а также решающие всего одну задачу, т.е. ad-hoc или сахар иными словами. Вот например ( https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html ):
>In the course of using this feature in the `jextract` project, we did learn quite a few things we didn’t already know, and this was conclusive enough that it has motivated us to adjust our approach in this feature. Specifically, the role of processors is “outsized” to the value they offer, and, after further exploration, we now believe it is possible to achieve the goals of the feature without an explicit “processor” abstraction at all! This is a very positive development.
Воот, как-то так.
>>3548781
Ну я хз, по моему тот же sql проще оптимизировать, чем фп языки.
>вы выклянчите
Он же не сидит итт, не думаю.
Аноним 25/09/25 Чтв 07:53:44 3549340 105
>>3549334
>Адекватный лид такое говно не пропустит на ревью.
На джаве не пропустит, конечно. Это будет ошибка компиляции, азаза.
>А плюс б - это всегда сложение двух чисел и только,
А строк? Напомню, в математике есть операция сложения строк, только она означает "или", а конкатенация — это умножение.
>ты читаешь код и сразу понимаешь, что происходит.
Ох ты ж блин, у тебя как будто у разных классов не бывает методов с одним и тем же названием. Просто делай сложение для типов, для которых очевидно, что оно означает.
> В плюсах наелись этих ебаных операторов, хватит.
Я больше 12 лет пишу на шарпе, и только один раз видел ебанутое использование операторов — в клиенте эластик сёрча. Всё. Зато неподдерживаемый говнокод без каких-либо перегрузок операторов я встречаю регулярно. Ну реально, ради качества кода нужно было запрещать совсем другие вещи.
> По этой же причине в сишарпе нет макросов, чтобы малолетние долбоебы не высирали свой синтаксис.
Блин, там опенсорсный компилятор. Форкаешь и перехуячиваешь синтаксис. Да и инструментов кодогенерации в дотнете полно. Можно просто полный пиздец наворотить прям в рантайме, и кстати, один такой пример я видел.
Аноним 25/09/25 Чтв 08:00:57 3549343 106
>>3549339
>слишком инвазивные
Ну кстати еще поэтому они часто пишут, что is not goal заменить какую-то старую залупу.
Аноним 25/09/25 Чтв 08:01:16 3549344 107
>>3549340
Ты 12 лет пишешь на сишарпе и не знаешь, что строки надо складывать через StringBuilder? Ты из епама, что ли?

>Просто делай сложение для типов, для которых очевидно, что оно означает.
А потом получается джаваскрипт, где тоже все "очевидно".
Аноним 25/09/25 Чтв 08:08:40 3549345 108
>>3549344
>Ты 12 лет пишешь на сишарпе и не знаешь, что строки надо складывать через StringBuilder? Ты из епама, что ли?
Две строки быстрее и эффективнее складывать через плюс.
>>Просто делай сложение для типов, для которых очевидно, что оно означает.
>А потом получается джаваскрипт, где тоже все "очевидно".
Нет, не получается. Ещё раз повторю, что дурацкое использование операторов я видел только один раз, во всех остальных случаях значение использования всех операторов было совершенно очевидным. Никто не делает оператор умножения массива интов и булеана.
Аноним 25/09/25 Чтв 08:22:55 3549346 109
>>3549336
>то за полумеры?

Джава вообще как говно спроектирована, я хз, кто ей в 2025 году пользуется.
Аноним 25/09/25 Чтв 08:25:46 3549348 110
>>3549334
>Адекватный лид такое говно не пропустит на ревью

Задрот такое говно не пропустит на ревью.
Аноним 25/09/25 Чтв 08:26:48 3549349 111
>>3549340
>Просто делай сложение для типов, для которых очевидно, что оно означает.

Для матриц, например
Аноним 25/09/25 Чтв 08:28:30 3549350 112
>>3549345
>Никто не делает оператор умножения массива интов и булеана.
Умножить вектор на скаляр - это валидная операция, кастануть булеан к инту 0/1 тоже, как и инт к булеану в ифах. Ну а че удобно же. В итоге получается джаваскрипт, где a + b может давать что угодно.
Аноним 25/09/25 Чтв 08:39:37 3549352 113
>>3549350
Слушай, а почему для конкатенации строк и сложения примитивов используется один и тот же оператор? Будь последовательным и введи для конкатенации например ++. Как тебе идея?
Аноним 25/09/25 Чтв 09:59:30 3549370 114
>>3549339
>Ну я хз, по моему тот же sql проще оптимизировать, чем фп языки.

Тем временем SQL - на минуточку - декларативный.
Аноним 25/09/25 Чтв 12:06:46 3549534 115
>>3549345
>Никто не делает оператор умножения массива интов и булеана.

Ты не поверишь
Аноним 26/09/25 Птн 00:22:44 3550120 116
image.png 76Кб, 857x152
857x152
Ну и хуйня! Почему на Comparable не завязали операции сравнения?
Аноним 26/09/25 Птн 04:27:42 3550160 117
>>3550120
>Почему на Comparable не завязали операции сравнения?

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

Долбоёбы джависты, не могут отдельные методы писать, им обязательно захуевертить всё в интерфейс Invokable, ValueProvider, Mapper, Mediator, и прочую поеботу, чтобы потом умного из себя строить
Аноним 26/09/25 Птн 07:16:07 3550181 118
>>3549350
>>Никто не делает оператор умножения массива интов и булеана.
>Умножить вектор на скаляр - это валидная операция,
Да. Но вот произведения векторов уже два, поэтому нельзя.
> кастануть булеан к инту 0/1 тоже, как и инт к булеану в ифах.
Нет. Нельзя имплицитно конвертировать булеаны в числа и обратно. Это принципиально разные типы.
> Ну а че удобно же. В итоге получается джаваскрипт, где a + b может давать что угодно.
Проблема джаваскрипта как раз в неявной конвертации всего во всё по не очень корректным правилам. Такое разрешать нельзя. Ну или надо как в перле, где конкатенация строк через точку, а сложение как раз только для чисел. Хотя нет, не надо.
Аноним 26/09/25 Птн 08:32:05 3550200 119
>>3550120
А там где ты это нашел разве не написано?
Наверняка там какая-нибудь чушь, про то, что воот в comarable возможно 0, поэтому это poset, а вот наш ordered - это total order. Совершенно другое.
Аноним 26/09/25 Птн 16:34:34 3550734 120
Screenshot From[...].png 9Кб, 388x94
388x94
Screenshot From[...].png 1Кб, 257x60
257x60
>>3550160
>чтобы потом умного из себя строить

Каво? Чего несет? Где этот двачер нашел тело, всерьез хайпующего по интерфейсам времен нулевых... Непонятна.

Сам выдумал, наверное.
Аноним 28/09/25 Вск 14:20:02 3551898 121
>>3540531
Плюсую. Утилитные классы - говно. Экстеншены нужно делать. Даже в Java это можно сделать красиво (гугли Manifold на гитхабе).
Аноним 28/09/25 Вск 14:22:08 3551900 122
>>3541078
как будто что то плохое лол.
в функциональных яп так по дефолту ало.
иммутабельность по дефолту - благо
Аноним 28/09/25 Вск 14:24:42 3551904 123
>>3541519
А теперь следи за руками - почему на эти корутины всем пох
Кто работал на большом проекте с реактивщиной, тот знает, что это неподдерживаемое говно становится - его нельзя читать, его нельзя расширять, его нельзя дебажить, и сколько туда народу не вкидывай, он только хуже становится. Но тут происходит самое интересное - реактивщина не нужна в 99,999% проектов. Смысл ее появления был в том, что мы не могли масштабироваться и надо было выжимать максимум ресурсов из многоядерного проца (что и происходит на мобилах сейчас). Но у нас во-первых есть уже армы по 200 ядер и во-вторых горизонтально масштабироваться с балансерами можно как угодно. Да, 100 concurrent потоков не вытянет дохлый сервак, но ты одной кнопкой делаешь 10 серваков по 10 потоков и не ебешь себе мозги этими колбеками. Если прям очень надо, то теперь у тебя есть вирутальные потоки - сурпрайз сурпрайз, почему его сделали обычным императивным кодом
Аноним 28/09/25 Вск 14:52:34 3551917 124
>>3551904
Виртуальные треды тоже надо уметь готовить, как и корутины.
Если ни кому не нужен перформанс, почему сейчас го на лютом хайпе, там горутины и nio из коробки
Аноним 28/09/25 Вск 14:54:22 3551919 125
>>3551917
они и на го не нужны. см пост выше. проще отскейлить инстанс.
Аноним 28/09/25 Вск 15:01:58 3551924 126
>>3551919
Мм, твое мнение имеет место быть, только во всех бигкеках, где я работал, выбить доп ресурсы себе - это пиздец огромная задача на месяцы.
Потому что когда у тебя один твой пет проект, то изи поднять хоть 10 сервисов, это копейки.
А когда у тебя десятки тысяч сервисов и у каждой команды майндсет, как у тебя, то это выйдет в круглую сумму.
Бизнес умеет считать деньги получше тебя.
Плюс железки щас подорожали из-за параллельного импорта и всех этих приколов.
Аноним 28/09/25 Вск 17:17:06 3552063 127
>>3551924
1. написать толковый код с многопоточкой, потом отревьюить, потом оттестировать - на это времени больше уйдёт и соответственно обойдётся дороже
2. по деньгам будет однохуйственно т.к. тарифицируется утилизация cpu. если один инстанс будет усираться на 100% и 10 на 10% то это плюс минус одни и те же деньги
Аноним 28/09/25 Вск 20:00:30 3552183 128
>>3552063
Ты самый умный, а вокруг дураки и ничего не понимают, проходили.

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

Сейчас асинхронщина с помощью корутин и горутин пишется очень просто, можно даже не вникать, как работает под капотом и всё будет работать четко, поэтому го и на хайпе - нанимаешь 1000 мидлов и они пишут максимально примитивный код, который ебет по перформансу блокирующие скуфоджава решения в очко, при этом нет лапши из реактивных операторов
Аноним 28/09/25 Вск 20:08:17 3552189 129
>>3552183
реплики (инстансы) регулируются не деплоем, а в кубере на раз с помощью какой-нибудь хуйни.

ну у нас как вот - ночью нагрузка околонулевая - один инстанс. в 9 часов утра - штук 15. автоматом скейлится горизонтально. всё наглядно, всё видно охуенно даже самому тупому девопсу.
а вот запрограммировать такую логику на гошечке конечно можно, но оно не будет так наглядно да и тестировать сложновато.
Аноним 28/09/25 Вск 21:12:55 3552217 130
>>3552189
Кубер - это и есть система деплоя.
Понятное дело, что всё настраивается какими-то чартами.
Больше инстансов - больше работы для системы деплоя (мониторинг, дискавери и т.д.)
Вот сейчас у вас в час пик поднимается 15 инстансов с блокирующим подходом.
С неблокирующим подходом вам бы условно хватило 3-5.
А если бы у вас был голый пхп, где каждый хттп реквест - это не просто отдельный поток, но и отдельный процесс, то думай сам.
Вот в чём и вся разница.
Хз с чем ты споришь, это очевидные вещи.

Понятное дело, что переписывать на корутины или вообще на го нет особого смысла, если бизнес все устраивает.
На го переписывали как раз таки пхп проекты
Аноним 28/09/25 Вск 21:23:55 3552223 131
>>3551900
Я и не писал, что это плохо.
Аноним 28/09/25 Вск 22:30:03 3552264 132
>>3552217
Браток, у нас Quarkus, у нас всё летает.
Поднималось бы 3-5 на горутинах (корутинах), но какой ценой? У нас многопоточка внутри инстанса + разные инстансы. Получается 2 уровня вложенности, если можно так сказать. Обычной девопсине это слишком сложно будет такое, да и типовому крудошлёпу тоже будет сложно такое поддерживать.

Ну это ИМХО всё конечно, пока консенсус у нас такой. Твоё мнение тоже уважаю.
Аноним 29/09/25 Пнд 02:22:01 3552335 133
>>3552183
>максимально примитивный код, который ебет по перформансу блокирующие скуфоджава решения в очко
Это в теории. А на практике эти твои мидлы накрутили опыт и насрали горутинами так, что сервер надо рестартовать раз в сутки, а то память утекает нахуй. В итоге код на блокирующих вызовах работает быстрее, потому что ядро писали не дураки.
Аноним 29/09/25 Пнд 03:19:29 3552339 134
>>3541306

просто возьми c# и пиши async/await
Аноним 29/09/25 Пнд 04:21:30 3552341 135
>>3552339
Если бы всё было так просто. С эвейтами можно тоже очень серьёзно напортачить.
Аноним 29/09/25 Пнд 05:09:46 3552347 136
>>3552341
>С эвейтами можно тоже очень серьёзно напортачить.

практически невозможно. 99% разработчикам даже не надо знать, за счёт чего асинк-авейты работают.

На практике, они просто превращают блокирующий код в неблокирующий.
Аноним 29/09/25 Пнд 06:56:03 3552359 137
>>3552347
Чёт вспомнилось как майки насрали этими асинками и у них калькулятор не работал, лол. https://youtu.be/Z0KvEzgNzDc
Ну главное помнить, что знать ничего не надо, а работает твоё говно или нет, проблема юзера
Аноним 29/09/25 Пнд 08:06:39 3552368 138
image.png 42Кб, 811x660
811x660
>>3552359
>>3552347
И до сих пор спустя кучу лет не работает. Когда тот же desmos без лагов все рисует. Какая же потешная хуйня этот шарп ваш.
Аноним 29/09/25 Пнд 08:16:29 3552369 139
>>3552359
>этими асинками и у них калькулятор не работал,

на пиздёжь похоже
Аноним 29/09/25 Пнд 08:36:13 3552374 140
>>3552369
Я тоже думал, что это хрень какая-то, но вон проверил. Как он говорил, возможно там в отдельный тред запихивается таска и если она длится больше скажем 10 секунд, то все, делается вывод, что этот график невозможен и финито ля комедия. Вопрос возникает почему же такой по всем бенчмаркам крутой язык рисует график на порядки медленее дефолтного жс? Возможно проблема не в инструментах, а в руках тех, кто ими пользуется, хмхм. Хотя с другой стороны, это те, кто создали этот язык, эту платформу (uwp), кто как не они знают лучше, как им пользоваться?
Аноним 29/09/25 Пнд 17:40:51 3553013 141
>>3552359
Так и знал что зрители петра двачеры
Аноним 01/10/25 Срд 15:26:06 3554477 142
Объясните вперекатуну с не веб стека, имеет ли смысл в 2к25 вообще разбираться в чём-то помимо микросервисов?
Аноним 01/10/25 Срд 15:28:49 3554482 143
>>3554477
В 2к25 вообще ни в чем не имеет смысла разбираться, скоро ядерная война и конец цивилизации.
Аноним 01/10/25 Срд 15:41:28 3554500 144
>>3554482
Ну бля, а если не будет? Тогда просто останешься без знаний.
Аноним 01/10/25 Срд 15:44:32 3554503 145
>>3554500
Кто умножает познания, тот умножает скорбь.
Аноним 01/10/25 Срд 20:06:39 3554671 146
>>3554482
Ядерная война переоценена. Главное в дс не находится и все путем.
Аноним 01/10/25 Срд 20:14:11 3554677 147
>>3554671
Общество в любом случае распадется, просто в ДС на атомы, в других местах на банды.
Аноним 01/10/25 Срд 20:16:12 3554680 148
>>3554677
Тоже нет. Если бы государства так легко можно было уничтожить...
Все будет также как прежде, просто поймут, что байка про ядерку хрень и ядерное сдерживание перестанет действовать.
Аноним 01/10/25 Срд 20:29:31 3554690 149
>>3554477
ну, геймдев это не микросервисы.
по факту просто разбирайся, как деплоить свою хуйню в облаке через какой-нибудь CI, а там и микросервисы поймёшь
Аноним 01/10/25 Срд 23:07:36 3554825 150
>>3554690
В геймдеве не может быть микросервисов?
Аноним 01/10/25 Срд 23:42:27 3554846 151
>>3554671
Наоборот, дс не тронут ну никак) потому что там бабки, и все это понимают, как бы там кто не относился, но торговля идет с Москвой, а дальше уже как то там куда нибудь. Пезнут по какому нибудь приграничью, и то подумают. Паритет работает, и проверять есть ли ядерка ил нет, никто не захочет
Аноним 01/10/25 Срд 23:55:06 3554852 152
>>3554825
Геймдев - это разработка клиента.
Понятное дело, что в геймдеве есть бэкенд, там свои особенности, но это намного ближе к обычному бэкенду
Аноним 02/10/25 Чтв 00:34:18 3554865 153
>>3554503
>>3554482

Таблетки, и свежий воздух.

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

Хоть бы покумекал над контекстом и значением этой фразы, прежде чем подкреплять ей свою депру.
Аноним 02/10/25 Чтв 01:09:46 3554873 154
>>3554865
>Хоть бы покумекал
>Кто умножает познания, тот умножает скорбь.
Аноним 02/10/25 Чтв 15:41:06 3555170 155
Я делаю LRU кэш, у меня есть список объектов в java HashMap, доступ к которым по ключу у меня почти всегда за O(1), так же эти же объекты хранятся в LinkedList, мне нужно взять этот объект из HashMap и передвинуть его с середины LinkedList в начало LinkedList, если бы у меня был самописный LinkedList я бы просто взял и поменял next, но как это сделать во встроенном в java LinkedList?
Аноним 02/10/25 Чтв 19:05:01 3555385 156
>>3555170
Вопрос в том, можешь ли ты добраться до элемента в линкед листе за O(1). Т.е. технически тебе надо было бы хранить в хэшмапе еще линку на ноду, тогда это было бы осуществимо.
Иначе, допустим если бы ты проходился итератором по этому листу, то можно было бы ремовнуть https://docs.oracle.com/javase/8/docs/api/java/util/ListIterator.html#remove-- , а потом добавить вперед элемент.

По моему проще хуй на это забить и использовать банальный ArrayList и хранить индекс. Что ты там сэкономишь на линкед листе не совсем ясно.
Аноним 02/10/25 Чтв 19:12:44 3555390 157
>>3555385
Ты не реализуешь lru с ArrayList, чтобы все операции выполнялись за константу.
Удаление из массива - это линейная операция.
Аноним 02/10/25 Чтв 19:17:12 3555394 158
Аноним 02/10/25 Чтв 19:22:57 3555399 159
>>3555394
>Удаление всегда O(1)
Удали мне элемент из середины массива за константу
>The add operation runs in amortized constant time
Это из-за того, что у тебя удваивается массив, поэтому каждый элемент при удвоении массива ты вставляешь два раза (в старый массив и новый).
То есть вставка n элементов в массив с удвоением = 2*n = O(n)
>LinkedHashSet
Там используется как раз таки двухсвязный список, а не массив
Аноним 02/10/25 Чтв 19:29:12 3555401 160
>>3555399
>Там используется как раз таки двухсвязный список, а не массив
Так подходит или нет?

Я просто думаю, что ты хуйней занимаешься, делать кэши в языке, где есть gc какая-то хрень. Ну переведешь ты объекты из молодого поколения в старое, теперь будет требоваться fullgc и stw. Ну, заебись че.

>Удали мне элемент из середины массива за константу
Ну ладно, ты прав. Думал там в теории, можно как с выколотыми точками, но это что-то к деревьям уже ближе и ребалансировке.
>Это из-за того, что у тебя удваивается массив
Ну и? У тебя он вообще планирует удваиваться-то?
Аноним 02/10/25 Чтв 19:36:21 3555403 161
>>3555401
Да это не я спрашивал, просто ты написал, что можно arraylist использовать в реализации lru кэша, но это не так, я и стригерился
Аноним 02/10/25 Чтв 19:47:48 3555418 162
>>3555403
Хм, ну извени. Люблю тупить в мелочах. А вообще, насколько я помню, в этом LinkedHashMap не только связный список, но и массив есть. Учитывая, что она наследник HashMap..
Аноним 02/10/25 Чтв 20:22:33 3555444 163
>>3555418
Ну массив там как раз таки для реализации обычной хэшмапы, да, но значение - это не просто значение, которое ты туда положил, а нода линкедлиста с after и before указателями и самим значением, ты так и писал
Аноним 02/10/25 Чтв 22:25:05 3555571 164
Посмотрел, как в джэве реализован LinkedHashMap, там есть LinkedHashMap.Entry, который наследуется от HashMap.Node, получается LinkedHashMap.Entry это как бы двумерный связный список, там 3 указателя:
after, before - это для порядка вставки
next - это следующий элемент в рамках бакета
Они решили сэкономить на ссылках и объектах, но из-за этого LinkedHashMap наследуется от HashMap и там прям код жестко связный, хотя LinkedHashMap мог бы просто хранить инстанс HashMap и только управлять связным списком для поддержки порядка вставки
Аноним 02/10/25 Чтв 23:46:48 3555656 165
>>3555571
>и там прям код жестко связный
Тебе-то от этого ни горячо ни холодно должно быть. Ты же не собираешься творить какую-то грязь и лезть в приватные методы..
Аноним 04/10/25 Суб 23:54:38 3556936 166
image.png 354Кб, 1280x720
1280x720
К нам в айти отдел пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные шарпогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Начальник из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал:
- Это же Абстрактная фабрика! На чём ты кодил до этого?
- На Джаве.
- Жабапидор! - в один голос заорали все 20 человек.
- Жабапидор! Жабапидор! Жабапидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать жабапидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Жабапидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и жабапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох жабапидор даже дело заводить не стали.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов