уже начала образовываться инфраструктура: стали выпускаться продукты для создания Java-приложений, появились специальные тематические журналы, в Internet процветают узлы с информацией для программистов и конференции. Да и сам язык Java прошел через несколько итераций и сейчас уже значительно отличается от того, каким он был вначале.
На повестке дня замаячил следующий вопрос: когда и как Java использовать? Ответ на него весьма не прост и зависит от многих факторов. Главная проблема - это кадры. Язык Java молод, поэтому найти действительно квалифицированных специалистов практически невозможно. Следовательно, для любой компании, которая делает ставку на Java, возникает дополнительная трудность - подбор потенциальных разработчиков и их обучение. Дело доходит до того, что зарубежные фирмы готовы нести расходы по перемещению хороших специалистов из стран бывшего Советского Союза, лишь бы они подходили для работы.
И все же часто окончательное решение о применении того или иного программного средства зависит от состояния инфраструктуры рынка. Вот здесь в качестве лакмусовой бумажки можно использовать конференцию Object Expo Europe и выставку Java Expo'97, состоявшиеся в Лондоне летом этого года. Возьму на себя смелость высказать некоторые соображения по поводу увиденного.
Обращает на себя внимание увеличение интереса не просто к процессу программирования, а к этапам, которые предшествуют созданию программы. Это создание объектных моделей будущих программ, генерация рабочих каркасов и библиотек, получение событийных графиков. Постепенно пришло понимание, что знания самих языков программирования и умения писать на них приложения далеко не достаточно для успеха. Проекты "разбухают" настолько, что программисты уже не в состоянии не только реализовать их, но даже охватить взглядом. Теперь требуются слаженные команды, которые будут работать так же, как бригады по конвейерной сборке автомобилей "форд", при четком делении работы на этапы, передаче результатов от одного подразделения к другому и соблюдении всех необходимых формальностей. Особенно это касается объектно-ориентированных языков, каким является и Java. Плохо продуманный проект на Cи++ может породить ошибки, но изобилующий ими продукт все-таки увидит свет, поскольку некоторая расплывчатость языка позволяет маскировать бреши. При работе с Java такое просто невозможно. В нем действует четкое правило: нет объектной модели - нет программы. Наверно, этим можно объяснить интерес к таким современным методам проектирования, как OMT или UML. В итоге стали появляться программные средства для автоматизированного проектирования моделей будущих приложений и генерации исходного текста, как, например, известное CASE-средство Rational Rose компании Rational Software или Java-версия ObjectTeam, представленная фирмой Cayenne.
Нет никакого смысла гонять приложения, написанные на Java, на отдельной машине. Передача объектов между машинами, объединенными в локальные и глобальные сети, - вот истинное призвание этой технологии.
Однако многие ошибочно полагают, что сам язык Java снабжает пользователя механизмом передачи объектов по сети. Частично это так. Но лишь для однородной программной среды. Если же требуется создать приложение для нескольких различных платформ и использовать распределенные вычисления, средств Java не хватает. В этом случае необходимо использовать единый интерфейс управления объектами. Если это спецификация CORBA корпорации IBM, то следует применять универсальный язык описания интерфейсов (IDL). Пока очень мало разработчиков используют это прекрасное средство. Хотя все они, как правило, создают программы для OS/2 и AIX, т. е. для платформ IBM. Однако в недалеком будущем, когда любая программа или библиотека будут состоять только из компонентов и на коробках будет красоваться ярлык "Совместимо с CORBA" (как это произошло с Windows), без IDL уже нельзя будет обойтись. Попробуйте-ка руками написать исходный текст на Java для передачи объектов по сети со всеми скелетами, заглушками и т. д. Мозоли на пальцах набьете! А вот с IDL все гораздо проще: описав интерфейс объекта, передаете его компилятору IDL, а он сделает за вас все остальное. На конференции Object Expo Europe опытные мастера рассказали об использовании IDL в своих проектах. На выставочных стендах можно было увидеть отдельные средства работы с IDL, хотя обычно компиляторы IDL поставляются в комплекте с различными средствами разработки программного обеспечения. Итак, уже очевидно, что Java будет базироваться следующие несколько лет на спецификации распределенного использования объектов CORBA. Это и является фактом. Так что освоение CORBA станет критической точкой при переходе к распределенным системам и объектным технологиям.
Замечу, что активизировали свою деятельность компании, занятые в производстве брокеров объектных запросов*.
Уже даже наметились лидеры, в числе которых две известные фирмы: VISIGENIC с пакетом VisiBroker и IONA с продуктом Orbix.
Вероятно, в ближайшее же время всем компаниям потребуется сделать значительное усилие и перенести на Java накопленные библиотеки, выполненные на различных языках. А это станет действительно серьезным испытанием. Перенос на Java - процесс долгий и кропотливый, к тому же вырывающий из бюджета предприятия значительные средства. Счастливы будут лишь вновь испеченные маленькие мобильные фирмы, которым так и так придется начинать с самого начала. А большим компаниям придется либо выкинуть накопленный код вообще, либо купить готовые библиотеки третьих фирм, либо заняться переносом на Java, рискуя выбиться из всех графиков и, возможно, даже стать аутсайдером.
Получается, что выжить в быстро меняющемся программном мире можно, лишь став настоящим адептом Java. А для этого нужно:
Главное, уже сейчас принять решение, переносить имеющийся исходный текст на Java или же не тратить на это время и деньги.
* Брокер объектных запросов - программа, осуществляющая управление разнородными объектами и предачу запросов между ними.
Процесс пошел!
Чтобы узнать состояние дел в мире Java и объектов, я поехал на теперь уже ежегодную конференцию Object Expo Europe, совмещенную с выставкой Java Expo'97, которые проходили в начале июля этого года в Лондоне. Знаменитое здание Queen Elizabeth II Conference Centre, расположенное в двух шагах от Парламента и Вестминстерского аббатства, приняло под свою крышу две с половиной тысячи специалистов со всего мира. Как обычно, организационные вопросы взяла на себя фирма SIGS Conferences - отделение крупного издательства SIGS Publications.
Надо сказать, что собравшиеся приехали не за дебатами, а за конкретными знаниями. А поучиться тут было у кого: все выступившие с докладами обладают большим практическим опытом по использованию Java и ведению объектно-ориентированных проектов. За время конференции было сделано более шестидесяти докладов, посвященных в основном использованию новых возможностей Java, сопряжению программ, написанных на Java, с другими языками программирования, а также объектно-ориентированному проектированию.
Под стать конференции Object Expo Europe была и выставка Java Expo'97, интерес к которой продемонстрировали многие известные фирмы-производители программных продуктов для разработчиков и проектировщиков ПО. На стендах были показаны как пакеты для объектно-ориентированного проектирования программ, генерации исходного текста, так и для тестирования готовых программ и их интеграции в сетевое пространство.
Среди экспонентов были IBM, Popkin Software, Sun, Rational Software, Cayenne, Rogue Wave, SQA, Hitachi Software, IONA и многие другие известные и неизвестные компании. Заметно активизировались маленькие фирмы, разрабатывающие средства для создания Java. Так, место рядом со стендом такого монстра, как IBM, демонстрировавшего изумительный продукт VisualAge for Java, заняли две небольшие фирмы: Imperial Software Technology с X-Designer и Visaj, а также немецкая компания GFT с продуктом GRIT Application Developer 4.0. И, как это ни парадоксально, интерес к ним был ничуть не меньше, чем к большим фирмам. Наверное, это одно из серьезных отличий между зарубежными и российскими выставками.
И все же самый большой процент новых Java-продуктов пришелся на библиотеки объектов. Одна только Rogue Wave продемонстрировала целый спектр расширений: библиотеку базовых структур JTools, классы для манипулирования данными JDBTools, набор JavaBeans-компонентов JWidgets для организации привлекательного интерфейса, объекты деловой графики JChart, библиотеку финансовых классов JMoney и средство обмена данными между Java и Cи++ под названием Serialize.h++. А совсем неизвестная у нас компания EON Technologies продает компоненты Java, на которых можно построить целую банковскую систему! Так что, как говориться, процесс пошел!
Специалисты о Java
Десмонд Соуза, президент консалтинговой компании Icon Computers
"Мир ПК": Стоит ли, по Вашему мнению, уже сейчас использовать Java или, может быть, дождаться, пока эта технология станет более стабильной и широко используемой?
Д. Соуза: Это зависит от того, сколько Java вы собираетесь использовать. Если ваш новый проект не привязан жестко к уже имеющимся системам и не будет введен в действие до начала 1998 г., тогда я допускаю, что вы можете смело использовать Java, ничем не рискуя, потому что уже полгода назад Java был продуктивнее, чем Cи++. Сегодня Java также остается наиболее продуктивным языком, и вопрос о его производительности уже отпадает. Но Java и JDBC работают медленно в тех приложениях, где предусмотрены транзакции, следовательно, риск все же существует.
"Мир ПК": Есть ли у Вашей фирмы завершенные проекты, реализованные на Java?
Д. Соуза: Да, имеется парочка. Я не могу рассказать о самих проектах. Но могу сказать, что один из них связан с управлением людскими ресурсами в области продаж, а второй относится к Web-телефонии.
"Мир ПК": И насколько они велики?
Д. Соуза: Я приведу вам число задействованных людей. В телефонном проекте от 6 до 8 человек работали приблизительно в течение 8 месяцев, а в проекте, связанном с ресурсами, почти год работали 12 человек.
Саймон Фиппс, менеджер центра Java-технологии восточноевропейского отделения IBM
"Мир ПК": Какую цель преследует IBM, используя Java в своих продуктах и поддерживая Java вообще?
С. Фиппс: Основая цель - позволить нашим заказчикам создавать программные решения для их бизнеса, не беспокоясь о платформах, на которых эти пакеты будут установлены. С помощью Java люди могут создавать "умное" программное обеспечение, базирующееся на объектной модели, а затем использовать его как на старых компьютерах, уже имеющихся на фирме, так и на новых сетевых компьютерах. Такие решения будут доступны по цене и позволят фирмам быстро перейти к использованию Internet, intranet и сетевых компьютеров.
"Мир ПК": Есть ли у IBM проекты, созданные на Java или находящиеся сейчас в процессе разработки?
С. Фиппс: Да, у нас сейчас в стадии разработки несколько проектов, основанных на Java. Самый большой из них называется "Сан-Франциско". Там используются элементы JavaBeans. Кроме этого большого проекта есть еще достаточно много других, в которых также применяется Java.
"Мир ПК": А как же ваш знаменитый SmallTalk?
С. Фиппс: Мы до сих пор настаиваем, что SmallTalk - прекрасный язык, но с ним возникают проблемы, когда требуется развернуть программу на нескольких разных платформах. Мы верим, что будущее за подходом Java. Мы очень надеемся, что в SmallTalk появится возможность генерации байт-кода и все продукты серии VisualAge будут иметь единую виртуальную Java-машину. Так что рано говорить о смерти SmallTalk.
"Мир ПК": Как вы думаете, "подвинет" ли Java язык Cи++ с рынка средств разработки?
С. Фиппс: Хотелось бы, но сомнения одолевают.
Мартин Кэролл, инструктор AT&T Bell Laboratories, один из пионеров использования Cи++ и разработчиков стандартных компонентов Cи++
"Мир ПК": Каковы, по Вашему мнению, перспективы применения языка Java?
М. Кэролл: Java - прекрасный язык программирования. Я могу сделать на нем за два часа то, что требует двух дней при использовании Cи++. Но основной тормозящий фактор в использовании Java - это существование большого количества продуктов, написанных с применением Cи++. Поэтому приходится мириться с этим наследством. Но если бы я начинал новый проект, то, безусловно, стал бы делать его на Java.
"Мир ПК": И Ваша фирма уже использует Java?
М. Кэролл: Да, конечно, особенно для проектов в области исследований. Но часто мы вынуждены работать на Си++, потому что сторонние разработчики не поддерживают Java. Так, для проекта по Web-телефонии нам пришлось писать драйверы на языке Си++ для Unix-системы, где не была предусмотрена виртуальная машина Java. Кроме того, представьте себе команду разработчиков, которые многие годы пишут на Cи. Для них целая проблема перейти на Си++, не то что на Java.
Конечно же, лучше использовать Java. Этот язык помогает быстро создавать надежные проекты. Хотя разрабатывать на Java пока еще трудно - слишком быстро эта технология меняется: то сборка мусора изменилась, то виртуальная машина.
Артур ван Хофф, основатель компании Marimba и шеф по производству
"Мир ПК": Ваше мнение о Java в общих чертах?
А. ван Хофф: Мы уверены в том, что Java является ключом нашего успеха. Мы маленькая компания, но очень продуктивны благодаря Java. Если бы мы делали все на Си++, то это занимало бы гораздо больше времени. Многие компании начнут использовать Java, чтобы добиться большой производительности. Это одна причина. А вторая состоит в том, что Java - надежный язык с хорошей защитой данных. Переносимость также один из важных моментов в использовании Java.
"Мир ПК": И Вы могли бы рекомендовать программистам использовать Java вместо Си++?
А. ван Хофф: Разумеется! Java намного лучше и удобнее Си++.