Страница 181 из 299
VBA может служить не только полноценной средой разработки приложений, работающих в Microsoft Office, но и как бы "учебным центром" по освоению принципов и различных приемов современного программирования. Работа с системным реестром, с файловой системой и даже со встроенными в Windows функциями программирования API и многое другое, — все это вы сможете изучить на опыте, используя VBA, причем сделать это Вам будет значительно легче, чем если бы Вы сразу начали учиться программировать на Delphi или Visual Basic for Windows.
Средство записи макросов, возможность легкого анализа уже написанных программ (так как фактически любая программа на VBA распространяется вместе со своим исходным текстом), русский интерфейс редактора (к сожалению, только в Microsoft Office 97), большая и четко написанная справка, обилие примеров, — все это очень помогает в освоении этого языка и делает возможным его самостоятельное изучение даже без использования дополнительной литературы. Другие языки программирования так освоить практически невозможно. Кроме того, интерпретатор VBA обладает большими возможностями по коррекции ошибок, и поэтому программа на этом языке вряд ли вызовет ошибку системы и необходимость перезагрузки компьютера, если только не увлекаться вызовом функций API.
Если Вы научитесь программировать на VBA, поймете принципы разработки алгоритмов и основные приемы программирования, освоите среду написания программ — редактор VBA, то для Вас практически не составит труда начать создавать программы на Visual Basic for Windows. У этого языка абсолютно такой же синтаксис, такая же среда разработки с контекстной справкой и пошаговыми подсказками, на первый взгляд он отличается от VBA разве что набором доступных встроенных процедур и функций и отсутствием возможности записи макросов. Безусловно, есть и более глубокие различия, но при создании не очень сложных программ они не будут иметь большого значения. Вы сможете легко освоить средство разработки программ Delphi, хотя логика языка Pascal, лежащего в основе Delphi, несколько отличается от логики Visual Basic. Однако и среда разработки, и общие принципы программирования в Delphi те же. Несколько труднее будет освоить C++ и его производные из-за серьезно отличающегося синтаксиса и высокой сложности этого языка, но это не всегда необходимо, — подавляющее большинство проектов программ можно реализовать на Visual Basic или Delphi.
* * *
Среди тех, кто занимается программированием уже много лет и достиг в этом деле определенных высот, весьма распространено мнение, что VBA, да и Visual Basic — языки, на которых нельзя создать быстро и хорошо работающие программы. В определенной степени это соответствует действительности: программы на Visual Basic обычно работают несколько медленнее и занимают больше места, чем аналогичные им программы на C++, на Visual Basic весьма проблематично решение некоторых программистских задач и приемов. Поэтому профессиональные программисты часто считают, что Visual Basic — язык для дилетантов, а любой уважающий себя специалист в области информационных технологий обязан знать и использовать такие языки, как C++ или ассемблер. Но не следует забывать, что изначальное предназначение компьютерных технологий — помощь человеку в обработке и создании информации, а отнюдь не "служение самим себе", своему дальнейшему развитию. Поэтому основная функция большинства компьютерных программ — получение нужного результата, обработка вводимой информации, например, анализ электрокардиограммы или расчет траектории космической ракеты, а быстродействие, малый размер, да и удобство интерфейса — лишь их хорошие свойства, которые могут серьезно облегчить работу с программой.
Создать же программу, дающую действительно нужный результат, может лишь человек, непосредственно работающий в области, для которой данная программа пишется, — врач, инженер, астроном, математик. Только он знает все тонкости своего дела и сможет предусмотреть в программе все необходимые условия. Профессиональный программист же, хоть и имеет возможность создать программу, которая будет работать в несколько раз быстрее и занимать на диске значительно меньше места, чем написанная врачом или инженером, не представляет себе тонкостей области человеческой деятельности, для которой эта программа пишется, а поэтому, при всей внешней привлекательности, такая программа будет работать хуже, чем первая. К примеру, какая программа для анализа электрокардиограмм лучше: созданная опытным специалистом в области медицины, который посвятил всю свою жизнь исследованию электрокардиографии и знает все-все тонкости этого дела, или написанная не менее опытным программистом, который знает все языки программирования как свои пять пальцев, но, увы, не знаком с медициной? Даже если врач обратится к программисту с просьбой помочь ему написать эту программу, то он все равно не сможет посвятить того во все тонкости своего дела, чтобы отразить в программе все грани своего многообразного опыта, — на это может уйти слишком много времени и сил, да и нелегко программисту будет изучить совершенно незнакомую ему до этого сферу деятельности! Поэтому врач, немного знающий программирование, больше подходит для написания медицинской программы, чем профессиональный программист, немного знакомый с медициной. И пусть программа врача будет работать медленнее, пусть она будет занимать на диске в два раза больше места, пусть даже при ее создании будут нарушены все сложившиеся каноны программистского искусства, — все равно она сможет принести людям гораздо больше пользы, чем программа, прекрасно и хорошо написанная не знакомым с медициной человеком, так как только врач сможет поделиться с ней всем своим многогранным опытом[16].
Отнюдь не всякий человек, превосходно умеющий лечить людей, сможет столь же превосходно освоить язык C++. И это нормально — у каждого свой талант, свои дарования. Но, благодаря стараниям сотен и тысяч программистов, зачастую безвестных, сейчас существуют среды программирования, освоить которые без проблем может каждый — те же Visual Basic и Delphi. И поэтому практически любой специалист своего дела может в наши дни использовать в своей работе новейшие достижения информационных технологий — создать нужную ему программу, разработав ее алгоритм на основе своего опыта. А для профессиональных программистов осталось не менее почетное и трудное дело — создавать такие среды программирования и новые языки, с которыми работать будет еще легче и быстрее, чем с существующими.
На вопрос: "Какой язык программирования лучше всего?" стоит отвечать так:
"Тот, на котором ты можешь лучше всего писать программы и реализовывать свои проекты". Проще всего освоить Visual Basic и Delphi. И поэтому не стоит так уж стремиться обязательно знать ассемблер, выучить все функции API и жалеть, что не можешь вводить программы сразу в машинных кодах, — лучше повнимательнее изучить более простой язык даже вроде того же VBA для того, чтобы уметь использовать все его возможности для воплощения своих пожеланий в жизнь. Ну, а если кто желает посвятить свою жизнь информационным технологиям, создавать новые языки общения с компьютером, то тому знание Visual Basic никогда не помешает, а остальные знания, как говорится, дело наживное, — надо лишь начать учиться и освоить общие принципы.
Не стоит думать, что "программирование мне никогда не понадобится" — современные компьютерные технологии развиваются с огромной быстротой, и скоро практически любая область человеческой деятельности будет компьютеризирована. А чтобы получить в своей работе наилучший результат, нужно уметь приспособить орудие труда — компьютер — под свои нужды, то есть — программировать.
* * *
И, наконец, стоит сказать об использовании программирования на VBA в процессе обучения в школе, институте, да и в самостоятельном образовании. Обучение искусству составления программ на собственном опыте, путем самостоятельного исследования возможностей языка и среды разработки является одним из наилучших способов научиться так называемому "научному мышлению", тому подходу к различным явлениям окружающего мира, на котором стоит вся современная наука.