Сегодня несложно проследить новый технологический виток, в рамках которого наблюдается наплыв визуальных сред разработки. В большинстве случаев они фактически не требуют навыков программирования, за счет чего привлекают огромные армии пользователей различного уровня подготовки. Для роботов и DSP уже фактически брендовой является среда DSP Robotics Flowstone, в области веба мы можем наблюдать огромное количество CMS, а если говорить о конструкторе, то лучший и популярный — британский Serif Web Plus, в звуковых технологиях очень много продукции создается в Synth Edit и Synth Maker, разработка игр сейчас переживает очередную революцию, при этом интерактивные мультимедийные приложения можно легко и быстро создавать в Scirra Construct, Multimedia Fusion и так далее. При этом обратите внимание на то, что мы назвали ниши, в которых десять лет назад требовались серьезные программисты.
В принципе, фактически все сейчас смещается в сторону визуального программирования. И именно этой теме мы уделим наше и ваше внимание. Причем рассмотрим не только основных игроков, но и конкурентов.
DSP Robotics Flowstone
Flowstone — это одна из первых ласточек, вслед за которой появилась целая плеяда схожих продуктов, а если сказать точнее, то множество ранее известных средств разработки перешли на уровень визуального проектирования и разработки по примеру данной среды. Нужно сказать, что сама программа, как и ее интерфейс в момент первого появления не выглядели новыми, поскольку точно такое же видели многие разработчики звукового софта — в программе SynthMaker (интерфейс и библиотека стандартных компонент те же). Но в целом мы говорим о DSP (цифровом сигнальном процессинге), поэтому сфера применения может быть различной.
DSP Robotics предложила свою среду для программирования любых DSP-систем, и что самое важное, обеспечила прямой доступ к стандартным «источникам» и «потребителям» цифровых сигналов — сенсорам, датчикам, микроконтроллерам, стандартным внешним и внутренним интерфейсам. При этом данная среда является не только удобной в плане разработки, но и непосредственно проектирования. Например, в Flowstone можно производить быстрое прототипирование различных устройств и приложений, а также создавать собственные алгоритмические каскады с использованием различных библиотек программных прототипов устройств. Например, в области робототехники эта среда высоко ценится за то, что в ней можно работать с различными типовыми вариантами микроконтроллеров на уровне эмуляции процессов.
Видео-плеер/рекордер (программа), созданный в Flowstone
В принципе, до этого существовало множество схожих сред, в которых мы могли брать программные прототипы тех же микроконтроллеров и других элементов, но в данном случае все стало более-менее упрощенным.
Визуальное программирование в Flowstone построено по принципу помещения визуальных блоков в рабочую область и создания соединений между ними с помощью указателя мыши. Также можно и добавлять фрагменты кода в рамках специальных компонент Code Component, где все пишется на упрощенном С-подобном скрипте.
Конкуренты… Нужно сказать, что сейчас у Flowstone имеется несколько конструкторов-конкурентов, предлагающих точно такой же принцип работы, и выбор между ними сейчас в основном определяется только в силу сравнения наборов компонент и библиотек эмулируемых/поддерживаемых устройств и интерфейсов. Flowstone, как и большинство конкурирующего софта, компилирует результаты работы в *.exe-файл.
Для новичков в области программирования DSP можно порекомендовать визуальный конструктор-обучающую систему Yenka. В ней вы можете создавать любые электрические схемы, в том числе с использованием двигателей, микроконтроллеров и т.п., а потом просто наблюдать результат. Кстати, лично мне Yenka понравилась тем, что в ней можно проектировать те же ветряные электростанции. Программа рассчитана на школьников и студентов.
Serif WebPlus
Конструктор WebPlus быстро приобрел популярность в силу того, что позволяет создавать сайты, конструировать их дизайн вообще без какого-либо знания HTML и верстки. Интерфейс напоминает Adobe Photoshop, только в панели инструментов размещен набор компонент, таких как изображения, текстовые блоки, таблицы, флэш, графические объекты и так далее. Все очень удобно и быстро работает. На страницу, которая является рабочей областью, пользователь помещает необходимое, причем располагает все в любом понравившемся месте, после чего программа генерирует код и переводит все на язык HTML с привязкой к JavaScript. У каждого объекта имеется расширенный спектр свойств, например, есть управление прозрачностью, добавление спецэффектов и так далее.
Сайт можно сохранять как на диске, так и автоматически загружать/обновлять по FTP прямо из оболочки программы. Недостатки такого конструктора были в основном актуальными раньше, поскольку страницы получались довольно-таки тяжелыми. Но с того времени многое изменилось, в том числе оптимизировался и сам алгоритм внутри WebPlus.
Специфика работы программы заключается в том, что все данные за исключением флэша хранятся во внутренних ресурсах, другими словами в специфическом файле проекта. Чем больше сайт, тем тяжелее файл и, соответственно, дольше протекают операции сохранения. Это не очень удобно, хотя специфично для многих конструкторов (особенно компьютерных игр и мультимедийных приложений, о которых мы расскажем в конце материала).
Конкуренты… Что самое интересное, конкурентов не так много, поскольку рынок средств для создания сайтов сильно насыщен, а создание подобного ПО является технологически сложным. Но сама идея конструктора повторена и в чем-то усилена в WYSIWYG Web Builder, который тоже набрал большое количество сторонников буквально за последний год-два. Не так давно разработчики из Serif предложили пользователям бесплатную версию своего продукта, в которой доступно много полезного функционала. Вполне вероятно, что ход окажется коммерчески верным.
На данный момент конструкторы имеют один существенный недостаток, и, как правильно многие смогли догадаться — в динамике и привязке к БД. В этих средах очень удобно создавать статические страницы, небольшие сайты и сайты-визитки. Огромный плюс веб-конструкторов состоит в том, что они быстро осваиваются пользователями, и тем самым удобно решается вопрос обновлений.
SynthEdit
SynthEdit — это самый популярный конструктор для создания звуковых плагинов (подключаемых модулей с инструментами и эффектами для программ многодорожечной записи). Мы уже упоминали его ближайшего конкурента SynthMaker, рассказывая о Flowstone, но в данном случае выигрыш именно этой среды разработки получился в силу большей легкости освоения и одной довольно специфической вещи. Для опытных программистов (С++) есть специальный вариант программы с собственным SynthEdit SDK, в которой имеется уже множество спрограммированных алгоритмических блоков. И это позволяет создавать профессиональные приложения уже не совсем «с нуля».
Для обычных пользователей предлагается стандартный визуальный конструктор с набором компонент, из которых можно собирать каскады любого уровня сложности и… вложенности, объединяя созданные алгоритмические блоки в контейнеры. Программе много лет, и в ней отточено практически все, в том числе и эргономика использования. В данном случае ситуацию можно назвать красивым примером объектно-ориентированного проектирования (подчеркнем, что именно «проектирования»). Дело в том, что во многих визуальных конструкторах не предусматривается объединение больших логических блоков в визуальные модули, что затрудняет проектирование как таковое. В целом, в SynthEdit можно проводить время сутками, даже ничего не создавая, а рассматривая готовые примеры, созданные в этой программе, коих очень много.
Конкуренты… В принципе, звуковые технологии являются базовой платформой для всех современных визуальных конструкторов, обеспечивающих программирование сложных технологических процессов. Их можно назвать передовыми. Сейчас большинство (чуть ли не 90%) аудиософта создается с помощью конструкторов. SynthEdit не является чем-то особенно удивительным для большинства пользователей звуковых технологий, потому как они все являются инженерами или инженерно мыслят. Очень много конструкторов реализовано в рамках специализированных программных оболочек. Например, в Native Instruments Reaktor вы можете создать схему любой сложности и сразу же применять ее в работе. Что касается конструкторов как отдельных программных сред для создания плагинов, то незыблема тройка: Quantum FX, SynthEdit и SynthMaker.
Scirra Construct
Scirra Construct — это, пожалуй, на сегодня один из самых популярных конструкторов для создания небольших игр и мультимедийных приложений. Популярность приобрели ранние версии продукта — Construct Classic, которые работали на базе DirectX и позволяли компилировать приложения в exe-файлы. Нынешняя версия 2 уже так не работает, поскольку не только переписана наново, но проецируется на другую технологическую нишу — HTML 5. К тому же она является платной, по сравнению с предыдущими версиями.
Популярность к Construct пришла по трем причинам. Первая — бесплатность Construct Classic. Вторая — сравнительная легкость освоения и наличие всех необходимых атрибутов разработки (компоненты типа спрайтов, интерфейсных элементов, грамотно сделанный отладчик и т.п.). Третья — опережение ближайших конкурентов. Например, в момент популяризации Construct известный многим Game Maker от Yo Yo Games обновлялся крайне нестабильно. Другие только начинали разворачиваться в эту сторону, эргономика большинства конструкторов оставляла желать лучшего. Сам разработчик Construct до этого трудился в команде известного Multimedia Fusion, но при этом решил сделать что-то свое по собственному усмотрению, которое оказалось более современным.
Программой предлагается так называемый принцип «программирования «без программирования», на котором мы заострим внимание чуть позже. Работа в конструкторе строится по сценам, на которые помещаются различные объекты, редактируются их свойства, и с каждой такой сценой связан собственный редактор событий. В нем прописываются необходимые условия и связанные с ними действия. Также можно оперировать глобальными/локальными переменными и так далее. Отдельно нужно отметить качество программирования продукта, в стабильных версиях Construct ошибок и слетов фактически нет.
Конкуренты… У Construct Classic есть очень близкий и подобный по функционалу французский конкурент Game Develop. Интерфейс того фактически идентичен, программирование «без программирования» построено по тому же принципу. Единственная разница заключается в том, что в Game Develop чуть изменена философия — все реализуется на уровне объектов, которые включают в себя что-либо из стандартного (спрайты и т.п.).
Также стоит сказать об упомянутом выше GameMaker. А в, целом, сейчас и более профессиональные среды разработки, такие как Torque или Unity, довольно близко стоят к конструкторам по легкости освоения.
Для совсем новичков и детей есть очень хороший и простой визуальный конструктор игр от Microsoft — Kodu.
О программировании «без программирования»
В этом подразделе статьи хочется остановить внимание на двух недостатках, которые в тех же игровых конструкторах уже начинают достигать своего апогея.
Во-первых, программирование с помощью мыши… Думаю, что на этом моменте стоит заострить особое внимание, потому как стиль программирования в 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» и вписываем двойку. Нажимаем ОК.
И как вам последовательность действий для создания простого условия!? Такое ощущение, что к каждому действию прикрепляется окно-бюрократ. И это мы говорим об одной-двух строках стандартного кода.
При визуальном программировании редакторы кода заменены на редакторы событий, но смысл не меняется
Вторая, довольно узкая вещь в таких конструкторах — это принцип распределения между внутренними и внешними ресурсами, а также оптимизация работы с памятью. В файлы проектов обычно помещаются почти все данные. Они являются внутренними и для скорости работы при запуске приложения естественно автоматически распределяются между оперативной памятью и памятью видеоадаптера. Чем больше элементов содержит файл проекта, тем больше будет требовать от ресурсов ПК… во-первых… работа с ним. А в игровых конструкторах и еще паче — ваш исполняемый файл строится по подобию того же файла проекта. Например, вы создали один уровень либо одну страницу мультимедийного приложения и при запуске исполняемого файла программа будет занимать N памяти RAM и VRAM. Затем создаете второй уровень или сцену с другим контентом. Запускаете программу, и хотя находитесь на первой сцене, она занимает N+M памяти, то есть вгружаются все внутренние данные. Таким образом, по мере роста проекта можно запросто столкнуться с Out of Memory.
Большинство подобных конструкторов для неопытных пользователей предлагает единственное средство — разделение данных на внешние, и внутренние, и в тех же Construct Classic, Game Develop и многих других это указывается не явно. А в менее продуманных «поделках» так и вообще все грузится во внутренние ресурсы.
В результате получаются тяжелые *.exe-файлы, неемкие файлы проектов, замедляются процессы сохранения, отладки, компиляции. А простейшая игра типа Arcanoid будет занимать у вас столько же оперативных ресурсов, как и Starcraft2, чем, в принципе, уже никого не удивишь:).
Подытожим
Внедрение визуальных конструкторов во все сферы программирования неизбежно. Последствия такого нашествия могут оказаться для многих сфер минимальными, а в некоторых случаях даже полезными. Но если говорить, например, о конструкторах игр, за манящей простотой виден момент раздутия всего и вся, увеличенного требования к ресурсам и так далее.
Мы уже не раз были свидетелями того, как обычные пользовательские приложения превращались в глобальные популярные среды. Достаточно привести в пример Adobe Flash. Поэтому относиться несерьезно к тем же Scirra Construct или Game Maker все-таки не стоит — еще неизвестно, что выстрелит в итоге. Например, еще пару лет назад очень выгодно смотрелась среда для создания интерактивных мультимедийных приложений Multimedia Builder, которая по своим возможностям и сейчас затыкает за пояс огромное количество конструкторов и новоявленных IDE. Но программа так и не получила массовой поддержки, в результате чего ее разработка была свернута. Какая причина? На мой взгляд, очень много в MMB было новаторского и самостоятельного. Тот же Flash, на этапе разработки в Macromedia изначально базировался на принципе GUI от Photoshop, на нем же построен и описанный нами выше Serif WebPlus. Flowstone также заимствовала очень многое из популярных конструкторов прошлого, в SynthEdit взят за основу принцип графического построения, известный еще с середины 90-х, Scirra Construct взял лучшее из имеющегося на рынке. То есть, везде можно наблюдать преемственность технологий. Никаких революций уже давно не происходит. Конкуренция во всех сферах сейчас очень серьезная.
КристоферПерепечатка материалов или их фрагментов возможна только с согласия автора.
|