У нас всегда: бесплатный софт, вэб-сервисы, ресурсы по раскрутке и дизайну, заработок и спонсоры, техническая документация, свежие номера журнала "Internet Zone"- все это на http://www.izone.com.ua/ 

JAVA - ПРОГРАММИРОВАНИЕ БУДУЩЕГО

Может показаться невероятным, но Java, который сейчас считается наиболее перспективным языком программирования, первоначально задумывался как средство для программирования утюгов и микроволновых печей. Но оказалось, что Java, обладая огромным потенциалом, привел к революционным преобразованиям в Сети, появившись в ней в 1995 году. Сейчас же Java из средства создания приложений для Internet перерастает в несоизмеримо большее: принцип «Write Once — Run Anywhere» («напиши один раз — запускай где угодно») становится образом мышления большинства разработчиков программ и может изменить жизнь простого пользователя. Иными словами, в Java видят возможную основу для создания софта повседневного использования.

История разработки Java уходит в начало 90-х годов. Тогда производителям бытовой электроники потребовалось программное обеспечение, предназначенное для запуска на их устройствах. Главным препятствием в этой области было требование платформонезависимости. Потребители не знают и не должны знать, какой процессор управляет их прибором. Достаточно знать, что устройство работает при включении. В то же время производители бытовых приборов, чтобы удерживать привлекательные цены, постоянно заменяют в них процессоры. Кроме того, покупатели ожидают от бытовых приборов стабильной работы, легкости в использовании и освоении. Таким образом, платформонезависимость, т. е. возможность работы с любым типом процессора и операционной системой, легкость в использовании и 100%-ная надежность должны были стать основными качествами требуемого в бытовой электронике софта. А именно такими чертами не обладает компьютерное программное обеспечение.

За эту достаточно сложную задачу взялась фирма Sun Microsystems, образовав в начале 1991 г. специальную группу для разработки проекта. К концу 1992 г. был создан язык программирования Oak и операционная система GreenOS. Но оказалось, что торговая марка Oak уже существует, и новый язык программирования был переименован в Java. Вопреки ожиданиям, он не нашел применения ни в области бытовой техники, ни как программное обеспечение для игровых телеприставок 3DO. Поэтому из Java решили сделать средство программирования для Internet, и в июне 1994 г. группа разработчиков полностью переключилась на выполнение этой задачи.

Всего лишь за несколько месяцев двое из этой команды — Патрик Нотон (Patrick Naughton) и Джонатан Пэйн (Jonathan Payne) создали принципиально новый броузер WebRunner, позднее переименованный в HotJava. И 23 мая 1995 г. Sun Microsystems официально представила Java и HotJava.

Java сразу привлек к себе пристальное внимание и стал объектом конкуренции крупных корпораций и отдельных разработчиков. Ведь как мы уже знаем, возможностями софта, написанного на Java, не обладают обычные программы. Этим языком занялись такие известные компании, как Netscape, Symantec, Borland, Microsoft, Corel, Lotus, Metrowerks, MacroMedia, Fuji, Xerox, Mitsubishi Elictrics и т. д. Эта конкуренция особенно обострилась в последнее время. Компании Sun даже пришлось возбудить несколько судебных процессов, в том числе и с Microsoft, о незаконном использовании логотипа Java в рекламных целях.

Два года, в течение которых Java успешно использовался в Internet, упрочили его положение среди языков программирования. Возможности Java оказались настолько широки, что заставили многих задуматься, не стоит ли использовать его и при написании традиционных программ. И в 1997 г. появилось не только большое количество приложений на Java, но и несколько офисных пакетов: компания Corel выпустила «Office for Java», а Lotus — «eSuite». Что же так привлекает в этом языке программистов и должно привлечь пользователей? Рассмотрим подробнее основные черты и механизмы работы Java.

Напиши один раз — запускай где угодно

Главное в Java — межплатформность. Принцип «напиши один раз — запускай где угодно», пожалуй, наиболее привлекателен для программистов и важен в Internet, где страничка должна быть доступна компьютеру под управлением любой операционной системы. Перенесенный в область софта, этот принцип решит многочисленные пользовательские проблемы, связанные с несовместимостью операционных систем. Во-первых, можно будет установить программу, с которой вам больше нравится работать, на любой компьютер. Во-вторых, отпадет проблема переноса данных, несовместимость форматов дискет и т. д. Например, существует архиватор JavaZip (http://www.sfs-software.com), используя который вы всегда будете уверены в том, что ваш архив, посланный по e-mail, сможет разархивировать адресат, независимо от того, какой у него компьютер и какой операционной системой он пользуется.

Платформонезависимость реализуется за счет того, что Java — интерпретируемый язык. Java-программы хранятся не в виде машинного кода, как .EXE или .COM файлы в Windows/MS DOS, а в виде байтового (bytecode). Когда запускаете программу, начинает работать интерпретатор Java для данной операционной системы (виртуальная машина Java), которая и исполняет байтовый код. Виртуальная машина Java (JVM) — это набор определенных правил, в соответствии с которыми тот или иной байткод обрабатывается в конкретной операционной системе. Для каждой операционной системы (Windows 95/NT, Windows 3.1, Solaris, UNIX и т. д.) существует своя виртуальная машина. То есть байткод предстает в виде универсального языка, который «поймет» любой компьютер, если на нем установлена виртуальная машина Java. Компьютер можно сравнить с автомобилем. Когда вы выбираете автомобиль, то интересуетесь ценой, мощностью двигателя и определяете практические преимущества от покупки той или иной модели. По тем же критериям выбирается и компьютер. Но, оценивая эффективность практического использования PC, вы определяете: сможете ли вы работать на нем с теми же приложениями, что на работе или в школе. Зачастую это является решающим критерием при выборе компьютера.

Что заставляет работать машину? Топливо. Что заставляет работать компьютер? Программное обеспечение. Но вы можете заехать на любую заправочную станцию и спокойно заправиться, не заботясь о совместимости топлива с вашим автомобилем (в том смысле, что машина поедет в любом случае, какой бы бензин вы в нее не залили). Ведь нет понятия «Топливо для легковых автомобилей» или «Топливо для грузовиков», тогда как существует «ПО для Windows» или «ПО для Unix». Таких понятий и не должно быть, их и нет там, где работает Java и принцип «Write Once — Run Anywhere».

Безопасность

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

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

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

Java-приложение (application), в отличие от апплета, должно работать с файловой системой. Для того чтобы Java-приложения могли нормально функционировать, им разрешено копировать, удалять и переименовывать файлы на пользовательском компьютере.

Скорость работы

Низкая скорость работы, особенно у ранних версий Java, была одним из наиболее слабых мест. Это обусловлено тем, что Java — интерпретируемый язык. Если обычные программы хранятся в виде машинного кода и после получения системой задания на запуск сразу выполняются, то Java-программы, хранящиеся в виде байтового кода, перед выполнением должны быть интерпретированы. По сравнению с программами, написанными на других интерпретируемых языках программирования, Java-программы работают намного быстрее. В то же время, скорость работы Java-программ в 10–30 раз ниже скорости программ, хранящихся в виде машинных кодов. Для увеличения скорости работы программ, Sun изменила принцип запуска байткода: вместо запуска программ напрямую через интерпретатор, байткод компилируется в машинный, а затем уже выполняется. Второй метод увеличивает скорость работы, но уменьшает размер свободной оперативной памяти.

Производительность

Java-программы намного производительнее программ, написанных на других языках программирования. Высокую производительность программ обеспечивает многопоточность. Кроме того, она увеличивает и скорость работы программ, написанных на Java. Многопоточность — это важное свойство Java, позволяющее программам одновременно выполнять несколько разных задач, или потоков задач. Ее не надо путать с многозадачностью — свойством операционной системы, позволяющим поддерживать одновременное выполнение нескольких программ. Возможность поддерживать несколько потоков очень важна, но сейчас она не может в полной мере реализовываться во всех операционных системах. Это качество Java приобретет большое значение в будущем, поскольку операционные системы, разрабатываемые сейчас, строятся на принципах многозадачности и многопоточности. А так как многопоточность реализуется в Java на системном уровне, то в перспективе скорость работы Java-приложений должна существенно возрасти.

Будущее Java

Основная проблема Java — отсутствие единого общемирового стандарта. В последнее время эта проблема стала особенно актуальна в связи с резко возросшей конкуренцией между производителями средств разработки Java-программ. Многие из них (особенно Microsoft) заинтересованы в создании версий Java, которые будут лучше работать в каких-то определенных операционных системах. При этом нарушается принцип межплатформности, т. к. в байтовый код закладываются команды, специфические для той или иной операционной системы. Сама же Sun сейчас продвигает новый продукт Pure Java (чистый Java) и активно занимается стандартизацией Java совместно с ISO (International Organization for Standartization — Международная организация по стандартизации). Вероятно уже в этом году будет утвержден единый стандарт, и тогда развитие Java ускорится.

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

Аппаратное обеспечение, оптимизированное для работы с Java, основывается на процессоре, разработанном Sun Microelectronics и названном picoJava I. Если компьютер управляется операционной системой JavaOS и обладает этим процессором, то байтовый код Java-программ передается для выполнения напрямую процессору, минуя этап компиляции или интерпретации. Тесты показали, что программы выполняются picoJava I в 15–20 раз быстрее, чем 486-м компьютером с интерпретатором, и в 5 раз быстрее, чем процессором Pentium с Java-компилятором (напомним, что компилятор исполняет программы быстрее интерпретатора). Таким образом, скорость исполнения Java-программ на специально сконфигурированных компьютерах не уступает скорости работы традиционных программ на обычных компьютерах. Для того, чтобы Java-программы работали на большинстве компьютеров, требуется широкое распространения платформы Java. Для этого Sun сделала ее доступной для бесплатной загрузки со своего web-сервера. Кроме того, эта платформа распространяется вместе со всеми броузерами, поддерживающими Java. Только с сервера Sun было загружено более одного миллиона копий комплектов файлов, требуемых для запуска Java-программ (JRE).

У Java большие перспективы в качестве основы для софта. Конечно, нынешние, основанные на Java операционные системы, кажутся игрушкой, но ею же была и Windows лет семь назад. К тому же, вокруг Java объединяются конкуренты Microsoft: Netscape, Lotus, IBM и другие. Все это говорит о том, что Java обладает хорошим потенциалом и будущее может принадлежать ему. Но будет ли? Ответ возможно появится к 2000 году.

К слову, сейчас Java пользуется огромной популярностью у производителей бытовой техники. Уже появились Java-кухни — «советники» для домохозяек, помогающие планировать семейное меню, содержащие архивы рецептов и советов по приготовлению пищи.
     В 1993 г. компания Time-Warner устраивала конкурс производителей программного обеспечения для set-top box — телевизионных приставок для работы с технологией «видео по требованию». Задача этой технологии состоит в том, чтобы подключить телевизор ко всем существующим каналам кабельного телевидения. В любой момент зритель может выбрать предлагаемые программы и настроиться на соответствующий канал. Sun представила JavaOS в качестве операционной системы, но руководство Time-Warner выбрало ПО компании Silicon Graphics, не оценив полностью достоинств JavaOS.
     Сейчас же компанией Tele-Communications разрабатывается новое поколение приставок set-top box, которые будут сочетать функции компьютера и телевизора. С их помощью станут доступны такие услуги, как цифровое телевидение, e-mail, видеотелефония и сетевые компьютерные игры. В качестве программного обеспечения будет использоваться одна из последних разработок Sun — Personal Java. Этот подвид платформы Java, разработанный специально для управления устройствами типа web-телефонов, приставок set-top и различного рода терминалов для ввода данных (кассовых аппаратов и т. п.).

Автор: Сергей Переносов
Источник: www.submarine.ru


Copyright © 1999-2000гг. "Internet Zone" & Nik Romanov. nikspase@mail.ru, nikspase@hotmail.ru,  http://www.izone.com.ua/
Копирование и использование данных материалов разрешается только в случае указания на журнал "Internet Zone" как на источник получения информации, при этом во всех ссылках обязательно явное указание адреса вэб-сайта http://www.izone.com.ua/.