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

Новое поколение инструментальных средств разработки на языке 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 и способна исполняться на любой платформе. )