Python является универсальным языком программирования, который часто выступает в ролях, связанных с написанием сценариев(скрипт).
Он обычно определяется как объектно-ориентированный язык написания сценариев — определение, которое комбинирует поддержку ООП с общей ориентацией на сценарные роли. Если выразиться одной строкой, то я бы сказал, что Python вероятно лучше известен как универсальный язык программирования, чем смесь процедурной, функциональной и объектно-ориентированной парадигм — формулировка, которая захватывает богатство и сферы применения современного языка Python.
Тем не менее, понятие “написание сценариев”, похоже, прилипло к Python как банный лист, возможно в качестве противопоставления с более крупными усилиями по программированию, требующимися другими инструментами. Например, для описания файла кода Python люди часто используют слово “сценарий” вместо “программа”. Соблюдая эту традицию, термины “сценарий” и “программа” встречаются взаимозаменяемо с небольшим предпочтением в пользу термина “сценарий” при описании простого файла верхнего уровня и термина “программа” при ссылке на более сложное многофайловое приложение.
Фактически услышав, что Python называют языком написания сценариев, у людей обычно возникают три очень разных ассоциации, как вполне уместные, так и не особенно.
Инструменты командной оболочки
Когда Python описывается как язык написания сценариев, временами люди полагают, что он представляет собой инструмент для создания кода сценариев, ориентированных на операционную систему. Такие программы часто запускаются в командной строке консоли и выполняют задачи вроде обработки текстовых файлов и запуска других программ.
Программы Python могут и исполняют такие роли, но это лишь одна из десятков обычных предметных областей Python. Он не просто лучший язык написания сценариев для командной оболочки.
Язык управления
Для других написание сценариев относится к “связующему” уровню, используемому для контроля и управления другими компонентами приложения. Программы Python действительно часто развертываются в контексте более крупных приложений. Например, для тестирования аппаратных устройств программы Python могут обращаться к компонентам, которые обеспечивают низкоуровневый доступ к тому или иному устройству. Аналогично программы могут запускать фрагменты кода Python в контрольных точках, чтобы поддерживать настройку продукта для конечного пользователя без необходимости в поставке и перекомпиляции исходного кода всей системы.
Простота Python делает его гибким инструментом управления по своей природе. Тем не менее, формально это тоже всего лишь распространенная роль Python; многие (возможно и большинство) программисты Python пишут автономные сценарии, даже не применяя или не зная о каких-либо встроенных компонентах. Python — не просто язык управления.
Легкость использования
Вероятно, лучше всего считать, что понятие “язык написания сценариев” относится к простому языку, используемому для быстрого кодирования задач. Это особенно справедливо, когда понятие применяется к Python, который делает возможной гораздо более быструю разработку программ, чем компилируемые языки, подобные C++. Его ускоренный цикл разработки стимулирует исследовательский и пошаговый режим программирования, с которым необходимо хорошенько освоиться, чтобы оценить.
Однако не обманывайтесь — язык Python предназначен не только для решения простых задач. Наоборот, благодаря присущей легкости использования и гибкости он делает задачи простыми. Python располагает простым набором функциональных возможностей, но при необходимости позволяет масштабировать программы в плане сложности. Из-за этого Python обычно применяется для решения быстрых тактических задач и долгосрочной стратегической разработки.
Итак, Python — язык написания сценариев или нет? Ответ зависит от того, у кого вы спрашиваете. В целом понятие “написание сценариев” наверно лучше всего использовать для описания быстрого и гибкого режима разработки, поддерживаемого Python, а не конкретной предметной области.