Мы уже неоднократно говорили на страницах "Компьютерных вестей" о различных скриптовых технологиях и языках, а также о средах разработки. Сегодня предлагаю обратиться к различным скриптовым технологиям, доступным пользователям операционных систем линейки Windows, и сравнить их друг с другом.
Вступление
Чем же эти технологии отличаются от остальных, почему заслуживают отдельного рассмотрения? Собственно говоря, ответ на данный вопрос в заголовке статьи - поскольку Windows всё-таки продолжает оставаться самой популярной в мире операционной системой, то и внимание пользователей к ней - особое.
Хотя, конечно, скриптовые технологии зачастую и являются кросс-ппатформенными, что никоим образом не умаляет их интерес, ценность и привлекательность - я бы даже сказал, всё обстоит с точностью до наоборот. Впрочем, наверное, не стоит забегать вперёд. Давайте сначала поговорим о самих технологиях, а потом уже будем их классифицировать и решать, что именно в той или иной из них неудобно для пользователя.
BAT-файлы
Исторически первой скриптовой технологией, ставшей доступной для Windows-пользователей, были командные (они же пакетные) файлы. Если говорить более точно, то они стали доступны ещё до появления Windows, в эпоху глубокого ДОСа. И, как сегодня любят отметить поклонники POSIX-систем, их создатели явно вдохновились shell-скриптами, получившими широкое распространение под UNIX. Впрочем, так ли уж важно, кто именно стал вдохновителем создания такой популярной и удобной технологии, позволявшей значительно упростить жизнь пользователя в те времена, когда умение быстро печатать на клавиатуре было жизненно необходимым для каждого.
Годы шли, BAT-файлы морально устаревали, и разработчики Windows предлагали более мощные и совершенные скриптовые технологии. Но ни одна из них не смогла вытеснить и заменить их полностью. Почему? Думается, всё дело в том, что BAT-файлы - это живое продолжение командной строки, которой пользуются и многие рядовые пользователи, и системные администраторы. Именно поэтому корпорация Microsoft продолжает выпускать наборы утилит командной строки, которые можно использовать и при автоматизации действий с помощью пакетных файлов, и не планирует устранять их поддержку в будущих версиях своих систем для продвижения более мощных и передовых технологий.
Сегодня BAT-файлы имеют, как то ни странно, ряд преимуществ перед всеми другими скриптовыми технологиями. Первое из этих преимуществ - простота их написания. Фактически, если не пытаться решить средствами BAT-файлов какую-то сложную задачу, то весь BAT-файл сводится буквально к десятку строчек, в которых пишутся команды или вызываются утилиты командной строки. Написать такой файл может любой пользователь, а если использовать ещё и специализированные утилиты наподобие того же Dr.Batcher (www.drbatcher.com), то задача ещё более упрощается. Второе из преимуществ - переносимость. Если не использовать какие-то специфические команды или утилиты, которые работают только под какими-то конкретными версиями систем, то ваш BAT-файл может быть выполнен под любой версией Windows. Но, конечно, если пытаться произвести с помощью пакетных файлов комплексную автоматизацию, то можно жестоко в них разочароваться, поскольку они всё-таки предназначены для решения сравнительно небольших задач по автоматизации.
KiXtart
Этот скриптовый язык разработан сотрудником голландского подразделения Microsoft и первоначально задумывался для автоматизации работы пользователей с Microsoft LAN Manager. Но с тех пор утекло немало воды, и сегодня KiXtart (www.kixtart.org) - совершенно самостоятельный скриптовый язык, который умеет взаимодействовать с COM-объектами и, соответственно, с такими базирующимися на COM технологиями, как ADSI, ADO, WMI. Одна из самых приятных "фишек" KiXtart - это библиотека FiXforms, которая позволяет создавать на этом языке полноценный графический интерфейс пользователя. Пару номеров назад я рассказывал о такой утилите, как AdminScriptEditor (www.adminscripteditor.com), которая не просто позволяет редактировать KiXtart, но и создавать для них формы в визуальном режиме. Кроме того, в отличие от BAT-файлов, KiXtart изначально "заточен" под более комплексные задачи, и потому поддерживает, например, в явном виде пользовательские функции, которых в Интернете можно найти уже очень большое количество. Так что в качестве основных преимуществ этой технологии можно назвать поддержку GUI и гибкое сочетание простоты и мощи, которое привлекает и обычных пользователей, и системных администраторов.
Active Scripting
Эта технология, в отличие от KiXtart, подразумевает использование самых разных языков программирования и по умолчанию предлагает два из них - VBScript и Jscript. Чаще всего конечный пользователь имеет дело с Active Scripting, используя возможности Windows Script Host (WSH). Появилась она в составе системы впервые в Windows 98, и с тех пор весьма активным образом используется.
Естественно, Active Scripting предлагает пользователю более широкие возможности, чем BAT-файлы. Языки, которые используются для написания скриптов, оперируют объектами и обеспечивают доступ к базирующимся на COM технологиям. С помощью WSH можно использовать login-скрипты, манипулировать системным реестром и делать массу других полезных и интересных вещей. Не то чтобы это всё совсем нельзя было сделать с помощью тех же самых BAT-файлов, но здесь это не требует такого напряжения мысли и столь глубокого знания как самого языка, так и сторонних инструментов.
Помимо VBScript и Jscript, Active Scripting поддерживает и другие языки, пришедшие с других платформ и получившие популярность у системных администраторов, работающих с Windows. Думаю, вы слышали о существовании таких программных продуктов, как ActivePerl, ActivePython, ActivePHP... Да-да, это именно реализации популярных скриптовых языков программирования, совместимые с Active Scripting. Эта черта технологии Active Scripting, пожалуй, является одной из наиболее привлекательных, поскольку каждый имеет свои предпочтения в плане использования языков программирования, и подобная демократия, позволяющая использовать каждому свой любимый язык, конечно, не могла не встретить положительного отклика со стороны пользователей.
Что касается инструментов, позволяющих писать скрипты на основе Active Scripting, то их великое множество, и для каждого языка программирования есть свои средства. Поскольку всё-таки самым распространённым из скриптовых языков для Active Scripting является "родной" для Windows VBScript, то именно для него вы найдёте наибольшее количество редакторов. Одним из самых удобных лично я считаю VBSEdit (www.vbsedit.com), но, конечно, не факт, что вам не придётся больше по вкусу аналогичный программный продукт.
Windows PowerShell
Как Active Scripting пришёл на смену BAT-файлам (хотя, конечно, не совсем на смену - скорее, как более мощное и профессиональное дополнение к ним), так и PowerShell пришёл на смену Active Scripting'у. Microsoft активно продвигает новую скриптовую технологию, и, в общем-то, у пользователей и системных администраторов она имеет весьма неплохую популярность.
Если Active Scripting базируется на технологии COM, то PowerShell использует следующее поколение Microsoft'овских технологий, а именно - .NET. Из PowerShell-скриптов вы можете обращаться к экземплярам .NET-классов так же просто, как раньше обращались к COM-объектам. Это, кстати говоря, совсем не означает, что к COM-объектам вам теперь больше обращаться нельзя. В основе PowerShell-скриптов лежат так называемые командлеты (cmdlets). Фактически, это небольшие куски кода или даже целые программы, которые осуществляют выполнение какой-то одной локализованной и отделенной от всех остальных задачи. Командлеты, несмотря на общую суть, могут иметь разную, скажем так, природу: это могут быть "родные" исполняемые файлы Windows, другие PowerShell-скрипты либо же методы .NET и COM-объектов.
В целом, PowerShell действительно имеет ряд серьёзных преимуществ перед Active Scripting, частично заключающихся в преимуществах, предоставляемых платформой .NET и библиотеками, входящими в состав Microsoft .NET Framework, а частично в возможностях самой скриптовой платформы PowerShell. В целом, можно сказать, что PowerShell успешно вытесняет VBScript и компанию, но вряд ли когда-нибудь сможет полностью заменить BAT-файлы по причине того, что они находятся в разных "весовых категориях" и вполне мирно себе сосуществуют.
Что касается инструментов для редактирования PowerShell-скриптов, то их, опять-таки, немало. Кроме упоминавшегося уже AdminScriptEditor'а, есть такие инструменты, как PowerShell Analyzer (www.powershellanalyzer.com) и PowerGUI (www.powergui.org).
Другие
Есть, конечно, и другие, неспецифические для Windows скриптовые технологии, которые с разной степенью распространённости встречаются на компьютерах системных администраторов и обычных пользователей. Часть из них также перекочевала с других платформ, но не заинтересовала компанию ActiveState, адаптировавшую многие скриптовые языки под Active Scripting, часть написана энтузиастами и коммерческими компаниями... В общем, их очень много и все не рассмотришь. Поэтому для приличия мы с вами их здесь упомянем, но заниматься детализированным анализом не будем.
Резюме
Какая скриптовая технология для Windows лучшая? Сложно сказать. Даже после того, как я перечислил кратко особенности каждой из них. Потому что они все достаточно различны, и у каждой есть свои преимущества и недостатки. Глупо автоматизировать простое действие с помощью Windows PowerShell, но так же глупо и прибегать к BAT-файлам в случае какой-то комплексной автоматизации. Так что можно сказать, что каждая технология уместна в своей области.
Вадим СТАНКЕВИЧ,
[email protected]
Комментарии
Эта технология, в отличие от KiXtart, подразумевает использование самых разных языков программирования и по умолчанию предлагает два из них - VBScript и Jscript. Чаще всего конечный пользователь имеет дело с Active Scripting, используя возможности Windows Script Host (WSH). Появилась она в составе системы впервые в Windows 98, и с тех пор весьма активным образом используется.
Ы?