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

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


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


Языки визуального программирования могут быть классифицированы по разным признакам<ref>{{Книга|автор=А.А. Тюгашев|заглавие=Графические языки программирования и их применение в системах управления реального времени|ответственный=|год=2009|издание=Изд-во Самарского научного центра РАН|место=Самара|издательство=|страницы=|страниц=98|isbn=978-5-93424-454-6}}</ref>. Например, по сфере основного применения: учебные; используемые в индустрии; исследовательские. По основному моделируемому аспекту: языки описания структуры программной системы; языки описания потока управления; языки описания потоков данных; языки описания поведения (процессов); языки для построения графического интерфейса. Предлагается и такая классификация:
Языки визуального программирования могут быть классифицированы по разным признакам<ref>{{Книга|автор=А.А. Тюгашев|заглавие=Графические языки программирования и их применение в системах управления реального времени|ответственный=|год=2009|издание=Изд-во Самарского научного центра РАН|место=Самара|издательство=|страницы=|страниц=98|isbn=978-5-93424-454-6}}</ref>. Например, по сфере основного применения: учебные; используемые в индустрии; исследовательские. По основному моделируемому аспекту: языки описания структуры программной системы; языки описания потока управления; языки описания потоков данных; языки описания поведения (процессов); языки для построения графического интерфейса. Предлагается и такая классификация:
Строка 15: Строка 15:
В ряде работ подход визуального программирования связан с [[программирование потоков данных|программированием потоков данных]] ({{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>
В ряде работ подход визуального программирования связан с [[программирование потоков данных|программированием потоков данных]] ({{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>[https://habr.com/ru/company/edison/blog/432334/ Визуальное программирование — почему это плохая идея / Блог компании Edison / Хабр<!-- Заголовок добавлен ботом -->]</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> говорит о фундаментальных ограничениях визуального программирования:
* Ограничения визуального интерфейса могут запутывать разработчика даже больше, чем текст.
* Ограничения визуального интерфейса могут запутывать разработчика даже больше, чем текст.
* С повышением сложности программ программист начинает заниматься абстракцией и снижением связности, и уровень программиста во многом определяется тем, насколько удачно это получилось. Визуальные средства редко имеют развитую поддержку данного процесса.
* С повышением сложности программ программист начинает заниматься абстракцией и снижением связности, и уровень программиста во многом определяется тем, насколько удачно это получилось. Визуальные средства редко имеют развитую поддержку данного процесса.
Строка 23: Строка 23:
{{список примеров}}
{{список примеров}}
<!-- Это незаконченный список, который может быть никогда не будет удовлетворять каким-либо стандартам по своей завершенности. Вы можете дополнить его, ссылаясь на источники. -->
<!-- Это незаконченный список, который может быть никогда не будет удовлетворять каким-либо стандартам по своей завершенности. Вы можете дополнить его, ссылаясь на источники. -->
* [[App Inventor]] — Cреда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
* [[App Inventor]] — среда визуальной разработки android-приложений, требующая от пользователя минимальных знаний программирования.
* Sketchware — Среда визуальной разработки приложений для Android.
* Sketchware — среда визуальной разработки приложений для Android.
* [[ДРАКОН (язык программирования)|Дракон]]  — графический язык программирования, имеющий корни в программировании ракетно-космической техники («[[Буран (космический корабль)|Буран]]», «[[Морской старт]] »). Существуют Дракон-редакторы, включая бесплатные.
* [[ДРАКОН (язык программирования)|Дракон]] — графический язык программирования, имеющий корни в программировании ракетно-космической техники («[[Буран (космический корабль)|Буран]]», "[[Морской старт]] "). Существуют Дракон-редакторы, включая бесплатные.
* Язык последовательных функциональных схем [[SFC]] (Sequential Function Chart) — [[графический язык программирования]] широко используется для программирования промышленных логических контроллеров [[программируемый логический контроллер|PLC]].
* Язык последовательных функциональных схем [[SFC]] (Sequential Function Chart) — [[графический язык программирования]] широко используется для программирования промышленных логических контроллеров [[программируемый логический контроллер|PLC]].
* [[HiAsm]] — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса [http://hiasm.com/ HiAsm].
* [[HiAsm]] — это язык и среда разработки приложений, которая позволяет создавать приложения, управляя их моделью с помощью интуитивно понятного графического интерфейса [http://hiasm.com/ HiAsm].
Строка 36: Строка 36:
* [[Блокли]] — это библиотека для создания среды визуального программирования, которая может быть встроена в произвольное веб-приложение.
* [[Блокли]] — это библиотека для создания среды визуального программирования, которая может быть встроена в произвольное веб-приложение.
* [http://kibor-bot.com/stat/visual-programming.php Кибор] — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.
* [http://kibor-bot.com/stat/visual-programming.php Кибор] — Интегрированная среда создания бот программ автоматизации. Обладает визуальным инструментом для построения программ с помощью блок схем. Для визуального программирования требуется минимум навыков программирования.
* [[Verge3D|Verge3D Puzzles]] - основанный на Блокли фреймворк для программирования интерактивных 3D-приложений, работающих в браузере.
* [[Verge3D|Verge3D Puzzles]] — основанный на Блокли фреймворк для программирования интерактивных 3D-приложений, работающих в браузере.
* Creative+ — общее название для нескольких событийно-ориентированных языков программирования, созданных в Minecraft.


== Визуальные средства разработки ==
== Визуальные средства разработки ==
Строка 51: Строка 52:
# [[ДРАКОН]], язык, созданный для разработки советского космического корабля [[Буран (космический корабль)|Буран]]
# [[ДРАКОН]], язык, созданный для разработки советского космического корабля [[Буран (космический корабль)|Буран]]
# [[Visual Prolog]], система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.
# [[Visual Prolog]], система визуального программирования объектно-ориентированного расширения языка программирования PDC Prolog.

# [[Autogramma Автограмма]], среда интерактивного визуального моделирования и программирования с помощью геометрической расстановки блоков арифметики, логики, функциональных блоков, и блоков обработки сигналов и данных, блоков управления последовательностью работы ПО. Разработка и структурирование данных ПО в физических величинах предметной области решаемых задач. Интерактивная интерпретация ПО с диагностикой и визуализацией. Автоматическая генерация кода, документации на страницах сайта и печатной версии. Уникальная система разработки графических интерфейсов пользователя современных сенсорных приборов с TFT экранами для транспорта, медицины и авиации
== См. также ==
* [[Low-code]]


== Примечания ==
== Примечания ==
Строка 58: Строка 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 года.