Понятие о скриптовых языках

Что такое «скриптовый язык»? Это туманный вопрос, в котором содержатся два термина — «скриптовый» (scripting) и «язык» (language), произошедшие из областей, не имеющих отношения к компьютерам. Смысл, в котором эти термины используют многие люди, расплывчат. Даже такое простое слово, как «язык», легко можно использовать неверно. Например, VBScript, VB, и VBA в грамматическом отношении и в отношении практически используемой семантики являются одним и тем же языком, а VBScript в некоторой степени похож на упрощенный пиджин VB.

Понятие скриптинга (написания скриптов) работает довольно хорошо, если понимать скрипт как театральный сценарий. Хотя сценарий является исчерпывающим, проработка деталей исполнения оставлена действующим актерам и режиссеру. К сожалению, таким образом нельзя сузить определение скриптовых языков: манипулируя приложениями, любой язык низшего уровня можно использовать как скриптовый язык!

Скриптовые языки быстро становятся языками общей реализации для многих областей, блистая там, где время разработчика более важно, чем время исполнения (и даже там, где важно время исполнения; например, благодаря встроенным операциям высокого уровня быстродействие программ, написанных на Python, такое же, или даже быстрее, чем программ, написанных на Java). Многие сейчас предпочитают использовать обозначение «динамические языки» вместо «скриптовые языки», ссылаясь на отсутствие выполняемого в процессе компиляции контроля типов. Какое место занимают скриптовые языки в современных компьютерных кругах?

  • Скриптовые языки позволяют разработчикам сцеплять вместе различные пакеты программ, а также согласовывать полученные в результате системы.
  • Все чаще скриптовые языки сами по себе используются в качестве полноценных базовых инструментальных платформ. Например, многие крупные коммерческие Интернет-приложения сейчас программируются преимущественно на языках Perl, Python или PHP.
  • Естественно, скриптовые языки используются для автоматизации задач системного администрирования.

Не исключено, что интерпретируемые или оперативно компилируемые языки все больше и больше будут заступать на смену предварительно компилируемым языкам. Компиляцию со временем будут рассматривать просто как инструмент оптимизации (чем она собственно и является), использование которого во всех случаях едва ли разумно. Она все еще будет полезна при отправке автономного кода за пределы среды, которой вы управляете, однако, компиляция все чаще будет рассматриваться просто как способ упаковки. С другой стороны, граница между компиляцией и интерпретацией, которая всегда была немного произвольна, будет размыта еще больше. У языка Perl уже есть фаза оперативной компиляции перед интерпретацией. Будущее будет за совместимостью платформ, так что компиляторы все чаще будут нацелены на абстрактные «виртуальные машины» (как JVM у Sun или CLR у Microsoft), которые наслаиваются на аппаратные средства. На каком этапе программирования вы компилируете или интерпретируете? И имеет ли это значение?

Динамические языки в качестве доминирующих языков реализации во многих областях могут со временем перегнать Java и С++. Закон Мура на стороне динамических языков.

Статические языки во время компиляции пытаются поставить все точки над «i». Долгое время разработчики полагали, что безопасность типов статических языков означает большую надежность их кодов. Однако все чаще разработчики приходят к заключению, что дело не в этом. Конечно, теоретически возможно иметь в распоряжении переменную под названием «ИмяПользователя», но обнаружить во время исполнения, что она ссылается на объект класса «ЗаказНаПоставку». Однако на практике подобное все же маловероятно.

В чем же состоит привлекательность скриптовых языков?

  • Скриптовые языки обладают более сложным инструментарием и поддерживают более прогрессивные техники программирования. Например, возможности сортировки данных в Perl встроены прямо в язык. То, что в язык встроены все основные инструменты программирования, избавляет от необходимости создавать их самостоятельно и означает, что для решения конкретной проблемы нужно писать меньше кода, что увеличивает производительность разработчика.
  • Скриптовые языки позволяют быстро выполнять доработку кода без раздражающей потери времени на ожидание окончания компиляции.
  • Количество людей, не обладающих подготовкой, которую имеют традиционные компьютерные специалисты, но могущих заняться написанием скриптов, стало на порядок больше. Иначе говоря, программированию на скриптовых языках проще научиться. Чтобы стать средним программистом на C++, необходим больший опыт работы, чем для того, чтобы стать средним программистом на PHP.

Какие можно назвать недостатки скриптовых языков?

  • Время исполнения все еще является главной проблемой. Конечно, есть области, где скорость слишком важна, чтобы можно было программировать непосредственно на скриптовом языке. Эта проблема обычно решается тем, что код тщательно выбранной части приложения (скажем, 10-30 пишется на языке низкого уровня (таком, как C или C++); например, в Python есть развитые механизмы для того, чтобы вставить такой код (как и в большинстве других динамических языков).
  • Общей проблемой всех скриптовых языков является отсутствие хорошей интегрированной среды разработки (IDE). Конечно, какие-то интегрированные среды разработки существуют, однако в них недостает мощности, как у Visual Studio.
  • Ключевым нетехническим, однако важным недостатком является отсутствие маркетингового бюджета. Многие динамические языки идеально подходят для многих проектов, однако им тяжело конкурировать с такими локомотивами маркетинга, как Sun (Java) и Microsoft (C#), которые продолжают продвигать свои технологии как единственно возможные. В истории есть примеры того, как техническое превосходство подавляется превосходным маркетингом
Обсудить у себя 1
Комментарии (0)
Чтобы комментировать надо зарегистрироваться или если вы уже регистрировались войти в свой аккаунт.

Войти через социальные сети:

Marina
Marina
Была на сайте никогда
тел: +380665011134
Читателей: 7 Опыт: 0 Карма: 1
Я в клубах
Фотографируем Пользователь клуба
Inks under the skin Пользователь клуба
все 1 Мои друзья