КаталогИндекс раздела

Битва за универсальную Java IDE

Steven J. Vaughan-Nichols

The Battle over the Universal Java IDE
Опубликовано в: Computer, April 2003, pp 21-23

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

Однако для разработчиков программного обеспечения лучше было бы не изучать многочисленные интерфейсы и среды программирования для работы со средствами различных производителей. Этот ведет к использованию интегрированной среды разработки (IDE) для средств от разных производителей.

До сих пор в Java имелись такие IDE, как Jbuilder компании Borland, JDeveloper от Oracle, и Sun ONE Studio компании Sun Microsystems. Но все они были индивидуальными, со своими собственными уникальными интерфейсами и программными подходами.

Это подтолкнуло разработчиков к идее универсального проекта Java IDE с открытыми исходными кодами, которую они смогут использовать на многих платформах в целях создания программ для различных компьютеров.

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

Следовательно, говорят сторонники этой идеи, унифицированная Java IDE с открытым кодом увеличила бы успех Java, сделав разработку приложений более простой, и обеспечила бы конкурентные преимущества по сравнению с популярной Visual Studio.NET компании Microsoft. Visual Studio.NET обеспечивает интегрированную среду разработки, а также предлагает функциональность "навести-и-щелкнуть". Поэтому она привлекает многих разработчиков, которые не являются высококвалифицированными программистами, но при этом составляют основную массу создателей коммерческих программ для средних и крупных компаний, и которые хотят иметь простые в использовании инструментальные средства.

По словам Alan Zeichick, главного редактора SD Times, газеты для менеджеров по разработке программного обеспечения, сторонники открытой Java IDE полагают, что среда разработки приложений, которая объединит в себе средства разработки от различных производителей, была бы заманчивой альтернативой собственническому подходу компании Microsoft, который обеспечивает работу только с приложениями Windows.

Исходя из этого, компания Sun купила существующий каркас IDE, NetBeans, и сделала его программным обеспечением с открытыми исходными кодами, позволяющим разработчикам подстраивать ее под свои нужды. Несмотря на то, что NetBeans обычно ассоциируется с Java, разработчики также могут использовать его для работы с С++, НТML, XML и другими языками.

IBM начала проект Eclipse, объединяющий много компаний, - универсального каркаса IDE с открытым кодом для Java и других языков, таких как С, С++, НТML и Cobol. "Конкурентная борьба между Sun и IBM обещает быть жестокой," - говорит Zeichick. - "Обе стороны уже начали перестрелку".

Некоторые разработчики опасаются, что эти разногласия могут привести к несовместимым версиям Java IDE и вместо сохранения универсальности могут даже послужить поводом для раскола технологий Java. Поэтому фирма Oracle предложила Sun компромиссный план Java IDE, приспособленный для работы как с NetBeans, так и с Eclipse.

ПОДХОДЫ К СОЗДАНИЮ УНИВЕРСАЛЬНОЙ JAVA IDE

В целом IDE - это среда программирования, упакованная как прикладная программа. Обычно она состоит из редактора кодов, компилятора, программы-отладчика и компоновщика графического пользовательского интерфейса (GUI).

NetBeans компании Sun

NetBeans возник как студенческий проект под названием Xelfi в Чешской республике в середине 1990-х годов. Позднее Roman Stanek создал компанию NetBeans для продажи этой технологии. Компания Sun приобрела этот бизнес в 1999. "В середине 2000 года Sun сделала NetBeans открытым программным обеспечением, что было частью стратегического подхода компании к популяризации Java," - говорит Jeff Anders, менеджер группы по продажам Java компании Sun. - "Поскольку NetBeans является программным обеспечением с открытыми кодами, разработчики могут создавать свои собственные подключаемые модули и добавлять в них новые инструментальный функции."

Сегодня Sun является единственным поставщиком NetBeans, использующим его технологии в своих продуктах и предлагающим его бесплатное скачивание. Несколько компаний, таких как BEA Systems, Compuware и Hewlett-Packard используют NetBeans для создания приложений.

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

Этот созданный на базе Java каркас состоит из двух компонентов: NetBeans Platform; библиотеки времени выполнения, которая предоставляет базовые элементы IDE, такие как представление данных приложения; и собственно IDE, которая обеспечивает управление, такое как редактирование и управление версиями для функциональности данной платформы.

В частности, как показано на рис.1, NetBeans использует Abstract Window Toolkit - набор средств, созданный Sun для работы с Java. AWT представляет собой набор базовых API, который действует между Java-кодом и графической подсистемой и позволяет разработчикам создавать и управлять тем, как элементы данного приложения - окна GUI, инструментальные линейки, кнопки - будут работать и выглядеть.


Рис.1

АWT обеспечивает базовые графические средства. Для развитых графических средств, включая цвета и изменение внешнего вида приложения по заданию пользователя, разработчикам необходим инструмент Swing, компонентная библиотека GUI, который работает над AWT.

Используя AWT и Swing, разработчики могут создавать программы, которые выглядят одинаково, независимо ни от операционной системы, ни от платформы, на которой они выполняются. "Для этого IDE предоставляет свои собственные оконные функции и не использует оконные средства операционной системы," - говорит Stephen O'Grady, аналитик рынка фирмы RedMonk. - "Однако необходимость использовать эту функциональность замедляет выполнение NetBeans." Anders говорит, что эта функциональность необходима, так как единый вид и впечатление для всех платформ являются главной частью подхода Java.

Eclipse

Как объяснил ведущий инженер IBM David Thompson, форма IBM инициировала Eclipse для использования его со своим языком программирования Smalltalk для объединения всех средств разработки программ.

Позднее IBM выпустила его как программное обеспечение с открытым кодом под контролем промышленного консорциума Eclipse.org. Членами последнего являются около 30 компаний и Object Management Group, которая вырабатывает и поддерживает спецификации на интероперабельные корпоративные приложения. Однако создавать новые приложения, используя данные технологии, может любая фирма.

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

Однако, в отличие от NetBeans, для обеспечения программного интерфейса Eclipse используется Standart Widget Toolkit от консорциума Eclipse (рис.2).


Рис.2

Как говорит Thompson, SWT предоставляет пользователям приложения с естественным для их операционной системы видом и впечатлением. Таким образом, если они используют Eclipse для разработки приложения Windows, оно и будет выглядеть именно как приложение Windows.

NETBEANS ПРОТИВ ECLIPSE

Существует несколько ключевых моментов, в которых сообщество Java раскалывается на NetBeans и Eclipse.

AWT ПРОТИВ SWT

Техническая сторона спора - в том, какой подход лучше: AWT/Swing или SWT. По существу, главной проблемой является выбор между скоростью работы Eclipse и общим видом и впечатлением от использования NetBeans.

O'Grady из RedMonk's восхваляет скорость работы Eclipse, утверждая, что она обеспечивает большую эффективность с меньшим количеством процессорных циклов, используя при этом графические средства данной ОС вместо собственной графики, как это происходит в случае NetBeans.

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

"В стремлении увеличить свою долю рынка фирма Sun искусственно преподнесла битву за IDE как альтернативу между Sun и AWT либо IBM и SWT," - заявляет главный редактор SD Times Zeichick. "Sun могла бы довольно легко добавить SWT к NetBeans, но она не хочет отдавать какой бы то ни было контроль над Java и позволить другим компаниям перехватить лидерство в технологиях разработки".

"Консорциум Eclipse продолжает работать над созданием своего подхода работы со Swing и над предоставлением разработчикам возможности использования кодов AWT/Swing совместно с Eclipse", - отмечает Erickson.

"ЧИСТАЯ" JAVA

Sun и другие борцы за "чистоту" Java утверждают, что из-за того, что Eclipse не прошел через Java Community Process (JCP) - программу компании Sun по введению новых свойств в Java - и из-за использования SWT, который не является стандартной технологией Java, Eclipse не создает приложения с действительной функциональностью Java.

"Однако Eclipse является каркасом разработки общего назначения, а не только для построения Java приложений," - говорит Erickson.

КОМПРОМИСС ORACLE

Компания Oracle, использующая NetBeans для проектирования приложений, но при этом являющаяся и членом проекта Eclipse, предложила компромиссное решение спора между NetBeans и Eclipse.

Ted Farrell, главный директор Oracle по разработке инструментальных средств, сообщил, что компания направила на рассмотрение JCP Java Specification Request (JSR) 198, "Стандартное расширение API для интегрированных сред разработки". Вместо введения нового каркаса, JSR 198 обеспечит стандарт API для работы со всеми Java IDE, включая NetBeans и Eclipse. Farrell говорит, что Sun сформировала группу экспертов JCP для JSR 198 и что первый открытый проект будет доступен уже в средине этого года.

Как утверждает Farrell, компания Oracle вмешалась в спор потому, что ее озаботил тот факт, что Eclipse и NetBeans могут создать несовместимые технологии, которые расколят Java и сделают данную технологию менее привлекательной для разработчиков.

И IBM, и Sun на данный момент выразили одобрение по поводу JSR 198. Mike Giplin, менеджер по исследованиям Giga Information Group, фирмы, занимающейся исследованиями рынка, говорит, что будет сильно удивлен, если JSR 198 значительно повлияет на исход спора по поводу Java IDE. Giplin также утверждает: - "Скорее всего, компромиссное решение может прийти от разработок с открытыми кодами."

С другой стороны, O'Grady из RedMonk высказывает мнение, что проект JSR 198 будет иметь успех, потому что именно он будет мостом через пропасть между Eclipse и NetBeans и предоставит возможность разработчикам работать, не беспокоясь о том, какую IDE они используют.

O'Grady также говорит, что пока IBM и Sun главным образом остановили свое внимание на Web службах и технологии .NET фирмы Microsoft, обе компании при этом ведут жестокую конкуренцию за Java IDE, как они и делают это на большинстве своих рынков: серверов, операционных систем, серверных приложений и средств разработки."

Многие обозреватели, такие как Zeichick из SD Times, говорят, что Eclipse обеспечил себе большую поддержку в промышленности, чем NetBeans. Согласно Zeichick, IBM позиционирует Eclipse как проект сообщества, а не как проект IBM, в то время, как все компании видят, что в NetBeans доминирует Sun .

Zeichick заявляет: "Eclipse станет де-факто основным каркасом за пределами мира Microsoft. NetBeans превратится в IDE, специфичную для Sun."

Многие промышленные эксперты, например, O'Grady соглашаются с тем, что чем ожесточеннее и длительнее будет раскол между IBM и Sun из-за Java IDE, тем дольше будет откладываться реализация единой Java IDE, конкурентной с Visual Studio .Net, и тем лучше будет для Microsoft.


КаталогИндекс раздела