PC Magazine/RE logo
(С) СК Пресс 2S/96
PC Magazine, October 24, 1995, p. 265

Язык Java и программа HotJava: как расшевелить "паутину"

Шон Гонсалес


Конец приставкам для просмотра - начало взаимодействия с системой Web.

К 1996 г. язык программирования Java, разработанный фирмой Sun Microsystems, станет самым популярным средством доступа к всемирной "паутине" - интерактивной информационно-поисковой системе для глобальной сети World-Wide Web. Язык Java был создан в ходе реализации научно-исследовательского проекта фирмы Sun по разработке программных средств для работы в сетях и представляет собой объектно-ориентированный язык дл решения ряда проблем программирования и функционирования системы Web. Хотя Java базируется на языке Си++ и будет хорошо понятным большинству разработчиков, в нем отказались от употреблени указателей, реализуется чистка памяти в фоновом режиме и вводятся 16-бит символы. Однако серьезных сторонников системы Web язык Java привлечет тем, что исключает необходимость в дополнительных программах дл просмотра. Язык позволяет открыть файл любого типа "без посторонней помощи".

Пользоваться языком Java можно не со всеми средствами просмотра системы Web. Единственным подобным средством, совместимым в настоящее время с этим языком, является HotJava - собственный программный продукт фирмы Sun, который проходит начальные стадии разработки. На узле системы Web фирмы Sun (http://java.sun.com) предоставляется версия дл Solaris 2.3, 2.4 и 2.5 в системах на основе компьютеров SPARC и для Microsoft Windows NT (планируются версии для MacOS 7.5 и Windows 95). Однако в мае 1995 г. фирма Netscape Communications объявила, что в будущем варианте ее изделия Netscape Navigator также предусматривается возможность использования языка Java.

Оценивание файлов неизвестных типов

Сколько раз вам попадался звуковой файл или файл MPEG, который ваша программа просмотра не давала возможности открыть без дополнительной утилиты? По большей части пользователи системы Web просто обходят такие файлы, потому что либо у них такой утилиты нет, либо они не удосужились ее инсталлировать. Но если вы и установили соответствующее средство просмотра или аудиопроигрыватель, действует оно скорее всего в отдельном окне или недостаточно гладко интегрируется с вашей программой просмотра.

По иронии судьбы вводимые на языке Java средства просмотра обходят эту проблему таким образом, что вообще никаких типов файлов не распознают. Этого уже и не требуется. Распознавая файл, программа просмотра на языке Java может получить и использовать средства просмотра этого файла. Действуя в условиях сети с архитектурой клиент-сервер, такие просмотровые программы связаны с обширным набором приложений - небольших программ на языке Java, которые предусматривают обследование протоколов конкретных данных. Встречая при просмотре системы Web файл незнакомого типа, можно одновременно обратиться к приложению, которое его открывает. Таким образом, при появлении в сети Internet новых протоколов просмотрова программа автоматически научится пользоваться ими.

Однако области действия прикладных программ не ограничиваются просмотром и воспроизведением; все, что доступно языку Си++, доступно и языку Java. Точно так же, как сегодняшние просмотровые программы позволяют воспроизводить изображение, которое хранится в каком-либо из архивов Web, и просмотровые программы, вводимые на языке Java, могут вызывать исполнение прикладной программы любого типа с параллельным воспроизведением статического содержимого такого архива.

Поскольку Java допускает многопотоковый режим, можно даже пользоваться несколькими приложениями одновременно. На узле Web, находящемся в распоряжении фирмы Sun, этот режим демонстрируется с помощью трех программ сортировки. При их исполнении по отдельным потокам вы можете вводить в действие или останавливать выполнение любого из этих трех алгоритмов, "щелкнув" клавишей мыши на графике, выдаваемом каждым из них.

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

Java изнутри

Если вы программист, владеющий языком Cи или Cи++, то обнаружите, что программирование на языке Java вам на удивление знакомо. Есть, правда, и различия, связанные с попыткой обойти обычные для Cи и Cи++ трудности с текстом программ.

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

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

Фирма Sun внесла небольшое изменение в простые типы данных языка Java. В него все еще входит много тех же типов, что и в языках Cи и Cи++: байт без знака (8-бит), short (16-бит), int (32-бит), long (64-бит), float (32-бит), double (64-бит) и логический тип. Но для символьного типа данных используется 16-бит символьный стандарт Unicode, а не 8-бит стандарт, как в языке Cи.

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

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

Как это скажется на промышленности

Java и HotJava могут способствовать воплощению в жизнь распределенных прикладных программ. Фирмам, занимающимся производством программных средств, больше не придется заботиться о почтовой пересылке новых версий; их клиентам достаточно будет связаться с узлом фирмы посредством просмотровой программы, вызываемой на языке Java, и загрузить требуемые новые или модернизированные приложения. Благодаря общей среде просмотра, в которой выполняются приложения, отпадут проблемы несовместимости с программными средствами других поставщиков. Поставщики даже смогут вести денежные расчеты за программные средства непосредственно через систему Web, пользуясь предоставляемыми языком Java механизмами безопасности.

Система World-Wide Web - это уже не просто доска объявлений или средство распределения статического материала. Java и HotJava позволяют вам проверять изделия того или иного поставщика на вашей системе простым нажатием кнопки. Система Web действительно становится интерактивной средой, в которой вы можете выполнять приложения, взаимодействовать с другими пользователями системы Web и даже манипулировать данными, применяя методы, совершенно неосуществимые прежде.