IntelliJ IDEA против Eclipse против NetBeans для разработки «чистой Java» [закрыто]

Важное примечание о закрытом бета-тестировании: это пробный вопрос для этого предложения по мета: защита вопросов «X против Y» .

Конечно, IntelliJ IDEA, Eclipse и NetBeans — отличные кроссплатформенные IDE с большим количеством функций и многочисленными плагинами для любых нужд. Я знаю, что между ними есть существенные различия для разработки Java EE (IntellJ не является бесплатным ) и Android (Android Studio с поддержкой IntelliJ поддерживается Google и, похоже, становится новым стандартом).

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

Я бы сказал, что этот вопрос слишком широк, если вы не конкретизируете свои требования более точно. Вы можете сделать так много вещей вокруг "чистой Java". Как насчет вопроса типа «Какой редактор предлагает автоматически загружать и импортировать JAR-файлы из репозитория Maven после автозаполнения?»
@NicolasRaoul, пожалуйста, прочитайте мой ответ на мета. Я мог бы перечислить множество требований, но все эти IDE им всем соответствуют. Выбор Java IDE не помогает.
Не подскажете вашу ОС. Хотя все перечисленные вами IDE являются кроссплатформенными, они неодинаково ведут себя под разными ОС, в основном с точки зрения производительности и стабильности
@IvayloSlavov моя собственная платформа - Linux, но я не хочу локализовать вопрос. т.е. ваш ответ может выглядеть так: "IDE X лучше конкурентов на платформе Y, потому что..."
Пока это не будет полностью обсуждено в мета-теме, я не думаю, что уместно голосовать за закрытие.

Ответы (1)

Являясь разработчиком программного обеспечения на Java, я с удовольствием поделюсь с вами своим личным опытом. Прежде всего, я должен упомянуть, что весь мой опыт работы с вышеупомянутыми IDE относится к платформе Linux, но я видел, что то, что применимо к этой ОС, отличается от того, что применимо к Windows или MAC. Кроме того, учитывая ваше ограничение «чистая Java», я не буду рассматривать функции, связанные с другими языками/фреймворками и т. д., которые могут поддерживаться. Итак, поехали:

Затмение

Плюсы этой IDE:

  • самый визуально привлекательный из трех, личное мнение
  • простая навигация по исходному коду
  • навигация между файлами maven pom при нажатии на зависимости имеет всплывающие подсказки
  • хорошая структура рабочего пространства, позволяет создавать рабочие наборы - группы проектов внутри рабочего пространства, чтобы можно было сосредоточиться на конкретном рабочем наборе, а не на всем рабочем пространстве.
  • отличная отладка
  • несколько точек зрения (разработка специального языка, такого как Java, Spring, JavaScript, перспектива отладки и т. д.). Каждая перспектива имеет свои собственные настройки видов, положения окон и инструментов и т. д., которые автоматически запоминаются IDE. Для меня это ценное преимущество, хотя конфигурация поддерживается только для каждого рабочего пространства.
  • позволяет легко импортировать и отлаживать сторонний исходный код. Иногда требуется загрузка кода вручную, но в остальном я нахожу это достаточно простым.

Недостатки:

  • он медленный при загрузке, неуклюжий при взаимодействии. С дополнительными плагинами становится медленнее.
  • часто дает сбои, особенно в Linux (версии для Windows более надежны), хорошо перезапустить его через несколько дней.
  • под Linux версии выше 3.0 отстают на несколько секунд перед открытием любого файла разметки (XML, JSF), что очень контрпродуктивно.
  • версии ниже 3.0 не имеют вышеуказанной проблемы с разметкой, но не поддерживают синтаксические функции Java 1.7 (например, короткие дженерики).
  • JSF не имеет автодополнения
  • Версии для Mac имеют противоречивые соглашения для ярлыков, в некоторых из них используется Ctrl + ?комбинация, в других используется расширение FN + ?. Пользователи, знакомые с IDE в других ОС, поначалу разочаровываются.
  • перемещение файлов между пакетами/проектами может быть проблематичным, так как иногда копирование (вырезание)/вставка не работает, просто перетащите

  • внезапное зависание при автодополнении, лечится только перезапуском IDE (можно обойти сворачиванием и восстановлением, но команды меню и связанные с ними сочетания клавиш перестают работать - т.е. можно редактировать файл, но невозможно его сохранить. Тем не менее, копирование-вставка на внешний редактор можно)

  • внутренние процессы задач IDE ненадежны. Возможное зависание, невозможность остановки или даже взаимоблокировка, если запущено несколько задач с общими ресурсами (например, многократное обновление репозитория SVN, вызывающее более одного процесса обновления).

IntelliJ ИДЕЯ

У меня есть опыт работы с этой IDE только на Linux, возможно, на других платформах будут отличия, которые я мог бы упустить.

Преимущества:

  • интуитивно понятный в использовании
  • отличная навигация по коду
  • поддержка проектов Eclipse (возможность импортировать их как проекты IDEA)
  • отличный и подробный рефакторинг
  • возможность доступа к расположению файла в файловой системе из представления проекта через контекстное меню (функция, которой мне не хватает в eclipse)

Недостатки

  • для контекстов Spring XML он не распознает все атрибуты, хотя и извлекает импортированные схемы XML. Актуальной проблемой является подсветка ошибок, которая может запутать неопытных разработчиков.
  • работа с Subversion (просмотр и синхронизация изменений) не такая интуитивная, как в Eclipse
  • ложная окраска синтаксиса ошибки в файлах pom.xml при использовании свойств maven вместо литералов для зависимостей (например, номера версии и т. д.). Это может сбить с толку неопытных людей.

NetBeans

Преимущество, о котором я могу думать:

  • для веб-разработки у него есть встроенный сервер, который упрощает размещение веб-приложения для целей отладки без настройки внешнего сервера и развертывания на нем.

Недостаток:

  • медленное время загрузки

Раньше я использовал NetBeans и предпочитал его Eclipse, так как к тому времени он был более стабильным и потреблял меньше ресурсов. Но затем мое использование включало выполнение домашних заданий в университете. Я не использовал эту IDE профессионально , так как мои рабочие среды предпочитали вышеперечисленные варианты для Java, поэтому сравнивать я бы не стал.

Мой личный выбор склоняется в сторону Eclipse, так как он мне больше знаком, хотя у него гораздо больше недостатков. Я предпочитаю его за его возможности организовать рабочее пространство и позволить лучше сосредоточиться на текущей задаче. Как я уже сказал, несколько точек зрения очень помогают, поскольку я настроил каждую из них так, чтобы она лучше всего подходила для конкретной задачи, над которой я работаю. Мне также нравится подробный вывод subversion, так как для меня важно правильно отслеживать мои коммиты/обновления.

IntelliJ IDEA позволяет мне легко адаптироваться к ней, хотя она действительно менее навязчива и интеллектуальна. Он автоматически распознает несколько типов проектов и сразу спрашивает, нужна ли дополнительная настройка. Например, если вы импортируете проект maven, и для него не настроен домашний каталог maven, он запросит его при попытке выполнить задачи, связанные с maven, и запомнит ваш выбор. Очевидно, что среда IDE пытается помочь вам настроить ее и правильно использовать. В сочетании с его стабильностью и отзывчивостью (по сравнению с Eclipse) он кажется намного более надежной средой. Должен признаться, я не углублялся в его настройку, но он вполне может стать моей любимой IDE.

Пожалуйста, постарайтесь сосредоточиться на различиях. Например, нет необходимости упоминать, что все эти IDE бесплатны и все они потребляют много памяти (это Java). Выделите наиболее значимые моменты курсивом .
@leventov хорошо, я удалил память и подчеркнул то, что считаю важным
Все упомянутые IDE имеют поддержку плагинов. plugins.jetbrains.com/?idea_ce
@MariuszS да, это так. Кажется, я пропустил это для IntelliJ Idea, исправлено сейчас
Я думаю, вам следует удалить информацию о плагинах, здесь все IDE похожи.
@MariuszS, я сделал, но, кажется, забыл написать.