Визуальное программирование
-
(то же самое, что системы быстрой разработки приложений RAD - Rapid Application Development) - способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста.
В визуальном программировании используются специальные объемные (3D) или плоские (2D) графические или псевдографические среды.
То есть в отличие от языков низкого (1GL), среднего (2GL), высокого уровня (3GL), где программирование и язык носят существенно линейный, последовательный характер, в визуальных средах (4GL) мы имеем дело с с существенно разветвленными "пространственными" структурами типа блок-схем. При этом "кирпичиками" этих блок-схем являются заранее разработанные подпрограммы и функции с унифицированным автоматическим "интеллектуальным" интерфейсом. При соединении таких "кирпичиков" их взаимный интерфейс настраивается без участия программиста.
Таким образом, визуальное программирование позволяет нам программировать на уровне алгоритмов, а не программного кода.
Программный код на языках 3GL, 2Gl, 1GL пакет визуального программирования генерирует из составленной программистом "блок-схемы" в автоматическом режиме сам.
Программист лишь в нестандартных случаях корректирует программный код, либо создает на нем дополнительные "пользовательские объекты" - модули-кирпичики для последующего использования в визуальном программировании.
Визуальное программирование - четвертое поколение языков программирования (4GL - 4-th Generation Languages) в отличие от предыдущих поколений перешло к иной, событийной парадигме, то есть программа в них выполняется не последовательно от начального ввода данных до выдачи отчета, как в языках предыдущих поколений, а отдельными короткими "атомарными" звеньями кода (алгоритма), начинаясь с некоторого инициирующего события (прерывания) и заканчиваясь либо новым внешним событием, меняющим ход программы, либо генерируя свое событие - прерывание для другого "атомарного" звена. Таким образом программа в 4GL, как правило, не имеет характера однозначной, заранее предопределенной цепи последовательных звеньев - блоков, как в языках 1GL - 3GL, но некоторой разветвленной сети программных звеньев, последовательность выполнения которых диктуется внешними событиями. Такая парадигма является адекватным ответом на новый характер работы современного программного обеспечения, которое работает в режиме интерактивного взаимодействия с другими программами, устройствами и человеком.
Сами средства визуального программирования состоят из следующих частей:
визуальные средства разработки, визуальные среды
-
Как правило, под ними подразумевают средства проектирования интерфейсов или какую либо CASE-систему для быстрой разработки приложений или SCADA-систему для программирования микроконтроллеров.
язык программирования для визуальной среды
-
есть язык программирования со своим синтаксисом, например, графический язык, либо язык, адаптированный к применению в визуальной среде. Это, как правило, языки 3GL и ниже, которые "не видны" конструктору визуального пакета при блочном или "кнопочном" программировании. Визуальный пакет в автоматическом режиме генерирует код на таких языках. Лишь при отладке, доводке программного продукта программист вынужден вникать в эти языки. Примеры: ActionScript для пакета Flash, ObjectPascal для пакета Delphi, PHP для систем управления контентом сайта (CMS).
Языки визуального программирования
-
могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:
языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;
языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройкой их свойств. Примеры: Delphi и C++ Builder фирмы Borland, С#
языки схем, основанные на идее "фигур и линий", где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML.
Некоторые авторы не относят языки типа Delphi и C++ Builder фирмы Borland, С# к визуальным языкам, но только определяют их как визуальные среды для текстовых языков. Такая точка зрения имеет лишь частичное обоснование. Дело в том, что за любым визуальным языком, в его основании, обязательно лежит текстовый язык. Примеры: Flash и ActionScript, любой векторный формат графики и язык его скрипт-контента (WMF, VRML). Другое дело, что многие визуальные среды требуют существенного участия программиста в текстовом программировании, так как не являются совершенными, полностью автоматически формирующими код уровня 3GL и ниже. Иное дело - графические языки, в отличие от визуальных, предназначенные для построения графических объектов, а не как инструментальное средство программирования.
Знаете ли Вы, что такое "усталость света"? Усталость света, анг. tired light - это явление потери энергии квантом электромагнитного излучения при прохождении космических расстояний, то же самое, что эффект красного смещения спектра далеких галактик, обнаруженный Эдвином Хабблом в 1926 г. На самом деле кванты света, проходя миллиарды световых лет, отдают свою энергию эфиру, "пустому пространству", так как он является реальной физической средой - носителем электромагнитных колебаний с ненулевой вязкостью или трением, и, следовательно, колебания в этой среде должны затухать с расходом энергии на трение. Трение это чрезвычайно мало, а потому эффект "старения света" или "красное смещение Хаббла" обнаруживается лишь на межгалактических расстояниях. Таким образом, свет далеких звезд не суммируется со светом ближних. Далекие звезды становятся красными, а совсем далекие уходят в радиодиапазон и перестают быть видимыми вообще. Это реально наблюдаемое явление астрономии глубокого космоса. Подробнее читайте в FAQ по эфирной физике.