IZONE- http://www.izcity.com/- бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Borland Kylix 2

В начале (а точнее, весной) 1999 года всемирно-известная компания Borland (создатель таких средств разработки как C++ Builder, Delphi, Jbuilder) провела на своем сайте анкетный опрос с целью оценить, насколько высоким спросом будет пользоваться продукт, назначение которого заключается в переносе приложений, разработанных на Delphi для ОС Windows, на платформу Linux. Видимо, результаты опроса удовлетворили компанию, так как сразу же после него началась работа над Kylix — одним из самых неординарных проектов в истории Borland.

Так что же собой представляет Borland Kylix? Это первая RAD(Rapid Application Development — Быстрое Создание Приложений)-среда разработки для Linux, которая во многом идентична Delphi для Windows (часто ее даже называют «Delphi для Linux»). Но Kylix имеет ряд отличий от своего Windows-аналога (в частности, отсутствие поддержки VCL, библиотеки компонентов, используемой всеми версиями Delphi и внедрение на замену ее библиотеки CLX). Этот продукт, как уже описывалось выше, предназначен для разработки кроссплатформенных приложений, а также переноса Delphi-программ для Windows на систему Linux. Kylix (как и Delphi) обладает мощными средствами для разработки интернет-приложений и работы с базами данных.

Наверняка многие читатели были знакомы с Delphi, и учитывая тот факт, что Kylix является, можно сказать, Delphi для Linux, то все сказанное о этом продукте будет на 99% правдой и для Kylix. Я не буду в этой статье детально описывать возможности Kylix, а остановлюсь конкретно на функциональных различиях между этими двумя средами разработки.

Основная особенность Kylix заключается в том, что эта среда разработки не поддерживает библиотеку VCL (Visual Components Library — Визуальная Библиотека Компонентов), которую использовали все версии Delphi. Windows и Linux являются принципиально разными операционными системами, соответственно, многие компоненты VCL имеют жесткую привязку к платформе Win32 и не смогут работать в Linux. Для решения этой проблемы компания Borland создала совершенно новую библиотеку компонентов — Borland Component Library for Cross Platform (CLX). Компоненты этой библиотеки поддерживаются как в Windows (начиная с Delphi версии 6), так и под Linux. В CLX появилось множество новых возможностей, облегчающих процесс кроссплатформенной разработки, в частности, возможность использования условных указателей при компиляции (Delphi использует при компиляции одни библиотеки, а Kylix — другие). Например:

Даже человеку, который не знаком с синтаксисом языка Pascal, должно быть понятно, что при запуске из среды Linux программа будет компилироваться с использованием библиотек, указанных в разделе {$IFDEF Linux}, а при запуске из Windows — совершенно других, указанных в разделе {$ELSE}.

Библиотека CLX содержит несколько групп компонентов:

VisualCLX — Основные кроссплатформенные компоненты. Свойства компонентов в этой области могут несколько разниться в Linux и Windows.

DataCLX — Содержит компоненты, которые позволяют работать с базами данных.

NetCLX  — Содержит Internet компоненты, в частности набор компонентов Indy (Internet Direct) компании Nevrona Design .

RTL — Библиотека Runtime Library.

Конечно, как и любой другой продукт, библиотека CLX не лишена и ряда недостатков. Для VCL на данный момент имеется огромное количество компонентов сторонних разработчиков, чего нельзя сказать о CLX. Многие компоненты, которые часто используются в Windows-приложениях, в CLX попросту отсутствуют, что затрудняет перевод приложений, использующих VCL, на новый стандарт.

Компания Borland также акцентировала внимание на тесной интеграции Kylix 2 и Delphi 6. Интерфейс продуктов внешне идентичен во всем, начиная от оформления среды разработки и заканчивая заставками при загрузке продуктов. Начиная с Delphi версии 6, при создании нового приложения имеется возможность выбора отдельного подпункта CLX Application. В этом случае Delphi создает программу с использованием только библиотеки компонентов CLX — это означает, что данное приложение можно будет перенести на платформу Linux простой перекомпиляцией кода в Kylix 2 (если, конечно, программа не использует специфических для платформы Win32-функций). Для наглядной иллюстрации ниже приведен список библиотек, которые Delphi 6 добавляет в uses-лист программы при создании нового VCL- и нового CLX-приложения:

  • Для нового VCL-приложения: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
  • Для нового CLX-приложения: SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs, QStdCtrls;

    Как можно заметить, названия многих библиотек в CLX остаються неизменными, просто перед ними добавляется буква «Q» — первая буква названия библиотеки Qt, которая была создана компанией TrollTech на языке С++ и содержит набор GUI-классов, достаточно близких по оформлению к стандартным элементам управления Windows (именно на основе Qt создана популярная графическая облолочка KDE). Но многие библиотеки (некоторые из которых используются достаточно часто) в CLX попросту отсутствуют (полный список соответствий библиотек VCL и CLX можно найти в help’е к Borland Delphi 6 в разделе Programming with Delphi > Using CLX for cross-platform development > CLX and VCL unit comparison), как, например, Messages — аналога ей в CLX нет, так что если эта библиотека была задействована в вашем приложении, то придется искать какие-либо «окольные пути».

    Все это, конечно, хорошо, но в основном для тех, кто только начинает создавать свое приложение «с нуля» и может использовать CLX с самого начала работы над проектом. Ведь до появления Delphi 6 о CLX никто и слыхом ни слыхивал (за исключением тех, кто работал с Kylix 1, который особой популярностью не пользовался), приложения же в подавляющем большинстве использовали VCL и встроенные функции ядра конкретной ОС, а так как структура Linux kernel отличается от структуры ядра Windows, то для использования таких приложений в Linux необходима будет определенная модификация их исходного кода. Очевидно, что чем чаще приложение будет использовать специфические особенности платформы Windows, тем значительнее будут затраты труда и времени на переработку приложения для использования аналогичных функций ОС Linux.

    Но и для приложений, основанных на VCL, еще не все потеряно. Для того чтобы приложение, которое использует компоненты и функции этой библиотеки, переработать для использования библиотеки компонентов CLX, необходимо проделать следующие нехитрые манипуляции:

  • удалить из приложения или заменить аналогами все компоненты VCL, которые не были включены в состав CLX (к примеру, компонент TMemo присутствует как в CLX, так и в VCL, а вот TRichEdit — только в VCL)
  • если приложение обращается к файлам на жестком диске, то необходимо переделать форму указания пути к ним (так как в Linux используется совершенно другая файловая система, и ваш диск C: может называться, к примеру, /mnt/hda1). Это же относиться к картинкам для кнопок и другим подобным элементам (работающее в Windows CLX-приложение ищет файл рисунка в C:\xxx\xxx.bmp, а это же приложение, запущенное из Kylix, не найдет данного файла, так как, по мнению ОС, он будет лежать в /mnt/hda1/xxx/xxx.bmp)
  • заменить названия библиотек в Uses-листе pas-файлов на указанные в CLX and VCL unit comparison, а также отказаться от использования тех библиотек, для которых в CLX нет функциональных аналогов
  • переименовать pas-файлы таким образом, чтобы имя файла абсолютно точно (с учетом верхнего/нижнего регистра, ведь Linux различает Main.pas и main.pas как два совершенно разных файла) соответствовало названию юнита в файле pas (например, если pas-файл начинается со строки «unit Main», то название этого файла должно быть Main.pas, а никак не MAIN.pas)
  • поменять расширение всех файлов *.dfm на *.xfm
  • во всех pas-файлах заменить строку {$R *.dfm} на {$R *.xfm}
  • в файле проекта (dpr) в uses-листе заменить ссылку на библиотеку Forms ссылкой на QForms.

    После этого можно смело перекомпилировать исходники программы в Kylix (правда, необходимо будет заново назначить пути к рисункам, а также другим внешним файлам)

    После всего сказанного за и против, можно вынести справедливый вердикт: такой продукт как Kylix необходим. Даже с учетом специфики перехода от VCL к CLX можно уверенно сказать, что перенос приложений под Linux этой средой разработки предельно упрощается и, вследствие этого, намного ускоряется. И сейчас к тем языкам программирования, которые используются в Linux можно по праву добавить и Object Pascal.

    Что ж, если теперь, после того как вы прочли статью, у вас еще осталось желание испробовать Kylix в действии, то прошу любить и жаловать его почетным местом на вашем хард-драйве — 60-дневный полнофункциональный дистрибутив Borland Kylix 2 Trial можно скачать с сайта Borland’a (http://www.borland.com) в формате tar.gz после регистрации. Обьем архива — 69 Мб.

    На сайте также доступна редакция Borland Kylix 2 Open Edition, предназначенная для создания программ с открытым исходным кодом в рамках проекта GNU General Public License.

    Источник: http://www.mycomp.com.ua/

     


  • Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com