Я слышал от людей, которые перешли в ту или иную сторону и придерживаются того или другого.
Поскольку я большой поклонник Eclipse, но у меня не было времени опробовать IntelliJ, мне интересно услышать от пользователей IntelliJ, которые являются «бывшими Eclipsians», некоторые конкретные вещи, которые вы можете делать с IntelliJ, чего вы не можете делать с Eclipse.
Примечание: Это не субъективный вопрос, и он вовсе не предназначен для превращения в священную войну IDE. Пожалуйста, опускайте любые ответы на флеймбейты.
Я перешел от Eclipse к Netbeans и к IntelliJ rubyMine, и каждый из них был «шагом вперед» по сравнению с предыдущим. Я не видел, что конкретно (следовательно, это не ответ), так как это было какое-то время, но самым большим скачком стал rubyMine, который был просто более «интегрированным» и, казалось, имел больше функциональности и представлял вещи в более легком использовать путь. Также казалось, что он справляется с проблемами драгоценных камней, зависимостями и т.п. лучше, чем другие.
Я хочу переключиться с intelliJ на Eclipse (из-за разработки Android), поэтому вопросы и ответы этого типа очень полезны.
@chrome Android теперь переключается в другую сторону: developer.android.com/sdk/installing/studio.html
У меня есть столько сообщений, сколько я могу, и все ответы указывают на то, что действительно можно сделать, затмение, иногда проще ИМХО. Я хочу чувствовать себя так, как будто я получил свои деньги с помощью intellij, но единственной причиной, по которой я его купил, было автозаполнение Javascript. Я мог бы просто купить webstorm подешевле, если бы это все, что у меня есть. Вероятно, существует плагин eclipse, который делает то же самое. Честно говоря, я думаю, что затмение более последовательное, и мне не хватает функции «Перспективы».




IntelliJ имеет поддержку intellisense и рефакторинга из кода в документы jspx.
Не могли бы вы пояснить, что вы подразумеваете под intellisense? Eclipse также имеет автозаполнение, но вы имеете в виду что-то другое?
Eclipse не имеет автозаполнения в документах jspx AFAIK. В обычном jsp да, в jspx нет.
Он означает, что если у вас есть JSP, который ссылается на свойство в POJO, и вы переименовываете свойство, ваш JSP обновляется правильно. Поддержка JSP IntelliJ запускает Eclipse / WTP!
Я не могу заставить автоматическое завершение Eclipse работать с выражениями JSP EL, точка. JSP или JSPX, это не имеет значения, это просто невежество. IntelliJ обрабатывает tagx и jspx так, как и следовало ожидать: как тег или файл jsp.
Приятно видеть, как пользователи eclipse голосуют за то, что им не нравится. Если мои наблюдения ошибочны, ответьте, пожалуйста, комментарием. Подскажите, как это сделать в затмении!
Отладчик IntelliJ имеет очень удобную функцию под названием «Оценить выражение», которая намного лучше, чем подвеска eclipses. Он имеет полное автозавершение кода, и я считаю его в целом «более полезным».
Eclipse также имеет оценщик выражений, который предлагает автозавершение кода. Перейдите в Window -> Show View -> Debug -> Display При остановке в точке останова в отладчике вы можете оценивать произвольные выражения в этом представлении Display.
IntelliJ имеет несколько довольно продвинутых проверок кода (сравнимых, но отличных от FindBugs).
Хотя я серьезно скучаю по плагину FindBugs при использовании IntelliJ (интеграция Eclipse / FindBugs довольно крутая).
Здесь - официальный список CodeInspections, поддерживаемых IntelliJ
Обновлено: Наконец, есть findbugs-plugin для IntelliJ. Это все еще небольшая бета-версия, но комбинация проверки кода и поиска ошибок просто потрясающая!
да, findbugs - один из немногих статических анализаторов кода, который действительно находит практические добросовестные ошибки. :)
У вас есть конкретный пример проверки кода? Какие вещи он может обнаруживать?
Еще ссылка про проверки: hamletdarcy.blogspot.com/2008/04/…
Я считаю, что проверка кода IntelliJ обнаруживает больше ошибок, содержит полезные быстрые исправления, может выдавать предупреждения и исправлять строки по мере их ввода. (Вам не нужно сохранять файл и его не нужно компилировать) Эти тонкости делают более практичным исправление ошибок как можно скорее.
Что ж, для меня это тысяча мелочей. Некоторые макросы, макет графического интерфейса в целом в Eclipse я считаю ужасным. Я не могу открывать несколько проектов в разных окнах в Eclipse. Я могу открыть несколько проектов, но тогда система на основе представлений меняет на меня кучу вещей, когда я переключаю файлы. Проверки кода IntelliJ кажутся лучше. Его всплывающие помощники для исправления распространенных проблем хороши. Множество простых вещей, связанных с удобством использования, таких как боковая панель, на которой я могу навести курсор на горячую точку, и она сообщит мне каждый реализующий подкласс метода или метод, который я реализую, и откуда.
Всякий раз, когда мне приходилось использовать или наблюдать, как кто-то использует Eclipse, кажется, что они могут делать большинство вещей, которые я могу делать в IntelliJ, но это занимает больше времени и становится более неудобным.
Наверное дело не в какие можно / нельзя, а в как.
Например, у обоих есть редактор, окруженный док-панелями для проекта, пути к классам, вывода, структуры и т. д. Но в Idea, когда я начинаю печатать, все эти коллапсы автоматически позволяют мне сосредоточиться на самом коде; В Eclipse все эти панели остаются открытыми, в результате чего область моего редактора очень уменьшена, примерно 1/5 всей видимой области. Поэтому мне нужно схватить мышь и щелкнуть мышью, чтобы свернуть эти панели. Делать это весь день - очень неприятный опыт во время затмения.
С окном вывода вида происходит прямо противоположное. В Idea при запуске программы открывается окно / панель вывода, чтобы увидеть вывод программы, даже если он был ранее свернут. В eclipse мне нужно снова схватить мышь, найти вкладку вывода и щелкнуть ее, чтобы просмотреть вывод моей программы, потому что окно / панель вывода - это просто еще одно, как и все остальные окна, но в Idea это обрабатывается в особым способом: «Если пользователь хочет запустить свою программу, очень вероятно, что он захочет увидеть результат этой программы!» Когда я это пишу, это кажется таким естественным, но eclipse терпит неудачу в этой базовой концепции пользовательского интерфейса.
Вероятно, есть ярлык для этого в eclipse (автоматически скрывать окно вывода при редактировании и автоматически показывать его при запуске программы), но, как и некоторые другие десятки функций, ярлык необходимо искать на форумах, в онлайн-справке и т.д., в то время как в Idea немного больше " естественный".
Это можно повторить почти для всех функций, которые есть у обоих, автозаполнения, переноса слов, быстрого просмотра документации, всего. Я думаю, что пользовательский интерфейс в Idea намного приятнее, чем в eclipse. Тогда сбывается девиз «Развивайся с удовольствием».
Eclipse быстрее справляется с более крупными проектами (+300 банок и +4000 классов), и я думаю, что IntelliJ Idea 8 работает над этим.
Все это конечно субъективно. Как мы можем измерить пользовательский опыт?
в eclipse вы можете нажать control-m, чтобы минимизировать / максимизировать окно редактирования, или дважды щелкнуть его вкладку редактора - это очень помогает
Вау ... большое спасибо. Было бы очень полезно, если бы у eclipse был способ, которым я это знаю (помимо чтения шпаргалки по горячим клавишам) Большое спасибо. Есть ли способ изменить окно вывода?
ALT-SHIFT-Q вызывает окно Show View ... C - для консоли ALT-SHIFT-Q, C - это ярлык для перехода к консоли.
Ctrl + Shift + L показывает список горячих клавиш, доступных в текущем контексте.
Дважды щелкните заголовок подокна - ЛЮБОЕ подокно - и ваше подокно развернется на весь экран. Сделайте это еще раз для восстановления. Сверните панель с консолью, а затем, когда произойдет вывод, консоль мгновенно выскочит.
Интеграция Eclipse с git не позволяет увидеть в той же части пользовательского интерфейса, какие файлы были изменены в песочнице, И сравнить эти файлы. Можно открыть список измененных файлов, запомнить один файл, закрыть список файлов, сравнить файл в проводнике проекта, повторить. Это в значительной степени иллюстрирует подходы.
Похоже на промежуточное представление Git.
В eclipse есть параметр, позволяющий выводить консоль всякий раз, когда в нее что-либо записывается. Он был включен по умолчанию для меня, и я выключил его, чтобы я мог больше работать, пока программа компилируется / запускается.
Я ненавижу тот факт, что все вещи прячутся в IntelliJ. Я работаю на широкоформатных больших мониторах с высоким разрешением. Так что для меня я просто такой: «О, куда это теперь делось, перестань прятаться от меня, черт возьми !!»
@AndrewS Установите «Режим закрепления» для окон инструментов, которые вы хотите видеть, когда они неактивны.
Структурный поиск и замена.
Например, ищите что-то вроде:
System.out.println($string$ + $expr$);
Где $ string $ - литерал, а $ expr $ - выражение типа my.package.and.Class, а затем замените его на:
$expr$.inspect($string$);
На самом деле вы можете искать в коде приведение типов / () - operator /, что практически невозможно с обычным текстовым поиском.
Если у вас есть курсор на методе, CTRL+SHIFT+I отобразит его реализацию. Если это метод interface, вы можете использовать стрелки вверх и вниз для циклического просмотра реализаций:
Map<String, Integer> m = ...
m.contains|Key("Wibble");
Где | находится (например) там, где находится ваш курсор.
На самом деле в Eclipse (по крайней мере, в той версии, которую я использую), когда вы помещаете курсор на имя метода и нажимаете CTRL + T, вы получаете все дерево иерархии, от самого верхнего интерфейса до конечных реализаций, и можете переходить любому из них.
В Eclipse вы также можете Ctrl + щелкнуть имя метода, чтобы перейти к определению / реализации метода (в зависимости от контекста)
Дело в том, что вы фактически не переходите к реализации. Он просто отображается всплывающим окном, как javadoc и т. д.
В Eclipse вы просто наводите курсор на имя метода с помощью Shift, чтобы открыть всплывающее окно с его реализацией.
Две вещи, которые делает IntelliJ, чего не делает Eclipse, очень ценны для меня:
Разделители методов: эти слабые серые линии между методами делают код много более читабельным.
Сглаживание текста: делает код красивым в среде IDE
На самом деле я обнаружил, что сглаживание IntelliJ намного хуже, чем Eclipse. Однако это было несколько версий IntelliJ назад. Это было улучшено?
Я использую пропорциональный шрифт Verdana, который, на мой взгляд, выглядит лучше, чем сглаживание.
Показать панель навигации ALT-Home.
Одна очень полезная функция - это возможность частично построить проект реактора Maven, чтобы в него были включены только те части, которые вам нужны.
Чтобы сделать это немного понятнее, рассмотрим случай коллекции файлов WAR с множеством общих ресурсов (например, JavaScript, конфигурационные файлы Spring и т. д.), Совместно используемых между ними с помощью техника наложения. Если вы работаете над какой-либо веб-страницей (запущенной в Jetty) и хотите изменить некоторый код оверлея, который хранится в отдельном модуле, вы обычно ожидаете, что вам придется остановить Jetty, запустить сборку Maven, снова запустить Jetty и Продолжать. Так обстоит дело с Eclipse и практически со всеми другими IDE, с которыми я работал. Не так в IntelliJ. Используя настройки проекта, вы можете определить, какой аспект какого модуля вы хотите включить в фоновую сборку. Следовательно, вы получаете процесс, который кажется безупречным. Вы вносите изменения практически в любой код в проекте, и сразу после обновления браузера они становятся доступными.
Очень аккуратно и очень быстро.
Я не мог представить, как писать фронтенд на чем-то вроде YUI, поддерживающего DWR / SpringMVC, без этого.
Одна вещь, которую я регулярно использую, - это установка точки останова, но затем контроль над тем, что она делает. (На моей последней работе все остальные использовали Eclipse ... Помню, я был удивлен, что никто не смог найти, как это сделать в Eclipse.)
Например, точка останова может фактически не останавливаться, а просто записывать сообщение в консоль. Это означает, что мне не нужно засорять свой код «System.out.println (...)», а затем перекомпилировать.
Вы можете сделать это с помощью условных точек останова в eclipse, но это немного дерзко. Например. правда
Я думаю, что intelliJ позволяет вам устанавливать более сложные подсчеты попаданий, не так ли?
Теперь его проще найти в eclipse - теперь он отображает условия в виде точек останова (чтобы вы знали, что они доступны). Вы можете разбивать по счетчикам, вводить произвольный код, например System.out.println("here"); false, для печати, но не для прерывания (последний оператор - это логическое выражение, которое определяет, должны ли мы прерывать работу)
Не забывайте «сравнить с буфером обмена».
То, что я все время использую в IntelliJ и не имеющее эквивалента в Eclipse.
Также история буфера обмена.
Эта функция может быть добавлена в eclipse в виде плагина под названием AnyEditИнструменты (находится на рынке).
Я не помню, возможен ли перенос слов / строк / методов / классов в Eclipse
В Intellij Idea вы используете Ctrl+W
Ctrl + W фактически расширяет выделение. В Eclipse он привязан к Shift + Alt + Up (Shift + Alt + Down уменьшает выделение.)
Еще несколько вещей:
Idea 8.0 имеет прекрасный ctrl+shift+space x 2, который выполняет следующие функции автозаполнения:
City city = customer.<ctrl-shift-space twice>
решает
City city = customer.getAddress().getCity();
через любое количество уровней геттеров / сеттеров.
довольно круто, хотя все, что больше двух уровней - это довольно запах кода ...;)
Есть только одна причина, по которой я использую intellij, а не eclipse: Удобство использования
Будь то отладка, рефакторинг, автоматическое завершение ... Intellij намного проще в использовании с согласованными привязками клавиш, параметрами, доступными там, где вы их ищите и т. д. Последний имеет гораздо больше доступных плагинов, чем intellij, и его легко расширять.
Он умный и чертовски быстрый. Это добавляет к множеству функций удобства использования. Переход к подклассу или реализации класса, поиск в пути, поиск использования и т. д. Происходит очень быстро. Автозаполнение происходит встроенно, просто вкладка вставит его. Автозаполнение тоже умно, но это не просто предложения, но IDE придумывает имена и т. д. За вас.
Есть несколько причин использовать IntelliJ. Юзабилити даже не главное в списке. В IntelliJ больше возможностей, чем в Eclipse. Всего у IntelliJ меньше плагинов, но больше «качественных» плагинов. Итак, этот ответ, несмотря на большинство голосов, неверен.
@EngineerDollery Я бы не сказал, что это «неправильно», поскольку amit сказал: «Есть только одна причина, по которой я использует intellij, а не eclipse», а не «Есть только одна причина, по которой к использует intellij, а не eclipse».
То, что я использую в IntelliJ все время, рефакторингуется по мере того, как я печатаю. Я переписал классы из распечатки (первоначально написанной на eclipse), используя обе IDE, и я использовал примерно на 40% меньше нажатий клавиш / щелчков мыши, чтобы написать те же классы в IntelliJ, чем eclipse.
Я бы не хотел использовать Eclipse, пока они не поддержат такой же рефакторинг с неполными фрагментами кода.
Вот более длинный список функций в IntelliJ 8.0 / 8.1 [http://www.jetbrains.com/idea/features/index.html]
Гораздо больше рефакторингов.
Я не очень много кодировал с помощью IntellijIdea, но в IntellijIdea вы можете увидеть, где начинается блок кода в скобках (если, попробуйте / поймать, цикл и т. д.), а где заканчивается.
В Eclipse (я код в Eclipse 3.2) вы можете идентифицировать блок только вручную.
что вы имеете в виду под "вручную"? В Eclipse вы действительно должны поместить курсор на {(или}), чтобы узнать, где находится} (или {). Еще одна интересная вещь - дважды щелкнуть после {блока. Он автоматически выберет весь блок {...}.
В Eclipse, если у вас очень длинный блок (я вижу блок из 100-200 строк), вы должны использовать мышь, чтобы хорошо видеть блок. IntellijIdea выводит красную строку слева (по крайней мере, я это помню). Я думаю, что это более удобный вариант с длинным блоком.
Есть отличный (бесплатный) плагин Eclipse под названием Java Source Helper (hexapixel.com/projects/sourcehelper), который показывает содержащий контекст для вашего местоположения (он говорит, что концепция была взята из IDEA, кстати)
Преамбула к моему ответу: Мое использование Eclipse ограничено. Нам нужна была Java IDE для работы как на Windows, так и на Mac, и скорость порта Mac снижалась день ото дня. Это было много лет назад, и я уверен, что сейчас все в порядке. Но именно это заставило нас перейти на IntelliJ, и мы остались довольны этим.
Теперь мой ответ: одна большая разница, о которой я еще не упоминал, заключается в том, что техническая поддержка лучше с IntelliJ / Jet Brains. Мы отправляем электронное письмо в JetBrains и получаем окончательный ответ менее чем за час. Поиск ответов на проблемы Eclipse приводит к обычным ответам «Ты, тупой идиот» (обычно это небольшое количество ответов) вместе с гораздо большим количеством проницательных и полезных ответов. Но чтобы получить реальный ответ, нужно кое-что проанализировать.
Eclipse имеет открытый исходный код. Никому не платят за ответы на вопросы или исправление ошибок. Купите коммерческую IDE на основе Eclipse, например MyEclipse и получите поддержку за свои деньги. Быстрая статистика: я сообщил JetBrains о 56 ошибках, 23 из них закрыты; из 65 ошибок, сообщенных в Eclipse 33, закрыты. Единственная разница в том, что JetBrains исправляет ошибки немного быстрее, чем Eclipse.
Мой любимый ярлык в IntelliJ, не имеющий эквивалента в Eclipse (который я нашел), называется «Перейти к символу». CTRL-ALT-SHIFT-N позволяет вам начать вводить и подбирать классы, имена методов, имена переменных и т. д. Из всего проекта.
ctrl-shift-G в затмении
ctrl-shift-G - это не то, что описал Пол ... больше похоже на "ctrl + O", но для всех классов, методов и переменных в проекте
Введите переменную. (Ctrl+Alt+V в Windows, Cmd+Alt+V в OSX)
Допустим, вы вызываете метод service.listAllPersons()
Нажмите Ctrl+Alt+V и Enter, и будет вставлена переменная для возвращаемого значения из вызова метода:
List<Person> list = service.listAllPersons();
Сохраняет вводимый вами текст, и вам не нужно проверять тип возвращаемого значения метода, который вы вызываете. Особенно полезно при использовании дженериков, например
new ArrayList<String>()
[ввести переменную]
ArrayList<String> stringArrayList = new ArrayList<String>();
(конечно, вы можете легко изменить имя переменной, прежде чем нажимать Enter)
Это Ctrl + 2 L в Eclipse.
Хорошо, я не знал, и никто из пользователей Eclipse, которых я спрашивал, тоже. Эта функция уже давно входит в Eclipse?
Довольно долго ... Если вы используете quickfix, control+1 (самая очевидная привязка клавиш в мире, а?), Он предлагает вещи, которые вы можете делать в текущем местоположении курсора, аналогично намерениям в IDEA. Например, в нем перечислены «назначить локальный», «назначить поле» и другие параметры. control+2, L - это ярлык для этого.
В eclipse, после того как вы выбрали ctrl+2, L, вы все равно можете изменить тип созданной переменной либо на тип с правой стороны (по умолчанию), либо на любой супертип: тип переменной можно выбрать с помощью TAB.
Откройте проект из Maven POM. Просто выберите «Открыть проект ...» перейдите к pom.xml верхнего уровня и нажмите Enter :) NetBeans теперь также имеет эту функцию.
Недавно я обнаружил как минимум два преимущества IntelliJ IDEA над Eclipse.
Если попытаться использовать форматирование кода в редакторе кода JSP, скриптлеты JSP сломаются. Eclipse становится немного сумасшедшим, он рекламирует случайные фрагменты кода то тут, то там. IDEA ведет себя очень хорошо.
Другое дело - скорость развертывания приложения на сервере JBoss. IntelliJ заменяет приложение в папке tmp JBoss, поэтому повторное развертывание происходит очень быстро. Eclipse WTP заменяет приложение в папке развертывания, которая, как оказалось, работает намного дольше.
Intellij имеет гораздо лучший плагин SVN, чем Subversive или Subclipse, и он работает! О том, сколько времени мы потратили на слияние исходных файлов с помощью Eclipse, не стоит и думать. Это не проблема с IntelliJ, потому что плагин помогает вам гораздо больше.
Также плагин Subclipse ненадежен - у нас регулярно бывают случаи, когда плагин не думает, что какой-либо код был зарегистрирован в SVN другими разработчиками, но есть - сервер CI обработал их!
точно, поддержка svn превосходна по идее, в то время как subclipse / subversive ошибочны, неуклюжи и не очень надежны; то же самое касается git, на самом деле я не помню какой-либо разумной интеграции git для eclipse, и intelliJ справляется с этим очень хорошо
Лично я считаю, что вы должны управлять всеми версиями из командной строки, даже если ваша IDE может это сделать. Когда вы сделаете это в командной строке, тогда вы узнаете, как запустить сценарий bash позже, что действительно может ускорить вашу разработку. Иногда мои коллеги просят меня помочь с плагином subclipse или git eclipse, я просто говорю им, чтобы они прекратили его использовать и сделали это в командной строке.
Для меня поддержка maven в IDEA, особенно в версии 9, не имеет себе равных. Синхронизация проекта с моделью maven «на лету» просто фантастика и делает разработку приятной.
Есть много вещей, которые идея решает гораздо проще, или нет эквивалента:
Действия автозаполнения: выполняя ctrl+shift+a, вы можете вызывать любое действие идеи с клавиатуры, не запоминая комбинацию клавиш ... Подумайте о gnome-do или launchy в Windows, и вы поняли идею! Также эта функция поддерживает сокращения CamelCasing;)
Полка: позволяет легко разделять некоторые фрагменты кода, а затем просматривать их с помощью средства просмотра различий.
Местная история: это намного лучше и проще.
Аннотации и история SVN: проще проверить, а также вы можете легко увидеть историю только для такой части целого исходного файла.
Автозаполнение везде, например в окнах выражения оценки и условий точки останова.
Интеграция с Maven ... намного проще и хорошо интегрирована.
Рефакторы гораздо ближе к руке, такие как вставка циклов, упаковка / приведение, переименование и добавление переменных.
Найдите много сильных и хорошо организованных. Даже в больших проектах
Достаточно стабильна для одновременной работы с несколькими ветвями большого проекта (поскольку бывший исправитель ошибок объемом 1,5 Гб по исходным текстам ветки и необходимость работать в них одновременно, идея показала свои безупречные возможности)
Более чистый и простой интерфейс ...
И, что проще использовать только с клавиатурой, избавляя от необходимости использовать мышь для множества простых действий, экономя ваше время и уделяя больше внимания коду ... там, где это важно!
И теперь, будучи открытым исходным кодом ... пользовательская база Idea будет расти в геометрической прогрессии.
Автозаполнение действий = быстрый доступ в eclipse; Я не понимаю, как местная история может быть проще, чем в затмении ...
Как указал Скотт, это Ctrl + 3. Помощник по содержанию также доступен при оценке выражений и установке условных точек останова. Я не уверен, насколько близки упомянутые рефакторинги, чем то, что предлагается Ctrl + 1 и Ctrl + 2. Большая часть остального звучит субъективно.
Анализ потока данных: межпроцедурный анализ обратного потока и анализ прямого потока, как описано здесь. Мой опыт основан на версии Community Edition, которая довольно хорошо анализирует потоки данных. Он терпел неудачу (отказался что-либо делать) в нескольких случаях, когда код очень сложен.
VIM Эмулятор. Этот плагин обеспечивает почти полную эмуляцию vi / vim / gvim при редактировании файлов в IDEA. Поддерживаются следующие функции:
несколько комментариев об этом плагине от http://plugins.jetbrains.net/plugin/?id=164
I can't see ever going back to any other ide because of this plugin.. Best of both worlds... Awesome!. that's what i was lacking in all IDEs.Я согласен, я не смог бы жить без моего плагина IdeaVim, но, честно говоря, есть плагин Vim для Eclipse, метко названный VimPlugin (vimplugin.org)
Vwrapper - еще один плагин Vim Eclipse. И работает даже лучше, чем плагин Idea Vim (работают повторные ключи). Однако Vwrapper не обрабатывает поиск и замену из командной строки (хотя поиск отлично работает) и не позволяет определять макросы в интерактивном режиме. Согласились, что поддержка Vim необходима в среде IDE. Не стал бы использовать Eclipse или Idea без него!
viableplugin.com очень хорош для затмения. Я также использую intellij, и я обнаружил, что intellij иногда зависает в редакторе при некоторых обстоятельствах и не отвечает на команды.
Мое время может немного сбиться с точки зрения этой темы, но мне просто нужно было ответить.
Я большой поклонник Eclipse - использую его с самого первого появления. Тогда друг сказал мне (10+ лет назад), что это будет игрок. Он был прав.
Тем не мение! Я только начал использовать IntelliJ, и если вы не видели и не использовали списки изменений - вы упускаете рай для программирования.
Возможность отслеживать мои измененные файлы (в моей ветке разработки ala clearcase) была тем, что я искал в плагине для eclipse. Intellij очень просто отслеживает все ваши изменения за одну фиксацию. Вы можете изолировать измененные файлы с помощью настраиваемых списков. Я использую это для файлов конфигурации, которые должны быть уникальными локально, но постоянно помечаются, когда я синхронизирую или сравниваю с репозиторием - перечисляя их в списке изменений, я могу отслеживать их, но аккуратно убираю их, чтобы я мог сосредоточиться на реальных дополнениях Я делаю.
Кроме того, есть плагин журнала фиксации, который выводит текст всех изменений для тех SCCS, которые не интегрированы с вашим программным обеспечением для отслеживания ошибок. При вставке журнала в историю работы заявки фиксируются файлы, их версия, дата / время и ветка / теги. Это чертовски круто.
Я уверен, что все это может поддерживаться через плагины (или будущие улучшения) в eclipse; тем не менее, Intellij делает это проще простого.
Наконец, меня очень воодушевляет всеобщая любовь к этому продукту - нажатия клавиш, так что это больно, но весело.
Мне очень нравится функция списков изменений. Это похоже на независимый набор исправлений / полок VCS, с которыми вы можете работать независимо и которые могут быть связаны с ними, также могут быть связаны с вашим трекером проблем. У вас есть локальная история (например, мини-VCS), отслеживающая ваши изменения, пока вы работаете почти на линейном уровне, поэтому вы можете вернуться практически к любому моменту времени, если вам нужно. Также, когда вы переключаете задачи, вся IDEA запоминает состояние IDE для новой задачи и восстанавливает открытые файлы, положения окон и т. д.
На самом деле списки изменений - это функция SVN. IntelliJ просто позволяет вам видеть их и управлять ими, в отличие от подключаемых модулей Eclipse SVN.
Есть одна вещь, которую IntelliJ делает намного лучше, чем Eclipse, и это пустое место для ваших карманов!
Однако я предпочитаю использовать его, и одно большое преимущество, которое он имеет перед Eclipce, - это то, как он синхронизируется с файловой системой для больших проектов и медленных компьютеров (да, в рабочих средах ПК намного медленнее, чем наши дома) Eclipse, похоже, борьба, где IntelliJ кажется быстрее, хотя и с более медленным начальным временем индексации.
Версия IntelliJ Community Edition, очевидно, делает ее использование бесплатным, но вскоре вам понадобится дополнительный рефакторинг и приятные мелочи, которых нет в версии CC.
На мой взгляд, это обычно лучший пользовательский опыт, но стоит ли это затрат - вопрос, на который каждый разработчик должен ответить сам.
Но давайте будем благодарны, что у нас есть до трех отличных IDE для Java прямо сейчас, и NetBeans постоянно совершенствуется.
IntelliJ Ultimate Edition действительно не бесплатен, но как разработчик я использую свою IDE от 8 до 10 часов в день. Так что я не считаю его разумную цену недостатком !!
На мой взгляд, одним из хороших моментов является Матрица структуры зависимостей: http://www.jetbrains.com/idea/features/dependency_analysis.html#link0
На веб-сайте Lattix (отдельный продукт) есть хорошее введение в использование DSM и его преимущества: http://www.lattix.com/files/dl/slides/s.php?directory=4tour
Alt+Insert для редактирования текста в колоночном режиме.
У Eclipse это есть - Alt-Shift-A
В настоящее время это единственное окно, в котором вкладки могут быть перенесены в другое окно. Удобно, когда у вас больше экранов.
Хм? Вы можете перетащить любую вкладку затмения в отдельное окно.
Извините, если это уже покрыто, но просто наличие вкладки «изменения» там, где я могу видеть свои локальные изменения, входящие изменения, удаленные изменения, - это просто то, без чего я не могу жить ... В Eclipse я не могу найти такие особенность!
Также простая вещь, такая как щелчок средней кнопкой мыши, который привязывается к «открытому объявлению», является отличным дополнением пользовательского интерфейса - чего я также не вижу в Eclipse.
На моем рабочем месте только Eclipse, но я серьезно подумываю о покупке личной лицензии Idea ....
этот первый абзац звучит так же, как представление «Team Synchronize» в Eclipse?
Ctrl-щелчок в eclipse (или F3) переходит к объявлению
В первую очередь люблю intellij. Есть по крайней мере сотня функций, которых не хватает затмению. Я говорю о гораздо более высоких показателях надежности и интеллекта, которые невозможно описать никакими гиперболами, когда дело доходит до рефакторинга, переименования, перемещения и прочего, о чем уже упоминалось.
НО, есть одна вещь, которую intellij не допускает, а затмение делает. Это не позволяет запускать несколько проектов одновременно под одной и той же виртуальной машиной.
Когда у вас есть отдельные проекты для переднего, среднего, основного, агентов ... и т.д., где все они должны взаимодействовать друг с другом, вы не можете быстро изменять и отлаживать одновременно, afaik. Единственный способ, которым я сейчас справляюсь, - это использовать сценарии ant для развертывания и обновления jar-файлов в зависимых проектах или использовать maven.
Eclipse позволяет отлаживать несколько проектов в одном экземпляре ide vm.
Это должно было быть размещено в Что Eclipse может сделать, чего не может IntelliJ, а не наоборот.
IntelliJ делает это без каких-либо проблем. Это просто неверный ответ.
В IntelliJ можно пролистывать историю последних мест, отредактированных с помощью «Последнее место редактирования». Eclipse имеет аналогичную функцию, но Eclipse возвращается только к одному уровню местоположения редактирования.
Наличие истории, а не только одного уровня, который предлагает Eclipse, - отличная функция повышения производительности: она действует как форма автоматической закладки, поскольку вы часто хотите вернуться к тем местам, где вы вносили изменения. Я использую эту способность несколько раз в день и чувствую боль от того, что у меня ее нет, когда меня просят использовать Eclipse для чего-то.
Это больше похоже на ошибку, чем на намеренное ограничение.
Насколько я помню, я использовал Alt + Left / Alt + Right в Eclipse для перемещения назад / вперед между редактированием / просмотром, и у него не было ограничений по глубине.
Я попытался перейти на IntelliJ из-за новой Android Studio. Но сейчас я очень разочарован. Я использую Eclipse с подключаемым модулем Рекомендации по коду. Вот простой пример, почему Eclipse такой классный:
Я хочу создать новый SimpleTimeZone. SimpleTimeZone не имеет конструктора с нулевыми аргументами.
Ctrl + Space в Eclipse

Ctrl + Space в IntelliJ

В IntelliJ я не получаю информации о том, какие конструкторы у SimpleTimeZone.
После Enter в Eclipse

Я получаю ранее выбранный конструктор, заполненный предопределенными именами переменных. И я могу видеть тип каждого аргумента. С помощью Code Recommanders Eclipse угадывает правильный конструктор по ранее определенным типам переменных в текущей области и заполняет конструктор этими переменными.
После Enter в IntelliJ ничего не происходит. Я получаю пустой конструктор. Мне нужно нажать Ctrl + P, чтобы увидеть ожидаемые аргументы.

Как видно из всех ответов, существует ряд функций и рабочих процессов, которые в них различаются. Однако я думаю, что при принятии решения о том, какой фреймворк использовать, следует также учитывать общее повышение производительности, которое можно добиться с помощью каждого инструмента.
Я большой поклонник Netbeans и Eclipse и использую их много лет. Это отличные инструменты, и в зависимости от того, что вы делаете, вы можете выбрать один или другой.
Однако около шести месяцев назад, работая над сложным веб-проектом java, включающим большое количество внешнего кода javascript для пользовательского интерфейса HMT5, я был вынужден искать альтернативы Eclipse из-за ошибки автозаполнения js. Я был в таком отчаянии, что подумывал вернуться к простому текстовому редактору для своего js-кода !!!
Мне повезло, что я наткнулся на Intellij Idea (к сожалению, нет времени на исследования инструментов).
Несмотря на то, что требуется некоторое время, чтобы привыкнуть к способу работы Idea, не говоря уже о специальных функциях, повышение производительности, которое он предлагает за счет мелких вещей слева и справа, на мой взгляд, является самым большим преимуществом. Просто у меня это работает лучше, и теперь я являюсь клиентом Idea Ultimate с оплатой по подписке. Как только вы к этому привыкнете, будет очень трудно вернуться к чему-либо еще.
Ничто не сравнится с бесплатными, и я большой поклонник открытого исходного кода, но, в конце концов, если вы этим зарабатываете на жизнь, возможность делать что-то быстрее окупается каждый раз.
Я думаю, вы можете придерживаться любой из этих IDE. Лучший признак того, чтобы не «беспокоиться о том, чтобы упустить огромную выгоду в IDE, которую вы не используете», - это очень длинные споры, которые мы видели между поклонниками Eclipse и поклонниками IntelliJ. Это хороший признак того, что обе стороны обладают почти одинаковой властью, благодаря которой эта долгая дискуссия сохранилась.