Технологии, Архитектура, алгоритмы программы, Стек технологий - Разработка программы для реализации редактора временных графов синхронизации
Стек технологий
При выборе стека технологий основное внимание уделялось следующим факторам, в порядке убывания значимости:
- § Кроссплатформенность; § Поддержка взаимодействия с нативными библиотеками (C/C++); § Современные средства для создания графических интерфейсов пользователя с поддержкой аппаратного ускорения отрисовки; § Хорошая известность в сообществе разработчиков, то есть наличие хорошей документации и решений к часто встречающимся проблемам (не всегда тривиальным).
Qt Framework и QtQuick.
Единственным решением, которое проходит по всем поставленным критериям, является Qt Framework, на текущий момент самое полноценный инструмент для кроссплатформенной разработки. Последняя мажорная (5ая) версия предоставляет большое количество полезных возможностей.
Во-первых, есть QtQuick, позволяющий описывать интерактивные пользовательские интерфейсы с нетривиальной логикой при помощи декларативного языка разметки QML. QML использует подмножество JavaScript для логики интерфейса, вроде привязки действий к событиям, выполнения различных функций, обращения к модели данных и так далее.
Во-вторых, в последних минорных версиях значительно улучшилась поддержка интеграции с нативными компонентами родительской OS, таким образом, не смотря на полностью самостоятельный интерфейс (с самостоятельно нарисованными кнопками), у разработчика есть возможность вызвать нативный диалог сохранения файла или разместить на форме нативно выглядящие кнопки и флажки.
В-третьих, не смотря на возможность интеграции системных компонент, разрабатываемое с применением технологии QtQuick приложения является полностью независимым от платформы и может быть запущено под Windows, OSX, Linux, iOS, Android и так далее. К сожалению, QtQuick и JS не подходят для написания сложных вычислительных процессов, которые должны работать максимально быстро и эффективно расходовать память. Поэтому в части QtQuick реализовано лишь "лицо" программы.
Go lang.
Основная же часть кода написана на статически типизированном, компилируемом, высокопроизводительном языке программирования Go от компании Google, который стал доступен общественности совсем недавно, в 2011 году. Причиной этому послужили несколько факторов, например разработка с использованием Qt Framework идет на C++, когда дело доходит до внутренних механизмов прикладного приложения. C++, несомненно, имеет множество преимуществ с технической точки зрения, но на практике все перекрывается чрезмерной низкоуровневостью языка, медленной скоростью компилятора, запутанным стандартом и взамен C++ не дает ничего, что могло бы дать прикладному приложению с графическим интерфейсом какое-либо преимущество.
С языком Go ситуация другая. Сам язык разрабатывался с учетом опыта других языков программирования, вбирая в себя только то, что прошло проверку временем и доказало свою эффективность. Отличительными чертами Go являются прагматичность, малый размер стандарта, заморозка API стандартной библиотеки, быстрая скорость компиляции, runtime-производительность на уровне Java или C++, возможность низкоуровневых вызовов и компоновки с объектными файлами, полученными в результате компиляции C/C++.
В отличие от других языков программирования, легковесные потоки являются одним из базовых примитивов языка. Для синхронизации процесса выполнения различных частей программы между собой и для обмена данными в языке применяются каналы. Эти возможности активно использовались при разработке приложения.
Go-qml.
В компании Canonical с 2012 года планомерно идет перевод нескольких крупных проектов с Python на Go, и одновременно c этим Qt Framework является базой для многих клиентских разработок Canonical, начиная от библиотек интеграции с обачными сервисами, заканчивая прикладными приложениями рабочего стола. Важность и возможность взаимодействия Go и Qt сыграли свою роль и усилиями сотрудника компании появился инструмент go-qml, позволяющий производитеь операции с Qt-объектами и реализующий необходимые "мосты" для запуска QtQuick с логикой на стороне Go. Таким образом, выбранный стек технологий позволяет создать пользовательское приложение, одинаково работающее на трех основных OS, использующее самый продвинутый инструментарий разработки GUI и один из современных и перспективных языков для внутренней логики.
Похожие статьи
-
Обоснование выбранного метода При дизайне системы согласно требованиям или при оптимизации существующей необходимо ввести модель, позволяющую не только...
-
Одним из самых важных начальных этапов при разработке ПО является выбор технологического стека, с помощью которого будет происходить разработка продукта....
-
Приложение разрабатывается в соответствии с паттерном проектирования Model-View-Presenter (MVP), который является производным от Model-View-Controller...
-
Сравнение аналогов - Разработка программы для реализации редактора временных графов синхронизации
Поскольку конечной целью работы был редактор сетей Петри, интегрированный с внешней библиотекой алгебраических вычислений, было рациональным рассмотреть...
-
Инструментарий технологии программирования - программные продукты поддержки (обеспечения) технологии программирования. В рамках этого направления...
-
Предлагаемая библиотека хранит все данные в отдельных таблицах, таким образом он не обязан использовать ту же СУБД, что и основное приложение. В качестве...
-
Можно выделить три основных метода разработки программного обеспечения: 1. Конструкторы программ (Аlgoritm2, Devel Studio, MnCreator, Game Maker и др.)....
-
Заключение - Разработка программы для реализации редактора временных графов синхронизации
Результатом выполнения задания является реализованный редактор временных графов синхронизации (класс временных сетей Петри), соответствующий задачам,...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
В этой главе представлено описание инструментов и методов, использованных при написании кода программы. Инструменты разработки серверной части Для...
-
Сеть Петри это двудольный направленный граф с маркировкой, ребра которого задают причинно-следственные отношения "события-условия" и именуются дугами....
-
Множество D с двумя заданными на нем операциями (плюс) и (умножение) называется диоидом, если выполнены следующие аксиомы: § Ассоциативность. §...
-
Введение - Разработка программы для реализации редактора временных графов синхронизации
Математическое моделирование дискретно-событийных динамических систем является относительно молодым направлением науки теории управления. Разработка...
-
Разработка с "нуля", Выбор метода разработки - Различные виды программ для Multi-Touch столов
Разработка приложения на каком-либо языке с нуля достаточно трудоемкий процесс, так как в случае создания интерфейсов понадобиться множество времени для...
-
Технологии Hadoop - Технологии больших данных: анализ и выбор решения для реализации проекта
Продукт Apache Hadoop является свободной Java-платформой на обычном оборудовании. Проект был рожден посредством обработки материалов Google File System и...
-
Выбор программ и алгоритмы реализации базы данных - База данных "Кинотеатр"
Microsoft Office Access - мощное приложение Windows. При этом производительность СУБД органично сочетаются со всеми удобствами и преимуществами Windows....
-
Пример с tegview ¦ L-- qml ¦ +-- tegrender. js ¦ L-- tegview. qml +-- tegview ¦ +--...
-
Общее описание программного обеспечения, реализующего разработанный алгоритм Основной идеей дипломного проекта, является реализация алгоритма...
-
Поворот точки относительно центра на заданный угол: X = o. X + (p. X-o. X) * cos(angle) - (p. Y-o. Y) * sin(angle) Y = o. Y + (p. X-o. X) * sin(angle) +...
-
Приложение, которое необходимо разработать, должно производить геометрическую реконструкцию сцены и вычисление цвета вершин модели. Для геометрической...
-
При разработке практически всех инструментальных средств за основу принимается методология автоматизации проектирования на базе использования прототипов....
-
Обоснование выбора средств для разработки В качестве платформы была взята платформа NET, потому что платформа NET на текущий момент самая передовая и...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Разработка сайта, Среда разработки web-сайта - Разработка сайта для компании
Среда разработки web-сайта При разработке web-сайта используются: - HTML - язык разметки web-страниц; - CSS - формальный язык описания внешнего...
-
Решения компании IBM - Технологии больших данных: анализ и выбор решения для реализации проекта
Технологии анализа больших данных являются прекрасным дополнением к средам хранения больших данных. Множество применений включает в себя, например,...
-
Для осуществления первой задачи данной работы был проведен проведение подробный анализ семи наиболее распространенных технологий работы с Большими...
-
Язык программирования R - Технологии больших данных: анализ и выбор решения для реализации проекта
Язык программирования R является универсальным и разработан для применения в следующих областях: разведочный анализ данных, классические статистические...
-
Ввиду того, что для языка JAPE не предусмотрен специализированный редактор, разработчики рекомендуют использовать Vim[10] или Eclipse[11], ассоциировав...
-
В нашей курсовой работе была поставлена задача создания обучающей программы по информатике, с помощью которой студенты смогут проверить свои знания в...
-
Программная модель данных, получившая название "MapReduce", была создана несколько лет назад в компании Google, и там же была осуществлена первая...
-
Литература - Разработка программы для реализации редактора временных графов синхронизации
1. Авдошин С. М. Оптимизация гибких производственных систем // 1987. 2. Лескин А. А. Алгебраические модели гибких производственных систем // 1986. 3....
-
Для реализации поставленной задачи методом конечных элементов будут использованы следующие программные обеспечения (ПО): - MATLAB - ПО и одноименный язык...
-
Общие сведения о программе Программа разработана для демонстрации возможностей языка C++ и может использоваться для пользователей, которые не знакомы с...
-
Реализация, Composer - Программа расчета агрегатов по накапливающимся данным для построения отчетов
Для эффективного тестирования и демонстрации библиотеки было решено разработать PHP-приложение, состоящее из: 1. Менеджера зависимостей composer; 2....
-
Инструменты разработки - Разработка программного приложения "Калькулятор коммунальных услуг"
Инструментами разработки для программного приложения будут являться: - визуальная среда проектирования Microsoft Visual Studio 2008; - Microsoft...
-
Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии...
-
Для программирования агентов могут применяться: универсальные языки (Java, C++ , Visual Basic и др.), языки представления знаний (SL, KIF), языки...
-
Выбор мобильной платформы и изучение инструментов разработки - Исследование алгоритмов
Практическая реализация алгоритмов, представленных в предыдущих пунктах, предполагает: 1) Выбор мобильной платформы; 2) Изучение соответствующей среды...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
В качестве доступного инструментария были рассмотрены две открытые кроссплатформенные библиотеки для разработки C++ приложений WxWidgets и Boost ,...
Технологии, Архитектура, алгоритмы программы, Стек технологий - Разработка программы для реализации редактора временных графов синхронизации