Новости

Как правильно применять в JavaScript асинхронные функции: примеры работы с ES 2017
От автора: возможность писать на JavaScript асинхронные функции является важным обновлением в ES2017. Что такое асинхронные функции? Асинхронные функции — это функции, которые возвращают promise. Мы

WordPress JavaScript — как правильно подключить файл скрипта к шаблону сайта
Использование в шаблонах WordPress JavaScript скриптов давно стало обычным делом. Их подключение возможно несколькими способами, начиная с классического варианта с использование голого HTML. Но чтобы все

Как исправить JavaScript error "ВКонтакте"? Что делать при ошибках JavaScript в "ВКонтакте"?
"ВКонтакте" - это на сегодняшний день самый удобный русскоязычный ресурс, который является не только популярнейшей социальной сетью, но и сервисом для прослушивания аудиозаписей и просмотра видео. Здесь

Правильное использование Tor Browser
Tor Browser полностью анонимен – Миф или реальность? Многие считают, что Tor — это полностью анонимное и безопасное средство для интернет-серфинга, которое не дает никому возможность контролировать то,

Javascript error object is not a function вконтакте как исправить
"ВКонтакте" - это на сегодняшний день самый удобный русскоязычный ресурс, который является не только популярнейшей социальной сетью, но и сервисом для прослушивания аудиозаписей и просмотра видео. Здесь

Как исправить ошибку javascript error вконтакте
На сегодняшний день «Вконтакте» является наиболее удобным русскоязычным ресурсом, который представляет собой не только крупнейшую социальной сеть, но и сервис для просмотра видео и прослушивания аудиозаписей.

Что такое JavaScript и для чего он используется?
Подробности декабря 10, 2015 Просмотров: 20225 В интернете миллионы веб-страниц,

Практика javascript синтаксис написания
Javascript — это язык программирования, который активно используется для построения динамических веб страниц. Собственно с этой целью он и был изобретен. У нашего с вами языка еще есть такое интересное

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

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

Ultimate++

Опубликовано: 01.09.2018

видео Ultimate++

Denzel Curry- Ultimate (Lyrics)

Больше, чем просто хорошая среда разработки

Уже не один раз на страницах "Компьютерных вестей" я рассказывал о разных средах разработки для разных языков программирования, о коммерческих и свободных программных продуктах этого класса. Сейчас расскажу ещё об одной среде разработки для C/C++, имя которой - Ultimate++. Но, хочу предупредить сразу: эта среда разработки - нечто большее, чем простой редактор программного кода.


Denzel Curry - Ultimate (Full Video)

Эта IDE (Integrated Development Environment - интегрированная среда разработки) полностью бесплатная, или, как любят говорить линуксоиды, свободная. Найти её во Всемирной сети можно по адресу www.ultimatepp.org . Размер дистрибутива зависит от нескольких факторов. Во-первых, от платформы, для которой предназначена данная сборка, а во-вторых, от того, входит ли в дистрибутив компилятор. Однако вариации сравнительно невелики - несколько мегабайт. Дистрибутив для Win32, вместе с компилятором MinGW (Minimalist GNU for Windows - версия компилятора C++ от GNU), "весит" около 14 Мб.


Denzel Curry - Ultimate (BADBADNOTGOOD SESSIONS OFFICIAL VIDEO)

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

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

Как средство кросс-платформенной RAD-разработки, Ultimate++ выглядит довольно солидно. Во многом это достигается благодаря инструментам создания пользовательского интерфейса. Они в Ultimate++, на мой взгляд, ничуть не хуже, чем аналогичные в других бесплатных средах разработки, а местами даже и лучше. "Формочки", как и во многих других RAD-средах, сохраняются в отдельных от самого кода файлах и используют собственную библиотеку визуальных компонентов. В отличие, например, от Code::Blocks, о которой я рассказывал на страницах газеты, Ultimate++ использует собственную библиотеку для проектирования пользовательского интерфейса (в Code::Blocks используется библиотека wxWidgets, о которой я уже писал ). Собственно, библиотека виджетов Ultimate++ заслуживает того, чтобы поговорить о ней отдельно.

Эта библиотека выделяется в лучшую сторону среди многих подобных библиотек (особенно тех, что созданы энтузиастами-одиночками). Начинаются отличия уже с количества доступных разработчику элементов управления. Их много, и для удобства они разделены на три "пакета": стандартный (CtrlLib), RichEdit-контролы и SQLCtrl. Первый пакет включает в себя обязательные кнопочки, однострочное и многострочное поля ввода текста (а также чисел, даты и времени), списки разных мастей, полосы прокрутки, чекбоксы, меню, прогрессбары, древовидные списки, разделители, закладки, панель инструментов... В общем, что называется, джентльменский набор. В нём же присутствуют и более интересные элементы управления. Например, пять (!!!) различных контролов для выбора цвета. Ещё есть список файлов, компонент для отображения справки и компоненты для показа форматированного текста. Для редактирования этого текста же имеется отдельный пакет. В него входят непосредственно редактор (в двух вариантах: с панелью инструментов и без неё), линейка и специальный комбобокс для типографических настроек. Пакет SQLCtrl содержит в себе не элементы управления, а просто классы для работы с базами данных. Однако, тем не менее, их разработчики решили поставить наравне с визуальными контролами и выделили в отдельный пакет. Полный список со скриншотами всех элементов управления легко найти на сайте разработчиков. Ссылка на него такая: www.ultimatepp.org/src$CtrlLib$index$en-us.html .

Правда, как и все RAD-библиотеки, библиотека Ultimate ++ не лучшим образом влияет на размеры получаемых приложений. Но, конечно, до многих монстров (особенно коммерческих) ей далеко. Например, скомпилированный пример Puzzle с оптимизацией по размерам занимает 980 Кб (данные с сайта Ultimate++). Как отмечают разработчики, средний размер исполняемого файла полнофункционального приложения, при создании которого используется библиотека Ultimate++, будет 2-3 Мб. Сама среда разработки, созданная, естественно, при помощи этой же библиотеки, занимает 3,5 Мб (речь идёт об исполняемом файле - EXE). То есть, на самом деле не так уж и много. Но авторы всё равно защищаются справедливым замечанием о том, что производители предлагают не так уж много моделей жёстких дисков размером менее 20 Гб.

Судя по всему, библиотека использует стандартные платформенные API для отображения элементов управления. Но для разных платформ они реализованы на разном уровне. В этом плане самое лучшее положение у Windows. Для Linux и FreeBSD библиотека, по словам разработчиков, "стабильна и завершена". А вот MasOS и Windows CE повезло меньше. Для них библиотека виджетов только разрабатывается. В далёком будущем авторы планируют поддержку Solaris.

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

Эта часть проекта Ultimate++ тоже выглядит весьма достойно. Редактор кода обычный, с подсветкой синтаксиса и разными полезными подсказками, без которых уже сложно представить жизнь современного программиста. Подсвечиваются открывающие и закрывающие скобки, чтобы в них не запутаться, причём как круглые, так и фигурные. Сбоку, как и во всех других средах разработки, находится дерево с файлами проекта, так что переключаться между ними достаточно удобно. Редактирование кода и конструирование интерфейса происходит в одном окне, и, поскольку программа поддерживает в нём вкладки, то это по ощущениям не сильно отличается от работы в тех же Delphi или Visual Studio. Для навигации по коду присутствуют дополнительные средства. Их можно найти в меню "Assist" под пунктами "Navigate in the file" и "Navigate". Первая команда покажет окно, которое легко позволит перемещаться среди функций и методов редактируемого в данный момент файла, а второе даст такие же возможности, но уже для всех файлов проекта и для загруженных в данный момент в среду пакетов. Что приятно, так это то, что в окне навигации методы можно отфильтровать по начальной букве. Правда, если бы это окно было реализовано как панель в главном окне, доступ к нему был бы быстрее. Хотя, вероятно, это загромождало бы главное окно, что тоже отнюдь не хорошо. В принципе, за счёт горячих клавиш доступ к окнам навигации тоже довольно скор.

Естественно, среда разработки Ultimate++ имеет встроенные возможности отладки. Отладка - настолько важный этап создания любого программного продукта, что, казалось бы, глупо даже вспоминать о её присутствии в IDE. Но, тем не менее, достаточно большое количество средств разработки не имеют встроенных в среду отладчиков, и это на самом деле очень плохо. Так что просто замечательно, что Ultimate++ не из этой песочницы. В этой среде присутствуют стандартные возможности отладки: пошаговое выполнение, установка точек останова, запуск при этом приложения с определёнными параметрами.

Среда разработки, по словам её создателей, прекрасно работает с двумя разными компиляторами C++: MinGW и Microsoft Visual C++ Compiler. Но если MinGW можно скачать прямо в комплекте поставки Ultimate++, то с компилятором от "Мелкомягких" придётся разбираться самостоятельно. Впрочем, настроить среду таким образом, чтобы она нашла общий язык с этим компилятором, - дело, по словам разработчиков Ultimate++, одной-двух минут. Поддерживаются седьмая и восьмая версии Visual C++ Compiler. Но это, конечно, только для тех, кто программирует под Windows. Для Linux и FreeBSD единственный и безальтернативный компилятор - GCC. Впрочем, не думаю, что использовать при программировании под эти платформы какой-то другой компилятор C++ - удачная идея.

Среда разработки использует технологию BLITZ для ускорения сборки проектов. По словам создателей Ultimate++, это ускоряет сборку проектов примерно в четыре раза, по сравнению с обычными методами организации этого процесса. Ещё, что касается сборки - среда умеет генерировать make-файлы, так что проекты, созданные с помощью Ultimate++, можно смело включать в процесс автоматической сборки продукта. Среди других инструментов, имеющихся в арсенале Ultimate++, в первую очередь, хочется отметить Topic++ - средство создания справочных систем для документирования как самого кода, так и разрабатываемых приложений. В этом инструменте можно на практике проверить возможности контролов для работы с форматированным текстом из стандартной библиотеки Ultimate++. Возможности, надо сразу сказать, не самые плохие.

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

Select(NAME, SURNAME).From(PERSON).Where(PERSONID == personid);

Для работы с запросами и данными библиотека Ultimate++ предоставляет специальные классы и типы данных, которые дают возможность работать с SQL-запросами так, как показано выше. Вот ещё один пример работы с запросами к базе данных.

Sql sql; sql * exp; while(sql.Fetch()) { Sql sqlu; sqlu * Update(PERSON)(SALARY, SALARY + 100).Where(PERSONID == sql[0])}

Выполнение запроса осуществляется оператором *, после чего уже можно работать с его результатами.

Конечно, об Ultimate++ можно говорить ещё долго. Но, думаю, гораздо интереснее будет увидеть его собственными глазами. Потому что среда разработки и всё к ней прилагающееся действительно сделаны качественно и заслуживают того, чтобы ими пользовались. Не так уж много средств кросс-платформенной RAD-разработки, да ещё и таких, которые одинаково хорошо позволяли бы проектировать пользовательский интерфейс, работать с базами данных и создавали бы родной для платформы код, способный обеспечить быстрое выполнение приложения. Поэтому Ultimate++ (а ведь этот программный продукт ещё и бесплатен!) занимает совершенно особое место среди всевозможных инструментов для разработки приложений на C++.

Вадим СТАНКЕВИЧ

rss