Просмотров: 17085

Современное визуальное программирование: классика VPL


Сегодня несложно проследить новый технологический виток, в рамках которого наблюдается наплыв визуальных сред разработки. В большинстве случаев они фактически не требуют навыков программирования, за счет чего привлекают огромные армии пользователей различного уровня подготовки.

Для роботов и DSP уже фактически брендовой является среда DSP Robotics Flowstone, в области веба мы можем наблюдать огромное количество CMS, а если говорить о конструкторе, то лучший и популярный — британский Serif Web Plus, в звуковых технологиях очень много продукции создается в Synth Edit и Synth Maker, разработка игр сейчас переживает очередную революцию, при этом интерактивные мультимедийные приложения можно легко и быстро создавать в Scirra Construct, Multimedia Fusion и так далее. При этом обратите внимание на то, что мы назвали ниши, в которых десять лет назад требовались серьезные программисты.

В принципе, фактически все сейчас смещается в сторону визуального программирования (VPL). Ранее мы уже рассмотрели отдельный тренд визуального программирования — сильно-визуальные языки, а теперь мы уделим наше и ваше внимание более классическим, а также узкоспециализированным средам этого течения программирования.

DSP Robotics Flowstone

Flowstone — это одна из первых ласточек, вслед за которой появилась целая плеяда схожих продуктов, а если сказать точнее, то множество ранее известных средств разработки перешли на уровень визуального проектирования и разработки по примеру данной среды. Нужно сказать, что сама программа, как и ее интерфейс, в момент первого появления не выглядели новыми, поскольку точно такое же видели многие разработчики звукового софта — в программе SynthMaker (интерфейс и библиотека стандартных компонент те же).

Но в целом мы говорим о DSP (цифровом сигнальном процессинге), поэтому сфера применения может быть различной.

DSP Robotics Flowstone SynthMaker визуальное программирование VPL

DSP Robotics предложила свою среду для программирования любых DSP-систем, и что самое важное, обеспечила прямой доступ к стандартным «источникам» и «потребителям» цифровых сигналов — сенсорам, датчикам, микроконтроллерам, стандартным внешним и внутренним интерфейсам.

При этом данная среда является удобной не только в плане разработки, но и непосредственно проектирования. Например, в Flowstone можно производить быстрое прототипирование различных устройств и приложений, а также создавать собственные алгоритмические каскады с использованием различных библиотек программных прототипов устройств.

Например, в области робототехники эта среда высоко ценится за то, что в ней можно работать с различными типовыми вариантами микроконтроллеров на уровне эмуляции процессов.

DSP Robotics Flowstone SynthMaker визуальное программирование VPL
Видео-плеер/рекордер (программа), созданный в Flowstone за 5 минут

В принципе, до этого существовало множество схожих сред, в которых мы могли брать программные прототипы тех же микроконтроллеров и других элементов, но в данном случае все стало более-менее упрощенным.

Визуальное программирование в Flowstone построено по принципу помещения визуальных блоков в рабочую область и создания соединений между ними с помощью указателя мыши. Также можно и добавлять фрагменты кода в рамках специальных компонент Code Component, где все пишется на упрощенном Си-подобном скрипте.

Конкуренты... Нужно сказать, что сейчас у Flowstone имеется несколько конструкторов-конкурентов, предлагающих точно такой же принцип работы, и выбор между ними сейчас, в основном, определяется в силу сравнения наборов компонент и библиотек эмулируемых/поддерживаемых устройств и интерфейсов. Flowstone, как и большинство конкурирующего софта, компилирует результаты работы в *.exe-файл.

Для новичков в области программирования DSP можно порекомендовать визуальный конструктор-обучающую систему Yenka. В ней вы можете создавать любые электрические схемы, в том числе с использованием двигателей, микроконтроллеров и т.п., а потом просто наблюдать результат. Кстати, лично мне Yenka понравилась тем, что в ней можно проектировать те же ветряные электростанции. Программа рассчитана на школьников и студентов.

Serif WebPlus

Конструктор WebPlus быстро приобрел популярность в силу того, что позволяет создавать сайты, конструировать их дизайн вообще без какого-либо знания HTML и верстки. Интерфейс напоминает Adobe Photoshop, только в панели инструментов размещен набор компонент, таких как изображения, текстовые блоки, таблицы, флэш, графические объекты и так далее. Все очень удобно и быстро работает. На страницу, которая является рабочей областью, пользователь помещает необходимое, причем располагает все в любом понравившемся месте, после чего программа генерирует код и переводит все на язык HTML с привязкой к JavaScript. У каждого объекта имеется расширенный спектр свойств, например, есть управление прозрачностью, добавление спецэффектов и так далее.

Сайт можно сохранять как на диске, так и автоматически загружать/обновлять по FTP прямо из оболочки программы. Недостатки такого конструктора были в основном актуальными раньше, поскольку страницы получались довольно-таки тяжелыми. Но с того времени многое изменилось, в том числе оптимизировался и сам алгоритм внутри WebPlus.

Serif WebPlus разработка новичка для детей визуальное программирование VPL

Специфика работы программы заключается в том, что все данные, за исключением флэша, хранятся во внутренних ресурсах, другими словами, в специфическом файле проекта. Чем больше сайт, тем тяжелее файл и, соответственно, дольше протекают операции сохранения. Это не очень удобно, хотя специфично для многих конструкторов (особенно компьютерных игр и мультимедийных приложений, о которых мы расскажем в конце материала).

Конкуренты... Что самое интересное, конкурентов не так много, поскольку рынок средств для создания сайтов довольно-таки сильно насыщен, а создание подобного ПО является технологически сложным процессом. Но сама идея конструктора повторена и в чем-то усилена в WYSIWYG Web Builder, который тоже набрал большое количество сторонников буквально за последний год-два. Не так давно разработчики из Serif предложили пользователям бесплатную версию своего продукта, в которой доступно много полезного функционала.

Другими словами, ничего из бесплатного такого уровня на данный момент нет. Вполне вероятно, что ход окажется коммерчески верным

На данный момент конструкторы имеют один существенный недостаток, и, как правильно многие смогли догадаться, — в динамике и привязке к БД. Другими словами, в этих средах очень удобно создавать статические страницы, небольшие сайты и сайты-визитки. Огромный плюс веб-конструкторов состоит в том, что они быстро осваиваются пользователями, и тем самым удобно решается вопрос обновлений.

SynthEdit

SynthEdit — это самый популярный конструктор для создания звуковых плагинов (подключаемых модулей с инструментами и эффектами для программ многодорожечной записи). Мы уже упоминали его ближайшего конкурента SynthMaker, рассказывая о Flowstone, но в данном случае выигрыш именно этой среды разработки получился в силу большей легкости освоения и одной довольно специфической вещи. Для опытных программистов (С++) есть специальный вариант программы с собственным SynthEdit SDK, в которой имеется уже множество спрограммированных алгоритмических блоков.

И это позволяет создавать профессиональные приложения уже не совсем «с нуля».

SynthEdit SynthMaker разработка новичка для детей визуальное программирование VPL

Для обычных пользователей предлагается стандартный визуальный конструктор с набором компонент, из которых можно собирать каскады любого уровня сложности и... вложенности, объединяя созданные алгоритмические блоки в контейнеры. Программе много лет, и в ней отточено практически все, в том числе, и эргономика. В данном случае ситуацию можно назвать красивым примером объектно-ориентированного проектирования (подчеркнем, именно «проектирования»). Дело в том, что во многих визуальных конструкторах не предусматривается объединение больших логических блоков в визуальные модули, что затрудняет проектирование как таковое. В целом, в SynthEdit можно проводить время сутками, даже ничего не создавая, а рассматривая готовые примеры, созданные в этой программе, коих очень много.

Конкуренты... В принципе, звуковые технологии являются базовой платформой для всех современных визуальных конструкторов, обеспечивающих программирование сложных технологических процессов. Их можно назвать передовыми.

Сейчас большинство (чуть ли не 90%) аудиософта создается с помощью конструкторов. SynthEdit не является чем-то особенно удивительным для большинства пользователей звуковых технологий, потому как они все являются инженерами или инженерно мыслят. Очень много конструкторов реализовано в рамках специализированных программных оболочек. Например, в Native Instruments Reaktor вы можете создать схему любой сложности и сразу же применять ее в работе. Что касается конструкторов как отдельных программных сред для создания плагинов, то незыблема тройка: Quantum FX, SynthEdit и SynthMaker.

Scirra Construct

Scirra Construct — это, пожалуй, на сегодня один из самых популярных конструкторов для создания небольших игр и мультимедийных приложений. Популярность приобрели ранние версии продукта — Construct Classic, которые работали на базе DirectX и позволяли компилировать приложения в exe-файлы. Нынешняя версия 2 уже так не работает, поскольку не только переписана заново, но проецируется на другую технологическую нишу — HTML5. К тому же, она является платной, в отличие от предыдущих версий.

Scirra Construct разработка новичка для детей визуальное программирование VPL Construct Classic

Популярность Construct пришла по трем причинам. Первая — бесплатность Construct Classic. Вторая — сравнительная легкость освоения и наличие всех необходимых атрибутов разработки (компоненты типа спрайтов, интерфейсных элементов, грамотно сделанный отладчик и т.п.). Третья — опережение ближайших конкурентов.

Например, в момент популяризации Construct известный многим Game Maker от Yo Yo Games обновлялся крайне нестабильно. Другие только начинали разворачиваться в эту сторону, эргономика большинства конструкторов оставляла желать лучшего. Сам разработчик Construct до этого трудился в команде известного Multimedia Fusion, но при этом решил сделать что-то свое по собственному усмотрению, которое оказалось более современным.

Программой предлагается так называемый принцип «программирования «без программирования», на котором мы заострим внимание чуть позже. Работа в конструкторе строится по сценам, на которые помещаются различные объекты, редактируются их свойства, и с каждой такой сценой связан собственный редактор событий. В нем прописываются необходимые условия и связанные с ними действия. Также можно оперировать глобальными/локальными переменными и так далее.

Отдельно нужно отметить качество программирования продукта, в стабильных версиях Construct ошибок и слетов фактически нет.

Конкуренты... У Construct Classic есть очень близкий и подобный по функционалу французский конкурент Game Develop. Его интерфейс, фактически, идентичен, программирование «без программирования» построено по тому же принципу. Единственная разница заключается в том, что в Game Develop чуть изменена философия — все реализуется на уровне объектов, которые включают в себя что-либо из стандартного (спрайты и т.п.).

Также стоит сказать об упомянутом выше GameMaker. А в целом, сейчас и более профессиональные среды разработки, такие как Torque или Unity, довольно близко стоят к конструкторам по легкости освоения. Для совсем новичков и детей есть очень хороший и простой визуальный конструктор игр от Microsoft — Kodu.

HiAsm Studio

Hiasm, пожалуй, одна из самых популярных (и универсальных!) программ такого рода (несмотря на название, она не имеет прямого отношения к ассемблеру, хотя её возможности более низкоуровневые по сравнению с аналогичными разработками). На ней вы можете создать даже свой собственный игровой движок. Это бесплатная среда разработки win32-приложений, PHP, html и js-скриптов и страниц, а так же приложений для КПК на базе Windows Mobile.

При разработке программ от пользователя не требуются обязательного знания языков программирования и особенностей функционирования ОС, при этом HiAsm позволяет быстро и легко писать (рисовать) небольшие программы. К ней имеется множество дополнительных пакетов, которые делают данную программу просто кладезем неограниченных возможностей.

HiAsm Studio конструктор приложений разработка для новичка для детей визуальное программирование VPL Construct Classic студия асм

Базовый пакет, поставляющийся вместе со средой, позволяет разрабатывать небольшие Windows-приложения с использованием любых стандартных ActiveX-компонентов Интернета, баз данных, графики (GDI и OpenGL), широких мультимедиа возможностей (звука), и многого другого, а так же менее интересные фоновые программы, апплеты панели управления, библиотеки DLL и прочее.

Я не буду здесь останавливаться на ней подробно, так как об этой среде написано ну очень много. Чтение я рекомендую начать вот с этих двух качественных источников: первое и второе; кроме того доступно очень много обучающего видео по HiAsm. Лично для меня эта среда наиболее симпатична и удобна из всех сегодня рассмотренных (может быть это следствие огромной коллекции качественных ActiveX накопленных мною за пару лет обычного программирования на Visual Studio?).

О программировании «без программирования»

В этом подразделе статьи хочется остановить внимание на двух недостатках, которые в тех же игровых конструкторах уже начинают достигать своего апогея.

Во-первых, программирование с помощью мыши... Думаю, что на этом моменте стоит заострить особое внимание, потому как стиль программирования в Scirra Construct, Game Develop и нескольких подобных решений наталкивает на спорные мысли. И именно он сейчас начинает распространяться на широкий спектр приложений, например, нечто подобное уже можно увидеть в нескольких новых IDE.

Во-первых, событийный редактор без выхода на код... Что это такое? Допустим, вы хотите написать условие, «если a=1 , то b=2 ». Опишем, как это делается в Construct (этот фрагмент текста за утомительностью можно и не читать). Сначала создаем глобальную переменную, а именно в окне проекта, кликаем правой кнопкой мыши над Global Variables... Add Global Variable... в появившемся окне указываем имя. Чтобы создать b производим идентичную цепочку действий.

Затем переходим на страницу событий Event Sheet Editor, создаем там новое событие, появляется окно, в котором мы выбираем System, появляется новое окно, находим там Compare Global Variable, щёлкаем, видим новое окно, выбираем из комбобокса «a», условие Equal to, указываем в окошке цифру 1. Нажимаем ОК. Условие появилось в окошке события строкой Is global variable ’a’ Equal to 1 . Напротив нее находится окно действий, кликаем на New Action, появляется окно, в нем выбираем System, кликаем, появляется следующее окно находим там Global Variables -> Set Value, нажимаем Next и в следующем окне выбираем из комбобокса «b» и вписываем двойку. Нажимаем ОК.

И как вам последовательность действий для создания простого условия!?

Такое ощущение, что к каждому действию прикрепляется окно-бюрократ. И это мы говорим об одной-двух строках стандартного кода.

Scirra Construct разработка новичка для детей визуальное программирование VPL Construct Classic
При визуальном программировании редакторы кода заменены на редакторы событий, но смысл не меняется

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

Чем больше элементов содержит файл проекта, тем больше будет требовать от ресурсов ПК

Во-первых, работа с ним. А в игровых конструкторах и еще паче — ваш исполняемый файл строится по подобию того же файла проекта. Например, вы создали один уровень либо одну страницу мультимедийного приложения и при запуске исполняемого файла программа будет занимать N памяти RAM и VRAM. Затем создаете второй уровень или сцену с другим контентом. Запускаете программу, и хотя находитесь на первой сцене, она занимает N+M  памяти, то есть, подгружаются все внутренние данные. Таким образом, по мере роста проекта можно запросто столкнуться с Out of Memory.

Большинство подобных конструкторов для неопытных пользователей предлагает единственное средство — разделение данных на внешние и внутренние, и в тех же Construct Classic, Game Develop и многих других это указывается неявно. А в менее продуманных «поделках» так и вообще все грузится во внутренние ресурсы.

В результате получаются тяжелые *.exe-файлы, огромные файлы проектов, замедляются процессы сохранения, отладки, компиляции. А простейшая игра типа Arcanoid будет занимать у вас столько же ресурсов, как и Starcraft2, чем, в принципе, уже никого не удивишь.

Подытожим

Внедрение визуальных конструкторов во все сферы программирования неизбежно. Последствия такого нашествия могут оказаться для многих сфер минимальными, а в некоторых случаях даже полезными. Но если говорить, например, о конструкторах игр, за манящей простотой виден момент раздутия всего и вся, увеличенные требования к ресурсам и так далее.

Мы уже не раз были свидетелями того, как обычные пользовательские приложения превращались в глобальные популярные среды. Достаточно привести в пример Adobe Flash. Поэтому относиться несерьезно к тем же Scirra Construct или Game Maker все-таки не стоит — еще неизвестно, что выстрелит в итоге. Например, еще пару лет назад очень выгодно смотрелась среда для создания интерактивных мультимедийных приложений Multimedia Builder (я писал о ней ранее более подробный обзор в сравнении с почти полным аналогом — NeoBook), которая по своим возможностям и одновременно простоте и сейчас затыкает за пояс огромное количество конструкторов и новоявленных IDE. Но программа так и не получила массовой поддержки, в результате чего ее разработка была свернута. Какая причина?

На мой взгляд, очень много в Multimedia Builder (MMB) было новаторского и самостоятельного. Тот же Flash, на этапе разработки в Macromedia, изначально базировался на принципе GUI от Photoshop, на нем же построен и описанный нами выше Serif WebPlus. Flowstone также заимствовала очень многое из популярных конструкторов прошлого, в SynthEdit взят за основу принцип графического построения, известный еще с середины 90-х, Scirra Construct взял лучшее из имеющегося на рынке. То есть, везде можно наблюдать преемственность технологий. Никаких революций уже давно не происходит. А конкуренция во всех сферах сейчас очень серьезная, например, как вам вот такой вариант визуального программирования в интернете? Про два более традиционно-десктопных монстра визуального программирования FileMaker и Visual Studio LightSwitch я уже ранее писал в этом блоге достаточно подробно.

КВ, 2012

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , ,
Эта запись опубликована: Четверг, 14 июня 2012 в рубрике Программирование.

1 комментарий

Следите за комментариями по RSS
  1. надо понимать что такое VPL - это методы создания кода, которые изначально были заложены разработчиками VPL. Но жизнь, как известно веселее и разнообразнее. Если делать немаленький проект, больше чем 5.000 строк , то веселье не загорами. обязательно будут возникать ситуации , когда на простое действие требуется десятки манипуляций ( как в примере в тексте ) . И чем больше проект , тем чаще будут возникать подобные ситуации. В итоге наступит момент , когда трудоёмкость создания кода с VPL превысит традиционные языки.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз