Визуальное программирование: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Графические, или визуальные, языки программирования: Добавлена информация по визуальному фреймворку Verge3D Puzzles
 
(не показано 37 промежуточных версий 20 участников)
Строка 1: Строка 1:
{{Орисс|дата=25 мая 2011}}
{{Орисс|дата=25 мая 2011}}
{{переработать}}
{{переработать}}
'''Визуальное программирование''' — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Визуальное программирование часто представляют как следующий этап развития текстовых языков программирования. Наглядным примером может служить утилита [[Delphi (язык программирования)|Визуальный Pascal]] или Microsoft [[Visual Studio]], где редактируются графические объекты и одновременно отображается соответствующий текст программы. В последнее время визуальному программированию стали уделять больше внимания  в связи с развитием мобильных сенсорных устройств (КПК, планшеты). Визуальное программирование в основном используется для создания программ с [[Графический интерфейс пользователя|графическим интерфейсом]] для операционных систем с графическим интерфейсом пользователя.
'''Визуа́льное программи́рование''' — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Некоторые авторы представляют визуальное программирование как следующий этап развития языков программирования (следующее поколение). В настоящее время визуальному программированию стали уделять больше внимания, в том числе в связи с развитием мобильных сенсорных устройств (КПК, планшеты). Визуальное программирование может применяться для создания программ с [[Графический интерфейс пользователя|графическим интерфейсом]], но не только. Существуют, например, и успешно используются в промышленности, средства графического программирования встроенных приложений для микроконтроллеров.
Среда визуального программирования позволяет написать [[Веб-приложения|Веб-приложение]] для браузеров.
Есть и среды визуального программирования, позволяющие создавать [[Веб-приложения]] для браузеров.
Среда визуального программирования позволяет создать [[Текстовый интерфейс пользователя|консольное приложение]] (программа без графического интерфейса и без вывода сообщений в консоль) для программирования микроконтроллеров, программируемых микросхем.


Необходимо различать:
Необходимо различать:
* графический язык программирования — который прежде всего язык программирования (со своим синтаксисом)
* графический язык программирования
* [[визуальные средства разработки]] — как правило, под ними подразумевают средства проектирования интерфейсов или какую либо [[CASE]]-систему для быстрой разработки приложений или [[SCADA]]-систему.
* [[визуальные средства разработки]] (например, средства проектирования интерфейса, [[CASE]]-система, часть [[SCADA]]-системы).


Языки визуального программирования могут быть классифицированы по разным признакам<ref>{{Книга|автор=А.А. Тюгашев|заглавие=Графические языки программирования и их применение в системах управления реального времени|ответственный=|год=2009|издание=Изд-во Самарского научного центра РАН|место=Самара|издательство=|страницы=|страниц=98|isbn=978-5-93424-454-6}}</ref>. Например, по сфере основного применения: учебные; используемые в индустрии; исследовательские. По основному моделируемому аспекту: языки описания структуры программной системы; языки описания потока управления; языки описания потоков данных; языки описания поведения (процессов); языки для построения графического интерфейса. Предлагается и такая классификация:
Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:
* языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;
* Языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами. Пример: [[Скретч (язык программирования)|Скретч]].
* языки, в [[Интегрированная среда разработки|интегрированной среде разработки]] которых на этапе проектирования интерфейса применяются формы, с возможностью настройки их свойств. Примеры: [[Delphi (среда разработки)|Delphi]] и [[C++ Builder]] фирмы [[Borland]], [[C Sharp|С#]], [[Microsoft Access|MS Access]], C++ посредством использования [[wxSmith]] в составе свободной кроссплатформенной среды разработки [[Code::Blocks]].
* Редакторы форм, позволяющие ставить мышью части пользовательского интерфейса и настраивать их свойства. Примеры: [[Visual Basic]], [[Delphi (среда разработки)|Delphi]] и [[C++ Builder]] фирмы [[Borland]], [[C Sharp|MS С#]], [[Microsoft Access|MS Access]], C++ посредством использования [[wxSmith]] в составе свободной кроссплатформенной среды разработки [[Code::Blocks]].
* языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: [[UML]].
* Языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Примеры: редакторы взаимосвязей в реляционных БД, [[UML]].
В современных разработках делаются попытки интегрировать подход визуального программирования с [[программирование потоков данных|программированием потоков данных]] ({{lang-en|dataflow programming}}), чтобы иметь непосредственный доступ к состоянию программы для онлайновой отладки, или автоматизированная генерация и документирование программы. Языки потоков данных также позволяют делать [[автоматическое распараллеливание]], которое может стать одним из величайших достижений программирования в будущем.<ref>{{cite journal |last=Johnston |first=W.M. |authorlink= |coauthors=Hanna, J.R.P. and Millar, R.J. |year=2004 |month= |title=Advances in dataflow programming languages |journal=ACM Computing Surveys (CSUR) |volume=36 |issue=1 |pages=1–34 |id= |url=http://www.ittc.ku.edu/~rsass/rcreading/johnston04.pdf |format=PDF |accessdate=2007-03-31 |quote= |doi=10.1145/1013208.1013209 |deadlink=yes |archiveurl=https://web.archive.org/web/20070927094639/http://www.ittc.ku.edu/~rsass/rcreading/johnston04.pdf |archivedate=2007-09-27 }}</ref>
В ряде работ подход визуального программирования связан с [[программирование потоков данных|программированием потоков данных]] ({{lang-en|dataflow programming}}). Некоторые средства визуального программирования поддерживают отладку программ, автоматизированную генерацию и документирование. Языки потоков данных могут позволять [[автоматическое распараллеливание]], что может стать большим достижением программирования.<ref>{{статья |заглавие=Advances in dataflow programming languages |издание=ACM Computing Surveys (CSUR) |том=36 |номер=1 |страницы=1—34 |ссылка=http://www.ittc.ku.edu/~rsass/rcreading/johnston04.pdf |accessdate=2007-03-31 |doi=10.1145/1013208.1013209 |deadlink=yes |archiveurl=https://web.archive.org/web/20070927094639/http://www.ittc.ku.edu/~rsass/rcreading/johnston04.pdf |archivedate=2007-09-27 |язык=und |автор=Johnston, W.M.; Hanna, J.R.P. and Millar, R.J. |год=2004}} {{Cite web |url=http://www.ittc.ku.edu/~rsass/rcreading/johnston04.pdf |title=Архивированная копия |access-date=2009-05-05 |archive-date=2007-09-27 |archive-url=https://web.archive.org/web/20070927094639/http://www.ittc.ku.edu/~rsass/rcreading/johnston04.pdf |deadlink=unfit }}</ref>

При этом можно назвать и недостатки визуального программирования. Статья Майка Хэдлоу<ref>{{Cite web |url=https://habr.com/ru/company/edison/blog/432334/ |title=Визуальное программирование — почему это плохая идея / Блог компании Edison / Хабр<!-- Заголовок добавлен ботом --> |access-date=2020-08-22 |archive-date=2020-09-22 |archive-url=https://web.archive.org/web/20200922221020/https://habr.com/ru/company/edison/blog/432334/ |deadlink=no }}</ref> говорит о фундаментальных ограничениях визуального программирования:
* Ограничения визуального интерфейса могут запутывать разработчика даже больше, чем текст.
* С повышением сложности программ программист начинает заниматься абстракцией и снижением связности, и уровень программиста во многом определяется тем, насколько удачно это получилось. Визуальные средства редко имеют развитую поддержку данного процесса.
* Для текстового представления в настоящее время существует множество инструментов: [[система управления версиями|системы управления версиями]], [[автодополнение]] и пр.


== Графические, или визуальные, языки программирования ==
== Графические, или визуальные, языки программирования ==
{{список примеров}}
{{список примеров}}
<!-- Это незаконченный список, который может быть никогда не будет удовлетворять каким-либо стандартам по своей завершенности. Вы можете дополнить его, ссылаясь на источники. -->
<!-- Это незаконченный список, который может быть никогда не будет удовлетворять каким-либо стандартам по своей завершенности. Вы можете дополнить его, ссылаясь на источники. -->
* [[App Inventor]] — Cреда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
* [[App Inventor]] — среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
* Sketchware — Среда визуальной разработки приложений для Android.
* Sketchware — среда визуальной разработки приложений для Android.
* [[ДРАКОН (язык программирования)|Дракон-схемы]] — графический язык программирования, используется для программирования в ракетно-космической технике («[[Буран (космический корабль)|Буран]]», «[[Морской старт]]», «[[РТ-2ПМ|Тополь]]»). Существует бесплатный Дракон-редактор. Этот язык имеет наиболее строгое теоретическое обоснование.
* [[ДРАКОН (язык программирования)|Дракон]] — графический язык программирования, имеющий корни в программировании ракетно-космической техники («[[Буран (космический корабль)|Буран]]», "[[Морской старт]] "). Существуют Дракон-редакторы, включая бесплатные.
* Язык последовательных функциональных схем [[SFC]] (Sequential Function Chart) — [[графический язык программирования]] широко используется для программирования промышленных логических контроллеров [[программируемый логический контроллер|PLC]].
* Язык последовательных функциональных схем [[SFC]] (Sequential Function Chart) — [[графический язык программирования]] широко используется для программирования промышленных логических контроллеров [[программируемый логический контроллер|PLC]].
* [[HiAsm]] — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса [http://hiasm.com/ HiAsm].
* [[HiAsm]] — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса [http://hiasm.com/ HiAsm].
Строка 30: Строка 34:
* Язык «G» системы [[LabVIEW]] — один из самых распространенных языков разработки программ, работающих с некомпьютерным оборудованием.
* Язык «G» системы [[LabVIEW]] — один из самых распространенных языков разработки программ, работающих с некомпьютерным оборудованием.
* [[VisSim]] — это визуальный язык программирования предназначенный для моделирования [[динамическая система|динамических систем]], а также проектирования, базирующегося на моделях, для встроенных [[микропроцессор]]ов.
* [[VisSim]] — это визуальный язык программирования предназначенный для моделирования [[динамическая система|динамических систем]], а также проектирования, базирующегося на моделях, для встроенных [[микропроцессор]]ов.
* [[Скретч (язык программирования)|Скретч]] — это визуальная объектно-ориентированная среда и язык программирования для обучения школьников младших и средних классов.
* [[Блокли]] — это библиотека для создания среды визуального программирования, которая может быть встроена в произвольное веб-приложение.
* [[Блокли]] — это библиотека для создания среды визуального программирования, которая может быть встроена в произвольное веб-приложение.
* [[Verge3D]] Puzzles - основанный на Блокли фреймворк для программирования интерактивных 3D-приложений, работающих в браузере.
* [http://kibor-bot.com/stat/visual-programming.php Кибор] — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.
* [http://kibor-bot.com/stat/visual-programming.php Кибор] — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.
* [[Verge3D|Verge3D Puzzles]] — основанный на Блокли фреймворк для программирования интерактивных 3D-приложений, работающих в браузере.
* Creative+ — общее название для нескольких событийно-ориентированных языков программирования, созданных в Minecraft.


== Визуальные средства разработки ==
== Визуальные средства разработки ==
{{список примеров}}
{{список примеров}}
# [[App Inventor]], среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования
# [[App Inventor]], среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования
# [http://www.agentsheets.com/ AgentSheets], легкая в использовании авторская система для игр и научных расчётов
# [https://web.archive.org/web/20151113073857/http://www.agentsheets.com/ AgentSheets], легкая в использовании авторская система для игр и научных расчётов
# [[Alice (язык программирования)|Alice]]<!-- язык программирования? -->
# [[Alice (язык программирования)|Alice]]<!-- язык программирования? -->
# [[Automator]]
# [[Automator]]
Строка 48: Строка 52:
# [[ДРАКОН]], язык, созданный для разработки советского космического корабля [[Буран (космический корабль)|Буран]]
# [[ДРАКОН]], язык, созданный для разработки советского космического корабля [[Буран (космический корабль)|Буран]]
# [[Visual Prolog]], система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.
# [[Visual Prolog]], система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.

== См. также ==
* [[Low-code]]


== Примечания ==
== Примечания ==
Строка 54: Строка 61:
== Ссылки ==
== Ссылки ==
* [http://appinventor.mit.edu appinventor.mit.edu — Официальный сайт App Inventor]
* [http://appinventor.mit.edu appinventor.mit.edu — Официальный сайт App Inventor]
* [http://sites.google.com/site/purebuilder/ PureBuilder] — среда визуальной разработки, в настоящее время разрабатывается


{{rq|wikify}}
{{rq|wikify}}

{{Языки программирования}}


[[Категория:Программирование]]
[[Категория:Программирование]]
[[Категория:Языки визуального программирования|*]]
[[Категория:Языки визуального программирования| ]]

Текущая версия от 19:29, 15 сентября 2024

Визуа́льное программи́рование — способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Некоторые авторы представляют визуальное программирование как следующий этап развития языков программирования (следующее поколение). В настоящее время визуальному программированию стали уделять больше внимания, в том числе в связи с развитием мобильных сенсорных устройств (КПК, планшеты). Визуальное программирование может применяться для создания программ с графическим интерфейсом, но не только. Существуют, например, и успешно используются в промышленности, средства графического программирования встроенных приложений для микроконтроллеров. Есть и среды визуального программирования, позволяющие создавать Веб-приложения для браузеров.

Необходимо различать:

Языки визуального программирования могут быть классифицированы по разным признакам[1]. Например, по сфере основного применения: учебные; используемые в индустрии; исследовательские. По основному моделируемому аспекту: языки описания структуры программной системы; языки описания потока управления; языки описания потоков данных; языки описания поведения (процессов); языки для построения графического интерфейса. Предлагается и такая классификация:

  • Языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами. Пример: Скретч.
  • Редакторы форм, позволяющие ставить мышью части пользовательского интерфейса и настраивать их свойства. Примеры: Visual Basic, Delphi и C++ Builder фирмы Borland, MS С#, MS Access, C++ посредством использования wxSmith в составе свободной кроссплатформенной среды разработки Code::Blocks.
  • Языки схем, основанные на идее «фигур и линий», где фигуры (прямоугольники, овалы и т. п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Примеры: редакторы взаимосвязей в реляционных БД, UML.

В ряде работ подход визуального программирования связан с программированием потоков данных (англ. dataflow programming). Некоторые средства визуального программирования поддерживают отладку программ, автоматизированную генерацию и документирование. Языки потоков данных могут позволять автоматическое распараллеливание, что может стать большим достижением программирования.[2]

При этом можно назвать и недостатки визуального программирования. Статья Майка Хэдлоу[3] говорит о фундаментальных ограничениях визуального программирования:

  • Ограничения визуального интерфейса могут запутывать разработчика даже больше, чем текст.
  • С повышением сложности программ программист начинает заниматься абстракцией и снижением связности, и уровень программиста во многом определяется тем, насколько удачно это получилось. Визуальные средства редко имеют развитую поддержку данного процесса.
  • Для текстового представления в настоящее время существует множество инструментов: системы управления версиями, автодополнение и пр.

Графические, или визуальные, языки программирования

[править | править код]
  • App Inventor — среда визуальной разработки 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-приложений, работающих в браузере.
  • Creative+ — общее название для нескольких событийно-ориентированных языков программирования, созданных в Minecraft.

Визуальные средства разработки

[править | править код]
  1. App Inventor, среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования
  2. AgentSheets, легкая в использовании авторская система для игр и научных расчётов
  3. Alice
  4. Automator
  5. Befunge, эзотерический текстовый язык программирования, в котором команды размещаются графически в текстовом файле
  6. HiAsm, конструктор программ
  7. LabVIEW, среда графического программирования, разработанная для инженеров и учёных
  8. ROBO Pro
  9. Thyrd, свободная, открытая графическая среда программирования (иерархия графических примитивов) на базе языка Forth (Форт)
  10. ДРАКОН, язык, созданный для разработки советского космического корабля Буран
  11. Visual Prolog, система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.

Примечания

[править | править код]
  1. А.А. Тюгашев. Графические языки программирования и их применение в системах управления реального времени. — Изд-во Самарского научного центра РАН. — Самара, 2009. — 98 с. — ISBN 978-5-93424-454-6.
  2. 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 года.
  3. Визуальное программирование — почему это плохая идея / Блог компании Edison / Хабр. Дата обращения: 22 августа 2020. Архивировано 22 сентября 2020 года.