Comments 8
Выбор Спринга в большинстве проектов обусловлен развитой экосистемой, кучей обучающих материалов и компактным набором паттернов. Это вообще не про перфоманс ни разу, а про возможность нанять на проект 2-3 сотни одинаково посредственных разработчиков, которые в одинаковой манере пишут код. Просто, бизнес так устроен. Большая часть энтерпрайза — это унылые однотипные crud микросервисы, где 90% серверного времени сервис тупо ждёт сеть.
Те у кого есть возможность выбирать стек скорее возьмут Rust, чем очередной прорывной жаба-фреймворк.
скорее антипаттернов. если бы спринг остался на уровне core DI framework, к нему было бы сильно меньше претензий :)) однако он оброс тонной библиотек повторяющих одни и те же плохие подходы и жестко завязанных на spring core, вместо развития творчества людей огромную часть индустрии перегнали из ящика j2ee в ящик спринга.
Это вообще не про перфоманс ни разу, а про возможность нанять на проект 2-3 сотни одинаково посредственных разработчиков, которые в одинаковой манере пишут код.
Если бы сами писали, а то копирут, непонимая, что делают: "В прошлом проекте работало!".
Все пишут "микросервисы" на Spring Boot, которые не влазят на виртуалку с 4Гб памяти, а на большее нет денег. Еще тот бизнес!
Вообще не понимаю, почему вдруг DI стал проблемой, когда есть annotation processors на этапе компиляции. Micronaut тому пример
Проблема не в DI, а в том, что в большинстве java-фреймворков, и в частности в Spring, почти всё делается с помощью рефлексии и прокси-объектов. Микронавт - редкое исключение, но и он опирается на пока не стандартизированный Java Compiler API, что несколько настораживает.
Проблема не в DI, а в том, что в большинстве java-фреймворков, и в частности в Spring, почти всё делается с помощью рефлексии и прокси-объектов
Большинство это видимо спринг и ныне живущие больше в виде легаси apllication serverа со своим DI?
По-моему за пределами спринга большинство популярных DI уже живут в compile time-микровант, кваркус, даггер
Упомянутый в статье microprofile - это CDI с рефлексией. Dagger стоит сравнивать с Guice по частоте и области применения, окажется, что первый применяют в основном в Android, где на рефлексию не хватает ресурсов. Аналогично стоит сравнивать долю рынка кваркуса и микронавта со спрингом, разрыв впечатляет. У Java печально мало работы происходит во время компиляции по сравнению даже с другими языками на той же платформе, не говоря уж о каком-нибудь там Rust.
Упомянутый в статье microprofile - это CDI с рефлексией
Как раз для этого был выпущен CDI lite, который легко реализуется без рефлексии.
Dagger стоит сравнивать с Guice по частоте и области применения, окажется, что первый применяют в основном в Android, где на рефлексию не хватает ресурсов.
Ну например при использовании в авс лямбде даггер достаточно дефолтный DI на текущий момент. Я его как раз упоменул именно потому что периодически всетрчал в бэке за последние годы.
Аналогично стоит сравнивать долю рынка кваркуса и микронавта со спрингом, разрыв впечатляет
Да, спринг к сожалению слишком популярен.
У Java печально мало работы происходит во время компиляции по сравнению даже с другими языками на той же платформе, не говоря уж о каком-нибудь там Rust.
Да пожалуй нет, в джаве в целом нет с этим проблем, выше упомянутые кваркусы и микронавты тому пример. Проблемы у спринга, который очень популярен, но не у джавы в целом.
Helidon 4 вышел, а никто и не заметил