Визуальное программирование
Визуальное программирование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Некоторые авторы представляют визуальное программирование как следующий этап развития языков программирования (следующее поколение). В настоящее время визуальному программированию стали уделять больше внимания, в том числе в связи с развитием мобильных сенсорных устройств (КПК, планшеты). Визуальное программирование может применяться для создания программ с графическим интерфейсом, но не только. Существуют, например, и успешно используются в промышленности, средства графического программирования встроенных приложений для микроконтроллеров. Есть и среды визуального программирования, позволяющие создавать Веб-приложения для браузеров.
Необходимо различать:
- графический язык программирования
- визуальные средства разработки (например, средства проектирования интерфейса, CASE -система, часть SCADA -системы).
Языки визуального программирования могут быть классифицированы по разным признакам[1]. Например, по сфере основного применения: учебные; используемые в индустрии; исследовательские. По основному моделируемому аспекту: языки описания структуры программной системы; языки описания потока управления; языки описания потоков данных; языки описания поведения (процессов); языки для построения графического интерфейса. Предлагается и такая классификация:
- Языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами. Пример: Скретч.
- Редакторы форм, позволяющие ставить мышью части пользовательского интерфейса и настраивать их свойства. Примеры: Visual Basic, Delphi и C++ Builder фирмы Borland, MS С#, MS Access, C++ посредством использования wxSmith в составе свободной кроссплатформенной среды разработки Code::Blocks.
- Языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Примеры: редакторы взаимосвязей в реляционных БД, UML.
В ряде работ подход визуального программирования связан с программированием потоков данных (англ. dataflow programming). Некоторые средства визуального программирования поддерживают отладку программ, автоматизированную генерацию и документирование. Языки потоков данных могут позволять автоматическое распараллеливание, что может стать большим достижением программирования.[2]
При этом можно назвать и недостатки визуального программирования. Статья Майка Хэдлоу[3] говорит о фундаментальных ограничениях визуального программирования:
- Ограничения визуального интерфейса могут запутывать разработчика даже больше, чем текст.
- С повышением сложности программ программист начинает заниматься абстракцией и снижением связности, и уровень программиста во многом определяется тем, насколько удачно это получилось. Визуальные средства редко имеют развитую поддержку данного процесса.
- Для текстового представления в настоящее время существует множество инструментов: системы управления версиями, автодополнение и пр.
Графические, или визуальные, языки программирования
- App Inventor — Cреда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
- Sketchware — Среда визуальной разработки приложений для Android.
- Дракон — графический язык программирования, имеющий корни в программировании ракетно-космической техники («Буран», «Морской старт »). Существуют Дракон-редакторы, включая бесплатные.
- Язык последовательных функциональных схем SFC (Sequential Function Chart) — графический язык программирования широко используется для программирования промышленных логических контроллеров PLC.
- HiAsm — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса HiAsm.
- В SFC программа описывается в виде схематической последовательности шагов, объединённых переходами.
- LD — язык релейно-контактных схем.
- FBD — язык Функциональных блоковых диаграмм.
- Язык CFC (Continuous Flow Chart) — ещё один высокоуровневый язык графического программирования. CFC — это дальнейшее развития языка FBD. CFC был специально создан для проектирования систем управления непрерывными технологическими процессами.
- Язык «G» системы LabVIEW — один из самых распространенных языков разработки программ, работающих с некомпьютерным оборудованием.
- VisSim — это визуальный язык программирования предназначенный для моделирования динамических систем, а также проектирования, базирующегося на моделях, для встроенных микропроцессоров.
- Блокли — это библиотека для создания среды визуального программирования, которая может быть встроена в произвольное веб-приложение.
- Кибор — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.
- Verge3D Puzzles - основанный на Блокли фреймворк для программирования интерактивных 3D-приложений, работающих в браузере.
Визуальные средства разработки
- App Inventor, среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования
- AgentSheets, легкая в использовании авторская система для игр и научных расчётов
- Alice
- Automator
- Befunge, эзотерический текстовый язык программирования, в котором команды размещаются графически в текстовом файле
- HiAsm, конструктор программ
- LabVIEW, среда графического программирования, разработанная для инженеров и учёных
- ROBO Pro
- Thyrd, свободная, открытая графическая среда программирования (иерархия графических примитивов) на базе языка Forth (Форт)
- ДРАКОН, язык, созданный для разработки советского космического корабля Буран
- Visual Prolog, система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.
Примечания
- А.А. Тюгашев. Графические языки программирования и их применение в системах управления реального времени. — Изд-во Самарского научного центра РАН. — Самара, 2009. — 98 с. — ISBN 978-5-93424-454-6.
- Johnston, W.M.; Hanna, J.R.P. and Millar, R.J. Advances in dataflow programming languages (неопр.) // ACM Computing Surveys (CSUR). — 2004. — Т. 36, № 1. — С. 1—34. — doi:10.1145/1013208.1013209. Архивировано 27 сентября 2007 года. Архивированная копия (недоступная ссылка). Дата обращения: 5 мая 2009. Архивировано 27 сентября 2007 года.
- Визуальное программирование — почему это плохая идея / Блог компании Edison / Хабр
Ссылки
- appinventor.mit.edu — Официальный сайт App Inventor
- PureBuilder — среда визуальной разработки, в настоящее время разрабатывается