Базовые средства макропрограммирования Microsoft нуждаются в серьезных изменениях.
Макропрограммирование занимает промежуточное положение между администрированием и обычным программированием. Применяемое главным образом администраторами, макропрограммирование позволяет им быстро и эффективно выполнять текущие задачи таким способом, который меньше подвержен ошибкам, чем при использовании графического интерфейса.
Хотя в макропрограммировании требуются в основном те же навыки, что и в обычном программировании, масштабы проекта в макропрограммировании обычно намного меньше. Макропрограммирование, как правило, решает очень узкие задачи (например, добавление пользователя или принтера), и написание макропрограммы не является таким сложным делом и не требует такого уровня способностей, как профессиональное программирование в обычном смысле этого слова. Кроме того, поскольку автор макропрограммы часто является администратором, обработка ошибок и вопросы функционирования пользовательского интерфейса, в большинстве случаев сопутствующие созданию приложений, не являются такими масштабными и труднопреодолимыми.
Соответственно, составителям макропрограмм нужны наборы инструментов, отличные от тех, которыми пользуются программисты. Microsoft предоставляет потребителям набор средств макропрограммирования, но эти технологии нуждаются в существенном обновлении.
Сказка о двух технологиях
Две главные технологии макропрограммирования Microsoft для администраторов Windows - это макропрограммирование для командного процессора и Windows Script Host (WSH)/VBScript. Несмотря на то, что Microsoft делает вид, будто уделяет внимание растущей важности макропрограммирования для командного процессора, эта технология остается пасынком в семействе технологий макропрограммирования Microsoft - в 1200-страничном руководстве для пользователей Microsoft Windows 2000 Scripting Guide макропрограммирование даже не упоминается. Администраторы любят макропрограммирование для командного процессора за простоту использования - оно проще, чем большинство других технологий написания сценариев и не содержит серьезных препятствий на пути роста составителя макропрограмм. Однако эта технология уже не идет в ногу со временем и не является такой эффективной, какой должна быть. Макропрограммирование для командного процессора предусматривает очень мало средств для управления потоками и небогато в отношении логики, не говоря уже о полном отсутствии средств отладки, за исключением команды Echo.
Технология макропрограммирования WSH/VBScript, несмотря на то, что Microsoft возлагала на нее большие надежды, никогда не имела особого успеха. Многие администраторы считают, что WSH/VBScript слишком похож на Visual Basic (VB) со всеми его сложностями языка программирования. Хотя WSH/VBScript удобнее, чем макропрограммирование командного процессора, в нем нет встроенных функций, и он сильно зависит от внешних COM-объектов. Конечно, изучить синтаксис VBScript относительно легко. Но для того чтобы решить конкретную задачу, нужно найти необходимые COM-объекты и понять, как их использовать. А некоторые из этих объектов, такие как Microsoft Active Directory Service Interfaces (ADSI) и Windows Management Instrumentation (инструментальные средства управления средой Windows - WMI), не слишком-то и простые. Следует еще добавить, что сходство WSH/VBScript и языка VB не распространяется на присущий последнему хороший набор средств отладки.
Назревшая необходимость
Если принять во внимание, что Microsoft недавно модернизировала свои платформы, конвертировав их в Windows .NET Framework, и планирует выпуск новой версии Windows (рабочее название Longhorn), то ясно, что сейчас для компании настал самый подходящий момент представить новую технологию макропрограммирования. В идеале новая среда должна сочетать простоту использования и встроенную функциональность макропрограммирования для командного процессора с действенностью и гибкостью WSH/VBScript. Раз уж Microsoft сместила усилия разработчиков на .NET, компания могла бы создать новый инструмент на основе .NET Framework и оснастить его приличными средствами отладки.
По неподтвержденным официально данным, Microsoft работает над средой макропрограммирования на базе .NET с рабочим названием Monad. Однако, насколько мне известно, Monad превосходит по сложности VBScript так же, как Visual Basic .NET превосходит VB. Самое главное, чтобы новое средство макропрограммирования было простым. То есть достаточно простым, чтобы администраторы могли изучить его так же легко, как порядок написания сценариев для командного процессора. Данный инструмент не должен быть инструментом для программистов - с этой ролью отлично справляется Visual Studio .NET.
Макропрограммирование - неотъемлемая часть жизни администратора. Поэтому теперь, когда на горизонте показалась новая версия Windows, для Microsoft пришло время пересмотреть свое отношение к макропрограммированию в этой ОС.
Майкл Оти - Научный редактор американского журнала Windows & .NET Magazine, президент компании TECA, специализирующейся на разработке программного обеспечения и оказании консультационных услуг; соавтор руководства разработчика SQL Server 7.0 Developer’s Guide (издательство Osborne/McGraw-Hill). С ним можно связаться по электронной почте по адресу: mikeo@teca.com.