powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Использует ли кто-то Java Modules?
25 сообщений из 63, страница 2 из 3
Использует ли кто-то Java Modules?
    #40067000
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам топлю за переход на 16,но вот эти модули тоже не понял)
нужны очень сильно рекорды и еще сильней новые свитчи
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40067027
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
сам топлю за переход на 16,но вот эти модули тоже не понял)
нужны очень сильно рекорды и еще сильней новые свитчи


Расслабся. Просто они тебе не нужны.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40067057
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
сам топлю за переход на 16,но вот эти модули тоже не понял)
нужны очень сильно рекорды и еще сильней новые свитчи


Расслабся. Просто они тебе не нужны.


Я бы сказал - они просто не нужны. :-)
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40067073
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для разработчиков JDK сама-то фича безусловно полезная, но было бы гораздо лучше если бы её не экспозили на уровень пользовательского кода. Это же когда через 10-15 лет все уйдут с java 8 быстро патчить сторонние библиотеки через подкладывание исправленного класса в classpath на первое место больше не получиться, ибо JPMS запрещает размытие пакета по нескольким jar, в итоге придётся замарачиваться пересборкой всей third-party dependency целиком даже если там одну строчку нужно подправить.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40067137
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
сам топлю за переход на 16
В промышленной разработке и ещё никто не объяснил, что стабильность важнее фич???
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071647
gmugar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доклад Никиты Липского который отлично разъясняет чем прекрасен Jigsaw:
YouTube Video
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071686
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote=gmugar]доклад Никиты Липского который отлично разъясняет чем прекрасен Jigsaw:
YouTube Video
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071690
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote=Lelouch] [quote=gmugar]доклад Никиты Липского который отлично разъясняет чем прекрасен Jigsaw:
YouTube Video
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071695
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Lelouch
пропущено...

И что делать в этом "универсальном лекарстве" если 2 модуля декларируют одинаковые exports? Расчехлять старый добрый shade plugin? При этом даже может не быть пересечения по классам

Насколько я понимаю, модульность не предполагает взлома jar-ников. Нужно использовать модули as is.

А экспорты не должны быть одинаковыми хотя-бы потому-что package обычно определяет поставщика ПО и
этот поставщик обычно не создает внутренних конфликтов имен внутри себя.

К сожалению это не так, точно видел проблему с пересечением exports:
Код: plaintext
Modules org.aspectj.weaver and axiom.impl export package org.aspectj.lang.annotation to module jul.to.slf4j
То есть в теории наверное это так и должно быть, но на практике все не так радужно

P.S. Естественно, это "ошибка" авторов указанных модулей, но это не снимает с Module System вопроса "а что делать в таком случае?"
AFAIK, стандартных путей решения нет вообще и приходится "расчехлять старый добрый shade plugin" (ну или другими способами заниматься переупаковкой модулей)
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071720
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай развернем термин "расчехлять старый добрый shade plugin". Тоесть я хотел спросить как далеко
мы готовы зайти в попытке исправить ошибку декларации модулей. В моём понимании шейд-плагин
это реверс-инжинеринг и ассемблер зависимостей заново. И возможен ли альтернативный вариант.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071723
gmugar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@Lelouch
вы привели прекрасный пример

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

вы такое в своей системе иметь точно не хотите

класс из aspectj в axiom-impl - это как раз такая история и, к слову, признанный косяк:
http://svn.apache.org/viewvc/webservices/axiom/branches/1.2.x/src/site/markdown/release-notes/1.2.23.md?view=markup&pathrev=1858616
который, вроде как, исправили в следующей версии (которая релизанется непонятно когда :( )

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

это трудно, дорого, лениво: в итоге 65% из всех Java-проектов все еще на Java 8.

но это не отменяет того факта, что переход на модули сделает вашу систему чище и надежней.
усилия стоят того.
И уже тем паче стоят того, когда речь о новом проекте а не о замшелом легаси
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071728
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gmugar
@Lelouch
вы привели прекрасный пример

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

вы такое в своей системе иметь точно не хотите

класс из aspectj в axiom-impl - это как раз такая история и, к слову, признанный косяк:
http://svn.apache.org/viewvc/webservices/axiom/branches/1.2.x/src/site/markdown/release-notes/1.2.23.md?view=markup&pathrev=1858616
который, вроде как, исправили в следующей версии (которая релизанется непонятно когда :( )

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

это трудно, дорого, лениво: в итоге 65% из всех Java-проектов все еще на Java 8.

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


1) Честно - не вижу никакого смысла, есть и другие способы решения проблемы jar hell
2) А из оставшихся 35% (которые не на java 8) модули использует сколько процентов? 5? 10? (вот тут https://snyk.io/wp-content/uploads/jvm_2020.pdf на 19 странице сказано, что в 2020 году таких было аж 7%). И да - показательно, что никто не торопиться переходить на java 9+ - модули мало кому нужны. Темпы экспансии java 8 были гораздо выше.
3) У меня есть проекты где я специально переопределяю классы сторонних библиотек, чтобы добавить им функциональность, которая не предусмотрена. Что я должен в таком случае с модулями делать? Предупреждая вопрос - стандартного способа расширения функционала автором в этом месте не предусмотрено.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071732
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

А я вообще считаю, что выпуск 9-й версии есть ни что иное, как самая настоящая диверсия сами знаете кого. Убрали всё нужное и полезное, наложили кучу какого-то непонятного г... и потихому свалили.
:)
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071733
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gmugar,

И кстати, если на то пошло, то "из коробки" модульная система в Java вообще хреново решает проблему jar hell - просто не дает запустить приложение.
Если нужно (например из-за несовместимости в версиях) загрузить 2 разные версии классов - то нужно или "руками" мутить с ModuleLayer или опять же "ломать" модульную систему и переупаковывать классы.
Никаких стандартных решений модульная система для такой задачи не предоставляет.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071734
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сентябре 21 года релизнется Java-17 LTS. Это будет уже третий LTS. И восьмерка станет не просто старой.
Она станет дважды старой. А 11-тка перейдет в раздел уже чего-то вторичного.

Стоит ли нам в этом топике обсуждать восьмерку? Ссылаясь на статистику использований, может быть.
Но по топику - неконструктивно. Тема топика - модули. Вот давайте про модули. Если кто хочет OSGI - то
давайте просто отдельным топиком.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071736
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В сентябре 21 года релизнется Java-17 LTS. Это будет уже третий LTS. И восьмерка станет не просто старой.
Она станет дважды старой. А 11-тка перейдет в раздел уже чего-то вторичного.

Смотрели даты окончания поддержки 8-й и 17-й версий?

mayton

Стоит ли нам в этом топике обсуждать восьмерку? Ссылаясь на статистику использований, может быть.
Но по топику - неконструктивно. Тема топика - модули. Вот давайте про модули. Если кто хочет OSGI - то
давайте просто отдельным топиком.

Так вроде уже выяснили - никому не надо.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071742
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java9+ это не только модули, но и фичи.
Пилятся, например, API для внешней памяти и векторизации. Есть доработки сетевого стека.
Есть (Java 11+) расширенные права доступа для вложенных классов, чтобы компилятору не требовалось генерировать прокси-классы только для того, чтобы работать с "внутренностями" объемлющего класса.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071754
gmugar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchИ кстати, если на то пошло, то "из коробки" модульная система в Java вообще хреново решает проблему jar hell - просто не дает запустить приложение.
Если нужно (например из-за несовместимости в версиях) загрузить 2 разные версии классов - то нужно или "руками" мутить с ModuleLayer или опять же "ломать" модульную систему и переупаковывать классы.
Никаких стандартных решений модульная система для такой задачи не предоставляет.
Вы видите это как недостаток, я - как достоинство.

Lelouch1) Честно - не вижу никакого смысла, есть и другие способы решения проблемы jar hell
Вообще-то нет.
Вы конечно можете обложится анализаторами и организационными процедурами, которые дадут вам уверенность в том, что с зависимостями всё OK. Но уверенность - это не гарантия. Модули, как раз, дают гарантию , что приложение с определенными проблемами в зависимостях просто не стартует. Это гораздо лучше, чем получить мистику в рантайме.

Lelouch3) У меня есть проекты где я специально переопределяю классы сторонних библиотек, чтобы добавить им функциональность, которая не предусмотрена. Что я должен в таком случае с модулями делать? Предупреждая вопрос - стандартного способа расширения функционала автором в этом месте не предусмотрено.
OK. вы воспользовались нюансами classloader и/или Reflection, чтобы "взломать" API внешней библиотеки в нарушение принципов здорового ОOП. Вот только это, согласить, грязный путь. Да, очень редко, бывает, что другого путь нет. Признаю. Но это не аргумент против модулей. Вы, собственно, говорите, что модули плохи именно тем, что закрывают, лазейки, для закрытия которых, они, собственно, и придуманы :)
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071781
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gmugar


Lelouch1) Честно - не вижу никакого смысла, есть и другие способы решения проблемы jar hell

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

Lelouch3) У меня есть проекты где я специально переопределяю классы сторонних библиотек, чтобы добавить им функциональность, которая не предусмотрена. Что я должен в таком случае с модулями делать? Предупреждая вопрос - стандартного способа расширения функционала автором в этом месте не предусмотрено.
OK. вы воспользовались нюансами classloader и/или Reflection, чтобы "взломать" API внешней библиотеки в нарушение принципов здорового ОOП. Вот только это, согласить, грязный путь. Да, очень редко, бывает, что другого путь нет. Признаю. Но это не аргумент против модулей. Вы, собственно, говорите, что модули плохи именно тем, что закрывают, лазейки, для закрытия которых, они, собственно, и придуманы :)
1.1) Как же бедные разработчики до java 9 справлялись?)
1.2) Пока не будет описана как модули большая часть готовых библиотек (а затем не будут вычищены проблемы, как например приведенные выше) их использование будет постоянной головной болью
1.3) На мой вкус, сами по себе модули сделаны "не очень", как минимум в сравнении с теми же сборками в .net

3.1) Они делают эту лазейку чуть сложнее к использованию, но ничего не закрывают
3.2) КМК модули хорошо сделаны только для 1 цели - модуляризация самой java. Потому что в текущем виде они удобны только, если весь код решения контролируется разработчиком. Использование сторонних модулей сейчас скорее похоже на хождение по граблям - модулей или нет (большая часть библиотек) или могут быть собраны не так.

P.S. Если модули такие замечательные, почему ими практически никто не пользуется вот уже 3 года (или когда там java 9 вышла)? Почему не загнулся "страшный и костыльный" OSGi?
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40071782
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gmugar,

Дополнительно в копилку проблем: Насколько я знаю (если поправите - буду рад), модули в текущем виде вообще не работают при сборке условного uber-jar.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40072177
gmugar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lelouch1.1) Как же бедные разработчики до java 9 справлялись?)
1.2) Пока не будет описана как модули большая часть готовых библиотек (а затем не будут вычищены проблемы, как например приведенные выше) их использование будет постоянной головной болью
1.3) На мой вкус, сами по себе модули сделаны "не очень", как минимум в сравнении с теми же сборками в .net

3.1) Они делают эту лазейку чуть сложнее к использованию, но ничего не закрывают
3.2) КМК модули хорошо сделаны только для 1 цели - модуляризация самой java. Потому что в текущем виде они удобны только, если весь код решения контролируется разработчиком. Использование сторонних модулей сейчас скорее похоже на хождение по граблям - модулей или нет (большая часть библиотек) или могут быть собраны не так.

P.S. Если модули такие замечательные, почему ими практически никто не пользуется вот уже 3 года (или когда там java 9 вышла)? Почему не загнулся "страшный и костыльный" OSGi?

Ну а как бедные разработчики до Java 5 (~10 лет) справлялись без volatile?
Жить-то можно и без новых фич. Как-то.

Моя мысль в том, что модули полезная функциональность, которая позволяет улучшить приложение и открывает некоторые новые возможности.
Не правильно ее игнорировать. И я не согласен, с тем что модули сделаны "не очень". Правильно они сделаны.

И, по моему опыту, нет никакой особой проблемы их использовать, если у вас новый проект и сразу на Java 9+.

Проблема не в модулях, а в экосистеме Java
Вдруг выяснилось, что лазить в закрытые части API и таскать себе в JARы куски кода вместе оригинальными пакетами - это норма.
Типа, что не запрещено, то, значит, можно.

В итоге имеем, то что имеем.
Lukas Eder (создатель JOOQ) писал год назад на reddit :
I tried twice to modularise jOOQ. I fought a gazillion IDE bugs and it ended up not working because of transitive dependencies that had split packages. Postponed again for a few years...
B это 3 года после релиза Java 9.

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

Ну и OSGi не надо тоже идеализировать. За пределами экосистемы IBM, его тоже не особо видно.
В библиотеках тоже никто особо не утруждает себя "Bundle-" свойства в MANIFEST.MF добавлять
(хотя это не стоит усилий почти что совсем и спецификации, к слову, уже 20 лет!)
И мой личный опыт проектов с OSGi совершенно не позитивный: все то о чем Никита Липский рассказывал я видел своими глазами.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40072211
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Недавно таки решил попробовать перейти. И сразу обломался, потому как есть много зависимостей которые их не объявляют. И их не заставить работать если есть две библиотеки с одинаковыми пакетами.

Может кто-то таки использует? Идея кажется интересной, но как будто бы слишком мудрено все. В Java и так трудно начать че-то понимать новичкам, а тут еще такие сложности добавились.. Поэтому не понятно стоит ли усложнять свои проекты (если это не библиотека).

это называется jar hell
вроде как есть решения на основе ospj ( не помю точно абревиатуру) ,есть кастомные фичи ,мы например юзаем плагин от одной конторы который позвляет нам все это конфигрурировать и транзитивные зависимости в порядок приводить
и выглядит это типо вот так
guajava '1.15'='1.20'
тоесть когда разные либы тянут проблемную гужаву 1.15 они будут тянуть 1.20
тем самым мы избегаем джар хел
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40072213
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gmugar
Вдруг выяснилось, что лазить в закрытые части API и таскать себе в JARы куски кода вместе оригинальными пакетами - это норма

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

потребность в наличии модулей вроде как понятна со стороны безопасности, но есть кое-какая "проблема": апплеты еще лет 10 назад отменили, и никто теперь жавскую песочницу через рефлексию не пробивает, и за те же последние 10 лет я не могу припомнить, чтобы кому-то пришло в голову деплоить в одну JVM несколько разных приложений - от кого защищаемся-то? Выглядит вся эта история примерно также как с хранимыми процедурами в БД: уже 20 лет никто к БД напрямую пользователей не подключает, а старперы продолжают по-старинке писать хранимые процедуры, чтобы защитить непонятно что непонятно от кого.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40072253
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что "всякое" делают не конечные пользователи, которые могут разрулить всё, что надо в конкретной ситуации, а разработчики библиотек.
Т.е. разруливать надо не ситуацию, которую ты сам создал у себя, а гонять свинью, которая подложена кем-то другим.
...
Рейтинг: 0 / 0
Использует ли кто-то Java Modules?
    #40072279
Bsplesk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick
mayton
В сентябре 21 года релизнется Java-17 LTS. Это будет уже третий LTS. И восьмерка станет не просто старой.
Она станет дважды старой. А 11-тка перейдет в раздел уже чего-то вторичного.

Смотрели даты окончания поддержки 8-й и 17-й версий?

mayton

Стоит ли нам в этом топике обсуждать восьмерку? Ссылаясь на статистику использований, может быть.
Но по топику - неконструктивно. Тема топика - модули. Вот давайте про модули. Если кто хочет OSGI - то
давайте просто отдельным топиком.

Так вроде уже выяснили - никому не надо.


Как выяснилось не нужны LTS версии большим компаниям, не 17 не 117 и даже версия по годам (2021.4, 2022.1) не помогут (пример: LTS ядро Linux за неделю обновилось раз 7 - arch linux :), LTS бл. ). Нужно стабильное развитие и добавление фич решающих проблемы бизнеса, а не затаскивание все большего кол-во сахара, увеличивая сложность и чтение на чтение кода (в том числе джунами). В текущей реализации модули отчасти решают некоторые проблемы, но с другой создают новые, причем их решение обходится очень дорого и долго . В быстроменяющемся мире такие решения не нужны, всегда должен оставаться способ быстро поставить временную заплатку.

Бизнесу нужна java 1.9 или уже 2.0.
...
Рейтинг: 0 / 0
25 сообщений из 63, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Использует ли кто-то Java Modules?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]