Информационные технологииStfw.Ru 🔍

Обзор C++ IDE

Андрей Боровский
🕛 17.09.2009, 14:00
Прежде всего, в C++, в отличие от Java, Delphi и .NET, отсутствует стандартная библиотека классов (есть библиотека шаблонов, но это не то же самое). Результатом отсутствия стандартной библиотеки классов стало то, что каждая IDE содержит собственную библиотеку (или не содержит никакой). То, что C++ является «language of choice» для большинства современных ОС, не всегда упрощает программирование. На каждой платформе есть свой «родной» компилятор (и основанная на нем IDE), а при использовании других IDE на той же платформе часто возникают сложности. Примером проблем, с которыми сталкиваются программисты, использующие разные средства разработки C++ на одной и той же платформе, может служить несовместимость внутренних форматов. Разные компиляторы C++ используют разные форматы объектных файлов. Кроме того разные компиляторы по-разному кодируют имена функций. C++ допускает наличие в одной области видимости нескольких функций с одинаковыми именами, но с разным списком параметров (перегрузка функций). Для того, чтобы эти функции различались при генерации кода, к имени функции добавляется строка символов, кодирующих список ее параметров. В результате, даже если два компилятора C++ используют один и тот же формат объектных файлов, один компилятор как правило бывает неспособен прочитать информацию о классах, созданных другим компилятором. Разнобой форматов приводит к тому, что функции из разделяемых модулей почти всегда экспортируются в формате C (который не поддерживает перегрузку и кодирование имен). С подобными проблемами не приходится сталкиваться ни в случае Java, ни в случае .NET.

Обзор бесплатных IDE для Windows мы начнем с Microsoft IDE, которые, по идее, должны быть наиболее подходящими для программирования в Windows.

Microsoft Visual С++ 2005 Express Edition


Компания Microsoft лишь недавно присоединилась к другим компаниям, выпускающим, наряду с коммерческими, бесплатные варианты своих IDE. На момент написания этой статьи Visual Studio 2005 Express Edition находился на стадии бета-версии, которая и рассматривается (рис.1). В состав Visual Studio 2005 входит, естественно, не только C++ IDE. О некоторых других компонентах пакета речь пойдет в следующих статьях.

Visual C++ 2005


Первое, с чем сталкивается пользователь, желающий установить Visual Studio 2005 Express Edition, - это существенный расход сетевого трафика. Для экономически благополучных стран это может быть и не важно, но для отечественного программиста (особенно индивидуального или начинающего) сотни мегабайт трафика имеют значение. Для того, чтобы установить любой из компонентов Visual Studio 2005 Express, нужно сначала скачать и установить .NET Framework 2.0 Beta и .NET Framework SDK 2.0 Beta. И если дистрибутивы .NET Framework 2.0 можно скачать, а потом установить или переустановить на несколько машин, то компоненты Visual Studio 2005 Express можно устанавливать только в онлайне. Это значит, что если вы хотите установить Visual Studio 2005 Express на несколько машин, трафик вырастет пропорционально, а для тех, кто подключается к Сети через диал-ап, установка Visual Studio 2005 Express может стать просто нереальной. Схема, применяемая Microsoft, отличается (и, по-моему, не в лучшую сторону) от схемы Borland, при которой можно скачать дистрибутив продукта, а потом отдельно зарегистрировать несколько бесплатных лицензий. Кроме того, необходимость устанавливать компоненты Visual Studio 2005 Express в онлайновом режиме означает, что если во время установки связь будет разорвана, весь процесс скорее всего придется начинать заново.

Но это еще не все. Для того, чтобы иметь возможность разрабатывать что-либо помимо консольных приложений, использующих стандартную библиотеку C++, необходимо загрузить и установить Win32 Platform SDK. Таким образом, общий объем закачки составит около 400 Мб (без учета дополнительных компонентов Visual Studio 2005, о которых сказано ниже). Кроме C++ IDE в состав Visual Studio 2005 Express входят .NET IDE, фрагменты MSDN 2005 и (на данный момент) бета-версия SQL Server 2005 Developer Edition. От установки любого из этих компонентов можно отказаться.

Возможности самой IDE весьма заметно урезаны. Так например, несмотря на то, что вкладка менеджера ресурсов в IDE присутствует, при ее открытии сообщается, что Express Edition не поддерживает редактирование ресурсов.

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

Borland C++ BuilderX


Года два назад компания Borland выпустила серию IDE, не похожих на предыдущие продукты Borland. Основным отличием новых продуктов, к названию которых добавилась буква X, был отказ от использования встроенных компиляторов. Внешний вид IDE тоже сильно изменился (рис. 2).

Borland С++ Builder X


В линейке продуктов Borland С++ BuilderX представлен и бесплатный Borland С++ BuilderX Personal. Эта IDE лишена средств визуального программирования. В качестве компиляторов можно использовать Borland C++ Compiler и MinGW (порт компилятора GCC для Windows). Кроме того имеется возможность подключить сторонний консольный компилятор (например, из Win32 SDK). В состав дистрибутива C++ BuilderX Personal также входят фрагменты Win32 SDK. На сайте Borland можно загрузить SDK для некоторых мобильных устройств, которые также интегрируются с C++ BuilderX. Бесплатная IDE от Borland поддерживает средства коллективной работы и контроля версий исходных текстов. Важная деталь: лицензия BuilderX Personal не позволяет создавать программы для распространения на коммерческих условиях.

Возможности самой IDE C++ BuilderX Personal можно назвать «спартанскими». Редактор исходных текстов не поддерживает автоматическое завершение кода. В комплект поставки входят два отладчика (DBK и GDB), но работать с ними не так удобно, как со встроенными отладчиками. Из приятных мелочей стоит отметить окно History (упрощенный вариант контроля версий исходных текстов) и средство массового редактирования идентификаторов (если в выделенном фрагменте текста изменить идентификатор в одной из строк, соответствующий идентификатор будет изменен во всем выделенном фрагменте). Ввод/вывод консольных приложений выполняется в специальном окне IDE, что тоже удобно.

До сих пор была выпущена только одна версия C++ BuilderX (1.0). По-видимому Borland признала этот продукт неудачным, так как недавно было объявлено, что в будущем C++ Builder будет интегрирован в пакет Delphi (в который уже интегрирован C#) и вновь обретет черты «классического» C++ Builder (вероятно, вся серия «X» была признана не очень удачной, так как на смену JBuilderX уже выпущен JBuilder 2005, более похожий на предыдущие версии JBuilder).

Dev-C++


Эта IDE, распространяемая на условиях GPL, является оболочкой вокруг пакета MinGW (рис.3).


Для GPL-IDE набор функций и возможностей Dev-C++ оказался неожиданно богат: автоматическое завершение кода, специальное окно для просмотра значений переменных в процессе отладки, редактор ресурсов, окно состояния процессора.

Используемый в IDE компилятор GCC из MinGW вполне подходит для создания приложений профессионального уровня, хотя «для полноты картины» можно было бы добавить в качестве опции и поддержку компилятора из Win32 SDK. Поддерживаются отладчик и средство управления версиями из пакета MinGW (соответственно GDB и CVS). В общем и целом можно сказать, что MinGW, используемый как в Dev-C++, так и в C++ BuilderX, демонстрирует успешную экспансию инструментария Linux на платформу Windоws.

Если плюсом продуктов Microsoft является тесная интеграция с ОС Windows, то преимуществом IDE от Borland и открытой IDE Dev-C++ является более высокая кросс-платформенность, связанная с кросс-платформенностью инструментов MinGW. Впрочем, о кросс-платформенности будущих средств разработки от Borland говорить трудно, так как компания не отличается последовательностью в этом вопросе.

Си: C/C++   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉