Размышления тему в связи с публикацией книги В.А.Биллига
"VBA в Office 2000. Офисное программирование" — М.: Издательско-торговый дом "Русская Редакция", 1999. - 480 с.: тираж 6 тысяч экз., ISBN 5-7502-0128-7
Мысль о том, что MS Office может стать средством разработки
"Офисное программирование"
Мысль о том, что MS Office может стать средством разработки
Мысль о том, что MS Office может стать средством разработки приложений, еще года два назад большинству программистов казалась если не абсурдной, то по крайней мере парадоксальной. Потом эта идея постепенно овладела массами и сегодня в особых доказательствах уже, вроде бы, не нуждается. Однако более детальное изучение ситуации показывает, что вопрос об эффективности использования Office в качестве инструмента автоматизации является в значительной степени открытым, о чем, в частности, говорят довольно противоречивые результаты двухлетнего проведения программы Microsoft Office Extensions (см. PC Week/RE N 38/99, с.37).
Очевидно, что продвижение Office в качестве средства разработки требует соответствующей методической и технической поддержки в его освоении. Но для этого нужно сначала ответить на другой вопрос: кем же и для каких целей будет реально использоваться этот инструмент — конечными пользователями, которые с помощью "малой автоматизации" станут решать свои конкретные прикладные задач, или же профессиональными разработчиками для создания комплексных решений.
При этом отметим, MS Office является достаточно специфическим инструментом, освоение которого представляет собой определенные проблемы для обеих перечисленных выше групп. Первым нужно осваивать незнакомый мир программирования, а вторым — глубоко изучать функциональные возможности офисных пакетов. Совершенно очевидно, что и методическая поддержка должна реализовываться достаточно адресно для каждой группы VBA-разработчиков. Учитывая именно этот тезис, хотелось бы представить недавно появившуюся в продаже книгу, посвященную разработке приложений с помощью MS Office 2000.
В.А.Биллиг "VBA в Office 2000. Офисное программирование" — М.: Издательско-торговый дом "Русская Редакция", 1999. - 480 с.: тираж 6 тысяч экз., ISBN 5-7502-0128-7
В начало статьи
"Офисное программирование"
Владимир Биллиг уже хорошо известен VBA-разработчикам: его первая книга " "VBA и Office 97. Офисное программирование" (в соавторстве с М.И.Дехтярем) пользовалась у них заслуженной популярностью. Отраден факт оперативности выхода книги — она появилась на прилавках даже раньше анонса русской версии MS Office 2000: предыдущая книга вышла спустя год после начала продаж MS Office 97.
"VBA в Office 2000" не следует рассматривать как второе, обновленное издание первой книги автора по этой же теме (см. PC Week/RE N 20/98, с. 58), которая представляла собой комплексное пособие, включающее три достаточно самостоятельных раздела: "Объекты Office 97 и VBA", "Ядро VBA" и "Офисное программирование" (практические примеры проектов). Нынешняя же книга представляет собой существенно расширенный вариант второго раздела предыдущей, в ней, в частности, появились главы, посвященные классам и объектам, вопросам наследования интерфейсов, а также использованию WinAPI.
(Владимир Биллиг планирует выпустить в "Русской Редакции" еще две книги в продолжение темы "Офисное программирование", которые имеют рабочие названия "Объекты Office 2000" и "Средства разработчика Office 2000".)
Такое изменение последовательности изложения темы — сначала введение в программирование, а уже потом переход к самому пакету Office — выглядит, с одной стороны, довольно логично, но с другой, — показывает ряд серьезных методических проблем в освоении программирования в среде MS Office.
1. Понятно, что в одной книге "нельзя объять необъятное". Однако именно поэтому крайне желательно четкое позиционирование направленности книги, чтобы читатель понял, что он должен изучить до того, как начать читать книгу "VBA в Office 2000", и какие вопросы программирования остались вне рассмотрения. То есть, оценив книгу как "необходимое, но не достаточное условие" (что вполне естественно для любого издания), было бы очень полезно сказать, что нужно изучать еще для освоения офисного программирования.
В данном случае "VBA в Office 2000" является добротным описанием VBA, ориентированным на людей, которые, скорее, только начинают глубокое изучение данной системы. Вряд ли это начинающие разработчики — для освоения книги нужны знания основ программирования. Мне кажется, например, что она бы идеально подошла студентам компьютерных специальностей, для которых VBA — это очередной шаг в изучении систем программирования: C, Delhpi, VBA, ... (именно такая последовательность четко прослеживается в подходе автора к описанию VBA).
(Впрочем, нужно отметить спорность некоторых позиций автора. В частности, было бы логичнее изменить последовательность изложения материала, придерживаясь правила от простого к сложному: сначала рассказать об общей структуре VBA (главы 7-14), а уже потом перейти к более профессиональными аспектам (главы 4-6).)
Что же касается тех, кого мы называем квалифицированными пользователями и кто хотел бы использовать Office для автоматизации в первую очередь своей собственной деятельности, то, возможно, им сначала нужно доходчиво пояснить, какие задачи автоматизации они смогут выполнять и в какой степени им понадобится VBA.
Мне хотелось бы подчеркнуть, что такой вопрос просто выходит за рамки, обозначенные данной книгой, и он должен стать темой отдельного издания. Однако без ответа на него (тут можно только пожалеть о явном недостатке книг на эту тему) даже самое полное описание VBA как бы повисает в воздухе. Поэтому было бы очень полезно начать эту книгу с краткого изложения возможностей для практического применения VBA. Например, перечислив по нарастающей задачи автоматизации с помощью Office:
- настройка среды программ;
- создание макросов (специальных функций среды);
- создание специализированных приложений;
- разработка многопрограммных комплексов.
Можно было бы эффектно показать, как, применяя VBA, пользователю удается расширить свои возможности даже при решении первых двух задач по сравнению с использованием встроенных инструментов Office.
2. Второе замечание также касается вопроса проблемы "объятия необъятного", но только с точки зрения позиционирования VBA среди средств разработки Microsoft с учетом динамики их развития во времени. К сожалению, здесь автор повторяет методический просчет, который присутствовал и в предыдущей книге, где VBA представлялся как некий механизм, появившийся неизвестно откуда и существующий сам по себе.
В частности, говоря об Office 2000, практически вообще не упоминается об Office 97 и, как следствие, нет ответа на вопрос: что же нового с точки зрения разработчика появилось в Office 2000? Какие ранее недоступные задачи теперь решаются с его помощью (или решаются проще)? Чем отличается VBA 6 от VBA 5?
На последнем вопросе хотелось бы остановиться отдельно, так как здесь скрывается очень важный момент. Стиль изложения материала в книге невольно приводит читателя к мысли о существовании некоего автономного продукта под названием VBA 2000. На самом же деле это принципиально неверно.
Начиная еще с прошлой, пятой версии (в Office 97) VBA стал полноправным членом общего семейства VB (точнее, специфической редакцией этого продукта). В версии 6.0 грань, отделявшая VBA от обычного VB, стала еще тоньше.
Из этого можно сделать вывод, что круг потенциальных читателей книги на самом деле гораздо шире, чем это обозначено ее заголовком и аннотацией. Не менее 90 процентов содержимого книги будет полезно и пользователям "просто VB" и пользователям MS Office 97 (ведь переход на Office 2000 произойдет совсем не мгновенно). Данный момент является принципиально важным, так как у нас сегодня виден явный дефицит книг по изложению классических методов программирования. Хотя для такого позиционирования книги было бы крайне желательно переставить многие акценты. Например, говоря именно о VB 6, подчеркивать по ходу изложения специфику VBA (тогда минимальный объем этих различий стал бы еще заметнее).
Завершая обзор данной книги, хотелось бы еще раз подчеркнуть ее безусловную полезность для довольно широкого круга разработчиков и пользователей MS Office. Многие из высказанных замечаний (которые также носят спорный характер) объясняются новизной и обширностью тематики книги. Особо хотелось бы подчеркнуть, что Владимир Арнольдович Биллиг стал первым российским писателем (и фактически остается пока единственным), который начал осваивать тему офисного программирования. И можно только пожелать ему успехов в продолжении этой работы.