Визуальное программирование. Почему визуальное программирование и D3NE могут быть Вам полезны

Возможности 12.07.2019
Возможности

Визуальное программирование – способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Визуальное программирование часто представляют как следующий этап развития текстовых языков программирования.

Визуальные языки программирование появились очень давно, задолго до того, как появился визульный рекадтор от Unreal Engine -> Unreal BluePrint.

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

Визуальное программирование, а точнее его концепция, базируется на технологии программирования потока данных. Этот подход был придуман ещё 1970-х годах. Он заключается в том, что любую программу можно представить в так называемой блок-схеме. Если вы когда-то сталкивались с алгоритмами, то вы должны знать что это.

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

Визуальное программирование поможет в обучении

Желание научиться создавать программы с помощью визуального редактора у человека появилось из-за разных факторов, однако есть мнение, что код – это сложно, страшные, непонятные закарлючки, которые понимают только гении. Всё конечно же не так, программирование это круто, интересно и полезно для общества в большинстве случаях.

Есть много перспективных языков программирования, которые помогают в развитии различных сфер, .

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

Рассматривая современные средства визуального программирования, стоит упомянуть о проекте The Blockly от компании Google, главная функция которого, это образование.

Blockly позволяет разработать свои приложения под Web, Android, iOS и научится программировать просто перемещая и создавая блоки. Логические и математические операции, переменные, циклы, списки, функции – это то, что можно выучить и сделать с помощью Blockly.

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

Существуют достаточно хорошие решения визуального программирования, тот же Unreal BluePrint, Unity3D Maker и другие, однако не один из них не является идеальным на данный момент.

Визуальное программирование – выводы

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

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

Судя по всему, игры всё ещё нельзя делать только при помощи клика мышки, программы нельзя писать без кода, но мы постепенно приближаемся к таким технологиям. Главный вопрос, хорошо это или плохо? Так или иначе, будущее ещё не наступило.

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

Удачи в жизни и до встречи.

Визуальное программирование – одна из технологий в современном программировании

Визуальное программирование (от лат. v isualis – зрительный) – это технология программирования, предусматривающая создание приложений с помощью наглядных средств.

К визуальному программированию можно отнести также Rapid Application Development (RAD) – быструю разработку программ. RAD – технология программирования, обеспечивающая ускоренную разработку и модификацию приложений за счет использования объектно-ориентированного и визуального программирования.

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

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

Так, например, фирма IBM наиболее полно реализовала концепцию визуального программирования в среде VisualAge Smalltalk.

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

VisualAge представляет собой объектно-ориентированное средство разработки, включающее набор визуальных интерактивных инструментов, библиотеку готовых компонент и набор средств для построения клиент-серверной среды.

Поддержка графического интерфейса, предоставляемая готовыми компонентами, отвечает CUA (Common User Access) спецификациям и содержит ряд расширений для организации гибкого ввода-вывода в сложных формах и таблицах. Библиотека готовых компонент предоставляет также поддержку устройств мультимедиа, коммуникаций через протоколы APPC, TCP/IP, NetBIOS, программных интерфейсов CICS External Call Interface, EHLLAPI, Message Queue Interface (MQI), работу с реляционными базами данных семейств DB2, Oracle, Sybase и многое другое.

Фирма Microsoft , разрабатывая концепцию.NET Framework , создала Visual Studio .NET Enterprise Architect 2003, в которой реализовала все последние достижения в области программирования и в частности, в технологии визуального программирования.

Visual Studio .NET - полная многоязычная среда разработки для платформы Microsoft .NET. Visual Studio .NET предоставляет набор технологий, упрощающих создание, развертывание и последующее усовершенствование безопасных, масштабируемых и высокодоступных веб-приложений и веб-служб XML.

Фирма Borland Software Corporation традиционно развивает интегрированную среду программирования, имеющую несомненный успех на рынке профессиональных программных продуктов. Эта среда всегда поддерживала методы визуального программирования, предлагала разработчику мощные библиотеки, интерактивные мастера-построители, готовые элементы графического интерфейса.

На сегодняшний день Borland Developer Studio - программный продукт от , представляющий собой для платформ и на языках (), и .

Ещеодинпакетотфирмы Borland – Delphi Enterprise Edition 7.0. Этот пакет обеспечивает поддержку новейших перспективных технологий Веб-служб, включает предварительную версию средств работы с Microsoft .NET Framework.

При помощи пакета Delphi 7 разработчики, использующие Delphi, могут приобрести навыки программирования для.NET, готовить свои приложения к работе под управлением.NET, не теряя при этом имеющихся наработок и навыков работы на платформе Windows.

Среда разработки Delphi 7 - это проектирование; развертывание архитектуры, управляемой моделью (MDA); интегрирующее моделирование, разработка и развертывание приложений и систем электронного бизнеса для платформы Windows.

Фирма Borland Software Corporation является первой компанией, открывшей независимый путь к.NET с Delphi 7, межплатформенной средой быстрой разработки приложений (RAD) для платформы Windows. Характерной чертой Delphi 7 является возможность разработки и развертывания корпоративных приложений. Это позволяет разработчикам создавать корпоративные приложения, от концепции к готовому продукту, еще быстрее с использованием нового UML™-дизайнера и технологии Model Driven Architecture™ (MDA™).

Мы рассмотрели роль и место визуального программирования в области современного программирования. Теперь перейдем к рассмотрению конкретных приемов и методов, относящихся к визуальному программированию. Рассмотрим использование компонентов и приемов визуального программирования в рамках Visual Studio .NET Framework фирмы Microsoft .

Основы визуального программирования

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

Пользователи приложений привыкли к графическому интерфейсу приложений и зачастую даже не задумываются, что привычные элементы интерфейса представляют собой визуальные графические примитивы. Например, простейший вариант визуализации – линейка прогресса (прямоугольник, процент заполнения которого прямо пропорционален времени выполнения какой-либо операции). Глядя на нее, вы можете приблизительно оценить время окончания операции. Но, если бы было выведено значение времени исполнения в виде числа или процента без линейки прогресса, то такой вывод явился бы лишь отображением текущего значения, но не визуализацией процесса.

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

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

Возможно, именно наличие визуальных средств построения интерфейсов в таких языках, как Microsoft Visual Basic и Delphi, а также создаваемые с помощью этих языков визуальные программные интерфейсы, закрепили за ними термин "визуальное программирование". Безусловно, существует много других аналогичных продуктов (Visual C++, Borland C++ начиная с версии 4, Symantec Visual Cafe, C++ Builder и др.), но они не смогли завоевать такой популярности, как Visual Basic и Delphi. Именно благодаря Visual Basic, мир узнал о возможности визуального построения интерфейсов программ для Windows.

В Visual Basic и Delphi выполняется визуальное построение интерфейса программы, но не самого кода. Определяющими элементами процесса визуализации являются:

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

    Окно инструментов (ToolB ox) – окно, содержащее набор элементов, из которых строится визуальная модель. Обычно элементы разделяются по их назначению на отдельные группы, размещающиеся на отдельных закладках окна инструментов.

    Окно свойств (PropertyB ox) – окно, в котором отображаются параметры (свойства) выбранного элемента визуальной модели. Термин "свойство" пришел из объектно-ориентированного программирования и обозначает параметр объекта (элемента).

Визуализируемой моделью в Visual Basic и Delphi является окно (форма, диалог) Windows, а не код программы.

Обычной практикой является визуализация работы с элементами интерфейса, когда в качестве объектов визуализации рассматриваются визуальные компоненты, из которых состоят формы (окна и диалоги) интерфейса программы. Но и операторы программы можно рассматривать как объекты визуализации. В этом случае параметры операторов и функций программы можно настраивать при помощи окна свойств (PropertyB ox), а сами операторы и функции хранится в списковой форме (табличной форме).

В качестве возможного варианта реализации такой визуальной разработки кода программы можно рассматривать табличную форму записи макросов в Microsoft Access (рис.8.1). В этом случае визуализируемая модель – макрос-программа управления данными в базе данных или управления процессом отображения данных. Команды макроса находятся в разных строчках записи макроса. Окно свойств находится непосредственно под списком команд. Окна инструментов в привычном виде нет, но оно реализовано в виде раскрывающегося списка с командами, т.е. в каждой строке записи макроса в отдельности имеется возможность выбора или смены текущей команды макроса. Это и есть визуализированная форма записи программы.

Рис.8.1. Визуализация разработки кода программы

Присоединение модуля, созданного средствами визуального программирования выполняется также визуальными средствами – в режиме конструирования (рис.8.2).

Рис.8.2. Средства визуального программирования

Другим примером визуализации создания кода программы может служить процесс создания макро программ в Microsoft Excel (рис.8.3).

Рис.8.3. Диалог MS Excel при автоматической записи действий пользователя

Визуализируемой моделью в данном случае является рабочий лист Excel , в котором программист выполняет действия по обработке данных. Программный код пишется автоматически в фоновом режиме, при этом происходит описание в операторах языка VBA (Visual Basic for Application ) всех визуальных действий пользователя.

Окно свойств Properties присутствуют, но не в самом рабочем листе, а в среде VBA (рис.8.4). Окно инструментов при выборе объекта Module выключается, но в случае редактирования программного кода для каждого программного объекта появляется раскрывающийся список со свойствами, методами и событиями, т.е. в каждой строке записи макроса в отдельности имеется возможность выбора или смены текущей команды макроса.

Пример получаемой программы, вызов которой в рабочем листе Excel можно организовать по командной кнопке или непосредственно по имени записанного макроса, приведен на рис.8.4.

Рис.8.4. Результат автоматической записи программного кода как протокола действий пользователя

Применение визуального программирования при построении интерфейса приложения в Visual Studio .Net

Visual Studio .NET – это универсальная среда разработки всех типов приложений на базе.NET и на основе единого визуального интерфейса. Платформа.NET Framework представляет собой набор объектов и планов (blueprints , то есть описание объектов), созданных корпорацией Microsoft для разработки приложений (Windows и Internet ). Большая коллекция визуальных объектов позволяет конструировать различные элементы управления: Надпись, Надпись с гиперссылкой, Кнопку, Поле, Флажок и многие другие. Все эти элементы располагаются на панели инструментов (рис.8.5). Настройка свойств элементов выполняется с помощью списка свойств.

Элементы управления, как и все другие объекты среды.NET , реализованы в виде классов в определенном пространстве имен, в данном случае – System .Windows .Forms .

Рис.8.5. Визуальное программирование средствами Visual Studio .NET

Методы элементов программируются пользователем «вручную», но и тут имеются визуальные помощники: после двойного щелчка по элементу управления в конструкторе автоматически открывается окно редактора кода и автоматически пишется заголовок процедуры обработки события. Боле того, после набора имени объекта автоматически появляется список свойств и методов объекта (рис.8.6). Таким образом, процесс написания программного кода также частично визуализирован.

Рис.8.6. Визуализация свойств и методов объекта

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

Отдельный класс Dialog в.NET не предусмотрен. Диалоговое окно – это форма (рис.8.7.), обладающая некоторыми специальными характеристиками. Программирование диалоговых окон, как и многих других стандартных компонент, в Visual Studio поддерживается визуальными средствами программировании (рис.8.8).

Рис.8.7. Пример стандартного диалога

Рис.8.8. Программирование стандартных элементов средствами Visual Studio

Концепция.NET Framework и Visual Studio .NET предоставляют в распоряжение программистов огромную библиотеку объектов, ускоряющую процесс разработки приложений. Многие объекты в этой библиотеке имеют визуальное представление и дают возможность назначения свойств объекта в режиме конструирования с помощью окна Properties или диалогов с мастером-построителем.

Выводы

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

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

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

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

Визуальные средства поддержки программирования в Visual Studio .NET превращают программистов в разработчиков Windows и Internet приложений.

Вопросы для самопроверки

    В чем принципиальное отличие визуального программирования от любого другого программирования?

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

    Какие достоинства и недостатки присущи визуальному программированию?

    Какие языки программирования поддерживают визуальный стиль программирования?

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

    Какие фирмы-разработчики пакетов программирования имеют наиболее удачные решения для визуального программирования?

    Можно ли сказать, что визуальное программирование – это построение графического интерфейса пользователя?

    Какие элементы процесса визуализации вы можете перечислить?

    Что такое «визуализируемая модель»?

    Приведите примеры визуального программирования в известных вам программных средах.

Литература

    ГарнаевФ. Ю. Самоучитель Visual Studio .NET 2003.– СПб.: БХВ-Петербург, 2005.– 688.с.: ил.

    Подлин Ш. Освой самостоятельно программирование для Micrsoft Excel 2000. Пер. с англ.: Уч. Пос. – М.: Издательский дом «Вильямс», 2006. – 304 с.: ил.– Парал. тит. англ.

    Харитонова И.А., Михеева В.Д. Microsoft ACCESS 2000: Разработка приложений. – СПб.: БХВ-Петербург, 2004. – 832 с.: ил.

    Одинцев И.О. Профессиональное программирование. Системный подход. – СПб.: БХВ-Петербург, 2003. – 512 с.: ил.

9.1. ОБЩЕЕ ПОНЯТИЕ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ

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

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

Рис. 9.1. Browser в Delphi 5.0

Одну из ключевых возможностей программы Browser предоставляет окно, в котором находится список всех классов системы. При выборе одного из классов в специальных окнах отображаются его локальные функции и переменные. Затем при выборе одного из методов на отдельной панели высвечивается его код. Обычно в системе присутствуют средства для добавления и удаления классов из проекта. Программа Browser - это не просто визуализатор. Это основной, интегрирующий инструмент, который помогает одновременно рассматривать существующую систему и разрабатывать документацию программного проекта.

Структурной единицей визуального программирования в Delphi и C++Builder является компонента. Компонента представляет собой разновидность объекта, который можно перенести (агрегировать) в приложение из специальной Палитры компонент (рис. 9.2). Компонента имеет набор свойств, которые можно изменять, не изменяя исходный код программы.

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

Формой называется визуальная компонента, обладающая свойством окна Windows (рис. 9.3). При разработке на форме помещаются необходимые компоненты (например, элементы требуемого диалога). Форм в приложении может быть несколько - по требуемому числу открываемых при выполнении диалога окон, их можно добавлять и удалять.

Рис. 9.2. Палитра компонент Delphi 5.0

Рис. 9.3. Пустая форма

Программные средства разработки приложений, относящиеся к предыдущему поколению, предлагают интерактивные средства решения типовых задач (мастера в Borland C++ и Wizards или волшебники в Visual C++), которые позволяют в диалоге с программистом создавать и вставлять в программы готовые фрагменты исходного кода.

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

Щелкнув по изображению компоненты на форме, можно сделать ее активной. Затем, перемещая при помощи мыши границы кнопки и работая в окне Inspector, можно задать надпись (например, ОК) и/или графическую пиктограмму на кнопке, задать цвета и другие настроечные параметры кнопки. Двойной щелчок по кнопке - и в исходном тексте формы появится шаблон подпрограммы (метода) нужного типа реакции на щелчок (рис. 9.5). Работая в окне редактора текста, можно оформить тело подпрограммы реакции кнопки на щелчок.

Рис. 9.4. Форма с двумя компонентами - кнопками

Рис. 9.5. Оформление события (метода) нажатия кнопки в Delphi 5.0

Рис. 9.6. Object Inspector в Delphi 5.0

Программа Inspector позволяет входить в исходные тексты методов (подпрограммы обработки событий, названных Events), например, на нажатие Enter, а также задавать начальные значения полям данных, названных Properties (рис. 9.6).

Из книги Программирование в X Window средствами Free Pascal автора Полищук А П

1.1.1 Общее устройство X Window Система X Window представляет совокупность программ и библиотек. Сердцем ее является отдельный UNIX-процесс, существующий на компьютере, к которому присоединен дисплей. Именно сервер знает особенности конкретной аппаратуры, знает, что надо

Из книги Информационная технология ПРОЦЕСС СОЗДАНИЯ ДОКУМЕНТАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОГРАММНОГО СРЕДСТВА автора Автор неизвестен

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

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

Из книги Язык программирования С# 2005 и платформа.NET 2.0. автора Троелсен Эндрю

Средства визуального проектирования классов В Visual Studio 2005 есть возможность конструировать классы визуально (в Visual C# 2005 Express такой возможности нет). Утилита Class Designer позволяет просматривать и изменять взаимосвязи типов (классов, интерфейсов, структур, перечней и делегатов),

Из книги Технологии программирования автора Камаев В А

9.2. ТЕХНОЛОГИЯ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ Начальные шаги технологии визуального программирования определяются оболочкой самой среды визуального программирования. Сначала создаются экранные формы простейшей буксировкой мыши. В инспекторе объектов производится

Из книги Компьютерные советы (сборник статей) автора Автор неизвестен

Локальные компьютерные сети. Общее понятие http://pc-doc.spb.ru/lan.html Что же такое локальная компьютерная сеть? Под локальной вычислительной сетью (ЛВС) понимают совместное подключение отдельных компьютеров или рабочих станций к каналу передачи данных. Понятие ЛВС относится к

Из книги VBA для чайников автора Каммингс Стив

Что визуального в Visual Basic для приложений? К счастью, VBA во многом избавляет от необходимости нудного печатания программного кода. В одних случаях вы записываете команды, которые нужны в приложении, и используете их в качестве отправной точки при создании новой программы.В

Из книги CSS3 для веб-дизайнеров автора Сидерхолм Дэн

Общее правило Следующий шаг – написать общее правило, которое абсолютно спозиционирует каждое изображение внутри элемента списка и, соответственно, поверх изображения Луны.Каждый элемент будет спозиционирован по-своему в зависимости от объекта; также будут

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Глава3. Автоматическая компоновка и язык визуального форматирования 3.0. Введение Выравнивание компонентов пользовательского интерфейса всегда было для программиста большой проблемой. В большинстве контроллеров видов в сложных приложениях для iOS содержится множество

Из книги Самоучитель работы на компьютере: быстро, легко, эффективно автора Гладкий Алексей Анатольевич

3.2. Определение горизонтальных и вертикальных ограничений на языке визуального форматирования Постановка задачи Требуется возможность определять ограничения, изменяющие способ выравнивания элемента пользовательского интерфейса по горизонтали или по вертикали в его

Из книги Linux Mint и его Cinnamon. Очерки применителя автора Федорчук Алексей Викторович

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Из книги автора

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

Из книги автора

Общее введение Одна из главнейших задач при работе на компьютере - манипулирование данными: создание, модификация, копирование, перемещёние и так далее. И тут первое - это организация их размещёния. Это понятие включает в себя широкий круг частных вопросов - схемы

Из книги автора

Общее описание Электронный задачник Programming Taskbook предназначен для обучения программированию на языках Pascal, Visual Basic, C++, C#, Visual Basic .NET, Python и Java. Он содержит 1300 учебных заданий, охватывающих все основные разделы базового курса программирования: от скалярных типов и

Из книги автора

Общее описание При запуске программы, использующей электронный задачник Programming Taskbook, на экране возникает окно задачника. В зависимости от текущей настройки, окно может отображаться либо в режиме с фиксированной компоновкой, либо в режиме с динамической компоновкой.

Лекция 11. Языки программирования. Системы программирования. Среды визуального проектирования

Обзор языков программирования

Управляющие команды и данные, поступающие в процессор по его шинам, представляются в виде машинного кода.

Машинный код - это двоичный код, т. е. совокупность нулей и единиц в виде электрических сигналов.

Управление компьютером производится по определенному алгоритму.

Алгоритм - это точно определенное описание способа решения задачи в виде конечной по времени последовательности действий (элементарных операций или операторов). Такое описание называется формальным.

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

Полученное с помощью языка программирования описание алгоритма переводится специальными служебными программами - трансляторами - в машинный код для исполнения.

Языки программирования используют для записи каждой команды (оператора) в программе свой синтаксис (совокупность требований к записи операторов) и семантику (отражение смысла команды). Нарушение формы записи команды в программе приводит к непониманию ее транслятором или к синтаксической ошибке.

Правильно записанная, но не отвечающая алгоритму программы команда, приводит к семантической (или логической) ошибке.

Процесс поиска ошибок в программе - это тестирование программы , а процесс их устранения - отладка программы.

Различают два вида программ-трансляторов:

  • интерпретатор, который одновременно и транслирует и выполняет заданную команду, делая это покомандно или пооператорно;
  • компилятор, который преобразует программу, составленную на языке высокого уровня, в программу на машинном языке или на языке, близком к машинному, не участвуя в её выполнении.

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

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

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

На практике применяется как тот, так и другой вид программ-трансляторов, т. е. и программы-интерпретаторы, и программы-компиляторы.

Уровни языков программирования

Язык программирования, ориентированный на определенный тип процессора - это язык низкого уровня. Это не значит - "плохой", а только то, что язык конкретен и близок к машинному языку PC (например, язык "Ассемблер").

С помощью языков низкого уровня создаются очень эффективные и компактные программы, т. к. разработчик получает доступ ко всем возможностям PC . Но они специализированы и не могут быть перенесены на PC с другим типом процессора.

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

Рождение языков высокого уровня 5-го поколения произошло в середине 90-х годов.

Fortran - первый компилируемый язык, созданный в 50-е годы, но модификации 2000 года ( HPF — High Perfomance Fortran ) используются и сейчас в статистических комплексах и даже в системах управления спутниками.

Cobol — это компилируемый язык для применения в экономике и решения бизнес-задач, разработанный в начале 60-х годов. Имеет много приложений, используется и сейчас (в США наибольшую зарплату получают программисты, работающие на Cobol ).

Algol - компилируемый язык, созданный в 1960 году. Предполагалось, что он заменит Fortran , но из-за более сложной структуры не получил широкого распространения.

Pascal - создан в конце 70-х годов, во многом напоминает Algol , но в нем ужесточен ряд требований к структуре программ, что позволяет успешно применять его при создании крупных проектов.

Basic - язык, имеющий и компиляторы, и интерпретаторы, по популярности он занимает первое место в мире. Он был создан в 60-х годах в качестве учебного языка и очень прост в изучении.

С (Си) - планировался для замены ассемблера, чтобы иметь возможность создавать эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора. На этом языке написано в 70е годы множество системных и прикладных программ и ряд операционных систем (в частности, ОС Unix ).

C++ (Си++) - это объектно-ориентированное расширение языка Си, разработанное в 1980 году. Обеспечивает высокую производительность, но требует от разработчиков высокого уровня профессионализма.

Java - этот язык создан в начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него низкоуровневых возможностей. Обеспечивает компиляцию не в машинный код, а в платформенно-независимый объектный код, который может выполняться с помощью интерпретатора - виртуальной Java-машины ( Virtual Machine ), версии которой созданы сегодня для любых платформ.

Этот язык занимает по популярности второе место после Basic . Основной его недостаток - невысокое быстродействие, т. к. он интерпретируемый .

Языки программирования баз данных (БД)

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

Для управления большими БД и эффективной обработки данных разработаны системы управления базами данных (СУБД). Для обработки данных в базах данных был создан структурированный язык запросов SQL (Structured Query Language ).

Практически в каждой СУБД помимо поддержки языка SQL имеется также свой уникальный язык, ориентированный на особенности только этой СУБД.

В настоящее время насчитывается несколько ведущих производителей СУБД. Среди них такие, как:

Microsoft Access ;

Oracle ;

Informix и т. п.

СУБД этих фирм ориентированы на работу одновременной работы в сети тысяч пользователей, а БД могут храниться в распределённом виде на нескольких серверах.

Языки программирования для Internet

Все эти языки интерпретируемые, интерпретаторы для них распространяются бесплатно, а сами программы - в исходных текстах (скриптах). Такие языки называют скрипт-языками.

  • Наиболее известные из скрипт-языков:
  • HTML , XML - общеизвестные языки разметки гипертекста, предназначенные для описания структуры и содержания WEB -документов;
  • JavaScript – язык программирования сценариев или скриптов (планов работы программ по взаимодействию с пользователем), встроенных в тело WEB -страницы;
  • Perl – язык программирования, используемый для создания сценариев и динамически генерируемых Web-страниц, превосходящий по мощности языки типа Си.

Системы программирования

Для создания программы на выбранном языке нужно иметь компоненты:

Текстовый редактор (лучше использовать специализированный, ориентированный на конкретный язык программирования и позволяют выделять ключевые слова и идентификаторы разными цветами и шрифтами);

  • программу-компилятор, с помощью которой текст может быть переведен непосредственно в машинный код, но так как в программе часто не хватает некоторых компонентов, компилятор может выдавать промежуточный объектный код с расширением. obj ;
  • библиотеки функций. Каждый модуль компилируется в отдельный файл с объектным кодом, но, кроме того, к ним может быть добавлен машинный код подпрограмм, реализующих стандартные математические функции (например, sin , In ), которые поставляются с компилятором. Эти подпрограммы находятся в библиотеках функций (файлах с расширением. lib );
  • редактор связей. Объектный код модуля обрабатывается специальной программой-редактором связей или сборщиком (компоновщиком), который связывает объектный код и машинный код стандартных функций и формирует на выходе работоспособное приложение, т. е. исполнимый код для конкретной системной платформы;
  • исполнимый код - это законченная программа, которую можно запустить на любом PC с той ОС, для которой эта программа создавалась. Она имеет расширения: .ехе или. com .

Современные системы программирования имеют ещё один компонент – отладчик, - который позволяет анализировать выполнение программы в целом и по шагам, т. е. отслеживать работу каждого оператора.

Среды визуального проектирования

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

Процесс графического программирования был автоматизирован в средах быстрого проектирования RAD (Rapid Application Development ). Все необходимые элементы оформления и управления (компоненты) создаются с помощью готовых визуальных компонентов, которые с помощью мыши вводятся в проектируемое окно, при этом вспомогательный исходный текст для этих объектов генерируется средой автоматически, что позволяет сосредоточиться на логике решаемой задачи. В результате программирование заменяется на проектирование или называется визуальным проектированием.

Компоненты для известных RAD-сред (кнопки, переключатели, списки, флажки и т. д.) объединяются в библиотеки - объектные репозитории. Такой компонентный подход к созданию программ очень перспективен.

В настоящее время наиболее популярны следующие среды визуального программирования для языков:

Basic: Microsoft Visual Basic;

Pascal: Borland Delphi;

C++: Borland C++ Builder;

Java: Symantec Cafe.

Microsoft Visual Basic

Язык BASIC (Beginner " s All Purpose Symbolic Instruction Code ) был модифицирован в GWBASIC (Graphics Workshop ), который был доступен для первых PC .

В конце 80-х годов разработан QuickBasic , который в 1992 году заменил Visual Basic for Windows .

В середине 1998 года разработана шестая, наиболее зрелая версия Microsoft Visual Basic (MS VB 6), которая долгое время была основной учебной версией.

Данная версия являлась основной средой разработки приложений под Windows от Microsoft, до появления принципиально новой платформы. NET Framework .

После этого фирма Microsoft резко изменила политику в отношении языков семейства Basic. Вместо развития Visual Basic, был создан абсолютно новый язык Visual Basic.NET , первая версия которого появилась в 2001 г. Это принципиально новый язык, имеющий, помимо синтаксиса , очень мало схожего с VB 6.0, и достаточно сильно отличающийся от него.

VB.NET сразу же занял прочное место VB в языковом комплексе Visual Studio, и на этом развитие классического языка Visual Basic остановилось.

В 2005 году вышла новая версия Visual Basic 2005, в комплекте Visual Studio . Она имела новый интерфейс и большие возможности. Язык был основан на Visual Basic.NET.

В конце 2007 фирма Microsoft выпустила новую версию Visual Basic — Visual Basic 2008, которая также была основана на Visual Basic.NET.

В 2010 году в составе Visual Studio 2010 была выпущена версия Visual Basic 2010 и её несколько упрощённый вариант Visual Basic 2010 Express , который ориентирован на широкое использование и предлагается бесплатно.

Вычислительной средой для визуального языка программирования Visual Basic 2010 является платформа Microsoft .NET Framework 4.0 (Microsoft dot NET Framework 4.0), являющаяся неотъемлемым компонентом Windows.

В настоящее время версия Visual Basic 2010 является основной, от поддержки и сопровождения всех предыдущих разработок Visual Basic фирма Microsoft отказалась.

Чтобы избежать изучения нового языка для каждого из продуктов Microsoft начала включать элементы BASIC в макроязыки продуктов.

В результате была создана версия языка Visual Basic , названная Visual Basic for Applications (VBA ), которая реализуется во всех приложениях MSO 2003 и M SO 2007 (Word , Excel , PowerPoint и др.), в частности, для создания макросов.

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



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


Кадр из сериала "Кремниевая долина"


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


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

Зачем и где применяют визуальное программирование

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



Похожий инструмент от Google под название Blocky


Существует другой вид визуального программирования, более полезный на мой взгляд, это Data-flow programming. Он не такой гибкий как предыдущий и служит некоторой надстройкой для программирования процессов определенной тематики. Его суть состоит в манипуляции данными, передаваемыми между блоками (узлами).



Пример редактора узлов из Blender


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


Редактор узлов в Blender - именно тот случай, когда используется программирование потоков данных для управления рендерингом, создания шейдеров и текстур. Такой подход в 3D моделировании и рендеринге достаточно популярен, так как никому не хочется писать код, а создавать инструкции для нелинейного управления данными необходимо.


Также известный всем в сообществе 3D моделлеров это Substance Designer, который позволяет создавать 3D материалы по принципу, описанному выше.



Редактор для создания материала в Substance Designer


Хотя в официальных источниках упоминания о программировании нету, в нем используется самый настоящий data-flow. Наверное, это такой маркетинговый ход - не говорить о том, что может отпугнуть.


Итак, разобрались в том, почему визуальное программирование используется в 3D моделировании, но как насчет тех сфер деятельности, где без умения писать код не получится сделать достаточно функциональный продукт? Казалось бы, если умеешь писать код, то просто нужно развивать этот навык, но нет - именно в геймдеве одними из первых стали применяться инструменты для программирования без кодинга. С одной стороны, это было выгодно для популяризации геймдева среди тех, кого отпугивает код лишь одним видом, с другой - прогресс не стоит на месте и даже гуру программирования надоело ставить пробелы вместо табов чтение тысяч строк кода и его поддержка, и они решили попробовать новые методики описания логики и процессов.


Многие знают UE4 с его Blueprint"ом. Это уже не просто data-flow, а что-то большее, так как позволяет формировать инструкции, которые будут выполняться не за один проход, а в течении всего жизненного цикла.



Пример вывода строки по событию


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


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

Общие аспекты разработки редакторов узлов

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


Главное, от чего будет зависеть процесс разработки - платформа и технологии. В последнее время много чего можно сделать прямо в браузере, пусть даже пожертвовав производительностью, что в большинстве случаев никак не отразится на качестве приложения (в ином случае asm.js/wasm в помощь). Одна из особенностей таких приложений - они могут быть встроены в другие нативные приложения. Выбор инструментов и языков программирования должен быть в интересах разработчика, чтобы сделать процесс разработки более комфортным и эффективным и снизить вероятность выстрелить себе в ногу появления проблем.


Определившись с платформой и языком, было бы хорошо использовать готовые решения (в нашем случае речь идет о редакторе узлов), но и здесь не все гладко.
Есть несколько вариантов:

  1. вы используете готовое решение, которое вскоре окажется не таким подходящим и удобным, в придачу к этому вам лень не под силу подправлять его под себя
  2. написать свою реализацию, заодно изучив как это все работает изнутри и куда прикручивать колеса .
  3. использовать готовое решение, которое достаточно гибкое и позволяет без проблем настроить его под себя, не жертвуя при этом выгодными фичами для вашего продукта.
Проблема последнего в том, что это достаточно редкое явление, возникающее в последствии немалых усилий. Собственно, суть этой статьи и является в стимулирование достижения такого результата на примере представленной далее библиотеки.

Что такое D3NE

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



Узлы обычно представляют прямоугольниками (но можно это изменить в пределах вашей фантазии и возможностей CSS и HTML). Они могут иметь входы, выходы и контролы. Входы и выходы представляют сокеты и расположены в левой и правой части узла соответственно (опять таки вы можете их расположить как угодно, используя шаблоны).



Контролы нужны для того, чтобы добавлять в узлы произвольные элементы, а из них можно назначать данные к узлу на момент работы в редакторе (не при обработке данных). Например, с помощью простого поля ввода можно положить значение в узел, которое потом использовать при обработке.



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


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


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



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



Служит для обработки данных в узлах. Особенность в том, что ему нужны только данные, экспортированные из редактора, таким образом можно выполнять обработку узлов вовсе без наличия редактора (например, есть его реализация на С++). Именно этот компонент библиотеки отвечает за обход узлов, определяя с какого нужно начать обработку, вызывает ваши воркеры, передавая в них входные данные, полученные от предыдущих узлов. Может работать с асинхронными функциями, что не может не радовать на фоне поддержки браузерами async/await. Более того, за счет асинхронной обработки может параллельно выполнять несколько узлов.

Заключение

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


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


Чтобы убедиться в этом и проверить, как говорится, на себе все описанные возможности, вы можете построить на основе D3NE свой редактор визуального программирования.

Теги: Добавить метки



Рекомендуем почитать

Наверх