Показать сообщение отдельно
Старый 09.01.2006, 22:59     # 14
BorLase
::VIP::
 
Аватар для BorLase
 
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150

BorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех Гуру
Позвольте, господа, прочитать маленькую лекцию

Сначала - чуточку теории. В любой программе можно выделить некоторые общие понятия - пока рассмотрим исходный код, исполняемый код и исполнителя - т.е. того, кто эту программу выполняет.

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

Далее. Не всегда форма, удобная человеку, удобна исполнителю - т.е. тому, кто будет выполнять программу. Это может быть машинный код, как в случае виндовых программ, байт-код, как в случае Java, или... или тот же текстовый файл - как в случае JavaScript и ему подобных.

Но - в любом случае - исполнители могут быть разные. Это и ОС, и интепретатор команд cmd.exe, и браузер, и джава-машина (JVM). Когда вы пишете макрос в UltraEdit - там исполнитель кто? правильно, сам редактор.

Теперь - в чем же разница между JavaScript/VBScript и Java? Скрипты выполняются браузером. Это текстовые файлы, которые браузер способен интерпретировать напрямую. Java-код - это т.н. байт-код, который выполняется Java-машиной (JVM - Java Virtual Machine или JRE - Java Runtime Environment). Справедливости ради стоит заметить, что JVM, в свою очередь, выполняется операционной системой.

То есть - если браузер поддерживает JavaScript, он его способен выполнить без Java-машины. В винде вплоть до 2000 поставлялась JRE ver 1.1 - в XP Java вообще нет, и ее надо выкачивать и устанавливать отдельно. Но - она нужна только для выполнения Java-апплетов - в XP JavaScript выполняется, несмотря на отсутствие JRE.

Тут можно провести параллель с флешем - в это отношении джава-апплеты очень похожи на флешки. И то и другое показывается в браузере, но их выполняет не браузер - он отдает исполнение дальше - флеш-плейеру или джава-машине. А скрипт - обрабатывает сам.

Резюмируя - JavaScript не имеет ничего общего с Java, кроме подобного синтаксиса и 4х букв в названии. Это совершенно разные вещи, разные языки, они исполняются разным исполнителями, они обладают разными возможностями и предназначены для различного применения и тд и тп.

JavaScript - это не обрезанная Java!!! Это совершенно самостоятельная отдельная вещь.


Надеюсь, ситуация немного прояснилась. Можно свести это все в некое подобие таблички

-------------------------------------------------------------------------
Язык_______________ | Исполняемый код | Исполнитель
-------------------------------------------------------------------------
JavaScript___________| text____________| browser
VBScript_____________| text____________| MS IE
Java________________| byte-code_______| JRE
Flash________________| flash-code______| Flash-player
C++, Delphy, Pascal___| binary code______| processor
bat/cmd_____________| text____________| cmd.exe
php, asp_____________| text____________| server
-------------------------------------------------------------------------
(похабно, но таблицу сверстать не дает)

Теперь, думаю, становится понятным - почему джава-скрипт может работать в ослике, но не работать в мозилле, и как джава-программа может работать одновременно в винде, под линуксом и в мак-ос.

Именно потому, что JavaScript исполняется браузером (а раз браузеры разные, то и исполнители - разные, реализованы в чем-то по-своему). А Java-программа исполняется JRE - т.е. виртуальная машина одна, пусть даже дальше (следующий слой, ОС) и различаются.

Уффф... Думаю, достаточно. Уточнения/исправления приветствуются, надеюсь, эта маленькая лекция прояснит ситуацию.
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people.
BorLase вне форума