Блог → Углубимся в историю: Borland Kylix 3 и C++. Часть 1

На рубеже третьего тысячелетия компания Borland, ещё не будучи поглощённой Micro Focus, выпускала новые версии Kylix с поистине спринтерской скоростью. Судите сами - не прошло и полутора лет с момента выхода самой первой версии, а программистской общественности уже был представлен Kylix 3. К чести Borland необходимо сказать, что все выпущенные версии Kylix отличались не только цифрой в номере, этим микробом разработчики софта заразились несколько позже. И если первый Kylix представлял собой достаточно простое средство разработки на Object Pascal (впрочем, с более чем полноценной системой визуального программирования и великолепным редактором кода), то Kylix 2 уже научился создавать приложения на web-службах, работать со скриптами на стороне сервера и объектами CORBA. Впрочем, третья версия оказалась ещё более революционна, чем её предшественница. О ней, собственно, и пойдёт речь!

Разумеется, прежде всего, говоря о нововведениях, увидевших свет в Kylix 3, следует отметить возможность создания программ на языке C++. Kylix 3 поставлялся сразу с двумя IDE - одной для программирования на Delphi Language (так в Borland стали именовать Object Pascal в том виде, в котором он реализован в Delphi), другой - на C++. Таким образом, третью версию Kylix можно было рассматривать как Delphi и C++ Builder для Linux "в одном флаконе". Но давайте обо всем по порядку.

Итак, основные факты. Как и предыдущая версия, Kylix 3 поставлялась в трёх вариантах: Enterprise, Professional и Open (около 190 компонентов CLX в первом варианте, около 165 - во втором и около 75 - в третьем). К новшествам, реализованным во всех вариантах относятся:
• Две среды разработки - для Delphi Language и C++.
• Поддержка инструкций Pentium 4 во встроенном ассемблере.
• Предварительная компиляция заголовочных файлов C++ (precompiled headers) для ускорения компиляции приложений.
• Функция автоматической генерации make-файлов для проектов C++ и консольный компилятор BC++ (хотя обзор "Borland Kylix 3 features" обещал данную функцию только в платных вариантах IDE, вышедший чуть позже Kylix 3 Open Edition также включал эти возможности).
• Новая вкладка System палитры компонентов, содержащая визуальные компоненты, облегчающие управление файловой системой (отображение содержимого каталогов в различных форматах, создание списка ранее открытых файлов и фильтров файловых типов). Опыт показывает, что подобные функции требуются приложениям самых разных типов, так что разработчики по достоинству оценили новые компоненты.
• Новый механизм взаимодействия с интерфейсом Qt library (кроме уже знакомых пользователям Kylix 2 библиотек libqt.so.2.3.0 и libqtintf-6.9-qt2.3.so, сохранённых, очевидно, ради обратной совместимости, в каталоге kylix3/bin появилась новая библиотека lib-borqt-6.9.0-qt2.3.so. Эта библиотека полностью инкапсулировала интерфейс Qt library и была призвана облегчить распространение Kyiix-приложений отдельно от среды разработки. Те, кто работал с прежними версиями Kylix, знают, что использование библиотеки libqt.so.2.3.0 из поставки Kylix могло привести к конфликту с системной библиотекой Qt library, так что библиотеку libqt для Kylix-приложений приходилось размещать в специальном каталоге и либо вносить изменения в переменную LD_LIBRARY_PATH, либо запускать файлы приложения из специального скрипта. Теперь же библиотеку libborqt можно было смело размещать в каталоге /usr/lib и запускать приложения Kylix без какой-либо дополнительной настройки. Впрочем, Kylix-приложения можно заставить работать и по прежней схеме. Для этого, в случае с Delphi IDE, следовало установить переменную окружения CLX_USE_LIBQT, а в случае с C++ IDE использовать директиву #define CLX_USE_LIBQT.

Среди новшеств, реализованных только в платных версиях Кайликса, наибольшего внимания заслуживали следующие:
• Встроенный отладчик web-приложений Web Арр Debugger.
• Добавление механизма Code Completion (автоматическое завершение кода) в редактор HTML.

Кроме того, были усовершенствованы и многие функции, реализованные в прежних версиях Borland Kylix, например, была расширена поддержка SOAP-приложений. При работе с Kylix-интерфейсами SOAP теперь задействована проверка типов и синтаксиса, а также технология Code Insight (набор функций, облегчающий и ускоряющий ввод и редактирование кода). Также были добавлены новые средства для работы с данными в формате XML, введена поддержка формата XSL (в том числе компонент XSLPageProducer) и добавлены возможности разработки интернет-приложений. Возможности последних был расширены также благодаря включению в поставку Kylix новой версии пакета Nevrona Indy 9.1. Кроме уже знакомых страниц Indy, в палитре компонентов появились две новые: Indy Intercepts, содержащая компоненты, отслеживающие обращения к серверам и позволяющие вести файлы журнала (log files) и Indy IO Handlers, на которой расположены компоненты, управляющие передачей данных в распределенных приложениях, в том числе с использованием SSL.

Что ещё? Были усовершенствованы компоненты OpenDialog и SaveDialog. Набор dbExpress пополнился драйверами баз данных Oracle 9i, IBM и Informix. В окне New Items добавлена страница Web Documents, на которой размещены команды создания заготовок основных типов web-документов. Эта функция может быть полезна при использовании в приложении компонентов-генераторов страниц (Page Producers). Кое-какие изменения коснулись и "наружности" IDE:
• появилось хорошо знакомое пользователям Delphi окно Object TreeView;
• в окне редактора кода добавлена новая страница Diagram, позволяющая автоматизировать создание диаграмм, иллюстрирующих связи между компонентами приложения.

Говоря о Kylix 3 Open Edition, стоит отметить и ещё один приятный факт: редактор исходного кода в бесплатном варианте Kylix отныне не уступал по функциональности редактору кода платных вариантов. Возможности по разработке CORBA-приложений в Delphi Language IDE не претерпели существенных изменений (пользователям варианта Enterprise в качестве бесплатного дополнения обещан VisiBroker 4.5), а вот C++ IDE лишена средств работы с CORBA. Впрочем, как компания планировала выпустить пакет поддержи CORBA для Kylix for C++ ближайшей осенью (что и было сделано), и такая поддержка станет доступна зарегистрированным пользователям Kylix 3 Enterprise.