Обзор IDE средств для программирования на Java
За более чем десятилетнюю историю языка Java, сменилось ни одно поколение интегрированных сред разработки (Integrated Development Environment - IDE)[1]. Эволюция IDE средств обусловлена множеством факторов, совокупность которых называется - информационные технологии, включающих в себя программную и аппаратную составляющие, а так же развитие самого языка, которое происходит не только в глубь, оптимизация каких то возможностей, что ярко демонстрирует приход новых библиотек Swing вместо устаревших AWT, но и "вширь", это появление технологий JSP, большая интеграция с СУБД и серверами приложений, поддержка технологий Spring, Hibernate и пр.
И если первые IDE средства, представляли в сегодняшнем понимании примитивный текстовый редактор, который служил только для набора исходных кодов, а всю остальную работу, начиная от компиляции и заканчивая окончательной сборкой проекта приходилось выполнять вручную, то сегодняшние современные, являются фактически многофункциональными устройствами, берущими на себя не только привычные функции но и ряд дополнительных начин6ая от автоматического создания Javadoc, рефакторинга, профайлинга, UML-проектирования, клиента для подключения к любой СУБД и заканчивая такими экзотическими, не относящимися к процессу разработки, как проверка орфографии.
Безусловно, что расплатой за все эти "удобства", являются повышенные требования к ресурсам компьютера. Бытует мнение, что 80% пользователей используют возможности существующего программного обеспечения только на 20 %, это так же можно спроецировать и на IDE - средства. Так как все их достоинства может оценить лишь программист, который не один год занимается разработкой на соответствующей технологии. А начинающим программистам трудно оценить адекватно то или иное средство, поэтому, как правило, его самостоятельный выбор происходит по двум критериям – интуитивная понятность интерфейса и различные временно - ресурсные характеристики, такие как загрузка, компиляция, запуск, занимаемый объем ОЗУ. Ведь на первых порах необходимы только компилятор, отладчик, и непосредственно сама Java-машина [1].
Поэтому целью данной статьи является обзор существующего рынка IDE средств для разработки программ с помощью языка Java, с выявлением слабых и сильных сторон каждого по различным критериям, на основании анализа результатов проекта: "Тестирование и анализ сред разработки программного обеспечения для Java" ("Testing and analyses IDE for Java" (TAIDEJ)), который был организован нами, координационной группой Javaportal.ru и проходил с1.01.2006 по 1.09.2006 на сайте www.javaportal.ru.
Проект был разбит на несколько этапов. На первом этапе, нами был разработан опросный лист, таблица 2, и собран список Java-IDE, таблица 3, которые были разработаны с момента появления языка Java2 по настоящее время, включая ссылки, как на IDE средства которые у всех на слуху, так и на довольно экзотические. Этот список благодаря нашим участникам периодически пополнялся. Здесь мы хотим выразить, огромную благодарность всем участником проекта, а также всем тем, кто обсуждал и конструктивно критиковал нас форумах, таблица 1
Таблица 1. Java - форумыJava - Форум на Исходниках.Ру | http://forum.sources.ru |
RSDN | http://www.rsdn.ru/?forum |
Forums - Juga.Ru | http://forum.juga.ru/ |
IT • archiv forums | http://www.javable.com/forum |
Java Forums - Java Programming | http://forum.java.sun.com/ |
java.net Forums | http://forums.java.net |
Javalobby.org | http://www.javalobby.org/java/forums |
JavaWorld | http://www.javaworld.com/javaforums |
Компьютерный форум Ru.Board | http://forum.ru-board.com |
Программирование - iXBT Hardware BBS | http://forum.ixbt.com |
Форум JUG KPI | http://jug.in.ntu-kpi.kiev.ua/forum |
ЦИТФорум | http://forum.citforum.ru |
Realcoding.NET | http://forums.realcoding.net |
При разработке опросного листа мы попытались выяснить следующее:
- тенденцию изменения предпочтений программистов, так как некогда успешные средства или совсем перестали развиваться или по каким либо причинам фирмы их разрабатывающие сошли с дистанции, и поэтому многим приходилось переходить с одного IDE - средства, на другое;
- каким образом, программист выбрал то или иное средство;
- как оценивает программист те средства, с которыми он работал по пятибалльной шкале;
Вопрос | Предлагаемые варианты ответа: |
1. Какими IDE Вы пользовались когда-либо? | см. Таблица 3 |
2. Как Вы выбрали именно эту IDE? |
1. выбор пал случайно 2. совет друга 3. бесплатное 4. сам анализировал существующие IDE |
3. Какой IDE Вы пользуетесь в настоящее время? | см. Таблица 3 |
4. Исходя из пятибалльной шкалы оцените те IDE с которыми вы работали? | 1...5 |
Дальнейшие задачи заключались в обработке и анализе, полученной статистической информации, оценки "ресурсоемкости" популярных средств. Кроме того, были подготовлены обзоры некоторых средств, которые размещены на сайте проекта [2,3,4,5,6].
Таблица 3. Список IDE для Java.Далее попробуем проклассифицировать IDE средства, для этого определим классификационные признаки, по которым IDE-средства можно разбить на группы.
Во первых, способ распространения, соответственно IDE можно разделить на платные (JBuilder, Visual Cafe…) и бесплатные (NetBeans, Eclipse, Gel), которые любой желающий может скачать с сайта производителя.
Второй классификационный признак мы решили выделить не исходя из каких то специфичных возможностей, так как, по этому признаку, наверное, можно было бы дробить IDE до бесконечности, а из совокупностей возможностей самого средства, и его требовательности к ресурсам. Безусловно, в этом случае на первое место выходит наличие визуального построителя интерфейса, что в свою очередь выдвигает определенные требования к ресурсам.
По этому критерию можно выделить средства, которые не имеют визуального средства для разработки GUI (простые), например Gel, JCreator и которые имеют (сложные) - JBuilder, Idea.
Соответственно первые в ОЗУ при работе занимают менее 30 Мб, а вторые более 100Мб. Что касается самих визуальных средств разработки, то по своему опыту и по мнению многих коллег программистов с многолетним стажем, использование их не всегда является оправданным для начинающих программистов, хотя они вроде бы с одной стороны облегчают разработку, но с другой затрудняют концептуальное понимание таких базовых вещей библиотеки Swing как менеджеры размещения, обработка событий и пр.
Так же к участию в проекте была привлечена группа студентов ДГТУ (особо хочется отметить Егоренкова В. и Лагутина Д.), которые только приступили к изучению ООП, задачи которых заключались в ознакомлении с IDE для Java, их установке, фиксацией параметров при загрузке, выдачей своих комментариев и в конечном итоге самостоятельный выбор средства для первоначальной работы. Результаты тестирования сведены в таблицу 4.
Таблица 4. Результаты тестирования IDE - средствПараметры | GeI | JСreator 3.5 | JBuilder Х | Idea 5 | NetBeans 4.1 |
Время установки | 1 сек | 1-1,5 сек | 58 сек | 22 сек | 50сек |
размер установленного пакета | 10,3 Мб | 6,49 Мб | 332 Мб | 157 Мб | 118 Мб |
Размер дистрибутива | 4,21 Мб | 3,6 Мб | 178 Мб | 51,6 Мб | 46,4Мб |
Запуск | 5с < t < 6с | 1-1,5 сек | 9 сек | 6 сек | 6 сек |
Занимаемый объем в ОЗУ | 17828 Кб | 12960 Кб | 74128 Кб | 65604 Кб | 61409 Кб |
Занимаемый объем виртуальной памяти | 9020 Кб | 14960 Кб | 78588 Кб | 76416 Кб | 70406 Кб |
* За базовую конфигурацию была взята машина на базе: CPU Athlon64 3000+; ОЗУ - 1024Мб DDR-SDRAM (pc3200)
Далее студентам было дано задание, реализовать простейшие программки: вывести строчку "Hello Word" и выполнить табуляцию функции.
После чего, был проведен семинар, на котором были подведены итоги работы, в результате чего было установлено, что на начальном этапе работы, когда идет процесс изучения синтаксических особенностей языка, нет необходимости в использовании тех возможностей, которые представляют сложные IDE, хотя, безусловно, многих заинтересовали способы быстрой разработки интерфейса, так как эта возможность наиболее интуитивно понятная, и сразу позволяет получать результаты. Но, как известно, разработка интерфейса является неотъемлемой, но не самой важной частью приложения. А повышенные требования к ресурсам со стороны сложных IDE, особенно с учетом того, что не у всех студентов домашние компьютеры имеют даже 512 Мб ОЗУ, дают неоспоримые преимущества простым IDE, поэтому лидером среди студентов, из всех имеющихся в наличие IDE был признан Gel.
использовавшихся ранее
№ | Название | % голосов | Оценка |
1 | JBuilder | 21.47 | 3.0 |
2 | Eclipse | 16.64 | 3.3 |
3 | NetBeans | 14.22 | 2.9 |
4 | IntelliJ IDEA | 11.66 | 3.5 |
5 | JDeveloper | 7.11 | 2.8 |
6 | Visual J++ | 5.26 | 1.8 |
7 | JCreator | 4.26 | 2.3 |
8 | VisualAge for Java | 3.69 | 2.8 |
9 | Java Studio | 3.41 | 2.0 |
- Интерфейс. Этот первый компонент, с которым сталкивается пользователь после установки и который формирует первое впечатление о программе, и на основании которого может быть осуществлен окончательный выбор. Здесь оценивается не только общий дизайн, хотя, безусловно, он тоже сказывается определенным образом, но и удобство расположения и настройки таких компонент как окно исходного кода, окно проекта и т.д.
- Настройка. Соответственно после установки и первого запуска среды разработки выполняется ее настройка, т.е. указываются пути, по которым располагаются установленные SDK, DOCS, J2EE. В этом компоненте, как правило, существенных различий не наблюдается. Более того, современные средства, как правило, самостоятельно определяют установленные компоненты.
- Редактор кода. Настройка отображения исходных кодов, как правило, тоже не отличается разнообразием, в любом средстве легко можно настроить кеглю и ее размер, а так же цвет. Немаловажным преимуществом является наличие помощника когда, при "зависании" мышки на любой переменной или методе всплывает довольно подробный ToolTip (контекстное окошко) в котором развернуто, описаны все параметры объекта. Также есть масса приятных мелочей, вывод нумерации строк, отображение структуры класса, показ символов абзаца, проверка орфографии.
Проанализировав, по этим признакам, все существующие на сегодняшний день IDE - средства, можно заметить, что существенных различий кроме дизайна интерфейса между ними нет и очевидно понятие удобства является субъективным.
Анализ результатов опроса, таблицы 5,6. Как было описано выше, в нашем опросе средства были разбиты на две группы, те которыми пользовались ранее, и которыми пользуются в настоящее время. И если среди средств, которые использовались в прошлом наблюдается многообразие, мы отобрали средства которые набрали более 3% голосов от общего числа участвовавших в опросе, то среди тех, которые используются в настоящее время такого многообразия нет, и мы были вынуждены снизить процент голосов, и даже не смотря на это не получили большого многообразия.
используемых в настоящее время
№ | Название | % голосов | Оценка |
1 | Eclipse | 19.77 | 4.6 |
2 | IntelliJ IDEA | 19.06 | 4.7 |
3 | NetBeans | 7.11 | 4.1 |
4 | JBuilder | 5.68 | 4.2 |
5 | JDeveloper | 2.13 | 4.0 |
6 | JCreator | 1.70 | 3.9 |
В целом следует заметить, что результаты рейтинга были прогнозируемыми, вопрос касался только распределения мест, а неожиданностью, для авторов, стало то, что NetBeans набрал относительно не большой процент голосов, тем более учитывая возможности последней версии.
Анализ причин выбора IDE средства, показал, что выбор средств первого поколения, как правило осуществлялся случайно или по результатам самостоятельного анализа, что естественно, так как в это время проходил процесс становления, как самого языка, так и средств разработки. Средства же второго поколения выбирались в основном в результате самостоятельного анализа или совета друга. Это обусловлено, по всей видимости тем, что к этому времени сформировался как круг профессиональных Ява-программистов, так и рынок основных разработчиков IDE средств.
Таблица 7. Причины выбора IDEПричина выбора | %, голосов | |
старые | новые | |
пр. | 4.26 | 0 |
выбор пал случайно | 35.56 | 16.62 |
совет друга | 18.34 | 32.06 |
бесплатное | 10.38 | 13.77 |
сам анализировал существующие IDE | 31.43 | 37.52 |
Таким образом, на сегодняшний день лидерами среди IDE-средств разработки на Java являются IntelliJ IDEA, Eclipse и NetBeans. В целом все они имеют примерно одинаковые функциональные возможности, и довольно трудно оценить какое из них является лучшим. Поэтому при выборе средства, очевидно, нужно ориентироваться на IDE, на котором ведется разработка проекта, если программист вливается в команду разработчиков, или выбирать наиболее доступное, если планируется разработка самостоятельного проекта.
Список используемых источников
- Жмайлов Б.Б. Преимущества и недостатки разработки Java-программ без использования IDE-средств. Журнал "Вестник компьютерных и информационных технологий" №6, 2006г.
- /java/ide/oracle_JDeveloper10g.html, Сергей Бердачук,"Oracle JDeveloper 10g - Среда разработки Java приложений"
- /java/ide/intro_eclipse.html, Алексей Литвинюк, "Введение в интегрированную среду разработки Eclipse"
- /projects/taidej/reviewJBuilder.html, Александр Демьяненко, "Краткий обзор IDE – Jbuilder"
- /projects/taidej/reviewIdea.html, Александр Демьяненко, "Краткий обзор IDE – Idea"
- /projects/taidej/reviewGel.html, Борис Жмайлов, "Краткий обзор IDE - Gel"
- /java/ide/review_refactoring.html, Обзор средств автоматизированного рефакторинга в Java IDE
Ведущий инженер ОАО «РОСТОВЭНЕРГО», к.т.н. доц.
Ладик Ю.В.
Руководитель проекта Javaportal