Что только сегодня не называют скриптами, к месту и не к месту употребляя это модное словечко! Некоторые люди вкладывают в это слово какой-то свой, только им понятный смысл, а некоторые вообще не вкладывают никакого смысла На самом деле, невозможно писать хорошие скрипты, если не понимать точного значения этого слова, так что, давайте попробуем разобраться в терминах, для начала
Коротенькая справочка или напоминание, это для кого как. Языки программирования делятся на две большие группы – компилируемые и интерпретируемые. Первые, с помощью специальной программы компилятора, переводят программу, написанную программистом, в так называемые машинные коды, то есть в коды понятные процессору (или процессорам, как частный случай) компьютера, которые процессор может выполнять. В случае с компилятором программа хранится на диске и загружается в память (RAM) компьютера в машинных кодах (условно говоря, в ноликах и единичках). Вторые, или интерпретируемые языки программирования, отличаются тем, что программа, написанная программистом, может сразу загружаться в оперативную память в том виде, в котором она была написана, и выполняться шаг за шагом, команда за командой, преобразуясь в машинные коды специальной программой интерпретатором. В случае с интерпретатором программа хранится на диске и загружается в память (RAM) компьютера в том виде, как была написано программистом.
Основное преимущество компилируемых программ по сравнению с интерпретируемыми, это скорость работы. Иногда эта скорость может быть выше на несколько порядков! Интерпретаторы, безусловно, будут работать медленнее, так как им приходится делать много побочной работы помимо выполнения основной программы. А ведь скорость выполнения программы для нас очень важна, особенно если мы создаем игру! Мы ведь не хотим видеть дергающихся и тормозящих персонажей, тем более слайд-шоу! Для нас ведь важно, будет созданный нами персонаж реагировать через 1 миллисекунду или только через 10 секунд. Зачем нам вообще использовать интерпретируемый язык программирования для создания игр? И можно ли его использовать в принципе? Дело в том, что у интерпретируемых языков тоже есть свои преимущества, и одно из них то, что программу можно быстро отлаживать (т.е. исправлять ошибки), дополнять и изменять. Ведь программа хранится на диске в том виде, как её написал программист и её не нужно каждый раз перекомпилировать после исправления маленькой ошибки. Кстати, поэтому и разобраться в чужих программах проще – языки программирования, особенно ориентированные на написание скриптов, очень просты для понимания, а вот разобраться в машинных кодах без отличного знания ассемблера (что дано далеко не каждому) практически невозможно…
В общем, программистам всегда хотелось совместить скорость работы компилируемых языков и простоту отладки интерпретируемых Результатом стал своеобразный гибрид, так называемый прекомпилируемый метод работы интерпретаторов. При этом программа хранится на диске в том виде, как её написал программист, но в момент загрузки в оперативную память компьютера она переводится (специальной программой, часто называемой препроцессором) или непосредственно в машинные коды или в более удобный для дальнейшей обработки промежуточный формат.