LINUX.ORG.RU

J2EE актуально?

 


0

3

Есть ли какие-то ниши и задачи, где вы бы сказали, что-то типа «даже в 2025г. никто ничего лучшего, чем J2EE, не придумал».

Или будете просто брать Javalin, и велосипедить все батарейки самостоятельно?

Или Java просто вся полностью obsolete, и все вменяемые переходят на golang и прочие js?

★★★★★
Ответ на: комментарий от MichIs

Так я не понял, они специально наняли джава-программистов, чтобы выкинуть деньги, а потом переписали всё на С++? Или всё таки решили задачу бизнеса, создали первую версию системы, привлекли клиентов, выяснили все минусы первого решения, и только получив эту инфу, взялись за вторую версию на плюсах?

seiken ★★★★★
() автор топика

у человека, справедливо заметившего, что spring реализует спецификации j2ee семь фейспалмов.

Другие сравнивают на серьёзных щщах ub получающееся по разьименованию нулевого указателя в С++ и NullPointerException

Проиграл с каментов.

Ygor ★★★★★
()

Актуально. Но не j2ee, а Jakarta. Шпринг стал очень жирным, и jakarta+quarkus в целом решают 99% тех задач что и шпринг но с меньшими ресурсами

все вменяемые переходят на golang и прочие js?

После таких переходов назвать людей вменяемыми странно

upcFrost ★★★★★
()
Ответ на: комментарий от seiken

Так я не понял, они специально наняли джава-программистов, чтобы выкинуть деньги, а потом переписали всё на С++?

Абсолютно не понятно - зачем в команду ClickHouse нанимать Java-разработчиков? Там вроде бы квалифицированные товарищи работают, с пониманием. Единственная необходимость, может быть, - это написать драйвер ClickHouse для Java.

В ClickHouse создали на C++ хорошую аналитическую базу - ClickHouse. Для масштабирования взяли существующий продукт ZooKeeper из Hadoop-экосистемы, которая в основном на Java и поэтому бытовало такое мнение, что Java вполне себе для BigData (хотя лично у меня всегда был в этом большой скепсис).

ZooKeeper не потянул нагрузку, требуемую для кластеров ClickHouse. Разработчики ClickHouse, которые в основном С++ разработчики, создали аналогичный по назначению продукт «ClickHouse Keeper» и теперь у них все хорошо без Java.

MichIs
()
Ответ на: комментарий от seiken

По-моему, даже рулить семисегментным индикатором на ардуинке интереснее, чем все эти дупы-хадупы.

Чтобы рулить семисегментным индикатором на ардуинке, на жабе потребуется подготовить место на диске не менее 128 Гб, иметь не менее 32 Гб RAM, и Core i9 последних выпусков. Для зажигания одного сегмента придётся ждать 2 минуты, пока прогреются все жабокэши, и все FactoryFactoryFactory создадут граф из 100500^100500 необходимых объектов.

Для непонимающих сарказма модераторов: это художественное преувеличение.

Но реально же: если пользуешься любым жаба-приложением, особенно интерактивным, готовься ждать, готовься, что все ядра CPU и вся память будут заняты. Готовься читать монструозные XML файлы, когда весь миру отказался от XML лет 15 назад.

Вот не люблю её и за потребление ресурсов, и за всю какую-то бюрократическую громоздкость. Когда читаешь про какую-то технологию, и автор статьи использует примеры на Java - то это просто туши свет. То, что на других языках потребует 7-10 строк для демонстрации, на жабе требует 70-100.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Ну, тут прямо разделение мнений на полярные. Например, есть такая книга «Numerical Methods Using Kotlin», где автор на полном серьезе предпочитает языкам Fortran / C / C++ использование Kotlin для численных методов. Конечно, тезис довольно спорный. Однако полярные мнения по техническим вопросам довольно типичны для программистов.

Что касается C++, то его сложнее использовать «правильно». В этом большая проблема. Да, и седые волосы от использования C++ появляются быстрее, чем от Java. Есть и такой немаловажный момент

anonymous
()
Ответ на: комментарий от Chiffchaff

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

Ах да, если речь о Ардуине, то её IDE написана на Java. Тут на форуме кто-то плакался, что оно глючное на маке. Но такова уж судьба маководов - страдать на ровном месте.

seiken ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Я не знаю, как на счёт абстрактных численных методов, а вот если надо физику симулировать, то желательно её визуализировать, а 3Д API - это либо плюсы, либо вообще С. Даже на винде, где C# во все щели залез, Direct3D - C++-only.

seiken ★★★★★
() автор топика
Ответ на: комментарий от Chiffchaff

Например?

Например я работаю в компании, где почти весь бэк на жаве, и старые и новые проекты.

Разработчиков на него, предполагаю, найти нелегко.

Конечно же разработчиков найти легко. И это, пожалуй, его главное преимущество.

Выучить новичка всей этой громоздкости тоже непросто.

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

Мониторю вакансии в России. Искал работу, после того, как нашёл, отписываться не стал.

hh.ru:

Найдено 2 778 вакансий «Java» Найдено 725 вакансий «Golang»

Java вакансии встречаются, но их точно меньше, чем, например, вакансий на Python, Go.

На питоне может и больше, но питон это не программирование в 90% случаев.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от Chiffchaff

Смотря что такое «монструозность». По количеству строк да, накидать http-сервер на пистоне быстрее чем на жабе. Но если писать не писькоизмерялку а реальное приложение - жаба в разы лучше как минимум строгой типизацией. Есть паттерны к использованию которых толкает сам язык, есть обратная совместимость, есть куча десятилетиями обкатанных либ. Хз, если писать не хелловорлд- жаба мне нравится

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

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

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

Java - же очень многословный язык. В нём действие, которое на каком-нибудь другом языке займёт 3 строки, обязательно растянется на 15-30 строк. А если использовать «индустриальные Java-подходы», то и на все 300.

Что касается строгой типизации, то можно же сравнивать и с другими языками со строгой типизацией. Да и в Python она тоже есть, только опциональная пока.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Да и в Python она тоже есть, только опциональная пока.

Она медленная шописец

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

А вот хз. Меньше строк - больше магии. И когда магия ломается - начинается весёлая отладка в кишках окружения.

upcFrost ★★★★★
()
Ответ на: комментарий от Chiffchaff

Таких универсальных языков пока еще не придумано.

Ну, в том же фортране проще записывать матричные вычисления, но те же рекурсивные деревья будут там куда более громоздкими, чем в F# и хаскеле. Зато в хаскеле будет развесистый код, где нужна мутабельность, а в F# будет по-сложнее работать с GUI, чем в C#. Эрланг еще может удивить, но опять же, мало того, что он - медленный, так еще и специализированный.

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

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

Да уже лет 30-40 особых кардинальных изменений тут не видно. Все подвижки как-то по-мелочи идут - прорывов особых нет. Ну, там джава была небольшим прорывом, но по сути та же мелочь. Качественных изменений там в джаве тоже не было по сравнению с тем же смолтоком.

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

anonymous
()
Ответ на: комментарий от anonymous

Ну, а, к примеру, DSL в матлабе очень уж узко-специализированный

Какое политкорректное название для говна мамонта. У них в одном файле не может быть более одной функции…

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Какое политкорректное название для говна мамонта. У них в одном файле не может быть более одной функции…

Я не специалист по Жабе, напомни плиз, там уже можно в одном файле иметь больше одного публичного класса?

theNamelessOne ★★★★★
()
Ответ на: комментарий от seiken

Так в матлабе нет «приватных функций»

Я и по Matlab не специалист, но в их доке говорится:

You can save your function […] In a function file which contains only function definitions. The name of the file must match the name of the first function in the file.

Files can include multiple local functions or nested functions

Чем локальная функция не «приватная»?

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от seiken

Так а зачем вообще «приватные» функции (и классы) нужны. Это всё из каких-то дремучих заблуждений 80-х годов растёт.

Потом открываешь код джуна, начитавшегося талмудов, корни которых растут оттуда же, и у него всё «private», «protected» на любом языке, который это поддерживает. Потому что «так безопасно же!»

Уже устал линейкой по рукам бить за такое постоянно.

Chiffchaff
()
Ответ на: комментарий от theNamelessOne

Хм… А вообще да, много функций можно в матлабе. Но с джавой это несравнимо, потому что я могу объединять функции в статическом классе, и они все будут доступны извне. А в матлабе мне для этого надо городить огород из нескольких файлов. Это принципиальная разница.

seiken ★★★★★
() автор топика
Ответ на: комментарий от Chiffchaff

Так а зачем вообще «приватные» функции (и классы) нужны. Это всё из каких-то дремучих заблуждений 80-х годов растёт.

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

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Наверное, потому что есть такая хрень как интерфейс и реализация.

Для деления на интерфейс и реализацию необязательно прям обмазываться private и protected, которых в ядре, к тому же, тоже нет.

Я не о семантической разнице, а вообще о ключевых словах типа private и protected, и их аналогах.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

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

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Быстрый гуглёж говорит, что в Matlab-е есть и классы, и статические методы у классов. Что дальше скажешь?

Вообще получается, что Matlab даже круче в этом плане, чем Java — потому как Java не умеет в функции без классов.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от seiken

Да пофиг, как там ООП делается. Это не язык общего назначение, он не должен был 100% похож на Джаву (в которой тоже не самая удачная реализация ООП, по моему мнению).

Мне просто позабавила твоя изначальная претензия, да и переобувание на ходу.

В Матлабе нельзя объявить больше одной функции в файле (на самом деле можно, лол) — это плохо. В Джаве нельзя определить больше одного публичного класса в файле — ничего страшного!

Ой, а вот зато в Джаве можно объявить статический класс, в который напихать всяких методов, а в Матлабе нельзя (на самом деле можно, лол). Ой, а зато в Матлабе как-то неправильно сделано ООП!

Как это мило, что все ограничения $favorite_lang игнорируются, тогда как ограничения других языков возводятся в абсолют.

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

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

Мне просто позабавила твоя изначальная претензия, да и переобувание на ходу.

А в каком месте переобувание?

В Матлабе нельзя объявить больше одной функции в файле (на самом деле можно, лол) — это плохо. В Джаве нельзя определить больше одного публичного класса в файле — ничего страшного!

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

Ой, а вот зато в Джаве можно объявить статический класс, в который напихать всяких методов, а в Матлабе нельзя (на самом деле можно, лол

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

Ой, а зато в Матлабе как-то неправильно сделано ООП!

Так ты прочитал про ООП в матлабе, увидел, какая это кака, но признаться в этом не хочешь?

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

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

seiken ★★★★★
() автор топика
Ответ на: комментарий от vbr

А JS это для фронта, на бэк его фронтэндеры и тащат, никому кроме них он особо не нужен.

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

pekmop1024 ★★★★★
()