Развитие любой организации в сфере бизнеса, основанного на разработке программного обеспечения, зависит от количества проданных ею лицензий (прав на использование созданной интеллектуальной собственности). Как убедить потенциального пользователя купить новую версию программы? Очень просто - добавить к названию продукта "мудреные" красивые названия типа: "визуальное", "виртуальное", "распределенное" и т.д. Большинство пользователей смутно понимают их реальное значение, но с удовольствием покупают новое программное обеспечение.
Что означает слово "визуальное"? Что скрывается за термином визуальное программирование? На практике большинство людей вкладывают в этот термин совершенно другое понятие. В качестве примеров обычно приводят средства разработки программного обеспечения Visual Basic и Delphi. На самом деле эти средства не осуществляют визуальное построение программного обеспечения, а позволяют визуализировать процесс построения интерфейса. Сама программа - код функций и процедур, взаимодействующих с интерфейсом программы, "пишется" в обычном текстовом редакторе - усовершенствованном варианте командной строки. Поэтому о визуальном программировании в данном случае вести речь нельзя. В чем же тогда заключается визуальное программирование? Разобраться в понятии термина визуального программирования можно только поняв назначение термина "визуализация".
Визуализация - это процесс графического отображения сложных процессов (в данном случае построения) на экране компьютера в виде графических примитивов (графических фигур). Визуализировать можно абсолютно любые процессы: управления, построения, рисования и т.д. Вы можете не подозревать, что простейший вариант визуализации - линейка прогресса (прямоугольник, процент заполнения которого прямо пропорционален прогрессу выполнения какой-либо операции). Глядя на нее, вы можете четко оценить оставшийся объем невыполненных операций. Однако если вы выводите значение прогресса в виде числа со знаком процента - вы лишь отображаете текущее значение, и здесь нет никакой визуализации.
Визуализировать можно интерфейсы программного обеспечения. Можно и нужно. Это позволяет упростить "общение" программного продукта с пользователем. Изображения на элементах интерфейса (внешнего вида программного обеспечения) позволяют пользователю интуитивно разбираться в назначении этих элементов.
Для визуализации интерфейсов программного обеспечения существует целый ряд специально разработанных элементов интерфейса - визуальных компонент, позволяющих отображать различную информацию и осуществлять управление программой в целом. Простейший пример - визуальная кнопка на экране компьютера. Данная кнопка имитирует поведение обычной кнопки на пульте управления любого прибора. Ее можно "нажимать" как настоящую.
Возможно, именно наличие визуальных средств построения интерфейсов в Visual Basic и Delphi, а также создаваемое ими визуальное программное обеспечение закрепили за ними термин "визуальное программирование". Безусловно, существует много других аналогичных продуктов (Visual C++, Borland C++ начиная с версии 4, Symantec Visual Cafe, "сишный" вариант Delphi - C++ Builder и др.), но они не смогли завоевать такой популярности, как Visual Basic и Delphi. Именно благодаря любимому детищу Билла Гейтса - Visual Basic, мир узнал о возможности визуального построения интерфейсов программ для Windows. Затем появился Delphi. Если Visual Basic целиком ориентируется на построение программ с визуальными интерфейсами, то Delphi ориентируется на работу с базами данных. Последние годы ходят мифы, что Basic - язык для начинающих. "Начинающие" восприняли Basic как панацею от компьютерных бед...
Есть еще один способ доказать, почему в Visual Basic и Delphi осуществляют только визуальное построение интерфейса программы, а не самого кода. Определяющими элементами процесса визуализации являются:
- Визуализируемая модель - модель, которая подвергается отображению с целью возможности изменения ее структуры или ее параметров (либо параметров ее отдельных частей).
- Окно инструментов (Toolbox) - окно, содержащее набор элементов, из которых строится визуальная модель. Обычно элементы разделяются по их назначению на отдельные группы, размещающиеся на отдельных закладках окна инструментов.
- Окно свойств (Propertybox) - окно, в котором отображаются параметры (свойства) выбранного элемента визуальной модели. Термин "свойство" пришел из объектно-ориентированного программирования и обозначает параметр объекта (элемента).
Визуализируемой моделью в Visual Basic и Delphi является окно (форма, диалог) Windows, а не код программы.
Принято визуализировать только работу с элементами интерфейса, когда в качестве объектов визуализации рассматриваются визуальные компоненты, из которых состоят формы (окна и диалоги) интерфейса программы. Мало кому не приходит в голову мысль, что и операторы программы можно рассматривать как объекты визуализации. Тогда параметры операторов и функций программы можно будет настраивать при помощи окна свойств (Propertybox). А сами операторы и функции будут храниться в списковой форме (табличной форме).
В качестве возможного варианта реализации такой визуальной разработки кода программы можно рассматривать табличную форму записи макросов в Access. В этом случае визуализируемая модель - макрос - программа управления данными в базе или процессом их отображения. Команды макроса находятся в разных строчках записи макроса. Окно свойств находится непосредственно под списком команд. Окна инструментов в привычном виде нет, но оно реализовано в виде комбобокса с командами, т.е. в каждой строке записи макроса в отдельности имеется возможность выбора или смены текущей команды макроса. Это и есть визуализированная форма записи программы.
В одном из диалогов с Митасовым Андреем (ООО "Интелпарт") мы коснулись вопросов реализации алгоритмической мультиязычности (КВ №45 за 1999). Интересен факт, что этот вопрос и визуальное программирование связаны между собой. Визуализированная форма записи программ обладает максимальной гибкостью и переносимостью. Преобразовать табличную форму записи в любой известный язык программирования является "делом техники".
Сергей СОКОЛОВ,
БГУИР,
sokol@belcaf.minsk.by