Андрей Колесов

"Lost your BASIC instincts?
Then it's time for a reassessment..."

(Журнал PC Magazine, 23.09.1993)

Еще каких-нибудь несколько лет назад упоминание Basic в качестве языка программирования вызывало лишь снисходительную усмешку у большинства профессиональных разработчиков ПО. Объяснялось это так: "Да, есть такой язык, которым пользуются любители (чтобы не сказать "чайники"). Но ставить "Васик" в один ряд с настоящими средствами программирования - это просто смешно".

Сейчас вряд ли кто-то рискнет высказать подобное мнение: Basic ныне стал практически синонимом системы Microsoft Visual Basic, самого популярного в мире инструмента разработки приложений. Конечно, у нее есть свои недостатки, многие воспринимают ее иронически, но факт остается фактом - не менее 90% программистов если и не используют VB в практической работе, то по крайней мере знакомы с этой системой и при желании могут легко сваять в ней что-то полезное.

Качественно новый этап в расширении круга VB-программистов наступил несколько лет назад с появлением Microsoft Office 97/VBA - осваивать программирование в среде этого пакета стали многие из числа его продвинутых пользователей.

 

В целом в жизни Basic можно выделить три основных этапа развития. Хроника развития Basic и Visual Basic приведена в табл. 1 и 2.

Таблица 1. Basic - этапы большого пути

ДатаСобытиеКомментарии
Первое поколение
1964 BASICПреподаватели Дартмутского колледжа Дж. Кемени и Т. Курц разработали систему BASIC (Beginner's All-purpose Symbolic Instruction Code) - средство обучения и работы для непрофессиональных программистов.
1975 Altair 8800 BASICМолодые основатели небольшой компании Microsoft - Билл Гейтс и Пол Аллен выполнили коммерческую разработку интерпретатора Basic (два варианта - для оперативной памяти в 4 и 8 Кбайт) для микроЭВМ Altair 8800. До середины 90-х гг. Пол Аллен считается архитектором всех Basic-систем Microsoft, в том числе VB. Билл Гейтс до сих пор довольно часто, перечисляя свои титулы, добавляет: "Basic-программист.
1984GW BASICОдна из последних версий Basic первого поколения, которая входила в состав MS-DOS до версии 4 включительно.
Второе поколение
1987Turbo Basic 1.1 (Borland)Разработка Borland. Особой популярностью пользовалась в СССР (скорее всего, из-за общей популярности инструментов Borland). Использовался только компилятор. По мнению некоторых экспертов, он позволял создавать более эффективный код по сравнению с QB. В 1989 г. Borland объявила о прекращении развития средства на основе Basic, права на Turbo Basic были оставлены ее автору Бобу Зейлу, который основал фирму PowerBASIC и несколько лет выпускал очень удачные системы под этой же торговой маркой.
1988QuickBasic 4.5 (Microsoft)

Наиболее известная, классическая система, которая является сегодня образцом интерактивного средства быстрой разработки второй половины 80-х годов и считается прямым родителем будущего Visual Basic. Именно она сформировала стандарт "де-факто синтаксиса самого языка Basic до нынешних времен.

Основное преимущество - удачное сочетание интерпретатора для разработки и отладки (с применением интеллектуального редактора) с компиляцией для получения EXE-модуля в машинных кодах. Оригинальная схема создания и подключения объектных библиотек к среде разработки, а также возможность создания и использования Run time модулей поддержки (прообраз DLL).

1990Qbasic 1.xУсеченный вариант QB 4.5, включенный в состав MS-DOS, начиная с версии 5.0. Отсутствует компилятор, программа может состоять только из одного модуля, нельзя подключать библиотеки и обращаться к функциям DOS/BIOS. Годится только для начального обучения и создания небольших программок.
1991Basic Professional Development System 7.1 (Microsoft)

Вторая и последняя классическая система Basic второго поколения, которая также иногда называлась eXtended QuickBasic. Основные преимущества по сравнению с QB:

  1. сняты некоторые ограничения на использование оперативной памяти (в первую очередь для хранения строк и массивов);
  2. есть возможность оптимизации кода с учетом конфигурации аппаратуры;
  3. большой набор дополнительных библиотек подпрограмм (графика, элементы интерфейса, математика);
  4. полный набор инструментов для создания СУБД на основе технологии ISAM (Indexed Sequential Access Method).

Система включала целый ряд дополнительных "профессиональных средств и утилит. В частности, имелась специальная среда для одновременного применения разных языковых инструментов (смешанное программирование), поддержка OS/2 (в тот момент Microsoft еще была участником этого совместного с IBM проекта).

1991 Visual Basic для Windows, 1.0 (Microsoft)Первая система Basic 3-го поколения. На фоне достаточно мощных средств Microsoft Basic/DOS она выглядит скорее забавной игрушкой - отсутствует языковая совместимость с прежними версиями (синтаксис заметно слабее), нет компилятора, нельзя подключать статические библиотеки, работает очень медленно. Огромный объем готовых компонентов для Basic/DOS нельзя использовать, а новых, для Windows, еще нет...
1993Visual Basic для DOS, 1.0Последняя (из известных) версий Basic/DOS. По языку она совместима с Basic PDS и использует визуально-событийную модель программирования, реализованную в среде MS-DOS (в текстовом режиме экрана). С VB/Win система несовместима. Очевидно, что VB/DOS выпущен лишь для того, чтобы как-то успокоить огромную армию пользователей Microsoft Basic/DOS, которые упорно не хотят работать в Windows. Это тупиковый вариант.
Третье поколение
1993 Microsoft Visual Basic Переход к 3-му поколению Basic - Microsoft Visual Basic [for Windows].

1964-1985 гг. Первое поколение Basic

  1. Только для непрофессиональных программистов. Используется для обучения, решения небольших расчетных задач и вывода простейших графиков.
  2. Интерпретатор с ограниченным объемом кода программы.
  3. Примитивные языковые конструкции.
  4. Отсутствие процедур, невозможность подключения внешних библиотек подпрограмм.
  5. Очень большое число Basic-систем (для разных аппаратных платформ) от различных производителей, в том числе советских. Трудно назвать какого-то лидера.

1985-1992 гг. Второе поколение Basic

  1. Используется широким кругом разработчиков, как начинающих, так и профессиональных. Применим как для обучения, так и для создания серьезных прикладных программных комплексов (в том числе коммерческих), работающих в интерактивном режиме. Назначение: решение научно-технических и экономических задач, игры и т.п.
  2. Возможность компиляции и создания EXE-модулей, в сочетании с использованием интерпретатора в режиме отладки.
  3. Создание полноценных синтаксических языковых конструкций, полномасштабное использование процедур, библиотек подпрограмм, поддержка технологии смешанного программирования и т.д.
  4. Основная платформа - персональные компьютеры типа IBM PC. Достаточно много систем от разных производителей, но основная конкуренция идет между системами QuickBasic (Microsoft) и Turbo Basic (Borland); эта борьба закончилась победой QB.

1993 г. Переход к третьему поколению Basic - Microsoft Visual Basic [for Windows]

  1. Средство быстрой разработки с применением событийной схемы управления процессами, визуальной разработки пользовательского интерфейса, объектной программной модели и возможности расширения с помощью внешних компонентов.
  2. Используется только в среде Windows. На рынке полностью доминирует система Microsoft Visual Basic, представляющая собой стандарт "де-факто" языка Basic. На рынке есть несколько поставщиков средств разработки на базе Basic, но их продукты имеют локальное применение в узких вертикальных сегментах.
  3. Сформировался большой рынок поставщиков дополнительных средств для VB.
  4. Интеграция в состав VB широкого набора "профессиональных" средств (СУБД, Интернет, групповая разработка).
  5. Позиционирование VB в качестве средства создания программируемых (настраиваемых, расширяемых) приложений.

Добавим еще несколько общих замечаний.

Конечно, долгие годы Basic был довольно примитивной системой и о его применении как средства разработки серьезных программ не могло быть и речи. Однако здесь нужно подчеркнуть, что Basic фактически никогда и не был таким языком программирования, как FORTRAN или ALGOL. Ведь он изначально представлял собой качественно новую технологию создания программ (с использованием режима "позднего связывания"!) в форме интерактивного диалога между разработчиком и компьютером (т.е. был прямым прообразом современных систем быстрой разработки). Другое дело, что решение подобной задачи при технике тех лет было возможно только за счет максимального упрощения языка программирования и использования транслятора типа "интерпретатор".

В силу исторических причин абсолютное большинство советских программистов второй половины 80-х годов вообще не знали о возможностях Basic-систем той поры. Их представления о Basic в лучшем случае базировались на знакомстве с весьма примитивным интерпретатором GW-Basic из состава MS-DOS 4.0. Во многом именно такими устаревшими представлениями объясняется очень настороженное отношение к VB отечественных программистов примерно до 1995 г. (Я хорошо помню, как на конференции Microsoft DevCon'95 в Обнинске эта тема впервые была признана достойной обсуждения в кругу профессионалов.)

Это замечание сделано к тому, что успех Visual Basic в США в значительной степени базировался на огромной популярности семейства Microsoft QuickBasic.

В конце 80-х годов насчитывалось около десятка систем Basic различных фирм-разработчиков. Однако главная борьба шла между QuickBasic (компания Microsoft, http://www.microsoft.com) и Turbo Basic (Borland, http://www.borland.com). Вообще говоря, конкуренция между этими двумя разработчиками средств программирования шла по целому спектру языков - Basic, Pascal и C. И результатом ее в 1989 г. стало неявное мировое соглашение, когда Microsoft отказалась от дальнейшей поддержки Pascal, а Borland - от Basic.

В те времена многие эксперты, комментируя такой поворот событий, часто упоминали о личной заинтересованности руководителей Microsoft в Basic. Однако, как мне представляется, победа QuickBasic определялась чисто технологическими причинами - в этой системе была удачно реализована схема смешанного использования традиционных Basic-технологий и классических методов создания сложных программных систем. Что же касается Turbo Basic, при многих сильных качествах главным его недостатком был полный переход к компилятору, в результате чего он потерял свою главную изюминку - эффективную отладку программ.

В американском журнале PC Magazine от 28 сентября 1993 г. был опубликован большой обзор рынка Basic-средств (именно оттуда взят эпиграф к статье). В обзоре были проанализированы около десяти ведущих систем той поры, в том числе CA Realizer (Computer Associates), GFA-BASIC, TrueBASIC, PowerBASIC. От Microsoft в нем были представлены три системы - PDS 7.1, VB/Win 3.0 и VB/DOS 1.0.

Обзор этот был весьма примечателен по двум причинам. Во-первых, системы для DOS и Windows рассматривались как равные конкуренты. Во-вторых, это был, кажется, последний случай, когда у Microsoft еще были реальные конкуренты.

Любопытно, что выбор редакции в разделе Basic/DOS был сделан в пользу PowerBASIC 3.0, а не более сильного PDS 7.1, из-за "неясной позиции Microsoft в плане развития систем для DOS". Действительно, Microsoft темнила почти два года и даже выпустила совершенно тупиковый вариант VB/DOS, чтобы дождаться естественной кончины DOS-овского направления.

В конце 1993 г., одновременно с официальным объявлением о прекращении развития Basic/DOS, Microsoft объявила о намерении создать на основе VB новую универсальную систему программирования для прикладных программ, которая получила название Visual Basic for Applications (VB для приложений). Но нужно отметить, что казалось бы ясная цель была реализована не очень быстро.

Первый вариант VBA 1.0 появился в составе Microsoft Office 4.0, но лишь в программах Excel 4.0 и Project 6.0. В других же приложениях - Word 6.0 и Access 2.0 были собственные варианты Basic. Более того, VBA 1.0 довольно сильно отличался (причем в лучшую сторону, имея ряд существенных преимуществ) от используемой тогда универсальной системы VB 3.0.

Перелом наступил в конце 1996 г. с выпуском Microsoft Office 97, в котором была реализована единая среда программирования VBA 5.0, включенная в программы Word, Excel и PowerPoint. Более того, в VBA 5.0 использовался тот же самый языковый механизм и среда разработки, что и в универсальной системе VB 5.0. В состав выпущенного два год назад пакета Microsoft Office 2000 вошла соответственно версия VBA 6.0, которая используется в шести программах - Word, Excel, PowerPoint, Access, Outlook, Frontpage.

Одновременно Microsoft активно продвигает VBA в качестве отраслевого стандарта для управления программируемыми приложениями, объявив о возможности его лицензирования и выпустив соответствующий SDK.

Вполне вероятно, что появление Visual Basic.NET откроет новый, четвертый этап в истории Basic.

Таблица 2. Microsoft Visual Basic - 10 лет, которые изменили компьютерный мир

ДатаВерсия VB/VBAКомментарии
Май 1991VB 1.0

На тот момент это средство напоминало скорее игрушку, с помощью которой можно было быстро сделать что-то, работающее в среде Windows (все серьезные разработчики тогда использовали DOS и не думали о быстром переходе в Windows). В России VB 1.0 был представлен в сентябре на выставке Softool'91, а в первых номерах журнала "КомпьютерПресс в 1992 г. появилась первая статья о нем Федора Зубанова.

Для написания расширенных элементов управления использовался стандарт VBX. Какие-то компоненты - элементы управления - могли писать независимые разработчики, правда, фактически только на С/С++.

1992 VB 2.0 С этой версии стало понятно, что VB - это не игрушка, а стратегический продукт Microsoft с очень дальним прицелом. Серьезно улучшена производительность, сняты многие ограничения по размерам программ, которые были в версии 1.0. Продукт реализован в двух редакциях - Standard и Professional. Standard впервые включает элементы управления Grid и OLE, Professional (дополнительно) - MAPI, ODBC и ряд других. Расширен состав встроенных функций. Наконец-то появился режим Option Explicit (обязательное объявление переменных). Появился тип данных Variant, что в тот момент (и еще долгое время после) вызывало слезы умиления у многих экспертов и программистов...
1993VB 3.0

В общем-то просто улучшенный вариант версии VB2, которая вышла менее чем за год до того. Основные расширения - поддержка технологии OLE 2.0 и интеграция механизма Microsoft Access 1.1, обеспечивающего доступ к широкому набору популярных настольных СУБД.

Переломный момент в развитии Basic - фактически полностью прекращается выпуск Basic для DOS, VB начинает доминировать на рынке Basic-средств.

1994 VBA 1.0 В составе Excel 4.0 и Project 6.0 появилась система внутреннего программирования под названием VBA. Она отличалась от существовавшего тогда автономного VB. В следующих версиях этих продуктов реализована версия VBA 2.0
1995VB 4.0

Эта версия выходит в трех редакциях - Standard, Professional и Enterprise. По мнению экспертов, она уже вполне отвечает корпоративным требованиям.

Ключевой момент - переход от 16- к 32-разрядной архитектуре OC. VB 4.0 выпускается в двух установочных вариантах - для Windows 3.x и Windows 95/NT.

Переход от специализированного стандарта дополнительных элементов управления VBX к обобщенному OCX. Впервые реализована возможность создания повторно используемых компонентов в среде самого VB - то, что сегодня известно как ActiveX-серверы (в вариантах DLL и EXE). Имеется поддержка файлов ресурсов, а также наличие целого ряда дополнительных утилит и средств.

Декабрь 1996Microsoft Office 97/ VBA 5.0Использование единой среды внутреннего программирования для основных офисных пакетов - Word, Excel, PowerPoint. Но все же языковые отличия VB и VBA сохраняются.
Весна 1997VBA 5.0 SDKMicrosoft выпустила набор для интеграции стандартного механизма VBA в бизнес-приложения независимых разработчиков.
Март 1997VB 5.0.

Завершение перехода к 32-разрядной архитектуре.

Радикальное изменение среды разработки, появление набора Мастеров, начало интеграции с другими средствами, входящими в состав Visual Studio (этот набор появился тогда впервые).

Реализована возможность компиляции - создания исполняемых модулей на машинном коде. Можно создавать собственные элементы управления ActiveX (OCX) на самом VB. Создан механизм создания расширений для среды самого VB.

Август 1997VB 5.0/RusВпервые выпущен локализованный вариант VB - в нем переведена документация и встроенная справочная система.
Сентябрь 1998VB 6.0В этой версии не было заметных революционных изменений, но очень многие возможности, реализованные в VB5, серьезно расширены (например, можно создавать Web-приложения). Продолжается интеграция с Visual Studio, включены многие новые технологии Microsoft (например, ADO).
Июнь 1999Microsoft Office 2000/VBA 6.0Можно считать (хотя и с оговорками), что закончено объединение VB и VBA. В новой версии офисного пакета VBA используется в Word, Excel, PowerPoint, Access, Outlook и FrontPage, а также в поставляемых автономно Project и Visio. Выпущен VBA 6.0 SDK для независимых разработчиков.
Июнь 2001Microsoft Office XP/VBA 6.0По-прежнему применяется механизм VBA 6.0, а не VB.NET.
Конец 2001VB.NET

Нас ждут очень большие перемены в среде и языке VB. Причина этого - переход на новую архитектуру Microsoft .NET и дальнейшая интеграция средств разработки Microsoft.

Перенос приложений из VB 6.0 в VB.NET не будет автоматическим. Подробнее об этом читайте в статьях серии "А ты готов к VB.NET?