Java-технологии, обзор инструментальных разработок и анализ рыночной ситуации

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

Приоритеты развития Java

Отправной точкой при создании очередного поколения программного инструментария разработки на Java послужило представление в конце 1996г. и окончательный выпуск компанией JavaSoft в начале февраля 1997г. новой версии 1.1 базового средства – комплекта JDK (Java Development Kit). Этот своего рода манифест партии Ява содержал обновлённую версию языка, которая должна была упростить составление надёжных распределённых программ. Основными новшествами в JDK 1.1 по сравнению с предыдущей версией оказались средства работы с национальными кодировками, улучшенный оконный интерфейс, интерфейс для взаимодействия с базами данными, средства связи с другими языками и библиотека механизмов защиты. Названные усовершенствования, как мы увидим далее, стали и указателями на приоритеты развития инструментов Java.
Если, как это уже принято, разделить Java-разработчиков на Web-мастеров, в основном использующих апплеты, и создателей профессиональных программ на данном языке, то 1997 год принес больше новостей именно последним. Уже в апреле на конференции JavaOne, своего рода съезде сторонников Java, SunSoft анонсировала платформу Java Platform for Enterprise, куда, помимо JDK 1.1, должны были войти ряд корпоративных программных интерфейсов, а также расширенная специально для программ уровня предприятия компонентная модель JaveBeans (под названием Enterprise Java Beans). Кстати, ряд программных интерфейсов успел появиться в течение 1997 года. Концепция Java Beans как ключевой технологии многократного использования кода при разработке полноценных программ на Java уделялось, куда большее внимание, чем в 1996 году. Ведь именно эта концепция, а не сам язык Java составляет конкуренцию знаменитой объектной концепции ActiveX корпорации Microsoft. Летом 1997 года фирма Sunsoft представила первую реализацию следующей версии JavaBeans под кодовым названием Glasgow. Данная версия, также её прямая наследница - 3 версия, известная в настоящее время как Edinburgh, по мнению экспертов, должны быть развиты до уровня модели COM корпорации Microsoft.
Ещё один принципиальный вопрос, касающийся развития Java-технологий,- это проблема «частной собственности » на Java. В целом резонные требования Microsoft о передаче всех спецификаций независимой организации для дальнейшего развития Java стали одной из причин очень серьёзного конфликта между Sun и Microsoft, так или иначе затронувшего всех разработчиков. В ноябре 1997г. страны – члены международной организации по стандартизации (ISO), на плечи которой, по некоторым предположениям, и должна была лечь дальнейшая забота о Java, проголосовали за предоставление компании JavaSoft эксклюзивного контроля над Java.

Обзор конкретных инструментов

Поговорим о конкретных инструментах. Первое, что бросается
в глаза: практически весь инструментарий – это системы графического программирования класса RAD. Указанная тенденция, наметившаяся ещё в 1996г. с выходом Visual Cafe для Windows 95 и Windows NT, стала доминировать абсолютно. Java, таким образом оказался значительно более RAD-восприимчивым, чем его знаменитый прародитель С++. К числу лидеров в результате субъективного анализа публикаций можно, скорее всего, отнести Visual J++, Visual Cafe для Windows и Java Workshop для платформы Solaris. Кроме того, по результатам исследования рынка, предпринятого Microsoft и опубликованного в газете Computer Reseller News в апреле 1997г., из почти 400 тыс. человек, программирующих на Java (для сравнения: на С++ программируют около 1, млн., на Visual Basic – более 3 млн. человек), 27% используют Java Workshop, 25% используют Visual J++ и 18% - Visual Cafe.
Заметной тенденцией 1997 г. вполне можно считать выпуск целой серии специализированных продуктов, обеспечивающих доступ из Java-программ к базам данных, что стало прямым следствием включением в JDK1.1 спецификации JDBC. Характерно, что над соответствующими интерфейсами работали как известные производители самих баз данных, так и фирмы, традиционно занимающиеся созданием программного инструментария. Прежде всего, обратим внимание на то, что все представленные инструменты в той или иной степени содержат средства для работы с базами данных. К апрелю 1997 г. фирма Oracle вместе с IBM и Tandem подготовили предварительную спецификацию J/SQL ориентированную на достижение совместимости с языком структурированных запросов SQL в программах для баз данных. Тем временем Informix разрабатывала собственный API-интерфейс Universal Java, чтобы включить его в свой инструментарий 4-го поколения под названием New Era, а также в JWorks – новое ПО разработки на Java.
Вместе с тем содержащий достаточно мощные средства работы с БД пакет Visual Cafe Pro, первые поставки которого относятся к началу 1997 г., к осени вышел в новой редакции – Visual Cafe for Database Development Edition, предназначенный для Java-программ реляционных баз данных. К числу явно ориентированных на работу с БД Java-программ можно отнести и систему Fresco фирмы Infoscape, к бета тестированию которой приступили в начале 1997 г. Наконец, в сентябре 1997 г. Sun анонсировала продукт Java Blend для доступа к реляционным и объектно-ориентированным БД из Java-программ без использования специальных языков типа SQL.
Однако наиболее существенным событием стало появление развитых возможностей графического программирования доступа к БД в средствах разработки, изначально ориентированных на создание крупных корпоративных программ. К последним относятся Vibe Enterprise 1.0 фирмы Visix Software или Apptivity Developer фирмы Apptivity, появившиеся в первой половине 1997 г. Оба продукта ценой в пределах нескольких тысячах долларов явно свидетельствует об относительной зрелости Java-технологий уже на этот момент. К «корпоративному» классу принадлежат также Visual Age for Java и, конечно же, JBuilder.
Внимание, уделённое в спецификации JDK 1.1 безопасности при построении коммерческих Java-программ, также не осталось без для разработчиков формальным призывом. Многие компании откликнулись на него, понимая, что ограничение записи на диск клиентской машины, заложенное в саму идею построения Java, не есть решение проблемы. В марте 1997 г. компания Data Security Dynamics предложила JSAFE – одно из первых средств защищённых Java-программ в Интернете, использующие алгоритмы шифрования данных с открытым ключом при передаче их по каналам Интернета. Средство цифровой подписи, гарантирующее целостность данных при передаче, было включено в Visual J++1.1. Наконец, на конференции JavaOne в апреле 1997г. JavaSoft объявила о планах выпуска системы Cripto Toolkit, позволяющей с помощью единого API строить защищённые программы. Кстати говоря, в следующей версии JDK1.2 основное внимание, по утверждению JavaSoft, будет уделено именно вопросам безопасности.
С решением проблемы построения пользовательского интерфейса средствами высокого уровня, затронутой в спецификации JDK1.1, оказались связаны две библиотеки Java-классов, выпущенные соответственно корпорацией Microsoft и фирмой Sun в содружестве с Netscape Communications. Достаточно лишь назвать эти компании, чтобы сразу стало понятным, что названные инфраструктурные дополнения к средствам разработки, по всей видимости, должны сыграть определяющую роль не только в технологическом, но и в политическом противостоянии конкурентов, на примирение, которых пока нет даже слабого намёка. Библиотека AFC, о готовности которой MicroSoft сообщила весной 1997г. на выставке Software Developer West, содержит средства, облегчающие создание профессионально оформленного графического интерфейса пользователя и работу со средствами мультимедиа. По утверждению Microsoft, эта библиотека полностью подготовлена на Java и способна исполняться на любой платформе.
Ответом Sun и Netscape был выпуск осенью 1997 г. аналогичной библиотеки JFC, вобравшей в себя достоинства соответствующих наборов Java-классов IFC (Internet Foundation Classes) и AWT (Abstract Windows Toolkit), уже имевшихся в арсенале двух фирм. Несмотря на то, что представители Sun подчёркивают не стратегическое, а чисто утилитарное значение JFC, масса аналитиков не без оснований отводит данной библиотеке решающую роль в битве за контроль над Java-разработками. Microsoft уже успела заявить, что JFC не поставляется и не будет поставляться вместе с Internet Explorer (IE) 4.0. А это значит, что, хотя во многих продуктах 1997г. и предусмотрены средства работы с AFC и JFC, могут возникнуть проблемы с выполнением распределённых многоплатформных программ, составленных с использованием JFC.
Не которые фирмы начинают поставлять Java-инструментарий в комплексе со средствами разработки на других языках под общей крышей единой интегрированной среды. Классические примеры – главный инструментальный пакет фирмы Microsoft 1997 г. Visual Studio 97, где с Java объединились С++, Visual Basic 5.0, Fox Pro и некоторые другие продукты, а также пакет CodeWarrior Gold 11 компании Metrowerks, в котором инструментальные средства, по мнению некоторых пользователей ещё сильней интегрированы. Примеры оказались заразительными. Осенью об аналогичном намерении объявила Powersoft, имеющая теперь в своём арсенале, помимо Java-инструмента PowerJ, прекрасно зарекомендовавший себя классический инструментарий. Примерно в то же время фирма Haht Software приступила к бета-тестированию средства разработки Hahtside, позволяющего работать с Java и Visual Basic в единой среде.
Если для 1996г. было характерно появление Java-компиляторов для различных платформ, то 1997г. ознаменовался выпуском всевозможных конверторов исходного текста программ и специальных технологий, позволяющих использовать в Java-программах наработки, составленные на других языках. В качестве примера, Visual J++1.1 оснащён конвертором для преобразования апплет в компоненты ActivX. На не раз уже упоминавшейся конференции JavaOne были представлены по крайней мере два продукта, дающие разработчикам на Visual Basic возможность переносить свои программы на язык Java. Было объявлено, что средства конвертирования Applet Designer Visual Basic-to-Java фирмы Tvobject, согласно договору с фирмой Asymetrix, будут предлагаться в качестве дополнения к среде SuperCede Java/ ActivX Edition и DataBase Edition. Фирма Halcyon сообщила о намерении выпустить продукт под названием VBIX для преобразования программ на Visual Basic в двоичный Java-код. На той же конференции фирма Roug Wave Software представила две библиотеки – Serialize.h++1.0 и Jtools2.0 – C++ и Java-классов соответственно. Они позволяют организовать двунаправленный обмен вызовами из программ, составленных на С++ и Java. Ещё один заметный продукт TwinPeaks, представленный совместно фирмами Sun и Ilog Software, реализует технологию С++ Bridging, дающую разработчикам серверного ПО на языке Java возможность использовать программы на С++, не переписывая текста. Наконец, компания Futjitsu Software предложила разработчикам компилятор NetCobol, автоматически транслирующий программы на Коболе в Java-апплеты и приложения. По мнению специалистов, появлению таких продуктов приведёт к скорейшей ассимиляции Java в сообществе программистов.

«Банда четырёх» против Microsoft

Средства разработки как таковые составляют лишь чисто техническое наполнение программной индустрии, будучи необходимым инструментом, но уж никак не определяющим фактором при оценке рыночных перспектив готовых продуктов.
Наиболее важным событием 1997г. в политическом смысле стало образование в марте на конференции Internet World альянса четырёх фирм – IBM, Oracle, Netscape и Sun, назвавших себя «бандой четырёх» (The Gang of Four). Компании объявили о совместной поддержке протокола Internet InterORB-Protocol (IIOP), составляющего часть CORBA, в своих инструментальных средствах разработки. Эта инициатива должна облегчить реселлерам построение единых распределённых объектно- ориентированных программ инструментальными средствами четырёх компаний. Ело в том, что, согласно заявлению JavaSoft, в планируемом к выпуску в 1998 г. комплекте JDK1.2 низкоуровневый механизм дистанционного вызова отдельных функций Java (под названием RMI – Remote Method Invocation), включённый в ныне действующую спецификацию JDK1.1 будет реализован поверх протокола CORBA/IIOP. Это означает, что JavaSoft полностью отказывается от собственного метода создания посредника запросов к объектам, на основе которого в настоящее время строится RMI, а будущие распределённые Java-программы должны соответствовать спецификации взаимодействия сетевых объектов CORBA. Данное объединение, «антимайкрософтовской» направленности которого никто не скрывал, стало планомерным и организованным выступлением против объектной технологии DCOM корпорации Microsoft, что для 1996 г. было как раз нехарактерно. В 1997 г. намеченные альянсом планы частично были выполнены.
Компания Oracle в 1997 г. превратилась, можно сказать, из нейтральной по отношению к Java в его активную сторонницу. Одним из этапов её движения в сторону Java стало лицензирование технологии Builder, включающей языком С++ и Java, у фирмы Borland, причём решающий выбор именно в пользу Builder был сделан якобы именно по причине её более полного соответствия концепции JavaBeans. На конференции JavaOne фирма Oracle продемонстрировала пакет Developer/2000 1.4, способный конвертировать разработанные в нём программы в Java-апплеты. Сразу же после этого в начале мая 1997 г. она выпустила Web Application Server, совместимый с протоколами CORBA и IIOP, - наиболее важный компонент её межплатформенной архитектуры NCA (Networking Computing Architecture). Позже на конференции Open World Oracle представила стратегию выпуска средств разработки сетевых программ для Java. Эта стратегия, по словам представителей фирмы, должна затронуть следующие версии Developer/2000 и Designer/2000, а также некий новый инструмент, предназначенный исключительно для разработки Java-программ и построенный как раз на основе вышеупомянутой лицензии.
Самый крупный поставщик программного обеспечения на мировом рынке – корпорация IBM, наиболее ревностно взявшаяся за поддержку Java ещё в1996 г., в течение 1997г. сохранила приверженность ему. В июле IBM выпустила на рынок коммерческую версию пакета Visual Age for Java с мощными средствами реализации JavaBeans, как раз и нацеленную на разработку будущих программ на базе открытых стандартов, за которые так ратует союз четырёх. Кстати говоря, уже в сентябре 1997 г. отделение IBM Восточная Европа/Азия начало весьма активную работу по продвижению этого продукта на российский рынок. Что касается весьма амбициозного проекта (San Francisco) формирования библиотек Java-классов для самых разнообразных программ деловой сферы, над которым IBM работает в союзе с несколькими десятками других фирм, то информация о ходе его выполнения в течение 1997 г. была весьма скудной. Однако известно, что работа над проектом продолжается.
Компания Netscape, тоже на конференции JavaOne, выступила в не совсем привычной для себя роли, представив набор средств разработки, позволяющий работать с апплетами Java, компонентами JavaBeans, объектами CORBA и сценариями JavaScript.
Фирма Sun в начале 1997 г. выпустила Internet WorkShop – среду разработки программ клиент- сервер для Интернета – и основанную на CORBA среду подготовки распределённых объектов и управления ими NEO2.0. В Internet Workshop входят, в частности, Java WorkShop и Visual WorkShop C++. Весь этот инструментарий также служит вкладом в общее дело, затеянное «бандой четырёх». Речь пока не идет о классических средствах разработки, но может случиться так, что Sun, Netscape, IBM и Oracle действительно образуют боевое каре и, шагая в ногу, начнут организованное наступление на Microsoft.
Нельзя обойти вниманием и ещё две очень известные фирмы, вовлечённые в Java-лихорадку в 1997 г. Это Powersoft и, в особенности, Borland. В 1996 г. они не принимали сколь-нибудь заметного участия в развитии данного сектора рынка, если не считать выпуска небольшого расширения для Java-программирования в Borland C++5.0. Зато в 1997 г. не только были выпущены две версии JBuilder (Standard и Professional), но и стало известно, что данный продукт в дальнейшем будет объединен с вышеупомянутым проектом San Francisco. Фирма Borland, лицензировала технологию Builder компании Oracle и, в свою очередь, в начале 1997 г. приобрела лицензию на программу посредник запросов к объектам VisiBroker for Java фирмы Visigenic (а в ноябре и саму фирму), что позволит разработчикам Jbuilder связывать объекты распределённых программ, используя протокол IIOP. Всё это свидетельствует, что испытывающая трудности, но в то же время очень авторитетная компания, специализирующаяся исключительно на средствах разработки, оказалась в 1998 г. в значительной степени привязана к идеологии построения программ, проповедуемой «великолепной четвёркой».

Действия Microsoft
Ещё в декабре 1996 г. SunSoft заявила, что виртуальная машина Java, разработанная Microsoft для Windows, не удовлетворяет соответствующей спецификации. Выпуск Visual J++ в марте 1997г. в составе пакета Visual Studio 97 в некотором роде усугубил ситуацию. Широко разрекламированная способность данного продукта интегрировать технологии JavaBeans и ActiveX, имеющаяся, казалось бы, и в других средствах разработки, была воспринята основной частью компьютерного сообщества, как попытка искусственно привязать Java к платформе Windows. Иными словами, получалось, получалось, что Microsoft мошенничает, выпуская суррогат для Java, принимающий облик Java лишь на платформе Windows. Ничего не подозревающие разработчики для Windows, коих в мире множество должны были по замыслу Microsoft, создать большое количество соответствующих программ, используя «фиктивный » Java, прежде чем вскроются проблемы с его переносимостью на другие платформы. Субъективное недоверие, сидящее в крови у многих профессионалов компьютерного бизнеса, подкреплялось и объективными факторами.
Дело в том, что компания Билла Гейтса на протяжении 1997 г. так и не присоединилась к программе сертификации 100% Pure Java фирмы JavaSoft, позволяющей, по утверждению самой JavaSoft, гарантировать полную межплатформенную переносимость. В интервью, данном одним из ведущих менеджеров корпорации Microsoft журналу Communication Week ещё в начале 1997 г., говорилось, что все средства разработки, в том числе и JVM для Windows, успешно прошли все тесты Sun на совместимость с Java. Было также заявлено, что Microsoft просто не пригласили к участию в инициативе 100% Pure Java, а отказ от участия в ней – выдумка Sun. Вместе с тем директор по маркетингу продукции фирмы JavaSoft Дэвид Спенхофф на страницах газеты LanTimes, назвав небезызвестную библиотеку классов AFC несоответствующей Java-спецификации, недвусмысленно призывал Microsoft представить её на тестирование по программе 100% Pure Java. Позже, однако, ответственные работники Microsoft на страницах других изданий декларировали невозможность присоединиться к Pure Java из-за того, что эта программа, целиком контролируемая Sun, не может быть истинным стандартом.
В следующие месяцы ситуация не улучшалась. Объявленная в апреле 1997 г. предварительная 4-ая версия Java-машины никак не повлияла на развитие конфликта. Летом Microsoft представила новую технологию J/Direct как добавление к виртуальной машине Java, поставляемой вместе с IE4.0. данная технология даёт возможность получать доступ из Java-программ напрямую к функциям программного интерфейса Windows. Microsoft трактует её как некое расширение, позволяющее свободно манипулировать вызовами функций, которые в настоящее время отсутствуют в Java. Таким образом, если схематично представить виртуальную машину в виде некоторого изолирующего слоя, то J/Direct – не что иное, как дыра в этой изоляции.
Компьютерная пресса, ещё в начале года публиковавшая весьма положительные отзывы о том же Visual J++, все чаще и откровенно начала называть J/Direct и прочие приобретения Microsoft в отношении Java опасным искушением для разработчиков. Редакция американские газеты PCWeek во второй половине года весьма недвусмысленно призвала разработчиков никогда не использовать различные расширения Java, предлагаемые Microsoft для Windows.
Тем временем конфликт усугубился и зашёл настолько далеко, насколько это вообще возможно. Осенью 1997 г. Sun подала на Microsoft в суд. Официальная претензия состояла в том, что IE4.0 не прошёл тестов на совместимость, а следовательно, Microsoft не имеет никакого права на использование логотипа Java/.
Тактической победой Microsoft в перманентной борьбе против конкурентов в 1997 г. стало превращение день ото дня крепнущей компании Apple в своего союзника. Ещё на конференции JavaOne в апреле фирмы Microsoft и Metrowerks объявили о создании виртуальной Java-машины для MacOS. Соглашение между двумя компаниями, состоявшееся в августе, помимо покупки корпорацией Microsoft акций Apple на 150 млн. долл., предусматривало принятие последней IE в качестве стандартного броузера на Macintosh, а также тесное сотрудничество в области Java-технологий, предполагающее, в частности, поддержку библиотеки AFC для Macintosh/ соглашение, по мнению экспертов, вывело Apple из лагеря, руководимого Sun и Netscape.
Тем не менее, не смотря на такие факторы, как возникшая и уже утихшая эйфория по поводу Java, выпуск инструментария, успевшего менее чем за два года выйти на самый «крутой » корпоративный уровень, способность этого языка всколыхнуть самые высшие эшелоны компьютерного рынка, многие по прежнему без всякой формальной оговорки называют Java – технологией во младенчестве. Значит, надо полагать, что основные события впереди.
Основные средства разработки для Java, выпущенные в 1997 г.

Продукт Фирма-изготовитель Платформа разработки Ключевые особенности Месяц выпуска Примерная цена
Visual J++ Microsoft Windows Объединенная среда разработки с Visual C++ 5.0 Март 100$
Jbuilder Borland Windows Мастер-функции для построения компонентов JavaBeans Мощные средства работы с БД Март, ноябрь 100$ 800$ 2500$
PowerJ Sybase Windows Среда разработки унаследована от Optima ++ Возможность встраивания в программы компонентов JavaBeans и ActiveX Сентябрь 2000$
SuperCedeJava Asymetrix Windows Возможность отладки программ без повторной компиляции Январь 100$
SuperCedeJava/ActiveX Asymetrix Windows Конвертер Java-кода Использование компонентов ActiveX Май 200$
Visual Age for Java IBM Windows, OS/2 Визуальный построитель логики программ Среда групповой разработки Июль 1500$ 100$
Visual Cafe for Macintosh Symantec Macintosh Мощная визуальная среда разработки. Среда drag-and-drop Январь 200$
Visual Cafe DataBase Developer Edition Symantec Windows Мощные средства работы с БД Сентябрь 500$
Parts for Java 2.0 Object Share Windows Средства drag-and-drop и совместимость с технологией Cobra Апрель 100$
Java WorkShop 2.0 Sun Windows, Solaris, HP-UX, UnixWare Мощные средства компиляции и оптимизации кода Март 100$


Литература

1. PC Magazin/Russian Edition, 3/98
2. PC Magazin/ Russian Edition, 2/98
3. PCWeek/Russian Edition, 19/27
4. ComputerWeekly, 33/98