LINUX.ORG.RU

Что использовать для разработки на Java вместо Idea Ultimate

 , ,


1

7

Сейчас достаточно сложно с легальной покупкой Idea Ultimate на территории России, поэтому возникает справедливый вопрос: что использовать вместо Idea для разработки типового ынтырпрайз-приложения на Spring? Рассматривал разные варианты, начиная от Idea Community и заканчивая VS Code. Все они имеют свои плюсы и минусы. Хотелось бы услышать у опытных ЛОР-овцев что выбирают они.

Я использую idea community для бэка, vscode для фронта, dbeaver для базы. В idea community мне не хватало разве только поддержки шаблонизаторов типа freemarker template.

Можешь конечно потыкать eclipse и убедиться что вариантов нет :)

Сейчас достаточно сложно с легальной покупкой Idea Ultimate на территории России,

Заведи виртуальную карту и через прокси в браузере оплати покупку.

Aber ★★★★★
()

Я переехал с idea на vscode недавно. Проблем с покупкой нет, но мне не нравится общий курс развития идеи последние лет 10, поэтому чуть ли не каждый год дёргаюсь, а вот в последние пару лет уже плотно начал переезжать. Для всего кроме жавы переехал, осталась Java, HTTP Client и Database. Вот недавно написал проект небольшой исключительно в vscode, в целом всё юзабельно.

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

Я бы советовал Idea CE или взломанную UE, если кряки сейчас есть. Но vscode на текущий момент тоже вполне себе юзабелен. Базовый функционал там есть.

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

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

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

Сильно лучше, чем этот? https://plugins.jetbrains.com/plugin/1800-database-navigator

Не спорю, просто интересно для себя

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

Не сравнивал, но судя по скриншотам - вообще не то, что мне надо.

По сути мне нужен редактор SQL. Все вот эти деревья, таблицы, это всё, конечно, должно быть, но это вторично и есть в любом продукте. А вот редактор SQL только в идее нормальный. По крайней мере я пока нигде ничего сравнимого не видел. В идее SQL поддерживается на уровне других языков программирования. Поддержка всего postgres синтаксиса, автодополнение всегда и везде, мелкие рефакторинги вроде добавления alias-а для таблицы. В общем просто сделано как надо. А во всех остальных продуктах это что-то вроде notepad++ - жирным цветом выделяет ключевые слова и на этом примерно всё.

Вероятно другим людям удобней натыкивать через UI фильтры и прочее, а SQL там для галочки. Но у меня для работы с БД SQL является самым первейшим средством.

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

Да, подсветка и форматтер. Я не пользовался idea Ultimate, но по сравнению с sqldeveloper ничем не уступал (кроме некоторых оракло специфичных вещей). Правда я сравниваю с sqldevelper десятилетней давности.

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

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

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

Emacs и Neovim сейчас сосут болтяру.

Я недавно влез в разработку tree-sitter. Сама либа более-менее, а вот поделки на DSL уже пишут корявые макаки с дикими ошибками. Как ни странно, в строго-типизированных языках больше всех ошибок на данный момент. Парсер tree-sitter не может переварить их ошибки и раздувает конечную библиотеку грамматики до небес не позволяя легко реагировать на мелкие изменения синтаксиса. Очень многие языки в жопе. И выходят ооооочень медленно.

Вишенка на торте, что сейчас на TS завязано довольно много инструментов, которые пользуются благами, как пример можно глянуть экосистему Neovim. И если парсер на подсосе, то эта экосисема лажает.

Ну и можно взглянуть на говно весёлые проекты грамматик:
Здесь допущены грубейшие ошибки DSL кода.

  • parser.c typescript - 13M
  • parser.c c# - 42M это пиздец
  • parser.c haskell - 25M это тотальный пиздец штангистов

Чтобы ты понимал, C# grammar.js занимает 51Kb синтаксического сахара и даёт ошибки генерации, а Haskell - 6Kb. И на таком маленьком синтаксисе они всё обговнили. Печально, что этим пользуется довольно много людей.

Теперь конкретно Emacs. У него проблемы с Tree-sitter, так как изменения делают в current, забивая болт на стабильный релиз . И это даже не печально. Это крест на его использовании.

Добавлю, что плагины в которых нет интереса у MS в VSCode, тоже в плачевном состоянии.

И для ТС. Как ни странно, но для Java в мире Tree-sitter писали более умные люди и результат очень неплох. Так что…

masterOf
()
Последнее исправление: masterOf (всего исправлений: 5)

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

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

ЗЫ. Попробуй эклипс, возможно приспособишься.

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

Emacs и Neovim сейчас сосут болтяру.

Всё гораздо хуже: болтяру сосут вообще все средства разработки, и Emacs с Neovim её сосут меньше всего, к сожалению.

Типа да, Emacs конечно говно, но IDEA мать её ещё хуже. Как в плане быстродействия и потребления ресурсов, так и в плане поддержки языков и инструментов. Если перцы из JetBrains подумали о нужной тебе фиче, то есть шанс, что всё будет в шоколаде. Но с большой вероятностью, они не подумали, и ты будешь сосать лапу. Там даже нормальной поддержки сраного direnv нет, о чём вообще разговор-то?

Я недавно влез в разработку tree-sitter. Сама либа более-менее, а вот поделки на DSL уже пишут корявые макаки с дикими ошибками. Как ни странно, в строго-типизированных языках больше всех ошибок на данный момент. Парсер tree-sitter не может переварить их ошибки и раздувает конечную библиотеку грамматики до небес не позволяя легко реагировать на мелкие изменения синтаксиса. Очень многие языки в жопе. И выходят ооооочень медленно.

Вишенка на торте, что сейчас на TS завязано довольно много инструментов, которые пользуются благами, как пример можно глянутьэкосистемуNeovim. И если парсер на подсосе, то эта экосисема лажает.

Ну и можно взглянуть наговновесёлые проекты грамматик:

Здесь допущены грубейшие ошибки DSL кода.

  • parser.c typescript - 13M
  • parser.c c# - 42M это пиздец
  • parser.c haskell - 25M это тотальный пиздец штангистов

Чтобы ты понимал, C# grammar.js занимает 51Kb синтаксического сахара и даёт ошибки генерации, а Haskell - 6Kb. И на таком маленьком синтаксисе они всё обговнили. Печально, что этим пользуется довольно много людей.

Так может быть, если никто не в состоянии нормально осилить этот DSL, то он всё же сосёт? Либо к нему нужны дополнительные инструменты для проверки грамматик на корректность, что равнозначно тому, что он сосёт.

Мне самому пофигу, я подсветку синтаксиса у себя выключил, потому что нинужно. Но тем не менее.

Теперь конкретно Emacs. У негопроблемы с Tree-sitter, так как изменения делают в current, забивая болт на стабильный релиз . И это даже не печально. Это крест на его использовании.

Лол реддит: https://ibb.co/V34Sw5G

Да не. Просто давно замечено, что самые большие вкусности в Emacs находятся в master и лучше всего использовать его. С PGTK такая тема была, его в master мариновали года полтора или два, емнип. Но master довольно стабилен, кстати, и им можно смело пользоваться. Все мои друзья так делают!

Добавлю, что плагины в которых нет интереса у MS в VSCode, тоже в плачевном состоянии.

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

Но в среднем да, у VSCode с плагинами всё хуже чем у Emacs/Vim.

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

Мне самому пофигу, я подсветку синтаксиса у себя выключил, потому что нинужно. Но тем не менее.

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

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

Пока то, что я видел, это проверка корректности синтаксиса. О логической проверке речи нет. И те, кто добавляет новое, добавляют и своё незнание предметной области.

А Java grammar plugin выглядит так:

  • grammar.js 32Kb
  • parser.c 2.5Mb

P.S. Сама идея с TS годная и очень неплохо ложится на lisp и вообще экосистему Emacs. Странно, что его внедрили парни Neovim первыми.

masterOf
()
Последнее исправление: masterOf (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

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

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

Теперь к плагинам, быстрее ли elisp чем Java? А быстрее ли он чем Java в несколько потоков?

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

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

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

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

Нет. Ты дезу пишешь. И как раз у IDEA тормоза в плане прокрутки. Я понимаю, что нужно последний камень, NVME и 100500GB памяти. Понимаю. Только код пишем на ноутах, где всё это говно тормозит.

но видимо ты говоришь про язычки типо хескела,

ЛОР славится уничижительным коверканьем технологии, чтобы доказать некое превосходство. Ну раскрой зенки нам, что же превосходит? Только если в лужу пукаешь, смотри! Не обосрись!

быстрее ли elisp чем Java? А быстрее ли он чем Java в несколько потоков?

Да. в работе с кодом lisp быстрее.

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

Нет. Ты дезу пишешь. И как раз у IDEA тормоза в плане прокрутки.

В Emacs вообще плавную прокрутку не завезли, PGTK прокрутка работает только в определенных случаях прокручивания, да и то очень странно = плохо.

Только код пишем на ноутах, где всё это говно тормозит.

Еще наверное подключаясь по rdp? Ну тут только посочувствовать...

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

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

Да. в работе с кодом lisp быстрее.

Я про скорость программ которые получаются на этом языке, Java конечно будет быстрее, у нее нормальный JIT, GC, ну и язык куда более продуманный. А то что в Emacs удобнее работать с Lisp, я не спорю, люди которые ими интересуются, обычно для Emacs и пишут плагины, а так как никому другому это видимо не интересно, то это лучшее из ничего.

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

Наверно, вам имеет смысл погрузиться в eclipse. С одной стороны, поддержки nested sql нет, с другой стороны, это далеко не всегда нужно. Плюс есть liclipse, совместимый с textmate синтаксисом, через который можно запилить даже гибридный синтаксис. Ещё есть платный myeclipse, там декларировалась поддержка всего синтаксиса vscode, но я не смог запустить. Ну и прямо из магазина плагинов 3 sql редактора.

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

Нет. Ты дезу пишешь. И как раз у IDEA тормоза в плане прокрутки. Я понимаю, что нужно последний камень, NVME и 100500GB памяти

4.2. Всем интересующимся рекомендую попробовать открыть 50к строчный файл с синтаксисом java (например, сгенерированный SQL парсер из https://github.com/apache/ignite-3 после билда лежит в modules/sql-engine/build/generated-sources/javacc/org/apache/ignite/internal/generated/query/calcite/sql/IgniteSqlParserImpl.java) в идее и емаксе. Лично сейчас провёл эксперимент, зажимая просто PgDn. Идея почти плавно прокрутила все 50к строчек за 30 секунд, при этом показывая подсветку, строя параллельно AST (запретить ей это делать никто не может, всё делается фоном), а emacs встал колом на этапе прокрутки импортов, а потом телепортирвалс яна 6тистысячную строчку. Камень i5 8gen, 32gb ram. Пользую emacs для org-mode, но хотя бы не вру сам себе. И да, в момент когда скажешь «а зачем мне открывать такие большие сгенерирванные файлы» я отвечу, что отлаживать приходится и их.

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

Замечательно. Я ради тебя даже скомпилировал emacs 29.3:

./emacs --version
GNU Emacs 29.3
Development version ae8f815613c2 on HEAD branch; build date 2024-04-14.
Copyright (C) 2024 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

java-ts-mode есть, но при попытке его применить мне открывается замечательный буффер:

⛔ Warning (treesit): Cannot activate tree-sitter, because language grammar for java is unavailable (not-found): (libtree-sitter-java libtree-sitter-java.0 libtree-sitter-java.0.0 libtree-sitter-java.so libtree-sitter-java.so.0 libtree-sitter-java.so.0.0) No such file or directory
⛔ Warning (treesit): Cannot activate tree-sitter, because language grammar for java is unavailable (not-found): (libtree-sitter-java libtree-sitter-java.0 libtree-sitter-java.0.0 libtree-sitter-java.so libtree-sitter-java.so.0 libtree-sitter-java.so.0.0) No such file or directory

Мне правда надо объяснять, что если для того, чтобы плавно прокручивать код мне надо собирать что-то из исходников, а потом сношаться до удовлетворения tree-sitter-а, повторюсь, для прокручивания кода, не рефакторингов, не каких-то анализов, а просто чтобы я мог нажать PgDn и докрутить вниз без фризов – в это месте адекватный человек понимает, что он занимается чем-то не тем и идёт делать работу в IDEA. Это правда не очевидно что ли?

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

Я писал выше о наборе инструментов, представляющих экосистему, которая зависит от treesitter grammar.

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

Сама идея с TS годная и очень неплохо ложится на lisp и вообще экосистему Emacs.

Как?

@MOPKOBKA

Теперь к плагинам, быстрее ли elisp чем Java? А быстрее ли он чем Java в несколько потоков?

Быстрее ли Java чем C? Потому что вагоны плагинов для имагза для скорости тащат сишный код.

Только IDEA тормозит не из-за жабы (разве что UI). IDEA тормозит потому что это монструозная всрань и гроб на колёсиках. Я периодически ставлю её, открываю наш хачкеллевый проект на жалкие 150к строк, IDEA вешается и перестаёт отвечать. Почему? Хер её знает.

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

А vim и emacs тут норм работают и в ус не дуют.

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

Мне правда надо объяснять, что если для того, чтобы плавно прокручивать код мне надо собирать что-то из исходников, а потом сношаться до удовлетворения tree-sitter-а, повторюсь,

В документацию ты не можешь, записал.

java-ts-mode есть, но при попытке его применить

что же ты там компилируешь?

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

Как?

Язык запросов похож на лисп. Работа с текстом «натуральнее». Сами создатели 29 версии всё разложили на видео, глянь EmacsConf. Использование TS API именно в Emacs очень удобно. Из-за этого большинство major-modes уходят в небытиё, многие плагины становятся не нужны, например, всякие fuzzy finders и т.д., многие плагины после переписывания ускорятся как и сам Emacs.

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

В документацию ты не можешь, записал.

Вот, объясни мне, почему мне не надо читать докуменацию для идеи? Я её просто распаковываю и запускаю. И всё плавно прокручивается, рефакторинги работают, аналитика работает, флайт рекорд записывает. Почему для просто прокрутки файла (изначальный топик где я встрял) в емаксе мне нужна определённая версия редактора, без него его надо скомпилировать (с правильными флагами для автоконфа, да, я читаю документацию), потанцевать с конфигом, доставить стороннего софта и, возможно, прокрутка не будет тормозить. Нормальный человек начинает читать это и с непониманием отшатывается. Нормальному человеку работать надо. Емакс для работы пока что не готов. Фирм, которые занимаются настройкой и доведения до работоспособности емакса с почасовой оплатой я не знаю.

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

Ок, ты не понял. Ну давай пример закину.

Есть такое говно: https://www.gnu.org/software/emacs/manual/html_node/semantic/index.html#Top.

Что даёт, спросишь ты?

Here is a summary of some of the user level tools in Semantic

    Smart code completion for typed languages.
    Show symbol under point summary in idle time (Like eldoc mode)
    Tag decorations (such as a blue line between tags)
    Include file management
    Symbol references (use) tool (semantic-symref)
    Tag based navigation.
    Tag based copy/paste operations, translation between languages.
    Jump to tags by name (Like ETags) but resolves polymorphism issues.
    Stickyfunc mode shows the declaration scrolled off the top of the window.
    Tag name based bookmarking

Самый простой и понятный - parent match. И то, сука, с задержкой. Или вот это - https://github.com/tuhdo/semantic-stickyfunc-enhance?tab=readme-ov-file… Их вообще-то очень много.

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

Вот, объясни мне, почему мне не надо читать докуменацию для идеи? Я её просто распаковываю и запускаю.

У тебя тяжелая жизнь.
Если я дам тебе компьютер и приставку, ты включишь приставку и начнёшь игру.

Что же лучше? Компьютер или приставка?

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

Что же лучше? Компьютер или приставка?

Хорошая попытка, но зависит от контекста. Что лучше: бриллиант или бутылка воды? А в пустыне?

Если играть – приставка. Если работать, то компьютер (и, возможно, приставка, если под неё игры пишешь).

Что лучше для профессиональной разработки на java: идея или емакс? Идея.

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

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

Быстрее ли Java чем C? Потому что вагоны плагинов для имагза для скорости тащат сишный код.

Это свидетельствует о тормозах elisp. К сожалению elisp перекрывает весь этот сишный код, вместе с зависанием интерфейса emacs.

Я периодически ставлю её, открываю наш хачкеллевый проект на жалкие 150к строк, IDEA вешается и перестаёт отвечать. Почему? Хер её знает.

Это проблемы плагина, вспоминается как RazrFalcon жаловался на IDEA, потому что он при каждом нажатии клавиши все парсил заново.

IDE от JetBrains хороши в языках для которых есть отдельные версии, IDEA - Java, GoLand - Go, PhpStorm - PHP, WebStorm - JS, CSS, HTML, Clion - C/C++.

И ты даже не представляешь, что будет, если открыть код люнексового ведра в CLion.

Открыл, работает быстро, автодополнение есть, я и не сомневался, у меня на работе проекты в которых строк побольше чем в ядре есть, и все работает замечательно. https://ibb.co/vq7mmrD

А vim и emacs тут норм работают и в ус не дуют.

/usr/bin/cat тоже неплохо файлы открывает.

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

Открыл, работает быстро, автодополнение есть, я и не сомневался, у меня на работе проекты в которых строк побольше чем в ядре есть, и все работает замечательно. https://ibb.co/vq7mmrD

Сколько при этом ест памяти, если не секрет?

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

Я уже удалил CLion и ядро, по умолчанию вроде 4 гб ограничение у всех IDE, думаю 2-3 гб было, лень заново ставить. У меня компьютер не треадрипер, старый i9 и 32 гб памяти, из которых 15 занято сейчас приложениями.

При прокрутке и вводе тормозов нету, переход на определения быстрый.

Ядро не такое уж и большое. Chromium был бы интереснее.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)