ПОЛЕЗНЫЕ СОВЕТЫ
ТЕХНОЛОГИЯ JAVA, КОТОРАЯ ДОЛЖНА ИЗМЕНИТЬ МИР
Согласитесь, что далеко не всякий разработчик в области программных средств может похвастаться изобретением, достойным войти в историю. Джеймс Гослинг, руководитель группы инженеров из Sun Microsystems, может. Именно он и его коллеги создали в начале 90-х годов объектно-ориентированный язык программирования Java, который впоследствии был принят и одобрен миллионами потребителей; по своему значению это можно сравнить с появлением в 80-х годах программной оболочки Windows, изменившей "облик" ПК! В результате, между концепциями Java и Windows развернулась борьба за потребительский рынок.
Сегодня в прессе не утихают споры: сможет ли технология Java (в том варианте, который предлагает Sun) стать новой идеологией, способной сменить или хотя бы серьезно потеснить на рынке программных средств MS-Windows? Попробуем найти ответ.
1991-1992 годы. Гослинг пробует написать операционную систему для взаимодействия через сеть электронных устройств бытового назначения, пытаясь расширить язык С++. Однако проект не удался, и Гослинг изменил тактику. Он взялся за написание объектно-ориентированного языка, который отвечал бы требованиям сетевого взаимодействия. Этот язык, предназначенный в основном для сетевых домашних приложений, был назван Oak (что в переводе означает "дуб"). В результате появилось неплохое программное средство, доступное для работы практически на любой машине и в любой операционной среде. В начале 1994 года техническое руководство Sun предложило интегрировать Oak в Internet и Гослинг, работая над этой новой версией, переименовал свой Oak в Java. Название оказалось счастливым.
Через два года компания Sun разработала первый браузер, который поддерживал язык Java, и начала распространение Java в Internet.
Было решено сделать новую технологию открытой.
Java официально определен авторами как простой объектно-ориентированный и архитектурно-нейтральный язык. Среди его особенностей следует назвать прежде всего сходство с С++. Программисты находят, что, зная основы С++, легко понять и синтаксис языка Java. При этом Java более удобен в работе, на нем легче и быстрее программировать.
Создавая программы в среде Java, разработчики пользуются библиотеками классов, которые содержат описания объектов, объединенные по темам. Например, для работы с базами данных существует пакет java.sql; при создании сетевых программ используется пакет java.net и т.д. Все эти пакеты, отмеченные индексом java, предполагают полную совместимость Java-программ. Для соблюдения этого важнейшего условия компанией Sun была объявлена инициатива "100%-чистая Java", о которой мы еще скажем.
Написанные на языке Java программы компилируются в байт-код, т.е. в вид, доступный для выполнения на любом компьютерном средстве, где создана JVM (виртуальная Java-машина). JVM представляет собой операционную "надстройку", которая служит для адаптации существующих компьютерных систем к Java.
Итак, Java-программы представлены после компиляции не в машинных кодах, а на более высоком уровне, в платформо-нейтральном байт-коде. У такого представления есть недостаток - низкая скорость выполнения программ.
Чтобы ускорить работу, созданы специальные средства, которые компилируют байт-код в машинный код; в качестве примера можно назвать jast-in-time-компилятор, входящий в состав виртуальной машины HotSpot.
Интересная подробность. Многие пользователи справедливо отмечают, что Java-приложения (апплеты) выполняются слишком медленно, но часто упускают из виду, что одна из возможных причин такого поведения - недостаточная оптимизация виртуальных машин Java под аппаратные и программные средства PC, включая браузеры. Ответ о функциональной пригодности может дать продукт Jmark, предназначенный для тестирования виртуальных Java-машин.
Jmark проверяет работу процессора и графической подсистемы. Его версия Jmark2.0 может по результатам проверок в лаборатории Ziff Davis быть запущена практически на любом браузере, который поддерживает Java 1.1. (например, используя Netscape Navigator 4.0, вы должны иметь последнюю версию JDK 1.1 для Netscape).
Как Windows не является только графическим интерфейсом, так и Java представляет собой нечто большее, чем только способ писать программы! Созданная на ее основе операционная система в лице виртуальной машины стала универсальным средством общения в Internet. Java поддерживает с одинаковым успехом и PC, и мобильные телефоны, и ручные приборы (типа органайзеров), и устройства офисной электроники (принтеры, сканеры). Таким образом, в орбите интересов Java оказались значительные по своему количеству и ассортименту аппаратные средства. А значит, открылась возможность для разработки и продажи целого комплекса Java-приложений.
Существует три области, в которых позиции Java наиболее сильны.
1. Настольные системы. Здесь основная идея заключается в том, чтобы разгрузить машины пользователей от программных "наворотов" Microsoft и использовать взамен легкие Java-приложения, загружаемые с серверов локальных сетей или непосредственно из Internet. Java-апплеты не делают предварительный анализ, какая операционная система установлена на компьютере. Говоря о концепции Java, нельзя не упомянуть о сетевых компьютерах. Небольшие по размеру, они почти в два раза меньше стандартного настольного ПК, а некоторые, - вообще, подобны Laptop. Корпус, как правило, герметично закрыт, отчего эти устройства получили название "sealed-case" ("запечатанный кейс"). Такие компьютеры обычно не имеют в своей конфигурации ни флоппи-дисководов, ни слотов расширения. Считается, что вся техническая и программная поддержка должна осуществляться из центра корпоративной сети; пользователь полностью огражден от вмешательства во внутреннюю организацию компьютера. Благодаря этим мерам уменьшается стоимость настольной компьютерной системы и повышается защищенность пользовательских программ от вирусов, нападений хакеров и прочих неприятностей.
2. Встроенные системы. Sun и некоторые другие фирмы предлагают версии Java, которые могут быть установлены не только на ПК, но и на небольшие по размерам электронные средства (мобильные телефоны, смарт-карты, органайзеры), заметно превосходящие по численности парк ПК. Большие надежды возлагаются на подключение этих маленьких устройств к Internet. И надо отметить, что Sun - далеко не единственная компания, которая ведет работы в этом направлении. В декабре 1995 года IBM приобрела лицензию на технологию Java и начала оптимизировать под нее свою операционную систему OS/2. По замыслу разработчиков, новая версия IBM OS/2 будет предназначена, в частности, для управления переносными электронными приборами в широком их ассортименте. Корпорация IBM является сторонником инициативы "100%-чистая Java". Иной позиции придерживается Hewlett-Packard, которая тоже объявила о намерении работать на рынке встроенных систем, но приобрела лицензию на Java у Microsoft, что позволяет судить о планах этой фирмы использовать Java просто в качестве дополнения к Windows CE.
3. Серверы. Для крупных корпораций технология Java может оказать помощь в решении большой проблемы - создавать приложения, которые способны выполняться практически в любой операционной среде. Компания Sun рекомендует к использованию более 120 таких систем, совместимых с Java. Среди них есть и разработки Sun, и предложения от других фирм (например, браузер Netscape Navigator 3.0., предназначенный для работы пользователей в Internet). Существует и масса других "Java-серверов", одни из которых совместимы с Unix, другие с Windows.
Идея концепции "100%-чистая Java" сводится к нехитрой, очень привлекательной для пользователей формуле: "Напишите один раз, выполняйте везде!" Однако, как бы ни были прекрасны намерения создателей Java, на практике все получается не так гладко. Любой опытный программист сообщит вам, что тезис "Напиши один раз, выполняй везде!" является на сегодняшний день невыполнимым: разнообразие виртуальных машин и браузеров не дает возможности предусмотреть все нюансы. А если добавить к этому, что загрузка Java-апплетов через сети идет медленно, то можно получить ответ, почему пользователи не спешат внедрять предлагаемые фирмой Sun технологии. Вот что написано в одном из Internet-сайтов: "Если вы намерены применять Java, советуем вам придерживаться областей, которые представляют относительную безопасность. Например, такие области, как серверы. Возможно, встроенные системы. И старайтесь быть подальше от остального!"
Скорость выполнения Java-программ в IE 4.0 выше, чем у других браузеров, однако, не обеспечиваются некоторые стороны совместимости. Например, фрагменты Java-программы, выполняемые на разных компьютерах, не могут взаимодействовать друг с другом; не поддерживаются программы, скомпилированные в среде С и С++ и т.д.
Иными словами, Microsoft высказала собственное понимание открытой технологии Java, решив присоединить ее к своей Windows.
Sun выступила против логотипа Java для такого решении. По ее мнению, разработчиков и пользователей нельзя вводить в заблуждение относительно возможностей новой технологии, которую Microsoft дискредитирует.
Развитие конфликта между двумя компаниями (а вместе с тем и историю развития Java-технологии) можно проследить по следующей хронологической таблице:
7 декабря 1995. Microsoft приобретает лицензию на Java с намерением (как это станет известно позднее) оптимизировать технологию Java под Windows, что станет причиной конфликта, который особенно сильно проявит себя два года спустя.
19 декабря 1995. Java завоевывает специальный приз журнала PC Magazine на том основании, что данная технология является многосторонней и дает разработчикам свободу действий.
9 января 1996. Компания Sun организует подразделение Javasoft, которое начинает разрабатывать собственные Java-продукты и ведет совместные работы с другими фирмами.
23 января 1996. Sun завершает разработку программной среды Java Development Kit 1.0, которая включает Java Applet Viewer, Java-транслятор и виртуальную машину Java.
9 апреля 1996. Журнал PC Magazine делает детальный обзор JDK 1.0. со всеми ее достоинствами и недостатками.
29 мая 1996. Более 6000 специалистов посещают первую Java One-конференцию.
22 октября 1996. Журнал PC Magazine проводит сравнительные испытания Java-приложений. Наилучшие показатели имеют Microsoft Internet Exploхer 3.0 и Netscape Navigator 3.0 (последний, ввиду нового компилятора, работает значительно быстрее, чем Navigator предыдущей версии 2.0).
29 октября 1996. Sun демонстрирует первые модели сетевых компьютеров на базе Java (но пока не объявляет об их продаже).
11 декабря 1996. Sun анонсирует инициативу "100%-чистая Java", которую принимает более 100 компаний - практически все, кроме Microsoft.
Сентябрь 1997. Microsoft начинает распространение Internet Exploxer 4.0, который не прошел тесты на полную Java-совместимость.
7 октября 1997. Sun подает в суд на Microsoft за нарушение лицензионных обязательств и несанкционированное использование логотипов Java.
16 декабря 1997. Java - победитель в журнале PC Magazine. Джеймс Гослинг и его команда Java-разработчиков называются лучшими людьми года в компьютерном мире и получают премию. И, наконец, сообщение, полученное в апреле этого года: Sun добивается в судебном порядке временного запрещения на использование логотипа "Java-совместимый" в продуктах Microsoft.
А вот еще одно любопытное мнение: "Java и сетевой компьютер оказали пользователям совершенно незаменимую услугу. Они заставили многих производителей - таких, как Compaq и др. - сбросить цены на ПК до феноменально низкого уровня!" (Дэвид Кили, аналитик Meta Group Inc.)
В общем, споры вокруг новой технологии, разработанной компанией Sun на базе языка программирования Java, не утихают. При этом никто не ставит под сомнение сам язык Java: речь идет лишь о приложениях, в которых он будет использоваться. На сегодняшний день определились два основных направления:
Анатолий Шеметов, по материалам Internet