Пользователь
0,0
рейтинг
24 февраля 2012 в 13:18

Разработка → Почему IDEA лучше Eclipse

JAVA*

Священный спор


Принято считать, что есть «вечные» вопросы, на которые нет правильного ответа. Например, что лучше: Windows или Linux, Java или C#; Чужой против Хищника или Чак Норрис против Ван Дамма.

Одним из таких холиваров считается выбор лучшей IDE для Java:


Идут постоянные споры о том, в которой из них больше плагинов, горячих клавиш и т.д. Различий так много, что трудно выбрать, какие из них важнее, и все сходятся в одном: обе IDE примерно одинаковы по своим возможностям, и выбор одной из них — это дело вкуса.

Так вот, я утверждаю, что это не просто дело вкуса. Есть объективные причины, почему
Intellij IDEA однозначно лучше, чем Eclipse.

Подчёркиваю, мы сейчас рассматриваем обе среды именно как Java IDE.

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



Откуда такая уверенность?


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

Я работал на Eclipse лет 5, знал её очень хорошо, писал под неё плагины, и искренне любил её. Потом я перешёл в другую компанию, и был вынужден пересесть на IDEA. Пережив серьёзную ломку, я наконец понял, чем же IDEA круче. И вот уже пару лет работаю на IDEA. Поэтому я знаю, что говорю.

Основное различие между IDEA и Eclipse


Главная вещь, отличающая IDEA — она понимает контекст. Именно это имеют в виду сотрудники JetBrains, когда называют её «интеллектуальной» (intelligent). Что это значит? IDEA индексирует весь ваш проект, анализирует всё, что в нём есть, и даже строит синтаксическое дерево. Благодаря этому IDEA в любой момент, куда бы вы ни поставили курсор, знает, где мы находимся и что тут можно делать.

Непонятно? Ещё бы. Ничего, на примерах станет ясно.

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

1. Отладка


Чтобы при отладке увидеть значение какого-то выражения, в Eclipse необходимо сначала выделить это выражение. Причём выделить точно, случайно выделите лишний символ — Eclipse не поймёт. После этого жмём Ctrl+Shift+I и видим значение выражения.



В IDEA же ничего выделять не надо, достаточно просто поставить курсор в нужное место (в данном случае на методе hasAttribute) и нажать Alt+F8. IDEA сама поймёт, какое выражение вам, вероятно, нужно, и тут же откроет диалог, где вы сможете редактировать выражение и сразу видеть его значение:


Выходит, обе IDE в принципе позволяют делать одно и то же. Но в IDEA это намного удобнее и быстрее. Я серьёзно, разница огромная — это просто небо и земля. В этом маленьком окошке IDEA сделает вам и автозаполнение, и подсветку синтаксиса, и всё на свете.

2. Автозаполнение (autocomplete)


Автозаполнение — это то, что выгодно отличает любую IDE от notepad. И в этой области «понимание контекста» даёт IDEA качественное преимущество. Допустим, мы начали писать строчку кода:
assertElement(By.id("errorMessage"), vi

И тут мы хотим узнать, какие у нас есть варианты, чего там может начинаться с букв «vi».

Что делает IDEA? Не дожидаясь никаких нажатий клавиш, она сразу же понимает, что метод assertElement хочет получить вторым параметром объект класса Condition, а в этом классе как раз есть статическая переменная типа Condition с именем visible. И предлагает единственный возможный вариант:


Что делает Eclipse? Увы, он не понимает контекста. Он не знает, что курсор находится на месте второго параметра метода assertElement. Поэтому, когда вы нажимаете заветные Ctrl+Space, Eclipse тупо показывает всё, что есть в природе, что начинается на буквы «vi»:


В красивом всплывающем окошке мы видим много-много красиво подсвеченной хорошо задокументированной бесполезной информации…

3. Рефакторинг


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

Например, есть у нас метод assertErrorMessageIsHidden:

  public void assertErrorMessageIsHidden() {
    assertElement(By.id("errorMessage"), Condition.visible);
  }

И мы хотим сделать так, чтобы строка «errorMessage» приходила в метод как параметр.

Начнём с IDEA. Ставим курсор на любое место в строке «errorMessage», нажимаем заветные Ctrl+Alt+P (от «parameter»), и IDEA подсказывает, какое выражение мы могли бы вынести в параметр:


Как только выражение «errorMessage» выбрано, IDEA подсказывает несколько возможных имён для этого параметра.

Вы будете ещё не раз удивлены тем, как умно себя ведёт IDEA, предлагая свои варианты для имени чего-либо. Она учитывает и название метода, и тип переменной, и значение, и названия подобных переменных в других местах, и те названия, которые вы давали подобным переменным раньше — разве что ваш знак зодиака не учитывается. Правда-правда, не проходит и месяца, чтобы я не сказал фразы: «Ого, IDEA и это умеет?»

Ну и посмотрим, что нам предложит Eclipse.

Не забываем: выделяем выражение «errorMessage» (обязательно с кавычками, иначе получите дикое сообщение «An expression must be select to activate this refactoring»), выбираем рефакторинг «Introduce parameter» (из меню, горячей клавиши нет), и получаем тот же результат. Правда, никаких вариантов для имени параметра Eclipse не предлагает, но и на том спасибо.


Выводы


Если мы говорим о Java IDE, то IDEA круче Eclipse. Это не просто дело вкуса. IDEA объективно лучше. Она позволяет быстрее и качественне писать и менять код, подсказывает подходящие имена, находит подходящие методы. Не требует точно выделить выражение, а по тому, где вы находитесь, угадывает, что вы хотели сделать и как хотели это назвать. IDEA предугадывает и подсказывает.

P.S. Оговорки


Оговорюсь: IDEA лучше Eclipse в качестве Java IDE. Если вы рассматриваете их в каком-то другом качестве — например, как IDE для другого языка (C++, Python, Scala), или как платформу для построения Desktop-приложений, то Eclipse вполне может победить.

В общем-то, это вытекает и из определения. Eclipse позиционирует себя как абстрактная платформа для построения чего бы то ни было (с помощью дописывания плагинов), а IDEA позиционирует себя как «интеллектуальная IDE для Java». Так оно и есть.

Интереса ради попробую назвать аспекты, в которых Eclipse, возможно, круче IDEA:
  • Eclipse красивее. Вся эта суета вокруг SWT и нативных контролов стоила того. Eclipse выглядит как солидное приложение с продуманными шрифтами и иконками, в то время как IDEA на первый взгляд выглядит как наколенная поделка с ламерскими иконками и нелепым свинговским интерфейсом.
  • В Eclipse богаче поддережка структуры проекта. В IDEA есть проект, состоящий из модулей, а в Eclipse есть workspace, состоящий из проектов, но их можно ещё и закрывать/открывать, объединять в группы и прятать.
  • Для Eclipse вроде бы проще писать плагины.
  • В конце концов, Eclipse бесплатен. Впрочем, бесплатной версии IDEA мне хватает за глаза, ведь я использую запускалку для разработки веб-приложений.


Итогошки


Если вам нужны красивые иконки, платформа для создания настольных приложений, или IDE для C++, то Eclipse, вероятно, предпочтительнее. Если же вы серьёзный Java-программист, и вам нужна среда, позволяющая быстро и удобно вести разработку, сосредоточившись на проблеме и не отвлекаясь на средство разработки, то IDEA — это то, что нужно.

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

Кодьте с удовольствием!

Андрей Солнцев @asolntsev
карма
97,0
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (261)

  • +52
    > Чак Норрис против Ван Дамма
    Как можно сравнивать Самого с каким-то жалким вандамчиком.
    • –7
      Даже с Джигурдой сравнивать не стоит, а уж тем-более с Ван Даммом
      • +60
        Когда Чак Норрис кодит в эклипсе, екслипс понимает контекст .
        • +12
          Запущенный Чаком эклипс сам кодит
          • –2
            Чак кодит на IDEA
            • +1
              Ребята, ребята!
              Чаку не нужно кодить. Чак просто подходит к компьютеру. А он без всех этих наших задротских заморочек с программированиями и ide делает, что Чаку надо.
            • +5
              Чак вообще не кодит. Java VM выполняет инструкции под его диктовку.
              • 0
                И работает при этом быстрее, чем нативный код.
            • 0
              IDEA кодит на Чаке.
              • 0
                Пользователь был онлайн 172 дня назад.
    • +7
      перефразируя бородатый анекдот:
      IDEA лучше чем Eclipse.
      Чем лучше?
      Чем Eclipse.
    • +2
      Объективно если судить, то Чака всегда метелил Брюс Ли.
      Только не спрашивайте меня «и где теперь этот ваш Брюс Ли»
      • 0
        Между прочим, они были друзьями.
  • +1
    платформа для создания настольных приложений, или IDE для C++, то Eclipse, вероятно, предпочтительнее.
    Вот тут можно сильно поспорить. Я понимаю, что я выдрал смысл из контекста и в данном случае идет сравнение IDEA и Eclipse, но ни то ни другое я не выберу как IDE для C++ и тем более в качевстве платформы для создания настольных приложений.
    А в общем вся суть сказанного в статье — IDEA понимает контекст. Это вобщем очень здорово и я понимаю о чем хотел сказать автор. Спасибо за позитивный порыв мыслей.
    • 0
      Поддерживаю rule, абсолюной истины не существует, а сравнение «интеллектуальности» 2х ide рассмотрено как нельзя лучше.
    • 0
      Кстати, после просмотра исходников средств рефакторинга в IDEA убедился, что, впринципе, ничто не мешает все эти средства рефакторинга расширить для поддержки C++, например.
      P.S. Вот только в меньшей мере, т.к. перегрузка операций и т.д., вы же меня понимаете :-)
  • +1
    Мне в IDEA очень нравится система управления зависимостями, а также встроенная система управления артефактами. Очень удобно для тестирования, во время разработки веб-приложений.
  • +2
    После такой статьи грех не попробовать Идею. Полезно послушать в таком споре опытного пользователя обоих продуктов. Спасибо!
    • +1
      У JetBrains все IDE потрясающи. Я чисто случайно открыл для себя WebStorm. Интеграция с github, интегрированный js-test-driver, то же понимание контекста… Аналогично и с PyCharm для питонщиков. Те смешные деньги, что простятся за эти IDE при использовании их для создания коммерческих приложений — вообще ничто. Т.е. если расставить IDE по мощностям, получится: VisualStudio, JetBrains IDEs, Eclipse/NetBeans.
      • 0
        Без решарпера не быть студии на первом месте :)
      • 0
        еще бы php (в случае webStorm), да и весь вэб не был бы настолько синтаксически убог, что контекст практически не понять, было бы вообще счастье.
  • +29
    PHPStorm тоже заметно лучше и удобнее PDT.
    • –2
      А когда PDT был удобным редактором?
      • 0
        Ну он, собственно, вполне себе удобный. Просто Storm удобнее и лучше.
        • 0
          Ну наверное каждому свое. В свое установил его, посмотрел что он может «из каробки», не впечатлил, и тот же Netbeans показался намного удобней PDT
    • +4
      Слез на него с Zend Studio(написанной на eclipse)! очень доволен!
    • 0
      поддержу, круче еще ничего не видел.
      да, шоткаты сперва напрягают, но через 1-2 дня понял, что на ZendStudio не вернусь никогда.
      имхо, единственное что в ZendStudio(Eclipse) лучше — так это SVN, но и это не проблема.
    • 0
      А с нетбинсом можете сравнить?
      • 0
        Перешел на phpstorm с нетбинса около полугода назад. В принципе согласен с автором в плане интеллекта IDE. Автодополнение и предложение вариантов просто умней. Очень часто в нем бывает так, что просто пишешь начало длинного вызова метода, а дальше только ентер-ентер и все готово.

        А еще хотел просто попробовать шторм, т.к. некоторые на коллеги работали в нем, и когда перешел полностью с линухи на мак, искал чтото подходящее и удобное. Так вот в плане интерфейса (тут несогласен с автором) шторм полходит мне лучше, взять туже поддержку lion (fullscreen app) плюс удобней организация открытых вкладок (поместил справа, вкладок около 30 открыто и видно название всех, чего в других IDE сложно было добиться), так же возможно убрать лишние элементы для лучшего обзора кода. слева структура папки-файлы и ниже навигатор по открытому файлу, справа вкладки открытые, все остальное сверху до низу занимает код, все экранные пиксели.
      • +1
        Могу.
        На PHPStorm я перешёл не с Eclipse, а с Netbeans, на который перешёл с Eclipse.
      • +1
        Практически все (или даже все), что есть в Netbeans, есть и в IDEA.
        Наоборот неверно.

        Кстати, одна из сильных фич IDEA — это Language Injection. Т.е. редактирование части текста на одном языке внутри файла, написанном на другом языке.
        Например, SQL внутри XML, RegExp внутри Java-строки и т.д.
  • +11
    А также Eclipse однозначно лучше, чем IDEA, потому-что это опенсорс платформа с богатым набором всевозможных фич и плагинов, а не просто хорошее проприетарное IDE.

    Итого, Eclipse однозначно лучше IDEA, а IDEA однозначно лучше Eclipse (-;

    Автор, у каждого из этих IDE есть свои плюсы и минусы. Описанные вами плюсы — однозначные плюсы.
    Но «IDEA однозначно лучше чем Eclipse, потому что лучше понимает контекст» — всётаки перебор.
    • +18
      У IDEA есть открытая версия.
      Но да, Eclipse пока еще имеет более мощное комьюнити, и соответственно больше плагинов и прочего.
      Автор этого и не отрицал, а привел область(Java разработка), в которой по его(и моему кстати тоже) мнению IDEA лучше Eclipse однозначно.
      • +2
        Да, но Java разработка это широкое понятие. Может я Java разработку веду с помощью генерации кода из схем конечных автоматов, которые делаются через плагины EMF. Может такое IDEA? Я не знаю.
        Или мне нужны для java разработки плагины для Spring, Ivy, Swing Gui Builder, какая-нибудь-obscurish-технология, что-то-там-еще, которые скорее появятся в Eclipse, по причине широкого коммюнити.
        Я понимаю, вам кажется что оно шире _пока_, но пусть даже так — всётаки пока оно _шире_ (-:

        И да, если в «Open Type» диалоге в Eclipse писать большими буквами, то матчатся какраз большие буквы в названии класса ( help.eclipse.org/indigo/topic/org.eclipse.jdt.doc.user/tips/images/open-type-camel-case.png ) — мне это помогает для Java разработки. Незначительная фича, но есть ли такая в IDEA?
        Это я к тому, что всё всегда неоднозначно.

        На всякий случай, я не считаю IDEA хуже ни в коем случае. Просто если говорить об однозначном преимуществе, и, соответственно, однозначной необходимости забросить Eclipse и перейти на IDEA — такого нет.
        Да и, ИМХО, не надо. Минимальное разнообразие это хорошо, я считаю.
        • 0
          Да, тут я с вами согласен, если брать более широкий спектр разработки, то Eclipse во многом выигрывает.
          Ну и конечно же у каждого свои вкусы и предпочтения, некоторые вон и в Vim пишут вполне успешно.
          Разнообразие тоже плюс, ибо чем лучше будет Eclipse тем более мощный будет стимул для развития IDEA и наоборот)
        • 0
          >>Может я Java разработку веду с помощью генерации кода из схем конечных автоматов, которые делаются через плагины EMF.
          вы делаете это неправильно. Билд не должен быть завязан на IDE ни в коем случае. Только на специализированные системы сборки (ant, maven, gradle)
          >>Или мне нужны для java разработки плагины для Spring, Ivy, Swing Gui Builder
          и опять же вы делаете неправильно. Для разработки нужен только редактор java/xml-кода — это в разы быстрее любых GUI плагинов.
          >>Незначительная фича, но есть ли такая в IDEA?
          разумеется
          • +5
            > Для разработки нужен только редактор java/xml-кода — это в разы быстрее любых GUI плагинов.
            Тоесть вы считаете, что Swing GUI builders — бесполезны по определению.
            Ваше право, но это ваше личное мнение, и поверьте, многие с вами не согласны.
          • +2
            А генерация кода из моделей совершенно не обязательно к фазе сборки относится. А если очень надо — emf-генератор может быть вызван из системы сборки.
        • +6
          Про «Open Type» — в IDEA есть давным-давно, и работает получше, на мой вкус. То есть если матчинга мало — она попробует downcase-нуть какую-нибудь из букв и заматчить. Это будет верно в том случае, если вы опечатались и набрали 2 заглавных буквы подряд.

          Еще, я бы добавил, что в IDEA на порядок лучше поиск-замена и всё такое, потому что хоткеи гораздо удобнее и лучше продуманы. То, что в Eclipse требует 3-4 кликов, в IDEA делается за один-два. Это легко заметить, если показать эклипсоцвам как работает C-f и C-F в идее :)
    • –9
      Обе IDE опен-сорсные, обе созданы некоей компанией, у обеих есть платная версия, у обеих есть богатый набор всевозможных фич и плагинов. Так что это голословный троллинг.
      • +4
        Eclipse уже много лет не «продукт IBM», так что то, что он когда-то был создан IBM не ставит его в один ряд с IDEA.
        Коммюнити Eclipse это «голословный троллинг»? Вы шутите, не иначе.

        Про платную версию Eclipse — пожалуйста расскажите нам, где она есть, и кто ней пользуется.
        С бесплатной версией IDEA всё проще — появилась она гораздо позже Eclipse, и не знаю как сейчас, но поначалу она была урезана в сравнении с платной. И это факты, а никакой не «голословный троллинг».
        • –1
          И сейчас урезана по самое не могу.
          • 0
            Спасибо, я подозревал это, но не знал точно.
            IntelliJ ведь зарабатывает на продажах IDEA, поэтому смысла им раздавать её бесплатно нет никакого.

            IBM же, сколько я помню Eclipse, никогда и не помышлял на нём заработать. Они вообще частным лицам ничего не продают вроде — только B2B, или как там это грамотно называется.
            • 0
              продают. RAD — его бесплатного не бывает
              • 0
                Он какбы «частным лицам» нафиг не упёрся — это для контор, которые решения на WebSphere строят.
                • 0
                  совершенно верно
                  а разве разговор идёт только в контексте частных лиц?
        • +3
          Конечно, насчёт «троллинга» я погорячился.
          Но «коммьюнити Eclipse» — ценность весьма условная. Зачем оно мне, это коммьюнити? Считать, что одна IDE лучше другой только потому, что у неё есть «коммьюнити» — это распространённое заблуждение. На первый взгляд, это звучит круто, но реальной пользы может и не быть. Я, например, в течение того длительного периода, пока использовал Eclipse, ни разу никакой пользы от «коммьюнити» не получил.

          Платная версия Eclipse — например, MyEclipse. Кто использует — понятия не имею.

          Бесплатная версия IDEA (т.н. Community Edition) действительно урезана, это же логично! Но мне лично для домашнего пользования её вполне хватает. Полезные для меня вещи в платной версии — это поддержка веб (рефакторинг и дебаг в Javascript, CSS, HMTL), поддержка Ruby, Code coverage. На работе они очень нужны, поэтому на работе для всех девелоперов куплены лицензии. Всё логично.
          • +1
            Уважаемый, вы правда считаете что MyEclipse относится к Eclipse как платная версия IDEA относится к бесплатной? Вы глубоко заблуждаетесь.
            MyEclipse использует Eclipse, но не является платной версией Eclipse — это полностью thirdparty разработка, и вообще по сути набор платных плагинов для Eclipse. То, что кто-то сторонний решил завести набор платных плагинов к Eclipse не делает сам Eclipse платным, и не ставит его в один ряд с IDEA в этом плане.
            И да, пользовтаелей MyEclipse я встречал в реальной жизни ровно 0 штук, хотя это не важно.

            Про пользу от коммюнити — я совершенно не понимаю о чём вы говорите. Коммюнити дописывает Eclipse и плагины к нему, вы ними пользуетесь — это и есть польза, чего вам ещё?

            Что же касается того, что там вам хватает для «домашнего пользования» в IDEA — могу только порадоватся за вас. Но того факта, что бесплатный Eclipse не урезан ни капельки, это не меняет.
            • 0
              Плагины для IDEA тоже кто-то дописывает. Я не знаю, это комьюнити или некомьюнити, но плагинов для IDEA достаточно много, и они, между прочим, хорошо работают.
            • 0
              у MyEclipse сейчас есть довольно хорошая ниша — они предлагают своё IDE как большее дешёвую альтернативу IBM-овскому RAD-у. $250 за MyEclipse Blue против $800-$2000 за RAD.
    • 0
      Вот это её опенсорсность не всегда сулит добро, иногда нужен плагин а ты пробуешь 2-3 и все с какими-то недоработками и недоделками, в итоге муки. Есть плагин RSE его юзаем по полной но блин он постоянно кидает ошибки ниочем! при каждой попытки сохранить файл по ssh вижу ошибку «An internal error occurred during: „RevertResourcesOperation“. java.lang.NullPointerException» И вот наблюдая по 200 раз за день ошибку ( в прямом смысле по 200) эту, хочет казьнить разработчиков, воскресить и снова казьнить.
      Для меня idea удобна еще тем, что её поставил и работаешь, без доп настроек и плагинов, все автометички все есть.
      • 0
        > Вот это её опенсорсность не всегда сулит добро
        Но не всегда ведь и зло.
        Читайте же комментарии — вся суть была в том, что не всё так однозначно.
        • –1
          А я и не говорил что всегда. Но скажу прямо плагины к эклипсу меня печалят. очень много косяков встречается ((
  • +6
    Не буду как-либо комментировать статью, ибо у каждой среды есть свои поклонники. Могу лишь от себя добавить пару слов. Я тоже поработал и там и там (пусть не так долго ибо мой стаж еще мал) и скажу что мне частенько не хватало некотоых вещей одной IDE в другой и наоборот )
    Могу еще сказать пару слов вообще о Jetbrains — фирма делает свои продукты на совесть, понимая что разрабочик должен разрабатывать архитектуру и грамотный код а не тратить время на рутинные задачи. Так как я пишу для веба на java то и постоянно сталкиваюсь с функционалом на javascripte. Поработав в eclipse с js я навсегда проклял все на свете, то что может сделать phpstrom или webstorm с вашим проектом на html js это чудо, экдипс тут просто блокнот.
    Опытному человек понядобиться день чтобы настроить экплис с нуля. не опытному неделя. 50% функций по работе с js эклипс не тянет в отличии от вебсторма.
    Понимание контекста я признаюсь отличное, он даже может анализировать Классы написанный на js (не забываем там целый механизм реализации и как такового класса нет). Разработка для веба становиться в 2 раза быстрее.
  • +4
    Раньше пользовался Eclipse для верстки, т.к. в нем одном из первых появилась поддержка zen coding. Уже давно перешел на Webstorm и тоже могу сказать, что в плане инструмента для верстки он гораздо удобнее.
  • +17
    Спасибо ребятам из JetBrains за то, что контекст понимают и pyCharm и phpStorm. Я не представляю, как раньше без этого жил!
  • +5
    Имхо, статью можно ужать в один тезис — Идея лучше понимает контекст.
    Этот тезис можно использовать в сводной таблице, сравнивающей разные IDE.

    А в таком виде пост уж слишком категоричен при своей однобокости.
    • –1
      Спасибо, значит, я хорошо сформулировал свою мысль.
  • +5
    pycarm тоже лучше чем pydev, ИМХО
    • +1
      pyCharm =) согласен. Но чаще все-же юзаю Sublime Text 2 или gedit (оба с плагинами для python/django)
      • +2
        Если проект небольшой, Sublime Text 2 или gedit достаточно, но когда код переваливает за пару десятков мегабайт без полноценной IDE сложно обойтись
  • +2
    Платная версия Идеи лучше Эклипса по всем направлениям, кроме шрифтов под Линукс и цены.
    Если бы она была бесплатной — всех этих разговоров было бы в разы меньше.

    Опыт в Эклипсе — 4 года.
    Опыт в Идее — 0.5 года.

    И это я молчу про интеграцию с системами типа jira, teamcity и т.п. В идее она тоже намного лучше, а это сейчас даже важнее непосредственно кодирования.
    • 0
      Насколько я помню, у меня проблема с шрифтами в Идее (кажется до 9й версии я ее там использовал) на Debian c Гномом решалась -Dawt.useSystemAAFontSettings=on в idea.vmoptions, arch c awesome такой проблемы уже не имел, хотя в то время использовал RubyMine.
  • 0
    Я в IDEA не работал, но Eclipse тоже неплохо понимает контекст, сам типы в шаблонах подставляет а как его конструкция toarray работает — вообще чудеса какие-то!
    К сожалению только это видео нашел, но и тут видно что Eclipse половину работы за программиста делает:
    archive.eclipse.org/technology/phoenix/europa/TestFirstWithEclipse/
    • +1
      очень обыденно, ничего особенного не увидел.
    • +1
      Вы точно не видел IDEA если называете это половиной работы.
      метод создался без отступов
      имя переменной первый раз надо вбивать вручную а ведь в большинстве случаев переменную я назову так же как класс или как часть имени класса
      подставляя имя класса после слова new эклипс даже круглые скобки не вставил
      а то что надо руками ставить закрывающие скобки и точку с запятой — это ваще пипец
      в идее я жму шорткат ctrl+shift+enter: скобки и точка с запятой ставятся и курсор на следующей строке чтоб я мог продолжить
      • 0
        Вы точно не видели eclipse, он сам подбирает имена для переменных и сам ставит круглые скобки. Я просто видео лучше не нашел. А по поводу IDEA — после этой статьи я просто не мог не поставить себе community edition. Пробую в нем работать, пока нечего сказать, кроме того что на моем стареньком компе он однозначно тормознее eclipse.
        • 0
          Чудес не бывает. IDEA предлагает свои возможности не за просто так — конечно, ему нужны ресурсы на то, чтобы индексировать код и держать всё это в памяти.
          Поэтому я и сказал: IDEA — это серьёзный инструмент для серьёзной работы. Так может, и не стоит серьёзную работу делать на стареньком компе?
          • 0
            Может мне теперь вообще не работать потому что у меня комп слабый и не тянет такой серьезный инструмент как IDEA?
            Пойду продолжу свою несерьезную работу в eclipse.
            • 0
              Господь с вами, ничего такого я не имел в виду. Я ничего не знаю про вашу работу и не мог оценить её серьёзность.
              Я говорю, что IDEA имеет свои преимущества, но и свою цену (в виде потребляемых ресурсов). Поэтому стоит взвесить, нужно ли вам это качество по этой цене. Если нужно, то стоит подумать над тем, чтобы купить компьютер по новее и IDE покруче. Если не нужно, то может, и IDEA вам не нужна при всей её крутизне.
  • +3
    Ну взять тот же NetBeans, с которым автор судя по всему не общался. Контекст понимает похуже IDEA может быть, но тем не менее понимает: он знает куда какой параметр можно засунуть (как минимум типизацию учитывает всегда, в 7.1 он ещё и первоначально выдаёт только те дополнения которые уже есть в импортах). Пример с дебагом работает, но не во всех ситуациях. В ситуации с рефакторингом берёт минимальную «порцию» (встал на строку — предложит заменить только строку), но имена предлагает адекватные (вообще с автодополнением имён у него имхо всё хорошо, основывается на имени класса в основном).
  • +9
    Я кратко перескажу статью в терминах названий продуктов: IDEA = eclipse + ReSharper.

    Ну и еще IDEA это единственная нормальная IDE для Python(PyCharm) и Ruby(RubyMine), и отличная для PHP(но тут есть аналоги).

    Вот только под линуксом невозможно работать в IDEA(и Netbeans) из-за шрифтов :(
    • 0
      Возможно.
      Надо прописать в /etc/profile.d/jre.sh опцию, включающую антиалиасинг. Не могу сейчас сказать, какую конкретно — на работе только вижуал студия и windows :)

      Правда, сглаживание серое, но по сравнению с несглаженными шрифтами — всё-таки здорово.
      • –1
        Да не поможет эта магия, свинг не умеет нормальное сглаживание. Шрифты получаются слишком тонкие и часто встречаются косяки. Более-менее нормально выглядят только Consolas 15 и DejaVu Sans Mono 14. Чуть больше размер сделаешь — уже ужас.

        Вроде в OpenJDK используется нативное сглаживание, но когда я последний раз пробовал, было намного хуже sun jdk. Кто использует OpenJDK 7 и идею, сделайте, пожалуйста, несколько скринов с шрифтом консолас (15-16) или дежвю санс моно, хочется посмотреть, как сейчас дела обстоят.
    • –1
      Ну и еще IDEA это единственная нормальная IDE для Python(PyCharm)

      А как же PyDev для Eclipse'а?
      • +3
        Он мне подсказывал автокомплит не ориентируясь на типы — это очень бесило.
        Хотя в питоне нормальный автокомплит технически возможен только в третьей версии, но PyCharm мне для второго питона показалась сообразительнее.
      • 0
        Он откровенно плох, если сравнивать с PyCharm. По всем вышеперечисленным причинам.
    • +2
      Вот эта опция:
      export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on"

      А вот скрин:

      Шрифт — DejaVu Sans Mono. Имхо, вполне вменяемо, хотя субпикселей не хватает, конечно.
      • 0
        Субпиксели настраиваются уже в системе. Пользую KDE, там есть в настройках шрифтов. Все выглядит нормально.
        • 0
          Занятно… У меня во всей остальной системе субпиксельное сглаживание есть, только в яве серое. Я думал, это ява дурит.
          Если можно, скиньте скрин, пожалуйста, посмотреть охота на этого загадочного зверя: сглаженный шрифт в яве :)
          Кстати, JDK — оракловское или open?
          • 0
            Оракловский.

            image

            не знаю, будет ли видно так, сделал по крупнее.
            • 0
              Ну да. Там тоже не субпиксельное (простое серое: если увеличить — радуги не будет).
              Но всё же очень аккуратненько смотрится. Что за шрифт такой классный?
              • 0
                Обычный Monospaced…
                • +2
                  Эм… Если я не ошибаюсь, «обычного» monospaced'а не бывает… В смысле, это синоним для умолчального системного моноширинного шрифта.
      • 0
        У меня не получилось(добавил и опцию, и шрифт изменил):



        Шрифт кучерявый :(
        • 0
          Ну да, кучерявый. У меня тоже. Просто сглаживание — не субпиксельное, оно на жирных шрифтах так и выглядит.
          Всё лучше, чем лесенка :)
          Я сейчас себе ещё и стили текста поправил, чтобы жирного не было — стало меньше заметно.
          • 0
            Ну я ощутил не то, что стало лучше, а только то, что стало по другому. Пользоваться невозможно, в глазах рябит и расплывается :(

            Если в PhpStorm это еще исправляется через работу на Windows-машине(удаленные проекты), то в остальных продуктах(IDEA/PyCharm/RubyMine) такого функционала нет.
    • +1
      Это правда. Это всё кривая реализация свинга под иксы :-( но мы уже половину свинга под свои нужды переписали, пофиксим и эту проблему
      • +1
        То есть, в идее будет субпиксельное сглаживание?
        Ох я даже не знаю, что сказать — это круто! :)
        BTW: а в основной свинг его внедрить не получится? Ну чтобы в любом свинговом софте заработало…
  • +2
    Ломка была та еще. После почти 5 лет работы под эклипсом пересел на идею с 4й попытки) К эклипсу возвращаться не хочется.
  • +3
    У Эклипс есть один большой недостаток — он ТОРМОЗИТ и периодически подвисает. Жутко бесит!
    И не нужно острить по поводу прямизны рук — наблюдал это на разных версиях эклипса, под разные платформы и у разных людей.
    • 0
      Из статьи можно сделать прямо обратные выводы. И мой опыт говорит о том же. А то, что идея после каждого чиха переиндексирует проект — на медленных компах просто пытка.
      В любом случае, во всех современных IDE должна быть опция «выключить весь интелект, оставить автокомплит» или что-то подобное.
      • +3
        В идее такое и есть: Power Save Mode.
      • 0
        Не после каждого чиха, а когда в проекте появляется новый jar. Это вообще-то не должно происходить часто.
        У меня такое было, когда наш билд-скрипт был написан так, что сначала стирал все jar'ы из проекта и потом заново их копировал (ant ivy:clean ivy:retrieve). Вот тогда да, IDEA начинала все jar'ы заново индексировать.
        Но лечится это просто — напишите нормально скрипт.
    • 0
      И памяти больше жрет на сравнимых по сложности проектах (хотя возможно это и от кривых плагинов).

      Сам год работал в Эклипсе, потом пересел на Идею и назад уже не вернусь. Эклипс открываю только тогда, когда надо работать со специфическими плагинами — эта среда по сути сейчас стандарт для академического CS комьюнити.
  • +2
    IDEA как бы да лучше. Но к сожалению ее просто не всегда можно использовать.
    Когда появилась коммунити edition — то я попробовал для разработки под android перейти на IDEA — тогда мы как раз курочили исходинки android. Выбрал создать android проект из исходников, натравил на папку с исходниками — IDEA начала создавать проект — после четырех часов ожидания, пришлось ее прибить, вздохнуть и остаться на eclipse.

    При этом на eclipse тот же импорт был минут за 20, рефреш занимал теже минут 20 всего дерева.
    • 0
      Какая версия IDEA?
      • 0
        Это был, нобярь 2010-того когда я пробовал. Какая тогда была версия я не помню.
        • 0
          По-моему 9-я тогда была.
          Они сильно ускориили это дело в 10-й и 11-й версиях, чем многих обрадовали.
          Советую попробовать.
  • +6
    Возник такой маааааленький вопрос… Я не в первый раз вижу споры что лучше: Eclipse или Idea. Но постойте! Есть же ещё Netbeans! Он считается плохой IDE, что его все вечно забывают?
    • +3
      По-моему его пока просто не воспринимают всерьёз.
      • +3
        Все последние 13 лет?
        • 0
          Я за этим всем наблюдаю только с 2007 года и тогда уже Eclipse достаточно сильно обгонял по популярности NetBeans (про IDEA не помню, что тогда видел, но в любом случае возможности по маркетингу у коммерческого продукта гораздо выше), но мне тогда NetBeans больше понравился с точки зрения дизайна (более лаконичным показался нежели Eclipse) и этого тогда было достаточно:)
          Что до популярности, мне почему-то кажется, что это из-за того, что Eclipse — это несколько больше чем IDE — это коммьюнити, я не знаю когда оно сформировалось, но факт, что оно сделало очень много чего полезного (вспомнились только Mylyn, BIRT, Equinox и EclipseLink, но проектов на самом деле гораздо больше) и для удобной работы с этими технологиями проще всего использовать естественно Eclipse.
          NetBeans же это практически IDE + платформа насколько мне известно.
    • 0
      Я пробовал как-то (до этого уже работал с эклипсе и idea) меня сразу что-то его автокомплит опечалил )) и ушел с него. Но хочу заметить инструмент для графического создания интерфейсов довольно хорош, эта функция там нравиться
    • +4
      Тоже был удивлен этим фактом. Для меня по качеству:
      1-2. IDEA & Netbeans
      3. Eclipse
      Эклипс вообще никогда не нравился ни по интерфейсу, ни по слабоватому функционалу голой среды (сейчас не знаю, но раньше даже SVN в поставку не входил, а Netbeans при этом понимает как SVN, так и Mercurial, а сейчас еще и Git начинает понимать. Интеграция со спрингом и т.п. тоже доставляет проблемы). Единственное, чем выигрывает Эклипс так это обилием плагинов, которых субъективно больше, чем нетбинсовских.
      • 0
        Полагаю, из-за того, что в каталог NetBeans сложнее попасть (жестче модерация). Качество против количества.
    • +3
      А есть еще и JDeveloper, который даже и вспоминать не пытаются.
      • 0
        Конечно, зачем его вспоминать :-)
        IMHO, не самая удачная IDE для Java.
    • –3
      нетбинс хорош для всего, кроме редактирования java-кода.
      • +2
        на основании чего такое категоричное утверждение?
  • 0
    Автор сознательно умолчал про такую штуку как Auto build. Который прекрасно работает в еклипсе, но отсутствует в идее как таковой. И после рефакторинга всегда нужно полностью пересобирать все модули проекта чтобы убедится что ничего не поломалось. В еклипсе же с этим все ок.
    • +10
      Начнем с того, что в Idea вообще очень редко что-либо ломается после рефакторинга.
      Кроме того, по своей идеологии Idea и не требует регулярной пересборки проекта — его статический анализатор итак постоянно работает и находит ошибки без всяких пересборок.
    • +1
      То, что IDEA не билдит сразу — есть такое. Но может, это и не нужно? Потому что IDEA билдит автоматически, как только вы попытаетесь запустить приложение, юнит-тесты или ещё чего-нибудь. Так что если вы девелопите по-православному, то есть запускаете соответствующие юнит-тесты после изменения кода, то проблемы нет.
      • 0
        То, что IDEA не билдит сразу — есть такое. Но может, это и не нужно?
        Ну да, в IDE нужно куча всяких других весёлостей, типа автоподстановки при отладке (лично я подобным вариантом ватча пользуюсь раз в месяц), но не нужен инкрементальный авто билд, который ежесекундно экономит кучу нервов и времени :)
        • +2
          Инкрементальный билд там есть. Но зачем же ежесекундный? o_O
          • 0
            Что значит «ежесекундный»? Он же не работает каждую секунду, просто автоматически) Пользовался и нетбинсом (когда ещё под eclipse инструменты для javame были унылы) и идеей, но этого и там и там реально недостаёт. А в целом IDEA нравится, конечно. Но для работы бесплатной мало, да и кое-чего не хватает, ну и открытость в данном случае только в плюс.
            • 0
              в Netbeans есть 'Compile on Save'.
              в IDEA можно поставить вызов компиляции на Ctrl+S и радоваться.
            • 0
              Автоматически — это при каких действиях? При сохранении файла? В IDEA файлы сами по себе сохраняются автоматически. После IDEA необходимость всюду жать Ctrl+S после каждого чиха раздражает.

              Зачем вам сам по себе нужен автобилд? Чтобы обновить код на задеплоеном срвере? Так настройте настройте на Ctrl+S компиляцию текущего файла/модуля, если вам так удобней.
    • 0
      Вы это имеете в виду?
    • +1
      А зачем билдить после каждого чиха? Что касается рефакторинга — не припоминаю, чтобы IDEA мне хотя бы раз испортила Java-код. С javaScript — бывало, но там и кейсы нетривиальные.
  • +12
    Бедолагам, которые таки остануться на eclipse — для выделения выражения под курсором давим «Ctrl+Shift+Верх», если хотим выделить внешнее выражение давим повторно и т.д…

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

    И для автозаполнения когда мы нажимаем Ctrl+Space — eclipse предлогает много разного, но обычно уже на первом месте стоит то, что мы ищем. Так что можно спокойно сопровождать эту комбинацию Enter-ом и в 99% всё будет хорошо.

    Если не хватает в eclipse горячих клавиш, нажимаем два раза Ctrl+Shift+L, и добавляем / изменяем как нам нравиться, например Ctrl+Alt+P для «Introduce Parameter»

    Ничего не имею против Idea. Никогда не пробовал так как очень хорошо владею eclipsе-ом. Так же не играю на пиано, так как всё свободное время уходит на гитару :)
    • 0
      А не подскажете, как в Эклипсе сделать такую штуку, которой очень не хватает после Идеи:

      В Идее можно написать
      aaa = someObject.someMethod();
      И она сможет сама проставить тип переменной aaa.
      А в Эклипсе приходится сначала залазить в явадоки, смотреть возвращаемый тип и печатать его полностью, так как Эклипс, похоже, не комплитит названия классов, которые ещё не заимпортили. Реально замедляет разработку при работе с чужим кодом, когда ещё не помнишь точные названия всех классов.
      • +2
        Обе IDE умеют это.
        Этот рефакторинг называется «Introduce variable». В IDEA он вызывается кнопками Ctrl+Alt+V (от «variable»), а в Eclipse он называется «Extract local variable» и вызывается кнопками Alt+Shift+L (видимо, от «local»).

        Правда, в Eclipse нужно сначала аккуратно выделить всё выражение, которое требуется засунуть в переменную.
        Что и делает его использование в Eclipse неудобным. Не удивлюсь, если большинство эклипсоидов его не используют.
        • +3
          Ах вот оно в чем дело, Вы наверное очень давно elipse не пользовались.

          Нажимаем В ЛЮБОМ МЕСТЕ этой строчке Ctrl+1, смотрим на предлагаемые варианты, в 99% то что нам надо — стоит сверху, так что жмём Enter.

          Ctrl+1 — это вообще магическая комбинация в eclipse, она работает в зависимости от контекста (ой где-то я уже видел в этой статье употребление этого термина), так что такие сложности как «Alt+Shift+L» запоминать не надо. Если чего-то надо, жмём Ctrl+1 и это правильно :)
          • 0
            Действительно Ctrl+1 помогает, но далеко не всегда.
            Если поставить в середине строки курсор и нажать Ctrl+1, во-первых, она предложит решить ПЕРВУЮ проблему в строке, а не ту, которую мне надо. А во-вторых, чтобы выделить часть строки в переменную, мне всё равно надо сначала её выделить курсором.
    • 0
      > Если не хватает в eclipse горячих клавиш, нажимаем два раза Ctrl+Shift+L, и добавляем / изменяем как нам нравиться

      к сожалению в эклипсе очень маленький список фич, т.е. шорткаты попросту не на что вешать

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

      в notepadd++ больше фич редактирования текста чем в эклипсе
      ладно уж идеевские, но хотя бы эти добавьте уже станет комфортнее жить в эклипсе
      • 0
        приведите пару примеров, может они таки есть.
  • +16
    Автор молодец — одним топиком разрешил мировой спорт!
    C нетерпение ждем продолжение серии статей: «Почему Win лучше Unix» и «Почему С# лучше Java»! :-)
    • 0
      *cпор
      • +2
        Вы что, хотите, чтобы на хабре началась кровавая резня «все против всех»?
        • +7
          А она что, когда-то прекращалась?!
          • +3
            (поёт Градский):

            И вновь продолжается бой!
            И сердцу тревожно в груди!
            Андроид такой молодой,
            Но всё же айфон впереди!
            • +3
              Это же Кобзон!
              • 0
                Точняк, перепутал их. Спасибо за уточнение :)
            • 0
              Рваный свитер на плечах, штекер воткнут в левый пах…
    • 0
      Кстати, emacs тоже понимает контекст, в отличии от vim :)
      • 0
        вы имели в виду CEDET?
        • 0
          CEDET может как с парсером (semantic) так и без парсера работать, тупо по тэгам.
          Я не осилил настроить его под python и перешёл на ropemacs, который ведёт себя вполне в (описанном тут) духе IDEA.

          Насколько я знаю, многие prog-mode сами по себе парсят сорцы и строят AST на предмет подсветки синтаксиса, автоотступов, автодополнения и всяких C-M-f.
  • +2
    Если вам нужны красивые иконки, платформа для создания настольных приложений, или IDE для C++, то Eclipse, вероятно, предпочтительнее. Если же вы серьёзный Java-программист, и вам нужна среда, позволяющая быстро и удобно вести разработку, сосредоточившись на проблеме и не отвлекаясь на средство разработки, то IDEA — это то, что нужно.

    Ну уж прямо совсем круто. IDEA — используют серьезные ребята, а Eclipse — домохозяйки кто-то, кому нравятся красивые иконки. :-) Не совсем согласен с этим, но а в целом статья полезная, спасибо.
    • +1
      Роль красивых иконок нельзя переоценить, на самом-то деле. Все-таки я их вижу по нескольку часов ежедневно.
  • +7
    >> Eclipse красивее

    Пардон, но это исключительно дело вкуса. Лично я когда-то начал присматриваться к Идеи исключительно из-за того, что она красивее Эклипса, дизайн которого мне очень сильно резал глаз.
    • –1
      Забыл добавить: я говорю о Windows-версии (в Linux'e Идея выглядит немного иначе)
      • 0
        так же как и eclipse на linux-е выглядит неидеально :)
  • +3
    Я лучше расскажу, что в Eclipse сделано лучше, чем в Idea.

    1. Eclipse только одно сочетание клавиш completion, оно работает для context completion, и для разворачивания шаблонов и также оно работает для override. Т. е. если курсор стоит в теле класса (снаружи метода), то Cmd-Space предлагает методы, которые можно переопределить. А ещё такой completion внутри класса предлагает написать геттеры и сеттеры. В Idea для этих действий сочетания клавиш разные.

    Причём в Idea даже для context completion два разных сочетания клавиш (простой и по ожидаемому типу результата). Eclipse тоже умеет подсказывать под типу результата, он просто такие подсказки показывает вверху списка.

    2. В Eclipse есть такое сочетание клавиш quick fix, которое всегда предлагает контекстно что-то улучшить: исправить тип переменной, поставить фигурные скобки у блока, сделать pull negation down, удалить неиспользуемую переменную, introduce variable и т. п. В Idea для этих действий нужны разные сочетания клавиш.

    3. В отличие от Idea, окошко outline в Eclipse показывается без заголовка, а панелька сверху занимает гораздо меньше места, чем в Idea.

    4. В Eclipse не надо нажимать на кнопку make, чтобы узнать, что изменение в этом файле поломало код в каком-то другом файле. Это, наверное, одна из самых важных фич Eclipse.

    5. В Idea call hierarchy только вызывать только с метода, а в Eclipse ещё и с поля и с конструктора.

    ©stepancheg
    • 0
      IDEA на самом деле предлагает выбор. У неё есть и разные клавиши для разных действий, но у неё и и одна клавиша, которая делает всё (quick fix) — Alt+Enter.

      То, что IDEA не билдит сразу — есть такое. Но может, это и не нужно? Потому что IDEA билдит автоматически, как только вы попытаетесь запустить приложение, юнит-тесты или ещё чего-нибудь. Так что если вы девелопите по-православному, то есть запускаете соответствующие юнит-тесты после изменения кода, то проблемы нет.
      • 0
        Билдит не сразу, чтобы не падала скорость, но это с лихвой окупается их парсером и полной индексацией. У меня всего раз (на версии 7 еще) была ситуация, когда IDEA подсветила баг, где его не было. Там сложные generic'и были.
    • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        5. Для таких вещей есть — Analyze dataflow to here ибо переменные это не методы, а данные
    • +2
      >>Eclipse тоже умеет подсказывать под типу результата, он просто такие подсказки показывает вверху списка.

      Идея при выводе подсказок кроме типа ещё использует информацию о названии переменных и параметров, то есть если есть переменная нужного типа с именем, как у параметра метода, то такая переменная будет первой в списке подсказок. Это просто офигенно ускоряет автокомплит, когда имеешь дело с методами, у которых в качестве параметров используются примтивы или стринги (то есть типы, которых в текущем контексте может быть потенциально много).

      По всем остальным пунктам уже ответили — от себя добавлю по пункту 4.
      Для меня пункт 4 в купе с отсутствием автосохранения — это один из самых больших недостатков Эклипса. Я считаю, что есть написание кода, а есть компиляция — это два разных процесса. Я не всегда хочу компилировать текущий код, но при этом хочу, чтобы всегда были сохранены мои последние изменения в коде. Эклипс же считает компиляцию чем-то таким, что даже недостойно отдельного хоткея, но при этом заставляет помнить о необходимости сохраняться (особенно это раздражает при переключении перспектив, когда начинают выскакивать окошки с требованиями сохранить изменения).
  • +1
    Хочется подчеркнуть по контекст: нужно понимать что IDEA реально понимает весь проект, а не просто текущий код (поэтому при первом открытии так долго индексирует), и не только для jvm языков. Например автодополнение тегов jsp/html подсказывает/дополняет подходящие сюда css стили, функции и объекты js. При переименовывании css класса он автоматически переименовывается везде где используется. Или показывает в коде связанные бины спринга, или связи всех частей для Grails (конечно с автодополнениями). Ну и т.д.

    Совершенно естественные вещи, но когда я последний раз видел эклипс он большинство не поддерживал.
  • +3
    Сколько бы не было плюсов у OpenSource но, например в PhpStorm, мы имеем настроенную систему Все-в-Одном, которая работает ОЧЕНЬ качественно и продуманно. Иногда такое ощущение что IDE читает мои мысли. Кроме того работает очень быстро и тянет огромные проекты без проблем

    В Eclipse же мы имеем кучу доп. плагинов, многие из которых то заброшены, то не поддерживают последнюю версию, то работают не так как хотелось бы. Можно сравнить с мобильным телефоном — куча всего и все так себе работает.

    В этом плане я за проприетарщину — заплатил раз (не так и много) и не мучаешься в дальнейшем
    • 0
      Я несколько раз пробовал перейти с NetBeans на PhpStorm, но всегда были вещи, которые меня останавливали. Вот не везло как-то, может просто плохо разобрался? Вы не можете подсказатть (я так понимаю, что Вы работаете в phpStorm, думаю, хорошо в нём разбираетесь), как настроить autocomplete для namespase? Скажем, у меня прописаны константы в \Project\Settigs\, и я начинаю набирать \Pro, а оно мне советует что угодно, но только не \Project. Ладно, думаю, напишу вручную, дописал, начинаю набирать \Project\Set — то же самое. В конечном итоге, когда ввёл в ручную уже \Project\Settigs\ оно всё еще не может догадаться, что мне нужны константы из этого namespace… NetBeans уже с одного только бекслеш понимает, что надо подсказывать пути для namespace, а потом и извлечь и предложить имена констант.

      Я всё думаю, что что-то не так делаю, может подскажете как с этим разобраться?

      По многим параметрам реально нравится, но если не работает что-то, на что в проекте активно опираешься, то сразу как-то всё остальное становится бесполезным.
      • 0
        Даже не знаю как Вам помочь. Ничего не настраивал специально. Само работает
      • +1
        Возможно вы переходили как раз тогда когда с namespace там непонятки были в ПХП. Сейчас вроде все окей
        • 0
          Последний раз пробовал с месяц назад, думаю. В любом случае спасибо за ответ, попробую еще с более свежей версией.
  • –8
    Зато у Eclipse есть Google Plugin for Eclipse. И если Вы хотите писать на GWT, то увы, юзайте eclipse.
    • +4
      Какая ерунда, у идеи тоже есть прекрасный GWT support
  • +1
    Я боюсь, что основная проблема в том, что люди привыкли к Eclipse. И не хочется ничего менять. Особенно когда ты знаешь где в Eclipse какие грабли лежат. Другими словами, переход с Eclipse на что-то другое — выход из зоны комфорта. Мне нравится IntelliJ и в свободное от работы время я пользуюсь только им, но на работе у нас используется Eclipse и вряд ли удастся от него отказаться, потому что он пророс глубже некуда.

    P.S. Какая комбинация клавиш в Eclipse для инкрементального выделения(в IDEA это Ctrl+W)?
    • 0
      Аналог Ctrl+W в Eclipse — это Shift+Alt+стрелка (влево, вправо, вверх — у каждой свой смысл).
      Мне показалось, что эклипсовский вариант работает хуже, в том смысле, что IDEA лучше понимает, какие слова выделять.
  • 0
    Спасибо! Приятное окончание рабочей пятницы.
  • +1
    Странно, что никто ничего не сказал про Emacs + CEDET.
    В JetBrains`овских продуктах есть одна большая проблема — они собственно на Java, из-за чего:
    1. Дикие тормоза на нетбуках.
    2. Вырвиглазнейшее сглаживание шрифтов под линуксами.

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

    При этом их же решарпер на том же нетбуке работает вполне себе хорошо.
    • +2
      Чтобы вы знали, Eclipse тоже на Java, так же как NetBeans и JDeveloper.
      Тормоза происходят вовсе не из-за Java, а из-за пресловутой «интеллигентности»: IDEA анализирует весь проект, чтобы вам потом подсказывать всё, что можно. Естественно, это требует дополнительных ресурсов. Поэтому я и говорю: если вы серьёзный программист, купите себе серьёзный компьютер и поставьте на него серьёзную IDE.
      • 0
        Печаль в том, что на очень большом проекте даже очень мощный компьютер не помогает. Особенно когда дело касается Maven (поддержка которого, к слову, мне в IDEA совсем не понравилась). А если ещё добавить OSGi, то совсем грустно становится.

        Я бы с удовольствием вернулся на Eclipse, но увы.
        • 0
          А что там не так с Maven? Вот сколько пользуюсь — не встречал проблем.
          • 0
            Во-первых, медленно (у нас ~200 модулей). Любое изменение POM-ов — зависание на секунду. И это без автоматического ре-импорта! Каждый ре-импорт — это ещё секунд 20.

            Ненадёжно работает поддержка фильтрации ресурсов (иногда перестаёт делать определённые подстановки и непонятно в чём дело и как чинить). Хотя сам факт наличия поддержки Maven-овской семантики фильтрации ресурсов — это хорошо.

            Несколько случаев, когда валидация идёт не по правилам Maven (а, видимо, по тому, как показалось правильным разработчикам). Например, пустой relativePath в ссылке на родителя и стабильные снэпшот версии (вот это вообще обидно).

            Игнорируются настройки VCS, когда открываешь проект с POM-а, хотя в POM указаны правильные URL-ы. Причём, например, git всё-таки детектится (видимо, по наличию каталога .git), а вот Perforce — нет (он ничего в рабочий каталог не сохраняет).

            Это всё мелочи, конечно, но всё равно мешает. Особенно тогда, когда нужно пересадить 200 человек на Maven, а большинство из них его видит в первый раз.
            • 0
              Хм. Да, модулей многовато, если одним проектом держать. Но что такие тормоза без автореимпорта — странно.

              Пробовали им в багтрекер писать обо всех проблемах?
              • 0
                Да, модулей совсем уж многовато. Это, конечно, в том числе и из-за кривой организации процесса разработки.

                О каких-то проблемах писал, может исправят.

                Да, их багтрекер мне тоже не нравится :) Плохо гуглится, непонятный какой-то.
      • 0
        А почему студия с решарпером (от той же компании и на тех же алгоритмах) не тормозит?

        Мне к серьезному и большому ноутбуку и серьезному и большому десктопу нужен маленький компьютер с большим временем работы для разъездов.

        Для Ruby я себе в итоге поставил емакс, и он при правильном приготовлении серьезнее RubyMine (ну или IDEA, что то же самое).
        • +2
          при правильном приготовлении
          сколько-сколько, говорите, заняло «приготовление»?
          • –2
            Два неторопливых вечера с нуля. Сложность емакса сильно преувеличена.
            А человеку неспособному освоить емакс стоит задуматься о правильности выбора профессии, имхо.
            • 0
              Ну и как, умеет оно tv.jetbrains.net/videocontent/issue-trackers-integration-tasks-and-ide-contexts например или хотя бы go to controller из шаблона? Про go to definition не спрашиваю, т.к. уверен, что умеет. Про Extract Method тоже — потому что скорее всего не умеет.
              • 0
                Да пожалуйста:
                1. RedMine — www.youtube.com/watch?v=Qhl3JRO7xp0 Остальное нагуглите.
                2. www.emacswiki.org/emacs/RubyOnRails — go to controller, go to view и прочее для рельсов
                3. Великое множество плагинов. Первый в гугле для ruby — www.kmc.gr.jp/proj/rrb/structure-en.html

                Мне бы вашу уверенность, особенно в вещах о которых я ничего не знаю.
                • 0
                  1. оно умеет связывать открытые файлы, issues в трекере и changelists в один контекст и переключаться между ними лёгким движением пальцев? и в диалоге коммита показывать только изменения, касающиеся текущей задачи? что-то очень сомнительно.
                  2. вроде как github.com/dima-exe/emacs-rails-reloaded не хуже поддержки Rails в RM.
                  3.
                  All ruby scripts you want to refactor must be loaded on emacs.
                  Делать мне больше нечего.
                  И да, надо понимать, что наличия Find Usages мне ожидать не сто́ит?
              • 0
                И да, за «мышинный подход» в вашем видео, имхо, надо убивать. Мне было бы лень все время за мышкой рукой лазить.
                • 0
                  ну и мне лень. потому и пользуюсь клавиатурными сокращениями.
            • 0
              И да, мне бы вашу уверенность, особенно в людях о которых я ничего не знаю.
            • 0
              и ах да
              примем длительность вечера за 3 часа. т.о., приготовление заняло 6 часов. при ставке 20$/час стоимость приготовления составляет 120$. Для сравнения, персональная лицензия на RM мне обошлась в 30$ и ежегодные апгрейды — по 40$.
              • 0
                Классический, но не всегда правильный аргумент. Вы потери на свидания с девушками и просмотр кино тоже расчитываете? Не проще сразу проституткам платить?

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

                И да, я вложил два вечера своего времени как в свое образование, подучив лисп (это всегда полезно), немножечко подняв свой уровень в никсах и вообще расширив кругозор, что почти всегда положительно влияет на уровень дохода.
                • 0
                  Ничего не имею против покурить лисп и emacs. Но делать то, что а) уже сделано и б) скорее всего лучше, чем сделал бы я, нахожу довольно демотивирующим занятием.
  • 0
    Миллион лет жду модуля для C# в IDEA. Пока приходится пользоваться SharpDevelop (такая дрянь). Сразу: VS не предлагать, она прекрасна, но по определённым условиям нет возможности (да и желания) её использовать.
    Может я чего-то не знаю об IDEA?
    • +3
      >Миллион лет жду модуля для C# в IDEA
      боюсь, что по понятным причинам ждать придётся ещё примерно столько же.
    • 0
      Зачем им делать модуль для IDEA если они уже вполне хорошо продают решарпер?
      Подозреваю, что у них есть какое-то соглашение с Майкрософтом.
    • 0
      Компания Intellij сделала надстройку для VisualStudio под названием Resharper, которая делает VisualStudio «интеллигентной». А делать свою самостоятельную IDE они не планируют — нет смысла.

      Здесь рассказано про Resharper:
      www.devclub.eu/2011/01/30/video-dnesteruk-resharper-extensions/
    • 0
      а как же resharper?
    • 0
      ReSharper прекрасная вещь, тут спору нет. Но это надстройка для VS, а VS мне не подходит к сожалению.
      Это печально, что для C# есть только одна IDE на весь мир. (Я не холиварщик, но привык судить строго и категорично: SharpDevelop и иже с ними как-то стыдно даже называть IDE)
      • 0
        Monodevelop никак?

        monodevelop.com/
        • +1
          Опять же, не холивара ради, но монодевелоп похуже даже шарпдевелопа будет.
          • 0
            OK. я просто не в курсе :)
  • +1
    IDEA видел одним глазом, потому не могу сказать с полной уверенностью по поводу одной штуки. В Eclipse в дереве проектов напротив каждого класса показывается, есть ли в нём ошибки/ворнинги или нет. В Netbeans, например, такое работает только с ошибками компилятора, и при этом никак не учитываются настройки самой среды — хинты работают только в редакторе кода. В Eclipse я могу, например, повесить warning или error на случай, когда мы проваливаемся через case'ы в switch (и забываем break) и все файлы, где такое есть, автоматически подсвечиваются как содержащие ошибки или ворнинги. В IDEA «из коробки» видел поведение, аналогичное Netbeans. Может, это и можно как-то настроить, но я не вникал. А без такой фичи усложняется контроль за качеством кода. Ну т.е. можно, конечно, использовать сторонний анализатор кода, но это надо во-первых, ставить (а в Eclipse уже из коробки есть), а, во-вторых, настраивать анализатор кода и среду, чтобы получалось сходное поведение. Плюс опять же, анализатор кода всё в отдельном окошке вывалит, а Eclipse прямо в дереве проекта показывает проблемы.
    • 0
      Конечно, в IDEA есть встроенный анализатор кода. Есть мнение, что он мощнее эклипсковского, но на эту тему спорить я бы не рискнул.
    • 0
      В IDEA подсвечиваются все файлы содержащие ошибки. Warning'и — только при просмотре конкретного файла
      • 0
        Ну дык это же и плохо!
    • 0
      Не могу точно сказать насчет case, но в целом inspections там очень немало и для каждого можно настроить highlight level. В дереве проекта файлы с проблемами уровня error подчеркиваются красным.
      • 0
        А я про что? Ошибки — показываются. Ворнинги — нет. А это и есть плохо. Мне что, каждый файл открывать и проверять, есть ли в нём ворнинги?
        • +1
          Не знаю, вам может и плохо. Меня лично по поводу поиска варнингов прекрасно устраивает analyze, который эти варнинги покажет списком. А дерево проектов, расцвеченное как новогодняя елка, меня не впечатляет.
        • 0
          А как же NetBeans`овское окошко Task? оно вам много что может выводить, фильтр настраивайте сами ;)
          • 0
            А оно всё равно не показывает глобальные ворнинги
        • 0
          > Ошибки — показываются. Ворнинги — нет.
          если ворнинги критичны то это уже ошибки
          открываете настройки нужных вам инспекций и меняете их тип на ошибки

          лично я деревом проектов не пользуюсь вообще
          все операции по работе с файлами из редатора можно сделать
          а, вспомнил когда пользуюсь, когда хочу рекурсивно сравнить две папки, тогда я эти папки в дереве отсыкиваю и жму ctrl+d

          а если хочу поискать все ворниги — жму кнопку analyze и смотрю их в отдельном окне, там их просто можно сразу авто-фиксить по типу или по папке и т.д.
    • 0
      Видел интересную фичу в нетбинсе (ничего существенного, просто забавный факт):
      — он может исполнять некоторый не компилируемый код.

      Скажите пожалуйста — такое есть в других?
      Ситуация:
      мелкий класс, синтаксическая ошибка, которая делает невозможным компилирование, несколько команд до ошибки в функции main. Эти функции выполняются. Отдельно отмечу — специально писал класс с нуля, поэтому никакого отбуилденного варианта не было. И да — это не относится к проектам, в которых много классов.
  • –1
    Юзаю IDEA, понравилась из-за того, что раньше юзал PhpStorm, очень удобно писать PHP и Java в минимально отличающихся IDE

    В статье, имхо, не хватает картинок «а как в Eclipse?» Думаю, сравнение было бы более наглядным
    • +1
      Картинок в статье ровно поровну. Для каждого случая — один скриншот из Eclipse и один из IDEA.
  • 0
    А есть в IDEA что-то типа www.eclipse.org/mylyn/? Если нету, то тогда извините… В PHPStorm`е тоже скорее всего нету. И по-мойму в wish-листах он, и там, и там, имеется с хорошим рейтингом (на текущий момент wish-листы у IDEA/PHPStorm сломаны).

    Вот это реальная тема, контекстно-ориентированная. Я когда его попробовал — уже ничего другого не хочу.

    Основная идея – показывать только те файлы/методы и т.д., которые к задаче/багу относятся. Когда у нас задача заново открывается — то и файлы и позиция курсора и все точно также, как было.

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

    Детали см. в исторической презентации автора, после которой я вообще пересел на это чудо: tasktop.com/resources/videos/w-jax/kersten-keynote.html

    А вообще интересно, когда же уже наконец изобретут идеальнейшую IDE, после которой не надо никуда пересаживаться? :)
  • 0
    Прочитал статью, прочитал комменты…

    В общем, явно будут желающие написать «обратную» статью.

    Работал и там и там, и в нет-бинсе, везде есть свои минусы и плюсы, иначе была бы только одна IDE.
  • 0
    Раз пошла такая пьняка… кто мне пожет подскзаать чего поправить, что бы идея не отжирала 1,5 гига при компиляции приложения java-flex? Плагины лишние отключил. Да ось Ubuntu 11.04 x32. 3 гига оперативки.
  • +5
    Говорить что Eclipse не понимает контекст, это значит нагло обманывать. Может он понимает его не так тонко как Idea, но все таки. Киллер фича Eclipse по моему мнению сочетание CTRL+F1. Это комбинация выкидывает контексто-зависимый попап, предлагающий рефакторинги и действия для текущего фрагмента кода. Idea не использовал, в Netbeans такого не встречал. Благодоря этому сочетанию мне не нужно учить кучу биндингов на рефакторинг, они все доступны и так (ну или CTRL+F3).
    • +3
      crtl+1, ctrl+3
      • 0
        Сорри, именно так :)
    • 0
      Alt+Enter в IntelliJ.
  • –2
  • 0
    Интересно было бы увидеть статистику по количеству open source-ых проектов (apache, github, google code, bitbucket, sourceforge) с включенными файлами проекта для Eclipse и Idea.
    • +2
      Есть мнение, что файлы конфигурации IDE не надо класть в систему контроля версий. Видимо, потому, что они у всех разработчиков могут быт разные.
      Не знаю, правильно это или нет, но многие так делают.
      • +1
        Брошу ещё одну какашку в сторону IDEA. Eclipse-овские проектные файлы (.classpath, .project и прочие) гораздо проще держать в системе контроля версий. Я навскидку не вспомню ни одной проблемы, главное вместо путей переменные использовать (хотя обычно пути и не нужны).

        В IDEA же, даже в новом формате проектов (каталог .idea), фиг чего сохранишь в системе контроля версий. Она постоянно корячит проектные файлы (даже, казалось бы, вполне стабильные *.iml) при малейших изменениях на диске. Очень неудобно.

        Вот, кстати, ещё одна какашка в сторону IDEA. Eclipse-овские проектные файлы (.classpath, .project и прочие) гораздо проще держать в системе контроля версий. Я навскидку не вспомню ни одной проблемы, главное вместо путей переменные использовать (хотя обычно пути и не нужны).

        В IDEA же, даже в новом формате проектов (каталог .idea) фиг чего сохранишь в системе контроля версий. Она постоянно корячит свои проектов при малейших изменениях на диске. Очень неудобно.

        Открывать проект с pom.xml — тоже со своими приколами.

        На ровном месте куча каких-то тупых проблем.
        • 0
          Объясните, зачем файлы проекта класть в VCS? И что не так с pom-ками?
          • 0
            Чтобы разработчики одной кнопкой могли открыть проект со всему нужными настройками. В идеале POM должен выполнять эту обязанность, но на практике — не получается.

            Что не так с pom-ками? Вот несколько примеров по памяти:

            Нет run configurations (хотя вот их как раз можно в VCS более-менее безопасно хранить).

            Требуются некоторые дополнительные действия по открытию проекта. Если открывать с «нуля» (не имея каталога .idea), то нет run configurations. Если сохранить часть настроек в .idea, то 10-ка вообще отказывается открывать проект (ругаясь, что нет modules.xml). 11-ая открывает, но требует нажатия кнопки «reimport all maven projects», т.е надо всем 200 разработчикам объяснить, что не надо паниковать при виде пустого проекта.

            Настройки VCS для Perforce автоматически не подключаются из pom-ки. Те, кто работал с Perforce, должны понимать, почему критически важно иметь включенную поддержку Perforce в IDE.

            Возможно, ещё дело в настройках форматирования, и.т.д, но я пока не вникал в это.

            Т.е в идеале нужно уметь открывать проект одной кнопкой и получать полностью настроенное рабочее окружение. Только с POM это не получается.
            • 0
              Eclipse кстати можно передать привет за кошмарный unmergable формат run configurations & target platforms.
              • 0
                Да ладно? Те Target Platform, которые указывают на P2 репозитории, выглядят просто и прилично. Малюсенький XML со ссылкой на удалённый репозиторий

                Вообще, от сочетания Maven + Tycho + P2 в консоли и PDE + P2 в IDE у меня остались самые лучшие впечатления. Сборка получается простая и консистентная. Если есть какая-то проблема — она выявляется сразу, а не в рантайме, как это происходит при использовании всяких BND/maven-bundle-plugin. Вся настройка в IDE — это загрузка проекта с определением Target Platform и нажатие одной кнопки «Set Target Platform». При этом ты спокойно можешь перекрывать те бандлы, какие тебе надо.

                А так как теперь поддержка P2 ещё и в Nexus OSS есть, так вообще красота должна быть. Я в своё время извращался с Tycho, чтобы генерировать P2 репозитории для использования в качестве Target Platform, а сейчас по идее достаточно будет деплоить артефакты в P2 репозиторий на Nexus и всё.

                С run configurations проблем не припомню, сохраняли их в VCS без проблем. Правда, сильно сложных случаев вроде не было. Причём в отличии от IDEA их можно локализовывать в отдельные проекты. Не работаешь с каким-то проектом — run configuration не замусоривает тебе UI.
                • 0
                  в конфигурации запуска список используемых плагинов одним очень длинным строковым атрибутом задается. 3 way merge фейлится.

                  Target Platform получше выглядит, но имхо то что у обоих этих форматов нет четкого DTD, формат может свободно меняться от версии к версии (это про TP) — это плохо. В идеале бы иметь EMF-based формат, чтобы можно было использовать весь инструментарий EMF, в том числе EMF Compare для сравнения/мержа.
                  • 0
                    По-моему, мы старались делать так, чтобы список используемых плагинов был пустой (типа запускать всё, что есть в workspace+TP). А дальше уже использовать ленивость+заточенную Target Platform, чтобы лишнее не запускалось.

                    Про EMF согласен. Эх, если бы для Eclipse на основе EMF сделали бы аналог IDEA-вского PSI — это было бы очень, очень круто.
        • 0
          У NetBeans файлы проекта разделены на 2 части «стабильные» которые хранят настройки проекта и практически не меняются и отдельный подкаталог private, в котором хранятся настройки зависящие от компьютера и который сам NetBeans предусмотрительно прячет в игнор сразу. Так что даже имея файлы проекта в контроле версий я практически никогда не вижу чтоб они изменялись.
          • 0
            Круто, если так. Такой подход по-хорошему у всех IDE должен быть.
            • 0
              В теории, у IDEA тоже так и есть. Есть пара файлов, которые меняются (workspace.xml, например) и те, которые не меняются. У них даже в документации написано, какие можно хранить в VCS.

              Вот только на практике IDEA «стабильные» файлы всё равно постоянно меняет.
  • 0
    Вы забыли прекрасную интеграцию с Maven!
    • 0
      особенно если учесть, что интеграция мавена с эклипсом через m2eclipse не поддерживает деревянную структуру модулей.
  • 0
    Принято, особенно имеет смысл при использовании maven–а. Но тем не менее видел большое количество open source проектов в которых для удобства (и простоты настройки для новых разработчиков) файлы конфигурации _проекта_ находятся в репозитории. По моему это была бы показательная статистика популярности IDE.
  • –1
    Главная вещь, отличающая IDEA — она понимает контекст.


    Вроде именно из-за сложности парсинга scala для нормальной контекстной поддержки в IDE джеты решили сделать свой Kotlin.
  • 0
    ибо первые привыкли к нему и не знают, что в других IDE этого может и не быть

    Хорошо подмечено. Изрядно удивился, читая статью, что в Eclipse «этого» нет. По-моему даже в NetBeans есть частично.
  • 0
    почему никто не говорит о том, насколько прожорлива IDEA? Или у всех на работе давно i7 стоят?
    • 0
      Наверно потому, что например на моем нетбуке amd 1.4ГГц, работа с IDEA не напрягает… память щас копейки стоит, выделил ей гиг оперативы и все очень шустренько работает.
      • 0
        Плюс к этому всему висит Chrome с 20 вкладками(300-400 метров), пусть даже оракловский хе и к этому всему стоит Win 7. Где там ваш AMD?????
        • +3
          О ужас… у меня еще и виртуалбокс к вышеперечисленному запущен и нетбинс.
          И Мой AMD себя прекрасно чувствует.
          Ответ банален… linux.
          Я просто исключил прогу пожирающую все ресурсы нетбука под названием Win7… :)
          • –1
            Недавно собрал систему, единственная тормозящая программа… это конечно Unity. А под Win7 любое кол-во ИДЕ, вкладок, виртуалок, плееров — неубиваемо.
  • +2
    Зато когда Idea понимает контекст неправильно, она превращается в блокнот. А Eclipse остаётся IDE всегда. Это классический выбор: кто работает с ванильными технологиями, тому лучше подходит пре-оптимизированное решение (Windows, Idea, etc); а тем кто работает с непредусмотренными разработчиками ситуациями нужно максимально настраиваемое решение (Linux, Eclipse).

    P.S. У нас тут свой проприетарный веб-фреймворк и Idea его очень не любит. Я видел уже не одного разработчика, который приходя фыркал «вы используете Эклипс, а я поставлю Идею», ставил и через несколько недель сдавался и переходил на Эклипс.
    • 0
      Бедные разработчики… вы их на столько затюкивали, что они были вынуждены перейти на эклипс… :)
      • 0
        Мы наоборот всячески поощряем разнообразие. Потому что я лично не люблю всякие vendor lock-in, даже если этот вендор опенсорсное комьюнити. Просто люди устают… Кстати, я и баги бывают сабмичу/комменчу в надежде что Идея их исправит и мы сможем её использовать. Например.
  • +9
    Кхм. Извините, конечно, но вам не кажется, что «лучшее» — это по-умолчанию понятие субъективное и зависящее от ситуации?

    Я довольно долго работал в Eclipse, не меньше работал и в IDEA. Более того, я писал продакшн код в NetBeans, JBuilder, Emacs и даже Notepad++. И каждая из этих сред разработки в определённой ситуации была лучшей. Поэтому любая «крутости» IDE зависит от точки зрения.

    Например, вот вам несколько пунктов в докозательство, что лучшая Java IDE — это Emacs + shell:

    1. В отличие от IDEA или Eclipse, Emacs загружается мгновенно. Это значит, что чтобы исправить пару строк кода или просто посмотреть старый исходник, вам не нужно ждать 5 минут, пока загрузится среда и все её плагины.
    2. Emacs не навязывает структуру проекта. Вам н нужно изголяться, чтобы настроить среду разработки под нестандартный проект с Github, не нужно копаться в настройках, чтобы соединить или разъединить модули, не нужно ограничивать себя единым проектом или воркспейсом.
    3. С Emacs и shell вам не нужны дополнительные плагины для работы со сторонними приложениями. Будь то tomcat, ant, maven, svn, git или что угодно ещё — это всё уже доступно из коммандной строки, не нужны никакие плагины и всегда доступны новейшие фичи любого из этих инструментов. Вы можете комбинировать их как угодно, подключать, отключать, настраивать всеми доступными способами и не бояться, что из-за вот этого плагина отвалится вон тот, и придётся потратить 2 дня на попытку их «подружить».
    4. Emacs не делает того, что его не просят. С Emacs я всегда уверен, что если я сам не вносил изменения в код или конфиги, то они и останутся неизменными. Интеллектуальная подстановка, говорите? Интеллектуальная подстановка основана на шаблонном поведении. А попробуйте на шаг отойти от шаблона и подстановка начнёт только мешать.
    5. Emacs не глючит. В нём не бывает сбоев настроек проекта (потому что все настройки проекта лежат в ant или maven скрипте, который благодаря пункту (4) сам по себе никогда не изменится), он не теряет информацию о состоянии сервера приложений (он вообще ничего не знает о сервере приложений), он не генерирует несовместимые настройки (он вообще ничего не генерирует, если его специально не научить).

    Ну что, я доказал, что Emacs круче IDEA?

    P.S. Это, конечно, сарказм, но лично для меня возможность, например, настраивать проект под себя и безболезненно использовать сторонние инструменты гораздо важнее возможности автоматического вынесения строки в параметр метода. С последним я и сам как-нибудь справлюсь.
    • +1
      Сарказм получился хорошо.

      1. «Настраивать проект под себя и безболезненно использовать сторонние инструменты» IDEA тоже позволяет ничуть не хуже.

      2. "… важнее возможности автоматического вынесения строки в параметр метода. С последним я и сам как-нибудь справлюсь."
      Я тоже так раньше думал, когда сидел на Eclipse. Я тоже думал: «Нафига мне все эти рефакторинги и шорткаты, я ведь и сам эти операции могу руками сделать». И только когда увидел, как быстро и эффективно мои новые коллеги делают это в IDEA, я понял, что значит «IDE повышает твою производительность».
      Да, ты сам справишься, но IDEA справиться с этим намного быстрее и надёжнее. Это как раз тот случай, когда компьютеру надо дать сделать то, что у него лучше получается.
      • 0
        1. Эээ, вообще-то нет. Даже не близко. Философия IDEA в том, чтобы максимально автоматизировать труд разработчика. А для этого ей нужно знать всё о проекте и хранить эту информацию в своих конфигах. То есть IDEA должна знать всё обо всех фичах всех используемых инструментах, а это по определению невозможно. Например, мне может понадобиться создать часть проекта на C++ или Python — IDEA сможет безболезненно включить их в проект, настроить билды и т.д. и т.п.? Вряд ли. Да даже банальней — IDEA позволит мне держать локальный Git репозиторий, но push'ать в SVN? Да ни разу. А Git, вызванный из консоли, сможет.
        Можно, конечно, использовать сторонние инструменты отдельно от IDEA, из той же консоли. И Git вызывать напрямую, и билды мультиязыковых проектов самостоятельно настраивать. Но в чём тогда смысл использования IDEA?

        2. Вы не поняли смысл моего комментария. Вопрос не в том, нужна ли мне при работе такая-то фича в IDE, а в том, как должен выглядеть оптимальный набор фич и характеристик среды разработки в моей конкретной ситуации. Строку в параметры я выношу достаточно редко, чтобы пренебречь этой фичей, а вот отказаться от Git уже гораздо сложнее.
  • +3
    IDEA прекрасна в своем явовском мирке. В более сложном мире, где приходится одновременно работать с дюжиной языков, хочется чего-то более управляемого. Vim например ;)
    Но если надо отладить нетривиальный явовский кусок, загружаю идею.
  • +3
    Не соглашусь на счёт иконок. Мне, например, в IDEA интерфейс больше нравится. Да и swing-овость в Ultimate версии не шибко сильно просматривается
  • +4
    Я тихо продолжаю ждать когда JetBrains выпустит IDE для c++
  • 0
    А еще в Эклипсе совершенно ужасная поддержка JavaScript. Я ей пользовался много лет, терпел, но после очередной их выходки в новой версии с неотключаемой подсветкой ошибок несоответствия типов, которые во многих случаях не ошибки вовсе, начал пользоваться WebStorm и с тех пор Eclipse не запускал даже ни разу.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    интеллектуальность и продуманость продуктов JetBrains позволяет экономить время
  • +4
    Спасибо за обзор. Вопрос чем идея лучше чем эклипс я задаю себе перед каждой поездкой на конференцию, где люди у стенда JetBrains будут это спрашивать. Но обычно я рассказываю про какой-то космос типа Language injection, second smart completion, хитрые wrap/unwrap и т.д. Спасибо, есть вещи проще и понятнее :-)

    Могу пояснить почему у нас так все удобно. Просто идею пишет группа умных и ооочень ленивых товарищей, у которых факт того, что скорость печати не поспевает за скоростью мысли, вызывает дикий pain in the ass. Далее, проблема не откладывается на годы, а фиксится на месте и сразу. Ну почти всегда :-)

    Т.к. Кода написано и переписано было порядка 3MLOC, то и контекстно-зависимых «няшек» было сделано много. А еще Вы забыли упомянуть, что рефакторинги в идее знают порой больше, чем программист. Это в большей части касается J2EE с кучей непонятных конфигов, размазанных по десяткам xml-файлов
    • 0
      не мне тебе рассказывать, конечно, но:

      Читать большие объёмы кода в IntelliJ гораздо удобней. Я имею в виду именно навигацию.
      А ещё Ctrl+Shift+S рулит! :)
  • +3
    phpStorm от JetBrains также хорош!
  • +1
    ithappens.ru/story/8611

    Оставлю тут. На тему холиваров. Чисто поржать)
  • 0
    добавляюсь в поклонники IntelliJ. Тоже лет 5 пришлось использовать Eclipse и теперь я счастлив вернуться на Idea.
    Чего мне в Idea не хватает из Eclipse: Ctrl+Shift+J для генерации жавадока для метода, автогенерации жавадоков для get/set методов и Synchronized view для VCS.
    • –1
      Ой-ой-ой, вы рискуете навлечь на себе гнев богов!
      Комментариев в коде надо писть как можно меньше — вместо этого надо стараться придумывать хорошие имена для перемен и методов и писать юнит-тесты. Эта тема здесь раскрыта подробнее.

      А уж генерировать javadoc, да ещё и для геттеров/сеттеров — это вообще зло. Никогда так не делайте!
      А вот для создания юнит-теста в IDEA есть классный шорткат Ctrl+Shift+T, вот его используйте почаще.
      • +1
        Anyways, код люблю писать аккуратный, когда везде есть комментарии код выглядит аккуратно. Просто при написании документации нужно следовать простому правилу — specify behavior and not implementation details и все коментарии будут не такими уж бесполезными. И это кстати не отменяет ни хорошие имена переменных ни юнит тесты.
        А гетеры\сетеры выбиваются из общего стиля и выглядят как бы неряшливо если комментариев к ним нет, а самому писать стандартные заглушки как-то влом, смысла в них нету особо.
        • –1
          Я знаю, это для многих звучит непривычно, и не все готовы сразу это принять, но мы на работе твёрдо верим в философию "Clean Code", которая, в частности, утверждает, что комментарии — зло, и использовать их стоит только в самом крайнем случае, когда надо сказать что-то важно, и выразить это через названия переменных/методов/классов не получается.

          Любая строчка кода, в т.ч. комментарий, если она не приносит реальной пользы, должна быть срочно выкинута! Воспринимайте её как балласт, который требует обслуживания, но не приносит пользы. Доводы вроде «выбиваются из общего стиля», «выглядят как бы неряшливо» совершенно не котируются. Единственным критерием должно быть: «Делает что-то полезное или не делает». У нас наоборот, любой прокомментированный код выбивается из общего стиля.

          Возьмите хотя бы ваше правило «specify behavior and not implementation details». У геттеров нет и не должно быть никакого поведения, стало быть, и комментарии не нужны.
          • 0
            Да, к сожалению такое правило преобладает среди программистов и в подавляющем большинстве случаев никого уговаривать не нужно чтобы не поддерживать документацию.
            вы скажите, хорошо бы вам жилось если бы классы из jdk тоже следовали вашей философии и не утруждали себя документацией?
            • 0
              Вы меня упрекаете в лени, а сами генерируете javadoc одни нажатием кнопки. Это, конечно, свидетельствует о переизбытке усердности. :)

              Вы путаете две разные вещи. Среди программистов преобладает правило «не делать вообще ничего». А я говорю о правиле «писать вместо комментариев толковые имена и тесты». Это приносит больше пользы, но и требует больше усилий. Так что лень тут совершенно не при чём. Если бы такое правило преобладало среди программистов, я был бы счастлив.
            • 0
              И да, документация для классов из jdk безусловно нужна, но не сгенерированная же! Я уверен, там трудится не один человек, которые пишут, перечитывают и перепроверяют документацию.
              Никогда никому не принесёт пользы комментарий "@return name" к методу getName().
              • 0
                а зачем вы привязались к get/set? это как раз таки исключение из правил, поэтому мне не хватает автогенерации чтобы ВЕСЬ код выглядел единообразно.
                С толковыми именами и тестами я полностью согласен. Но это необходимое, но не достаточное условие для написания качественного кода.
                • 0
                  Да, я именно к ним привязался, потому что именно для них НЕ НУЖНО комментариев, и не нужно их генерировать. Эти комментарии загрязняют код и не несут никакой пользы. Не нужно стремиться к тому, чтобы весь код был единообразно захламлён.
                  • 0
                    понимаете, если в коде нету комментариев, то комментарии на гетерах\сетерах действительно выглядят как хлам. Если же код нормально комментирован, то наоборот они не выбиваются из общего стиля и на класс приятно посмотреть, иногда даже почитать.
                    А вцелом комментарии на getters/setters не есть главная мысль нашего разговора. Вообще я предпочитаю c#, groovy etc подход, где код можно писать без гетеров.
  • 0
    Когда надо было писать проект на питоне, попробовал и Eclipse и NetBeans. И только pyCharm обнаружил django проект и позволил комфортно разрабатывать.

    Кстати, NetBeans сильно «интеллектуальнее» Eclipse, куча мелочей которые жутко бесят после возвращения на Eclipse.

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