О да, я снова вынужден повториться, но всё именно так: кругом скрипты, кругом интерпретаторы. И от этого никуда не деться, такова суровая действительность. Сейчас я не буду рассказывать об очередном скриптовом языке программирования и не буду ограничиваться обзором очередной скриптовой среды разработки. Хотя, и это будет. Но сначала один, лишь один вопрос...
Откуда их столько взялось?
И вправду. Скрипты сегодня повсюду. Они на серверах, на web-страницах, в макросах "Офиса", скрипты проникли даже в игры! А ведь недавно, кажется, всё было спокойно - был ДОС, и "Юникс", и только Shell Script серыми буквами разбавлял черноту текстовых дисплеев.
На самом деле, конечно же, популярность скриптовых языков, в отличие от многих глюков программного и аппаратного обеспечения, объясняется просто и, главное, логично. Скриптовые языки популярны, поскольку удобны.
Во-первых, стоит определиться, всякий ли интерпретируемый язык является скриптовым. Скрипт - это нечто, написанное пользователем для автоматизации своей работы. Так что потенциально получается, любой интерпретируемый язык может стать скриптовым в зависимости от задачи, для которой он используется.
Поехали, значит, дальше. Почему скриптовых языков много? Потому что они все заточены под какую-то задачу. VBA из Microsoft Office хорошо помогает в уменьшении количества кликов по ячейкам в бесконечных таблицах, JavaScript помогает делать красивые и интерактивные web-страницы, sh не даёт "Юниксу" стать Windows'ом. За счёт своей довольно-таки узкой специализации скриптовые языки позволяет очень эффективно решать задачи автоматизации действий пользователя. Есть, правда, и универсальные интерпретируемые языки (первыми вспоминаются Perl и Python), но и они имеют области применения, в которых преимущества перед конкурентами максимальны. Ещё одна причина популярности скриптов состоит в том, что программированием сегодня владеет гораздо большее количество народа, чем даже десять или пятнадцать лет назад, и написать какой-то скрипт не составит труда даже изрядному количеству школьников. В общем-то, не последнюю роль в популяризации программирования именно скриптовым языкам и принадлежит, поскольку они гораздо проще в использовании, чем гигант(ы) рынка C/C++, а уже про Ассемблер остаётся только молчать в тряпочку.
В общем-то, польза от скриптовых языков очевидна, и повторяться ...надцатый раз не стоит. Поэтому сейчас, наверное, самое время чуть подробнее рассказать об основных скриптовых языках - составить, так сказать, их хит-парад.
Хит-парад скриптовых языков
Первое место в нашем списке заслужил некогда весьма экзотичный, но в наше время уже довольно распространённый и популярный язык, название которого состоит из трёх букв. Хотя в русском языке самое известное слово из трёх букв в нашей газете вряд ли когда-нибудь напечатают, но для этого языка проблемы здесь никакой нет - у него буквы латинские. Потому что зовут его TCL. Это аббревиатура (лингвисты аббревиатуры часто называют акронимами, но это к делу не относится) расшифровывается как Tool Command Language, то есть командный язык инструментов. TCL применяется во многих областях, поскольку имеет богатые возможности. Например, наличие средств создания GUI (Graphical User Interface - графический интерфейс пользователя) позволяет создавать на нём графические оболочки для различных программ, работающих в режиме командной строки. Кроме того, как и Python, TCL часто встраивается в различные приложения, хотя, на мой взгляд, и тот, и другой языки - не лучший вариант для макроязыка какого-либо крупного коммерческого пакета. Почему? Дело в том, что TCL довольно специфичен по своему синтаксису. Например, в нём, как и в LISP'е (это один из самых старых языков высокого уровня, созданный для разработки систем искусственного интеллекта), все типы данных плюс сам код программы - это строки, которыми программа может манипулировать. Может, это и удобно, но меня, как человека сишно-паскального, это несколько смущает. Думаю, Си более распространён, поэтому на его основе делать макроязык гораздо лучше. Недавно, кстати, о таком языке, Gentee, я рассказывал. Ещё один минус TCL (по крайней мере, его классического варианта) - отсутствие встроенной поддержки объектно-ориентированного программирования.
Впрочем, хватит, мне, наверное, ворчать по поводу TCL. Да, он очень популярен, но есть ещё и многие другие языки, интерпретируемые, конечно же, которые по популярности не то что не уступают TCL, но местами, пожалуй, даже превосходят его. О некоторых из них я уже немного рассказывал на страницах газеты ("Интерпретируемость и кросс-платформенность"). Там можно кратко узнать об особенностях таких гигантов, как Perl, Python, PHP, Ruby. Они все делят с TCL первое место.
Второе место я бы отдал VBA. Потому что офис так популярен, что просто никуда от него не скрыться. И, честно говоря, поработав с OpenOffice.org, StarOffice, Ability Office (это всё альтернативные офисные пакеты), я начал понимать, что Microsoft Office хоть и глючен, но практически безальтернативен. Да и VBA (Visual Basic for Applications) - скриптовый язык популярный и мощный. Кроме MS Office, VBA есть в AutoCAD'е и офисном пакете от Corel. Может, есть и где-то ещё, поскольку язык популярен, но о других программах я лично пока не слышал. VBA прост, по сравнению с тем же TCL, но это не недостаток, а, напротив, достоинство, поскольку большая часть его пользователей - люди, не являющиеся профессиональными программистами.
Третье место (хотя, наверное, это и спорно, но мне кажется, что VBA всё же заслуживает более высокой ступеньки на пьедестале) отдаю ECMAScript'у. Что, никогда не слышали о таком? Может быть. Но вряд ли не имели с ним дела. Потому что это стандарт, которому соответствуют многие современные скриптовые языки - например, JavaScript, Jscript (это вариант JavaScript'а от Microsoft) и ActionScript (этот язык активно используется в технологии Adobe/Macromedia Flash/Flex). JavaScript так давно и прочно поселился в браузерах, что даже старожилы с трудом помнят времена, когда его не было. Да и плохо тогда было, наверное. Представьте, не было даже забавных страниц, бесконечно выдающих сообщение а-ля "хрен ты теперь закроешь браузер без перезагрузки". ActionScript - то, без чего не могли бы существовать такие популярные сегодня игрушки на Flash'е, которыми наводнён Интернет. И даже легендарные Yetisports, попавшие на центральное телевидение, созданы именно с помощью ActioScript'а.
Нижнюю позицию (ну да, Top-100 не получился) занимают sh и его DOS-Windows'овский безымянный аналог. При этом, конечно, sh на голову выше своего коллеги, но до Perl'а & Co ему всё равно далеко. Конечно, правильно называть этот язык, скорее, Bourne shell, но суть его от этого не меняется. Командные языки оболочек операционных систем - самое простое из средств автоматизации работы пользователя, но не самое мощное. Сейчас эти языки уже менее активно используются (особенно в мире Windows), но и умирать пока не собираются.
Далее идут более мелкие языки, встроенные в различные пакеты ПО. Думаю, все их перечислять без надобности.
Script Debugger IDE
Для профессиональной работы со скриптовыми языками существуют специальные инструменты, сиречь программы. Это среды разработки (IDE, если по-английски, то есть Integrated Development Environment). Одна из таких программ - Script Debugger IDE. Она представляет собой довольно неплохое средство для работы со скриптами, хотя и не самое лучшее.
Найти Script Debugger IDE во Всемирной паутине можно по адресу www.script-debugger.com. Размер дистрибутива пробной версии программы - около пяти мегабайт.
При первом запуске программы она предлагает себя купить, причём сие непристойное предложение повторяется потом каждые пару минут. В остальном trial-версия ничем не отличается от полнофункциональной. Из скриптов программа предлагает редактировать ASP (это программы, выполняемые web-сервером IIS), Jscript'ы и VBScipt'ы. М-да, а по названию программка казалась более качественной. Впрочем, если с этой узкой специализацией Script Debugger IDE справляется хорошо, то этот инструмент всё равно заслуживает внимания и, пожалуй, даже уважения.
Возможности у программы, на самом деле, средние. Есть подсветка синтаксиса, распечатка и предварительный просмотр трудов в браузере. Стоящая вещь - отладчик, поскольку отладка скриптов часто становится настоящим мучением. Правда, теперь отладчик Jscript'а есть и в браузерах, но писать в нормальном IDE с нормальным дебаггером разработчику, по-моему, и привычнее, и приятнее. Отладчик обычный и привычный: с точками останова (breakpoints), возможностью просмотра значений переменных и прочими вещами. То есть, если вы работали уже в какой-либо среде программирования, то и в Script Debugger IDE не запутаетесь. Из дополнительных инструментов стоит отметить только легко вызываемую таблицу символов и WMI Wizard для работы с WMI классами. Для работы с библиотеками типов в ASP и прочих скриптах также есть специальные инструменты, позволяющие, кроме всего прочего, просматривать структуру классов в библиотеках типов.
В целом же, Script Debugger IDE, несмотря на громкое название, довольно средняя программа, правда, тяготеющая к верхнему слою за счёт удобного дебаггера. Достаточно неплохой инструмент для создания ASP, VBS, JS скриптов.
Вадим СТАНКЕВИЧ
Горячие темы