• ,

Eclipse, NetBeans или IntelliJ IDEA? Выбираем IDE для Java-разработки

IDEA vs Netbeans vs Eclipse
Представляем вашему вниманию адаптацию статьи Мартина Хеллера, программиста и редактора ресурса JavaWorld.

Вы, вероятно, уже слышали о тройке самых популярных IDE для разработки на языке Java. Процентов 90 промышленных программистов пользуются либо Eclipse, либо NetBeans или же IntelliJ IDEA, и у каждой из этих IDE есть свои преимущества и недостатки. В этой статье мы постараемся описать их так, чтобы вы поняли, какая из них подходит именно вам. Хотя, конечно, лучше попробовать все три в работе, и выяснить, что лучше всего подходит именно вам. Этого не заменит ни один обзор.

Я и ранее работал с этими IDE, но для этого исследования я установил IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE, и NetBeans 8.1 Java EE на ноутбук MacBook Pro. Я тестировал IDE на нескольких open source Java-проектах.

Чего ожидать от IDE


Современная IDE «здорового Java-разработчика» должна поддерживать Java 8, Scala, Groovy, а также другие языки виртуальной машины Java, которые тот регулярно использует. Не оказалась бы лишней и поддержка основных серверов приложений и наиболее популярных веб-структур, в том числе — Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails и Vaadin. IDE должна быть совместима с любыми билдами систем контроля версий, например, Ant, Maven или Gradle, вместе с Git, SVN, CVS, Mercurial или Bazaar. Дополнительно для среды разработки важно уметь работать с базами данных и клиентским слоем вашего стека, обладать поддержкой встроенного JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate, а также API Java Persistence.

Наконец, логично надеяться на то, что IDE позволит редактировать, создавать, отлаживать и тестировать системы без лишнего напряжения. Идеально, если среда разработки поддерживает не только интеллектуальное автодополнение кода, но также интеллектуальный рефакторинг и метрики кода. Во многих случаях окажется не лишней поддержка фреймворков для тестирования и заглушек. Если ваша команда использует систему тикетов и CI/CD, нужно, чтобы IDE могла к ним подключиться. А еще решите, нужны ли вам развертывание и отладка в контейнерах и облаках.

Мы перечислили только основные ожидания (возможно, вам есть, что добавить), а теперь присмотримся к нашим соперникам.

IntelliJ IDEA

IDEA
IntelliJ IDEA с точки зрения возможностей и цены поставляется в двух вариантах: бесплатного Community edition, и платного Ultimate edition с расширенной функциональностью.
Community edition предназначена для JVM- и Android-разработки. Бесплатная версия поддерживает Java, Kotlin, Groovy и Scala; Android; Maven, Gradle и SBT; работает с системами контроля версий Git, SVN, Mercurial и CVS.

Ultimate edition приспособлена для веб- и enterprise-разработки. Эта версия IDE работает не только с Git, SVN, Mercurial и CVS, но также с Perforce, ClearCase и TFS; в ней вы сможете писать на JavaScript и TypeScript; естественно, есть поддержка Java EE, Spring, GWT, Vaadin, Play, Grails и ряда других фреймворков. И, конечно, не обошлось без SQL и инструментов для работы с базами данных.

Идея, которой руководствуются разработчики этой IDE, формируя ценовую политику, заключается в том, что её коммерческая версия (Ultimate) займет свое место на компьютерах профессионалов, за счет чего их производительность повысится. Если Java-программист ежегодно зарабатывает $50 тысяч (или того больше), возврат потраченных на платную IDE IntelliJ IDEA инвестиций (500 долларов за годовую подписку) произойдет очень быстро за счет даже незначительного ускорения его работы.

В последующие годы цена для бизнеса падает, для стартапов, фрилансеров она существенно ниже, а для студентов, учителей, Java-чемпионов и open source-разработчиков она и вовсе бесплатна.
IntelliJ IDEA подкупает своим глубоким пониманием кода, умной эргономикой, встроенными функциями для разработки и поддержкой многих языков.

Intellij IDEA warnings
Рисунок 1. IntelliJ IDEA показывает количество предупреждений (warnings) и предположения, основанные на статистическом анализе Java-кода. Вы можете изучить предположения подробнее, кликнув на них, как показано на картинке; во многих случаях вы получите список с выбором и вариантами исправлений.

Глубокое понимание кода

Подсветка синтаксиса и простое автодополнение кода — обычное дело для любых современных Java-редакторов. IDEA пошла дальше, предлагая «умное автодополнение». Этот термин означает, что среда разработки показывает список наиболее релевантных символов, применимых в данном контексте. Список символов зависит не только от контекста как такового, «общепринятого», но от стиля программирования разработчика, от того, насколько часто он использует те или иные операторы. «Завершение цепочки» и вовсе показывает список применимых символов, допустимых через методы или геттеры в текущем контексте. Кроме того, в случае со статическими членами или константами IDEA автоматически добавляет любые необходимые операторы импорта (import). Во всех случаях автодополнения, IDEA пытается угадать тип символа во время выполнения, уточнить свой выбор и даже применить приведение типов если необходимо.

Код Java часто включает фрагменты из других языков в виде строк. IDEA может вводить код SQL, XPath, HTML, CSS или JavaScript в строковые литералы Java. В этом смысле IDE может проводить рефакторинг кода на нескольких языках. Например, если вы переименуете класс в JPA-отображении, IDEA обновит соответствующий класс сущностей и выражений JPA.

Во время рефакторинга фрагмента кода, у разработчика возникает одно (вполне естественное) желание: чтобы все дубликаты этого кода также зарефакторились. IDEA Ultimate находит дубликаты и похожие фрагменты и также применяет к ним рефакторинг.

IntelliJ IDEA анализирует код при загрузке и непосредственно при вводе. Она указывает на предполагаемые проблемы (как на нашем рисунке выше) и, по желанию, предлагает список вероятных быстрых правок к обнаруженным проблемам.

Эргономика

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

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

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

Встроенные инструменты

IntelliJ IDEA обеспечивает единый интерфейс взаимодействия с большинством систем контроля версий, включая Git, SVN, Mercurial, CVS, Perforce и TFS. Вы можете управлять изменениями непосредственно в IDE, что очень удобно. Когда я тестировал IDEA, у меня возникало желание, чтобы последнее изменение в исходном коде показывалось в окне редактора в виде аннотации (как это происходит, например, в Visual Studio). Как оказалось, у IDEA есть для этого специальный плагин.

Также IDEA оснащена инструментами для сборки, средой выполнения тестов, инструментами покрытия (coverage tools) и встроенным терминальным окном. У IntelliJ нет собственного профайлера, но с помощью плагинов к ней можно подсоединить сторонние. Например, YourKit, созданный бывшим ведущим разработчиком JetBrains или VisualVM (это переупакованная версия профайлера NetBeans).

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

Серверное программирование на Java предполагает частое взаимодействие с базами данных, так что программисты IDEA версии Ultimate оценят удобство инструментов для работы с SQL и БД. Но если кому-то их возможностей будет мало, можно приобрести версию IDEA Ultimate с встроенной SQL IDE (DataGrip). Правда, это будет несколько дороже, чем обычная подписка IDEA Ultimate.

IntelliJ IDEA поддерживает все основные серверы приложений JVM, и позволяет разворачивать и проводить отладку на этих серверах, что нивелирует хорошо знакомые всем программистам Java Enterprise трудности. IDEA также поддерживает Docker (с помощью плагина, который добавляет к среде разработки специальное окно инструментов Docker. К слову, плагинов у IDEA — просто море.  

Настоящий полиглот

IDEA расширила поддержку кода Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS и других фреймворков. Вы, вероятно, заметили, что не все из них относятся к Java. IDEA непосредственно из коробки «понимает» и другие языки — Groovy, Kotlin, Scala, JavaScript, TypeScript и SQL. Если вы не нашли в этом списке нужного вам языка, в настоящий момент есть 19 языковых плагинов IntelliJ, в частности, для поддержки R, Elm и D.

Eclipse IDE

Eclipse
Eclipse долгие годы уверенно держал пальму первенства по популярности среди Java IDE. Эта среда полностью бесплатная, с открытым исходным кодом, написанным преимущественно на Java. Тем не менее, её модульная архитектура позволяет использовать Eclipse и с другими языками. Проект Eclipse, инициированный IBM, появился в 2001 году. Им хотели заменить семейство сред разработки IBM Visual Age, основанных на Smalltalk.
Ну а главной целью, о чем даже название говорит, было затмить Microsoft Visual Studio (eclipse по-английски означает затмение).

Портативность Java помогает Eclipse быть кроссплатформенной средой: эта IDE работает на Linux, Mac OS X, Solaris и Windows.
Хорошо это или плохо, Java Standard Widget Toolkit (SWT), по крайней мере частично, отвечает за внешний вид Eclipse.

Своей производительностью (или, как говорят некоторые доброжелатели, её отсутствию) Eclipse обязана JVM. Eclipse работает довольно медленно, поскольку упирается корнями в довольно старое «железо» и древние версии JVM. Даже сегодня она кажется медлительной, особенно если нацепить на неё много плагинов.
Часть расходов ресурсов Eclipse можно отнести на счёт её встроенного инкрементного компилятора, который запускается всякий раз при загрузке файла или обновлении кода. Полезная штука, именно она ловит ошибки при вводе текста.

Независимо от сборки, проект Eclipse поддерживает модель контента, которая содержит информацию об иерархии типов, ссылок и объявлениях Java-элементов.

Текущая версия Eclipse носит имя Neon (4.6.0). Я инсталлировал Eclipse Java EE IDE для веб-разработчиков (это далеко не единственная опция, вы можете выбрать что-то ещё). Он содержит минимальную Eclipse SDK, а плагины добавляются по требованию. К слову, работа с плагинами в этой IDE — не для слабонервных. Сторонние плагины часто конфликтуют между собой, хотя в их официальной спецификации об этом ничего не сказано.

Eclipse Workbench
Рисунок 2. Слева направо расположены четыре панели инструментальных средств Eclipse: Проводник пакетов, редактор Java, структура классов Java и список задач. Проект, загруженный в Eclipse на этом рисунке — JUnit test framework. Панели можно легко поменять местами.

Поддержка плагинов

Экосистема плагинов Eclipse — это одновременно сильная сторона этой IDE и одна из главных её проблем. Именно из-за несовместимости плагинов порой падают целые сборки, и программистам приходится начинать работу сначала.

В настоящее время для Eclipse написано более 1700 плагинов, официальных и неофициальных, которые могут работать отлично, а могут из рук вон плохо. Плагины Eclipse, поддерживают более 100 языков программирования и почти 200 фреймворков для разработки приложений. Большинство серверов Java также поддерживаются: если вы обозначите новое соединение с сервером из Eclipse, вы попадете в список папок производителей, где найдете около 30 серверов приложений. Только вариантов Apache Tomcat будет целых девять штук. Коммерческие производители, как правило, собирают свои решения вместе: например, есть только один пункт Red Hat JBoss Middleware, а уже внутри вы найдете WildFly и инструменты EAP-сервера, а также JBoss AS.

Редактирование, рефакторинг и отладка

Первый опыт работы с Eclipse, может привести в замешательство, и даже сбить с толку. Поначалу необходимо настроить Eclipse и привыкнуть к её концептуальной архитектуре рабочих пространств, ракурсов и видов. Всё это определяется плагинами, которые вы установили. Для серверной разработки на Java, вы, вероятно, будете использовать ракурсы Java, Java EE и Java browsing, вид, отображающий структуру пакета (Package Explorer), ракурс отладки, ракурс командной синхронизации веб-инструментов, ракурс разработки баз данных и ракурс отладки базы данных. На практике все обретает смысл, когда вы откроете нужные вам окна.
Eclipse практически всегда предлагает несколько способов решения той или иной задачи. Например, вы можете просматривать код с помощью ракурса просмотра Java (Java browsing perspective). Что выбрать — дело вкуса и выбора.

Специальный поиск Java позволяет найти объявления, ссылки и вхождения Java-пакетов, типов, методов, полей. Вы также можете использовать быстрый доступ к поиску и предпросмотр.

Распространенные паттерны кода можно сгенерировать из шаблонов кода. Рефакторинг Java в Eclipse, поддерживает 23 операции, начиная от общепринятых операций по переименованию и заканчивая менее очевидными преобразованиями (как в книге Мартина Фаулера).

Eclipse, поддерживает отладку как локально, так и удаленно, при условии, что вы используете JVM, которая поддерживает удаленную отладку. Отладка довольно стандартна: вы определяете контрольные точки, а затем просматриваете переменные в закладке отладки. Конечно, можно пошагово выполнять свой код и вычислять выражения.

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

NetBeans

Netbeans
NetBeans появилась как студенческий университетский проект в Праге в 1996 году. В 1997 году IDE стала коммерческим продуктом, а в 1999 году её выкупила компания Sun Microsystems (родители Java) и уже на следующий год представила open source-релиз.
Актуальная версия 8.1 работает на машинах под управлением ОС Windows, Mac OS X, Linux и Solaris. Ну а пакет portable можно запустить на любых системах, для которых существует Java-машина. Себе я загрузил Java EE bundle, это один из шести возможных пакетов загрузки. Этот бандл поддерживает JavaScript и HTML, GlassFish и Tomcat, но не поддерживает PHP, C/C++/Fortran, Groovy и Grails: их можно получить в пакете «Всё включено» (или просто «All»). Тем не менее, при желании, я в любой момент смогу загрузить поддержку вышеназванных языков, выбрав соответствующий плагин (да и любой другой). Их у NetBeans поменьше, чем у Eclipse, зато они обычно не конфликтуют друг с другом.

Этой осенью Oracle (ей NetBeans досталась после поглощения Sun Microsystems) решила передать эту среду разработки под крыло Apache Software Foundation вместе со всеми правами, исходными кодами, торговой маркой, доменом «netbeans.org» и рядом других элементов инфраструктуры. Посему, будущее проекта пока туманно, хотя раньше у системы были определенные родственные привилегии. Так, именно NetBeans первой получила поддержку Java 8 практически сразу после выхода обновленной платформы, и была названа «официальной IDE для Java 8». Впрочем, через месяц после выхода это преимущество было утеряно: именно тогда другие IDE также получили поддержку восьмой Java.

Тем не менее, хочу отметить, поддержка Java 8 в NetBeans действительно хороша, и эта IDE отлично подходит для вплетения в «старый» код трюков восьмой версии. Её редакторы, анализаторы кода и конвертеры помогут программисту провести апгрейд кода, используя в нем конструкции, характерные для Java 8 — лямбда-выражения, функциональные операторы и ссылки на методы. Плагины JavaScript в NetBeans 8 отлично справляются с поддержкой Node.js и новейших инструментов JavaScript, таких как Gulp и Mocha, равно как и поддержку интерпретатора JavaScript Nashorn.

NetBeans Maven
Рисунок 3. Здесь NetBeans работает с тем же проектом на основе Maven, что и IntelliJ IDEA был открыт на рисунке 1. Обратите внимание на расширенную функциональность в контекстном меню и подменю рефакторинга.

Редактирование и рефакторинг

Редактор NetBeans поддерживает языки, обнаруживает ошибки в то время, когда вы печатаете, и помогает вам с помощью всплывающих подсказок и «умным» автодополнением кода. По субъективному ощущению IDE справляется с этой задачей быстрее, чем Eclipse, но несколько медлительнее IntelliJ IDEA. Кроме того, NetBeans обладает полным спектром инструментов рефакторинга (что показано на рисунке 3), которые позволяют программисту реструктуризировать код, не ломая его, выполнять анализ исходников, а также предлагает широкий набор подсказок для быстрых исправлений или расширения кода. В состав NetBeans входит инструмент проектирования для графического интерфейса пользователя Swing, ранее известный как «Project Matisse».

Разработчики высоко оценивают средство автоматизированного рефакторинга Inspect & Transform, появившееся в версии NetBeans 7.1. Оно позволяет провести анализ кода проекта и сделать предлагаемые улучшения. Хотя лично я предпочитаю сначала проверить весь собственный код unit-тестами, и только затем запускать инструменты, которые могут внести радикальные изменения. Я неоднократно страдал от всяческих автоматических исправлений, которые привели к невосполнимым последствиям.

Сборка, отладка и профилирование

У NetBeans есть отличная встроенная поддержка Maven и Ant, а также плагина для Gradle. Я очень обрадовался, когда обнаружил, что проекты Maven воспринимаются системой как «родные». Это означает, что их можно просто открывать, а не импортировать. NetBeans также содержит привлекательное (и полезное) графическое отображение для зависимостей Maven.

Отладчик Java NetBeans неплох, но с оговорками. Отдельный визуальный отладчик позволяет программисту делать снимки экрана пользовательского графического интерфейса и изучать интерфейсы приложений, выполненных с помощью JavaFX и Swing. Профайлер NetBeans делает более очевидным то, каким образом используется процессор и память, и обладает отличными инструментами для поиска утечек памяти.

Сравнение тройки гигантов

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

Конечно, все три интегрированные среды разработки имеют своих поклонников и противников. Я знаю множество Java-разработчиков, которые обожают IntelliJ IDEA, равно как и лояльные фанаты Visual Studio C++ и C#. Чаще всего эти люди рады тому факту, что их продуктивность возросла, и стоимость годовой подписки возвращается всего за несколько недель использования платной версии IDEA. Однако пользователи NetBeans и Eclipse также зачастую привязаны к своим инструментам и недоумевают, почему другие программисты готовы платить деньги за IDEA.

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

У Eclipse — самая развернутая экосистема плагинов среди всех IDE, а также наибольшая вероятность «слететь» из-за установки несовместимого набора этих самых плагинов. К сожалению, за время использования Eclipse, я неоднократно должен был удалять очередную поломанную сборку этой IDE и инсталлировать «чистый» бандл.
NetBeans хорошо подходит для большинства разработчиков, у неё отличный профайлер, и я порой его использую. Однако предпочитаю заплатить за IntelliJ IDEA Ultimate. Да и будущее NetBeans пока туманно.

Для начинающих Java-разработчиков, у которых пока нет средств для покупки инструментария, я рекомендую использовать NetBeans или IntelliJ IDEA Community Edition в зависимости от их задач. Первую стоит выбирать тем, кто занимается кодированием серверов Java, но только если вы не попадаете в категорию тех, кто может получить IntelliJ IDEA Ultimate бесплатно или с огромной скидкой (студенты или те программисты, которые разрабатывают проект open source).

«Легкие» Java IDE

Сегодня большинство Java-разработчиков используют IDEA, NetBeans или Eclipse, но порой возникает необходимость в более «легких» средах разработки или даже в редакторах кода наподобие Sublime Text, emacs или vim, которые поддерживают плагины Java.

Ниже я перечислил разумные варианты для тех, кто ищет что-то полегче:

  • DrJava — небольшая бесплатная среда разработки. Её создали для студентов Университета Райса, и она стала довольно популярной: DrJava загрузили уже более 2 млн раз. DrJava призвана развивать разработку, основанную на тестировании (test-driven development). Среда содержит «умный» редактор кода, панель взаимодействия для оценки кода приложения, отладчик уровня источника и инструменты модульного тестирования.
  • BlueJ бесплатная среда разработки на Java, созданная специалистами Кентского университета для начинающих программистов. Эта среда поддерживается Oracle. BlueJ отличается гораздо более лаконичным и простым интерфейсом, чем профессиональные IDE, такие, как NetBeans или Eclipse, и даже содержит специальный учебник по основам ООП.
  • JCreator — ещё одна небольшая Java IDE для Windows, написанная на C++ (из соображений увеличения производительности). Платная версия Pro оснащена отладчиком, поддержкой Ant и code wizards, ну а бесплатная версия (LE) — нет.
  • Eclipse Che — браузерная облачная IDE, поддерживает Java, C++, JavaScript, Python, PHP, Ruby и SQL.

Выбор Java IDE в зависимости от проекта

Я постарался описать важные преимущества каждой из трех самых значительных Java IDE и вскользь упомянул об их полезных маленьких соперниках. Чтобы правильно выбрать IDE нужно взвесить все «за» и «против» и сопоставить их с вашими потребностями и потребностями ваших проектов. Если вы присоединяетесь к команде, будет целесообразно использовать ту же IDE, что и другие разработчики, хотя это и не обязательно.
Если ваша команда размещает исходники на GitHub, естественно, будет удобнее, если ваша IDE поддерживает GitHub. Да, вы можете справиться с передачей кода и без IDE, используя клиент GitHub или командную строку git. Но насколько эффективными будут такие вот прыжки между разными системами?

Также важно, чтобы IDE поддерживала систему сборки. Например, если это Maven, вряд ли вы захотите пересобрать систему в Ant для локального тестирования. К счастью, все три большие Java IDE поддерживают и Ant, и Maven, и Gradle, либо из коробки, либо с плагином. А вот для «маленьких» IDE это может оказаться неверным.

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

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

Просто поверьте: если ваша IDE полностью поддерживает фреймфорки и технологии, которые используются в проекте, это действительно помогает ускорить работу. Вы, скорее всего, и так справитесь. Но, если, IDE понимает, каким образом JPA statements относятся к классам сущностей и выражений JPA (как IntelliJ), на связанный с JPA код вы потратите гораздо меньше времени чем в случае тотального непонимания. Ну а если IDE поддерживает фреймворк для тестирования и используемый для проекта исполнитель кода, вы сможете проводить тесты, не меняя рабочую среду. Что тоже ускорит процесс разработки.

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

Бесплатная или платная?

После тестирования именно от IntelliJ IDEA Ultimate у меня возникло ощущение правильной среды разработки. Этакого Кадиллака мира IDE. Повторюсь: хоть она и не бесплатна, я считаю, что прирост производительности от её использования стоит годовой подписки.

Для начинающих, которые не могут себе позволить годовую подписку IntelliJ IDEA Ultimate, я рекомендую использовать NetBeans, а не Eclipse. Конечно, экосистема плагинов Eclipse сегодня развита куда больше, чем у любой другой IDE, однако она очень заросшая и неухоженная: начинающий разработчик рискует увязнуть в дебрях IDE вместо погружения в работу.

Я также коснулся «облегченных» альтернатив, две из которых были разработаны специально для учебных целей. Что ж, если вы только-только начинаете изучать языки и вам предпочтительнее минималистичная среда — почему бы и нет?

16 комментариев

kazakov
Как говориться — «сколько людей столько мнений». Многие рекомендуют Eclipse или STS как первую IDE для начинающих так как часто именно на них будете кодить на первой работе.

Моя первая IDE была IntelliJ (javarush заточена под неё), но на внутренних курсах одной из компаний пересел на STS и абсолютно никакого дискомфорта не почувствовал. Да немного настроил под себя, поменял некоторые Hot Key как в IntelliJ, и все. Более того я даже не понял в чем прелесть IDE по сравнению STS, но думаю это скорее из за нехватки опыта и простого не использования всех фичей IDEA.
Arsen1y
А может случится такое что на одном проекте требуют владения Eclipse, а на другом Idea? Слышал такое мнение что полезно со всеми IDE поработать. :)
rhasta
Так для этого и нужно «пощупать», оценить.
Kali
  • Kali
  • 0
IDEA конечно рулит, но Eclipse не требует для инсталяции админских прав и это спасает на рабочем компе, а ещё Eclipse позволяет переключаться между проектами без перезапуска. В общем надо всё пробовать, есть плюсы и минусы у всех
maks1m
Админские права нужны только в том случае если будешь ставить в каталог на который у обычного юзера нет прав, например под виндой это Program Files, ставишь в другой каталог и никаких проблем.
Kali
а вот и фига! куда хочешь будешь ставить, если прав нет, винда запросит права админа, т.к. программа при инсталяции делает записи в реестр. Эклипс я полагаю этого не делает, поэтому и возможна установка из под юзера с ограниченными правами.
maks1m
Ну возможно и так, но даже если и так то это вообще не довод для выбора IDE :)
И у меня под линуксом таких проблем нет.
Kali
для меня например аргумент — поскольку на рабочем ноуте прав админа нет, и если изредка выпадает свободная минутка, стараюсь использовать возможность поковырять какой-нибудь пример или задачку. Можно конечно через командную строку да в блокноте, но в наше время это изврат… уметь конечно нужно, но зачем? И тут Эклипс с его возможностью установки из под юзера — как нельзя кстати. Благодаря ему даже прошел один курс по джава от университета Сан-Диего
maks1m
Ну если это для аж так критично тогда можешь просто скопировать установленную ИДЕЮ с другого компа. Установка по сути ничего особенного не делает, просто копирует в папку и создает ярлыки. Но если какая именно ИДЕ для тебя не важно — тогда не парься :)
maks1m
  • maks1m
  • +2
  • Комментарий отредактирован 2016-10-09 22:27:23 пользователем maks1m
Начинал я с IDEA, потом попробовал на вкус и другие ИДЕ, но ни eclipse ни netbeans не прижились, я не говорю что они плохие, но лично для меня после ИДЕИ они были вообще не то :)
И кстати отличная статься, давно не встречал такого сравнения особенно на русском если вообще встречал.
Bender
Спасибо! Постараемся радовать подобными статьями почаще)
merzki
Сам курс начинается с установки Идеи и естественно что другие Иде мы уже будем сравнивать с Идеей, с её плюшками. Согласен что надо всё попробовать, пока остановился на ультимейт версии. Хоть и есть ломаные версии, но я честно каждые полчаса хожу на «перекур» ибо за хороший инструмент надо платить пусть пока не деньгами а небольшим неудобством. Когда стану программистом вопрос о покупке даже не будет подниматься… однозначно Да!
В данный момент выбираю себе линукс дистрибутив, *buntu уже поднадоела, копаю в сторону Arch на комп и Archbang на нетбук. И да… хорошая статья.
maks1m
Дело даже не в том что курс начинают с ИДЕИ, я чесно пробовал разобраться в других ИДЕ, но после ИДЕИ вообще не то :)
Я с убунты слез на минт, как убунта только более вылизаный и проблем с поеданием оперативки нет.
kazakov
Что мне ещё очень не удобно в IDEA по сравнению с STS, может кто то подскажет как пофиксить:

Работа с Git в терминале STS и IDEA.

STS: переключился на ветку git checkout branch2 -> сделал какие то изменения в файле. Пишу git status, вижу где изменения, все ок.
Переключаюсь на предыдущую ветку git checkout branch1 -> открытый файл где делались изменения автоматом перегрузился, если были добавлены новые файлы в branch2 они исчезли. пишу git status и вижу что изменений нету. Все верно я же в этой ветке ничего не делал.

теперь IDEA: переключился на ветку git checkout branch2 -> сделал какие то изменения в файле. Пишу git status, вижу где изменения, все ок.
Переключаюсь на предыдущую ветку git checkout branch1 -> открытый файл где делались изменения автоматом не перегрузился висят те изменения которые сделал в branch2, если были добавлены новые файлы в branch2 они НЕ исчезли. пишу git status и вижу что файл modified:, этот тот файл который я изменил в branch2 а не в branch1 где я сейчас. Как так?

Подскажите пожалуйста что я не до настроил, потому что именно вот это очень сильно мешает.
kazakov
  • kazakov
  • 0
  • Комментарий отредактирован 2016-10-11 17:04:47 пользователем kazakov
Front-end, angular js.
Сервер tomcat запущен.
STS: делаю изменения html, css обновляю страницу, изменения отображаются.
IDEA: изменения отображаются только после перезапуска сервера. А вот это уже совсем неудобно и долго.

P.S. Нашел решение: «Когда вы хотите внести изменения в код уже запущенного приложения, мы рекомендуем использовать функцию Update, доступную по сочетанию клавиш Ctrl + F10».
Omut-city
А почему вы не рассматриваете IDE от Oracle — JDeveloper?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.