Quincy - среда для C++ разработчиков

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

Зачем рассказывать ещё об одной среде разработки, если очень много известных и широко распространённых - например, Visual Studio, Ultimate++, Bloodshed Dev-C++? Ну, мне кажется, поскольку все эти среды всё же кое-чем отличаются, и порой довольно существенно, то каждая из них будет интересна для определённой категории разработчиков. Если вам важна поддержка хорошего визуального редактора GUI, не важно, с какой библиотекой пользовательского интерфейса, то лучшим решением будет, пожалуй, C++ Builder. А если эта библиотека должна быть в обязательном порядке кросс-платформенной, и при этом элементы управления ещё и должны выглядеть на каждой платформе в "родном" платформенном стиле, то здесь, пожалуй, оптимальной будет связка из библиотеки wxWidgets1 и IDE Code:Blocks2.

Думаю, Quincy тоже приглянется кому-нибудь из тех, кто программирует на C++. Эта среда разработки, конечно, не столь гламурна, как Visual Studio, но и не столь аскетична, как RHIDE. Называется она, вообще-то, полностью Quincy 2005. Но дата релиза той версии, о которой я вам буду рассказывать, относится к февралю 2008 года, так что эта IDE ещё далеко не мертва в плане своей дальнейшей разработки. Найти "дом" этого программного продукта в Глобальной сети тоже довольно-таки просто: www.codecutter.net/tools/quincy. Там можно отыскать не только дистрибутив программы, но также и её исходный код - если, конечно, у вас есть достаточное количество времени и энтузиазма, чтобы с ним разбираться.

В общем-то, при старте и начале проекта среда разработки не очень впечатляет (особенно после последних двух версий Visual Studio; я имею в виду 2005-ю и 2008-ю). Но, в общем-то, красивый интерфейс никто никогда и не старался записать в главные достоинства такого специфического приложения, как среда разработки программ, а потому и мы этого с вами делать сейчас не будем. Всё, конечно, скромно, но, когда присмотришься, то и удобно.

Редактор кода своей расцветкой навевает ностальгию. Своей функциональностью, впрочем, тоже. Но, с другой стороны, C++ программисты пока не так избалованы хорошими IDE, как те, кто пользуется более современными языками (C#, Java, да и Delphi, в общем-то, тоже), а потому и менее требовательны к инструментам, которыми пользуются. Подсветка синтаксиса, которую обеспечивает редактор кода Quincy, а также автоматические отступы являются единственными помощниками разработчика в его неравной борьбе с тоннами исходников.

Но, в принципе, изначально среды разработки были придуманы совсем не для того, чтобы упростить программисту написание исходного кода. Эта функция появилась в них значительно позже, чем многие другие, и, в принципе, если вы привыкли к псевдографическим окнам и минимуму функционала классических C++'овых сред, то Quincy может вам даже больше импонировать, чем более "навороченные" IDE. Что же тогда самое важное в среде разработки? Думаю, большая часть читателей согласится с тем, что самое главное в среде разработки - это, конечно же, отладчик. И в Quincy этот важный инструмент представлен на весьма достойном уровне.

В качестве отладчика авторы этой среды разработки взяли популярный и надёжный GNU Debugger, хорошо зарекомендовавший себя при отладке в самых разных случаях. И, конечно же, из среды Quincy использовать этот отладчик гораздо удобнее, чем запускать его в stand-alone режиме. Среда поддерживает всё те хорошо знакомые любому программисту приёмы работы с отладчиком, которые появились ещё на самой заре становления интегрированных инструментов разработки приложений. Пошаговая отладка с заходом внутри процедур и без захода, выполнение функции до возврата значения, выполнение программы до достижения позиции текстового курсора, управление ходом отладки с помощью контрольных точек, быстрый просмотр значений переменных с помощью Watch List'а... Кажется, придумать что-то новое для отладчиков трудно, и, как видите, список возможностей отладки программ в Quincy с точностью до запятой повторяет "джентльменский набор" любой другой нормальной среды разработки. Так что наличие встроенного отладчика позволяет уже само по себе рекомендовать этот программный продукт тем разработчикам, которым не нужны какие-то сверхмощные средства для работы с исходным кодом.

Теперь, как мне кажется, стоит сказать буквально пару слов о такой детали, как работа с проектами. Многие о ней забывают - возможно, потому, что если проект небольшой (ну а большие проекты лучше делать в больших средах), то и специальные инструменты для управления всеми файлами, вроде как, не нужны. Но их наличие в определённые моменты всё же способно здорово облегчить разработчику жизнь, а потому присутствие подобных вещей в Quincy можно только приветствовать. Хотя данные инструменты явно не были приоритетными для создателей Quincy - вся работа с проектом заключается в возможности добавлять или убирать файлы, а также выбирать тип проекта, от которого зависит список стандартных используемых библиотек.

Вот, теперь добрались и до поддерживаемых библиотек. Список, чего уж там говорить, невелик, но довольно оригинален. В качестве стандартной библиотеки для создания пользовательского графического интерфейса разработчики Quincy предлагают использовать FLTK (Fast Light Toolkit), для двумерной графики - WinBGIm и koolplot, а для трёхмерной - конечно же, OpenGL (пожалуй, единственное не слишком удивляющее решение). Нужно сказать немного о каждой из этих библиотек, прежде чем рассказывать, как именно они поддерживаются в Quincy.

Fast Light Toolkit - это кросс-платформенная GUI-библиотека, работающая как под Windows, так и под POSIX-платформами (Linux, MacOS X и т.д. и т.п.). Как видно из названия этой библиотеки, при работе над ней разработчики старались добиться получения максимально компактных готовых файлов, чтобы эту библиотеку можно было статически компоновать с исполняемыми файлами. Через неё, кстати, реализуется и поддержка OpenGL с возможностью применения расширений GLUT.

WinBGIm - это нечто довольно-таки странное, и, на мой взгляд, такое, что должно использоваться лишь для обеспечения совместимости со старым программным кодом, а не для написания нового. Полное название этой библиотеки выглядит следующим образом: "Borland BGI Graphics emulation for the MingW (GCC port) Compiler". То есть, эта библиотека эмулирует древнюю графическую библиотеку от Borland. Думаю, не стоит опираться на столь старые технологии при создании сегодня новых приложений.

Небольшая библиотека koolplot предназначена для отрисовки двумерных графиков функций. К сожалению, полезность этой библиотеки ограничивается тем фактом, что в основе её работы лежит WinBGIm. Зато пользоваться ей легко. Следующая программа в три строчки строит график синуса:

#include "koolplot.h"
int main()
{
 Plotdata x(-3.0, 3.0), y = sin(x) - 0.5*x;
 plot(x, y);
 return 0;
}

Для создания графического интерфейса пользователя в комплект поставки Quincy входит приложение с замечательным названием FLUID. Оно помогает в визуальном режиме сконструировать интерфейс для того, чтобы программа, которую вы создаёте, была более дружелюбной к пользователю. Впрочем, если при запуске этого конструктора интерфейсов вы ожидаете увидеть что-то похожее на аналогичные инструменты из Visual Studio или #Develop, то, скорее всего, вас постигнет разочарование. Потому что FLUID менее красив, разумен и точен, чем конструкторы интерфейса из упомянутых сред разработки. Для создания окна нужно сначала создать функцию, у каждого элемента управления нужно будет вручную прописать служебные параметры, а потом ещё постараться это более-менее ровно расположить в окне. Но, в общем-то, для тех, кто не требует от интерфейса особенных изысков, этот конструктор будет и полезен, и удобен. Набор элементов управления небогат, но вполне функционален, а при известной сноровке можно создавать с помощью FLUID'а интерфейсы ничуть не хуже тех, что создаются в Delphi или Visual Basic'е.

Но FLUID - не единственный дополнительный инструмент в Quincy (кстати, и его, и остальные полезные приспособления можно найти в меню "Tools" главного окна среды разработки). Среди других интересных инструментов стоит, в первую очередь, отметить Code Beautifiler, который поможет быстро устранить огрехи в оформлении кода с использованием нескольких стандартных шаблонов оформления кода, или же с помощью своего собственного. Но, правда, для применения собственного шаблона придётся немножечко разобраться в том, каким именно образом он настраивается. Полезным инструментом также окажется инструмент для записи макросов - если структура программы такова, что вам приходится вбивать много однотипного программного кода, то эту процедуру можно немножко автоматизировать с помощью макросов, которые можно записать и проиграть всё в том же меню. Ну и, конечно, присутствует в среде классический инструмент Grep, осуществляющий поиск по файлам.

В отличие от множества других разработок из разряда open-source, Quincy не обделена такой полезной вещью, как справочная система. Она, конечно, не так велика, как MSDN, но вполне способна помочь разработчику справиться с некоторыми возникающими у него затруднениями. Да и вообще, лично я считаю, что присутствие справки, пусть даже и не очень подробной, просто хороший тон со стороны разработчиков программного продукта по отношению к своему пользователю.

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

Вадим СТАНКЕВИЧ,
[email protected]

Версия для печатиВерсия для печати

Номер: 

23 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!