Логин:   Пароль:






Новости
Рассылки
Форум
Поиск


Java
- Апплеты
- Вопрос-ответ
- Классы
- Примеры
- Руководства
- Статьи
- IDE
- Словарь терминов
- Скачать

Мобильная Java
- Игры
- Примеры
- Статьи
- WAP, WML и пр.

JavaScript
- Вопрос-ответ
- Примеры
- Статьи

Веб-мастеринг
- HTML
- CSS
- SSI

Разминка для ума
Проекты
Книги
Ссылки
Программы
Юмор :)




Rambler's Top100
Rambler's Top100

ПроектыПроект "Тестирование и анализ сред разработки программного обеспечения для Java"Результат: Обзор IDE средств для программирования на Java

Обзор 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
RSDNhttp://www.rsdn.ru/?forum
Forums - Juga.Ruhttp://forum.juga.ru/
IT • archiv forumshttp://www.javable.com/forum
Java Forums - Java Programminghttp://forum.java.sun.com/
java.net Forumshttp://forums.java.net
Javalobby.orghttp://www.javalobby.org/java/forums
JavaWorldhttp://www.javaworld.com/javaforums
Компьютерный форум Ru.Boardhttp://forum.ru-board.com
Программирование - iXBT Hardware BBShttp://forum.ixbt.com
Форум JUG KPIhttp://jug.in.ntu-kpi.kiev.ua/forum
ЦИТФорумhttp://forum.citforum.ru
Realcoding.NEThttp://forums.realcoding.net

При разработке опросного листа мы попытались выяснить следующее:

  1. тенденцию изменения предпочтений программистов, так как некогда успешные средства или совсем перестали развиваться или по каким либо причинам фирмы их разрабатывающие сошли с дистанции, и поэтому многим приходилось переходить с одного IDE - средства, на другое;
  2. каким образом, программист выбрал то или иное средство;
  3. как оценивает программист те средства, с которыми он работал по пятибалльной шкале;

Таблица 2. Опросный лист
ВопросПредлагаемые варианты ответа:
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.
НазваниеПроизводительСайт производителя
1Applet Designer ProfessionalTVObjectshttp://www.tvobjects.com/
2ApptivityProgress Softwarehttp://apptivity.progress.com/
3Awesume Jawa 1.0Awesume Interactive Designhttp://www.awesume.se/en/index.htm
4Bluettefree RAD Java tool http://blue.donga.ac.kr/bluette/
5BongoMarimba http://www.marimba.com/
6Clarion Internet EditionTopSpeed Corporation http://www.topspeed.com/
7CodeWarrior ProMetroWerks http://www.metrowerks.com/desktop/pro/
8Cosmo CodeSGI http://www.sgi.com/Products/cosmo/code/index.html
9ED for WindowsSoft As It Gets http://www.getsoft.com/ed_java.html
10ElixirElixir Technology Pte Ltd http://www.elixir.com.sg/
11Free BuilderFreeBuilder collective http://www.freebuilder.com/
12GRASPGRASP Project http://www.eng.auburn.edu/grasp/
13GrinderParadigm Exchange http://www.tpex.com/features.htm
14HyperwireKinetix http://www.ktx.com/
15Jamba AnimatorInterleaf http://www.jamba.com/
16JambaInterleaf http://www.jamba.com/
17JavaManHartWare http://homepage.dave-world.net/~hartware/
18Java StudioSun Microsystems http://www.sun.com/
19JavelinStep Ahead http://www.ozemail.com.au/~stepsoft/
20JaWizInfinityEdge Systems http://www.infinityedge.com/
21JBuilderInprise http://www.inprise.com/jbuilder/
22JDesignerProBulletProof http://www.bulletproof.com/
23JDE for EmacsPaul Kinnucan http://sunsite.auc.dk/jde/
24JADI SujalShah http://dan.hcf.jhu.edu/sujal/winjadi/
25JIGS Cubed http://www.scubed.cc/
26JipeEnvision Internet Services http://www.users.globalnet.co.uk/~eis/jipe.htm
27JPadModelWorks http://www.modelworks.com/
28KalimantanReal-Time Enterprises, Inc. http://www.real-time.com/java/kalimantan/index.html
29KAWATEK-TOOLS, Inc. http://www.tek-tools.com/kawa/
30LavaDan Page http://www.hnet.demon.co.uk/products/lava/index.html
31LemurIsland Design http://www.island-design.co.uk/
32NetBeansNetBeans, Inc. http://www.netbeans.com/
33OEW 1.0Innovative Software http://www.isg.de/OEW/Java/
34PARTS for JavaObjectShare http://www.objectshare.com/p4j/p4j2info.htm
35PowerJSybase http://www.sybase.com/products/powerj/
36RoasterNatural Intelligence http://www.roaster.com/roaster/
37SNiFF+TakeFive Software http://www.takefive.com/sniff/
38SpiriteVisNet Limited http://www.evis.net/
39SuperCedeSuperCede, Inc. http://www.supercede.com/
40VisajImperial Software Technology http://www.ist.co.uk/
41Vision JadeVision Software http://www.vision-soft.com/
42VisualAge for JavaIBM http://www.software.ibm.com/ad/vajava/
43Visual CafeSymantec http://cafe.symantec.com/
44Visual J++Microsoft http://www.microsoft.com/visualj/
45Web Application PlatformSilverStream http://www.silverstream.com/products/main/main_f.htm
46Java WebIDEChami.com http://www.chami.com/webide/
47WipeOutsoftwarebuero m&b http://www.softwarebuero.de/wipeout-eng.html
48IntelliJ IDEAIntelliJ IDEA http://www.jetbrains.com/idea/
49Eclipseeclipse.org http://www.eclipse.org
50JDeveloperOracle http://www.oracle.com/technology/products/jdev/index.html
51JCreatorXinox Software http://www.jcreator.com/
52jEditjEdit http://www.jedit.org/
53X-DevelopOmnicore Software http://www.omnicore.com/
54Gel IDEGExperts Inc http://www.gexperts.com/
55IBM Web Sphere Studio Application DeveloperIBM Software http://www-306.ibm.com/software/awdtools/studioappdev/
56eXtendNOVELL http://www.novell.com/products/extend/

Далее попробуем проклассифицировать IDE средства, для этого определим классификационные признаки, по которым IDE-средства можно разбить на группы.

Во первых, способ распространения, соответственно IDE можно разделить на платные (JBuilder, Visual Cafe…) и бесплатные (NetBeans, Eclipse, Gel), которые любой желающий может скачать с сайта производителя.

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

По этому критерию можно выделить средства, которые не имеют визуального средства для разработки GUI (простые), например Gel, JCreator и которые имеют (сложные) - JBuilder, Idea.

Соответственно первые в ОЗУ при работе занимают менее 30 Мб, а вторые более 100Мб. Что касается самих визуальных средств разработки, то по своему опыту и по мнению многих коллег программистов с многолетним стажем, использование их не всегда является оправданным для начинающих программистов, хотя они вроде бы с одной стороны облегчают разработку, но с другой затрудняют концептуальное понимание таких базовых вещей библиотеки Swing как менеджеры размещения, обработка событий и пр.

Так же к участию в проекте была привлечена группа студентов ДГТУ (особо хочется отметить Егоренкова В. и Лагутина Д.), которые только приступили к изучению ООП, задачи которых заключались в ознакомлении с IDE для Java, их установке, фиксацией параметров при загрузке, выдачей своих комментариев и в конечном итоге самостоятельный выбор средства для первоначальной работы. Результаты тестирования сведены в таблицу 4.

Таблица 4. Результаты тестирования IDE - средств
ПараметрыGeIJСreator 3.5JBuilder ХIdea 5NetBeans 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.

Таблица 5. Рейтинг Java-IDE,
использовавшихся ранее
Название% голосовОценка
1JBuilder21.473.0
2Eclipse16.643.3
3NetBeans14.222.9
4IntelliJ IDEA11.663.5
5JDeveloper7.112.8
6Visual J++5.261.8
7JCreator4.262.3
8VisualAge for Java3.692.8
9Java Studio3.412.0
Исходя из этого, проанализируем, с каких позиций программист подходит к самостоятельному выбору средства.

  1. Интерфейс. Этот первый компонент, с которым сталкивается пользователь после установки и который формирует первое впечатление о программе, и на основании которого может быть осуществлен окончательный выбор. Здесь оценивается не только общий дизайн, хотя, безусловно, он тоже сказывается определенным образом, но и удобство расположения и настройки таких компонент как окно исходного кода, окно проекта и т.д.
  2. Настройка. Соответственно после установки и первого запуска среды разработки выполняется ее настройка, т.е. указываются пути, по которым располагаются установленные SDK, DOCS, J2EE. В этом компоненте, как правило, существенных различий не наблюдается. Более того, современные средства, как правило, самостоятельно определяют установленные компоненты.
  3. Редактор кода. Настройка отображения исходных кодов, как правило, тоже не отличается разнообразием, в любом средстве легко можно настроить кеглю и ее размер, а так же цвет. Немаловажным преимуществом является наличие помощника когда, при "зависании" мышки на любой переменной или методе всплывает довольно подробный ToolTip (контекстное окошко) в котором развернуто, описаны все параметры объекта. Также есть масса приятных мелочей, вывод нумерации строк, отображение структуры класса, показ символов абзаца, проверка орфографии.

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

Анализ результатов опроса, таблицы 5,6. Как было описано выше, в нашем опросе средства были разбиты на две группы, те которыми пользовались ранее, и которыми пользуются в настоящее время. И если среди средств, которые использовались в прошлом наблюдается многообразие, мы отобрали средства которые набрали более 3% голосов от общего числа участвовавших в опросе, то среди тех, которые используются в настоящее время такого многообразия нет, и мы были вынуждены снизить процент голосов, и даже не смотря на это не получили большого многообразия.

Таблица 6. Рейтинг Java-IDE,
используемых в настоящее время
Название% голосовОценка
1Eclipse19.774.6
2IntelliJ IDEA19.064.7
3NetBeans7.114.1
4JBuilder5.684.2
5JDeveloper2.134.0
6JCreator1.703.9
Как видно, неизменным участником выборок является "простое" IDE средство JСreator, это объясняется по вей видимости тем, что оно является довольно простым в освоении и не требовательно к ресурсам, следовательно пользуется популярностью среди начинающих программистов. JBuilder потерял свои позиции, это очевидно связано с тем, что бесплатные средства, такие как Eclipse и NetBeans по своим возможностям стали его превосходить. Безусловным лидером следует признать Eclipse, так как оно не утратило свои довольно высокие позиции, а даже прибавило. Популярность JDeveloper следует связывать с его ориентированностью на СУБД Oracle. Популярность IntelliJ IDEA обусловлена тем, что в определенный момент времени, разработчики сумели представить продукт обладающий мощными возможностями, и на протяжении нескольких лет довольно успешно на высоком уровне поддерживают его марку, что подтверждается так же высокими оценками пользователей.

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

Анализ причин выбора IDE средства, показал, что выбор средств первого поколения, как правило осуществлялся случайно или по результатам самостоятельного анализа, что естественно, так как в это время проходил процесс становления, как самого языка, так и средств разработки. Средства же второго поколения выбирались в основном в результате самостоятельного анализа или совета друга. Это обусловлено, по всей видимости тем, что к этому времени сформировался как круг профессиональных Ява-программистов, так и рынок основных разработчиков IDE средств.

Таблица 7. Причины выбора IDE
Причина выбора%, голосов
 старыеновые
пр.4.260
выбор пал случайно35.5616.62
совет друга18.3432.06
бесплатное10.3813.77
сам анализировал существующие IDE31.4337.52

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

Список используемых источников

  1. Жмайлов Б.Б. Преимущества и недостатки разработки Java-программ без использования IDE-средств. Журнал "Вестник компьютерных и информационных технологий" №6, 2006г.
  2. http://www.javaportal.ru/java/ide/oracle_JDeveloper10g.html, Сергей Бердачук,"Oracle JDeveloper 10g - Среда разработки Java приложений"
  3. http://www.javaportal.ru/java/ide/intro_eclipse.html, Алексей Литвинюк, "Введение в интегрированную среду разработки Eclipse"
  4. http://www.javaportal.ru/projects/taidej/reviewJBuilder.html, Александр Демьяненко, "Краткий обзор IDE – Jbuilder"
  5. http://www.javaportal.ru/projects/taidej/reviewIdea.html, Александр Демьяненко, "Краткий обзор IDE – Idea"
  6. http://www.javaportal.ru/projects/taidej/reviewGel.html, Борис Жмайлов, "Краткий обзор IDE - Gel"
  7. http://www.javaportal.ru/java/ide/review_refactoring.html, Обзор средств автоматизированного рефакторинга в Java IDE



Жмайлов Б.Б.
Ведущий инженер ОАО «РОСТОВЭНЕРГО», к.т.н. доц.

Ладик Ю.В.
Руководитель проекта Javaportal




Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 11

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/books/show2b.php on line 30
Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 91

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/news/worldnews.php on line 95