Технология Java, продвигаемая мощной маркетинговой машиной Sun, привлекла к себе огромное внимание во всем мире. В чем причина такого успеха? Ответ заключается в том, что Java представляет собой принципиально новую технологию, способную существенно повлиять на всю программную индустрию. В настоящей статье кратко описываются ключевые особенности Java и показывается, какие программные системы целесообразно разрабатывать, используя эту технологию.

1. Java - это универсальный язык программирования третьего поколения, позволяющий проектировать самый широкий спектр программных систем - от простых программ для микропроцессоров, встраиваемых в автоматизированные устройства различного назначения (торговые автоматы, интеллектуальные телефоны и др.) до сложных корпоративных информационных систем с многозвенной сетевой архитектурой и распределенными вычислениями. Java очень сильно напоминает широко распространенный язык С++, но в отличие от него является строго объектно-ориентированным (ОО).

Это свойство имеет целый ряд положительных следствий. Так, программисты лишены возможности нарушить принципы ОО программирования в пользу сиюминутным выгодам, поэтому создаваемые Java-программы намного проще модифицировать и сопровождать, чем их аналоги на С++. Строгая объектная ориентированность Java позволяет осуществить полное документирование структуры программы в CASE-средствах, поскольку Java не содержит конструкций, которые невозможно описать (структурные закладки, неявные побочные эффекты и т. п.).

Простота Java, достигаемая за счет отсутствия ряда сложных конструкций, характерных для С++, облегчает его освоение и существенно повышает надежность разрабатываемых программ.

2. В отличие от большинства других языков третьего поколения Java на 90% состоит из стандартных библиотек классов. Степень стандартизации этих библиотек доведена до предела. Это означает, что программа, которая использует только стандартные возможности языка, должна работать на любой правильно реализованной Java-машине. Объявленная в конце 1996 года программа сертификации 100% Pure Java как раз и удостоверяет эту переносимость. В настоящее время сертификат 100% Pure Java уже получили более ста программных продуктов.

3. Библиотечные классы, являясь по существу крупноблочными операторами языка, приближают Java к языкам четвертого поколения (4GL). Кроме того, для Java выпущено большое количество визуальных средств разработки, которые обеспечивают проектирование экранных и отчетных форм, связь с базами данных, а также собственно визуальное программирование - автоматизацию разработки и сборку прикладной системы из готовых компонентов. Это еще больше приближает Java к 4GL, позволяя в то же время сохранить все возможности, присущие 3GL.

4. Если бы Java была только языком программирования, то есть, просто еще одним способом записи алгоритмов, она бы не привлекла к себе столь пристального внимания. Языков программирования и без нее более чем достаточно. Существенно важным компонентом Java является среда исполнения, или так называемая виртуальная машина Java (Java Virtual Machine - JVM).

JVM создает своего рода "абстрактный компьютер", который гарантирует строго определенное исполнение Java-программы независимо от конкретной аппаратно-программной платформы. Компилятор Java преобразует текст Java-программы не в команды того или иного микропроцессора, а в чрезвычайно компактный, платформенно-независимый байт-код, который затем интерпретируется JVM.

JVM отвечает также за правильность исполнения этого байт-кода. Все байт-коды предварительно проверяются интерпретатором, и выполнение не Java-кодов блокируется. Кроме того, апплетам запрещено выполнять такие операции как доступ к файлам клиентского компьютера и связь через сеть с получением доступа к ресурсам Web (за исключением сервера, с которого они загружаются). Апплету также запрещается выполнять код, который не может быть подвергнут той же проверке, что и сам апплет.

В сочетании с JVM язык Java предоставляет приложению определенный и строго стандартизованный набор услуг по организации и управлению вычислительным процессом, что позволяет говорить о Java как о самостоятельной платформе для разработки приложений, которая не зависит от аппаратного окружения и используемой операционной системы. Новая платформа не имеет ограничений, связанных с необходимостью обеспечения совместимости со своими предыдущими версиями, и потому может совершенствоваться исходя из реальных потребностей и возможностей сегодняшнего дня. (Для примера, Windows 95 содержит фрагменты кода, восходящие еще к 8088-м микропроцессорам и операционной системе DOS 1.0, т. е. к 1981 году.)

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


Николай Николаевич Тимонин (timonin@argussoft.ru) - директор Центра Java-технологий фирмы "Аргуссофт Компани"; Юрий Валентинович Новоженов - начальник отдела этого Центра, автор книги "Объектно-ориентированные технологии разработки сложных программных систем" (Москва, 1996 г.); Александр Валерьевич Симкин - руководитель группы Центра Java-технологий фирмы "Аргуссофт Компани".