Модели объектов
Отдельной интересной темой является об'ектно-ориентированный характер
JavaScript. Если с Java более менее все понятно: есть декларация
об'ектов, наследование свойств об'ектов и т.п., то с JavaScript все
несколько иначе. Весь язык ориентирован на встроенные об'екты Netscape
Navigator: окна, формы, поля форм, элементы рабочих областей Navigator
и т.п. Это сильно облегчает обучение языку и позволяет сразу писать
интересные и полезные программы. Но вот с наследованием свойств
об'ектов и обменом данными между различными объектами, например двумя
окнами Navigator, дела обстоят из рук вон плохо. Эти возможности вообще
никак не реализованы. Правда есть намеки на то, что в будущем что-то
появится, типа подкласса parent класса window, но пока JavaScript
сейчас - это просто язык сценариев просмотра HTML страниц.
Правда надо сказать, из-за него Navigator стал довольно тяжелой
программой для персональных компьютеров. При организации HTML страниц
со встроенной графикой и JavaScript функциями открытия/закрытия окон и
проверкой ввода ресурсов 486 компьютера с 8Mb памяти и Windows 3.x
хватает едва-едва. Аналогичная ситуация происходит и при использовании
Windows NT c 16Mb оперативной памяти. Вообще говоря, пользоваться
JavaScript следует аккуратно, думая о потенциальных пользователях. Так
например размещение "бегущей" строки в status bar при переходе к другой
странице довольно сильно мешает пользователям, которые используют
медленные линии для подключения к сети, т.к. именно в этом поле
отображается статистика переданных байтов с сервера клиенту. К тому же
бегущая строка для пользователей Windows 3.x хороша только в том случае
если на ней не задерживаться. функция setTimeout, которая выполняет
отложенный вызов прокрутки текста, приводит к от'еданию ресурсов
системы, что может привести к зависанию машины, если оставить страницу
с бегущей рекламой на некоторое время. Из раз'яснений, полученных в
телеконференции comp.lang.javascript списка javascropt@oberon.org,
следовало, что отложенное выполнение порождает новый поток, если речь
идет о много потоковых операционных системах, а так как Windows 3.x
таковой не является, то функция реализуется путем рекурсии, что
приводит к "поеданию" ресурсов. Наиболее логичным выходом в этой
ситуации рекомендуется считать установку 32-разрядной ОС Windows`95 или
NT. Надо сказать, что переход на NT этой проблемы не снимает, т.к. сама
ОС требует гораздо больше ресурсов. Кроме того довольно часто и при
использовании HotJava, и при использовании Navigator под NT появляется
сообщение "protection violation", что приводит к аварийному завершению
программы (речь идет не о моих программах а о тех, которые я загружал
из Сети).
Сконцентрируем теперь внимание на том каково место Java-технологии в
рамках технологии World Wide Web, где, собственно, и прочат прорыв к
новым технологическим высотам. Рассмотрим схему взаимодействия программ
в рамках Web.
Как видно из этой схемы, при использовании обычных программ-интерфейсов
могут быть использованы только в качестве API-модулей сервера или CGI-скриптов, что не выделяет их из общего набора других программ этого типа.
Область применения Java расширяется только в случае применения Netscape Navigator или HotJava. Здесь уже возможно создать набор , которые будут выполняться при помощи этих программ на компьютере пользователя.
При использовании HotJava и Java Development Kit можно расширить возможности программы-интерфейса за счет разработки новых модулей.