Borland Kylix

Borland Kylix, первое средство быстрой разработки приложений для Linux, является, наверное, одним из самых необычных (и даже в определенной степени рискованных) проектов Borland. Проведя весной 1999 года на своем корпоративном сайте анкетный опрос разработчиков с целью оценить, насколько высок интерес к переносу основных средств разработки на платформу Linux, эта компания в сентябре того же года официально объявила о своем намерении создать Kylix - Linux версию Delphi, своего самого популярного средства быстрой разработки приложений. И вот теперь мы можем наконец увидеть, что же из этого получилось.

Kylix представляет собой первое RAD-средство для платформы Linux (RAD - Rapid Application Development). Пользователям Delphi не составит особого труда освоить его - это средство использует тот же язык Object Pascal и практически такую же среду разработки, а также содержит похожий набор компонентов. Однако прежде чем обсуждать технические особенности Kylix, связанные главным образом со спецификой платформы, для которой он предназначен, следует понять, кому и зачем этот продукт нужен. Данная статья основана на предположении, что читателю известны основные возможности последних версий Delphi; читатели, не знакомые с ними, могут обратиться к прежним выпускам нашего журнала - статьи об этом продукте мы публикуем регулярно в течение последних шести лет.

Кому и зачем нужен Kylix

Ответ на этот вопрос не так прост, как это может показаться. Чтобы понять возможности использования продукта для той или иной платформы, следует оценить степень применения самой платформы в той или иной роли. В нашем случае речь идет о Linux, популярность которой велика во вполне определенных ролях - ее часто используют в качестве операционной системы, управляющей Web-сервером, иногда - в качестве платформы для серверной СУБД. Иными словами, в настоящее время Linux рассматривается главным образом как серверная платформа. Если воспринимать Linux исключительно в этой роли, RAD-средства класса Delphi можно, на первый взгляд, посчитать из лишними - серверные приложения, включая расширения функциональности Web-серверов, не предназначены для применения конечными пользователями, следовательно, требования к пользовательскому интерфейсу у таких приложений минимальны.

Тем не менее использование Linux в качестве клиентской платформы, то есть платформы, на которой эксплуатируются приложения для конечного пользователя, вполне возможно - для Linux существуют графические среды, не уступающие Windows по удобству и функциональности, а в некотором отношении даже более гибкие и удобные. Тем не менее, несмотря на "бесплатность" самой операционной системы, есть, на мой взгляд, одна существенная деталь, ограничивающая сферу ее применения в качестве клиентской платформы. Дело в том, что российские пользователи, работающие на так называемых универсальных рабочих местах, где помимо собственно клиентских приложений для работы с корпоративными базами данных и иными серверными продуктами применяются и офисные приложения, вряд ли легко откажутся от ставших привычными Windows и Microsoft Office в пользу Linux и какого-либо офисного пакета для этой платформы - Corel Office не локализован, StarOffice все-таки не столь привычен и удобен (подождем, впрочем, выхода OpenOffice…). В результате может оказаться, что, сэкономив на операционной системе и офисных приложениях, руководители IT-подразделений потратят гораздо больше средств на переучивание пользователей.

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

Отметим также, что Delphi - достаточно универсальное средство разработки приложений, и серверные приложения (например, Web-приложения) с его помощью создавать тоже можно. Естественно, их можно создавать и с помощью Kylix - этот продукт обладает очень неплохим набором компонентов для создания расширений Web-сервера Apache, что, с учетом удобных механизмов доступа к базам данных, делает его неплохим инструментом для создания динамических Web-сайтов на базе Linux. Статью Никиты Попова "Разработка Internet приложений с использованием Borland Delphi и Kylix" о подробностях их создания Вы сможете найти у нас на сайте.

Итак, мы видим, что Kylix имеет две достаточно очевидные области применения: создание клиентских приложений для корпоративных информационных систем с целью оснащения ими специализированных рабочих мест, а также создание Web-приложений. Поэтому следует ожидать, что этот продукт займет некоторую долю рынка средств разработки. Можно предположить, что найдется определенное число компаний, которые готовы использовать Linux в качестве клиентской платформы при наличии подходящих средств быстрой разработки приложений и, следовательно, являются потенциальными пользователями Kylix. Впрочем, пока я не берусь оценивать их количество в нашей стране. Поживем - увидим…

Все сказанное выше было адресовано главным образом руководителям проектов, IT-менеджерам и иным специалистам, выбирающим платформу для клиентских приложений. Что же касается разработчиков, которым предстоит создавать приложения, то для них предназначена вторая часть статьи, где будут кратко рассмотрены основные технические возможности Kylix. Ее вы сможете найти на нашем CDROM.

Графические оболочки Linux

Графическая оболочка Linux состоит из нескольких частей:

X Window System - часть графического пользовательского интерфейса, позволяющая использовать видеоадаптер в графическом режиме. Она может обрабатывать события мыши и клавиатуры, выводить на экран текст и графические изображения, в том числе и рисовать на экране окна.

Менеджеры окон (Window managers) - часть графического пользовательского интерфейса, позволя ющая управлять размерами и расположением окон на экране, сворачивать и разворачивать окна, а также отвечающая за внешний вид окон (например, вид заголовков, рамок и т.д.) Элементы управления ( toolkit, widget set) - набор стандартных элементов пользовательского интер фейса, таких как кнопки, комбинированные списки, поля для ввода текста, радиогруппы и т.д.

Большинство графических оболочек Linux обычно содержат также средства для решения наиболее часто встречающихся задач, таких как редактирование файлов, модификация списка пользователей, про смотр каталогов и т.д.

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

Наиболее популярны сейчас две графические оболочки: KDE (K Desktop Environment) и GNOME (GNU Network Object Model Environment). Имеются и другие графические оболочки, но они в настоящее время не столь широко применяются, как KDE и GNOME.

Некоторые технические особенности Kylix

Как мы уже говорили, пользователям Delphi не составит особого труда освоить Kylix. Убедиться в этом несложно: достаточно взглянуть на среду разработки Kylix (рис. 1) - и мы увидим, что, на первый взгляд, его отличия от Delphi невелики.

Отметим, однако, что Linux и Windows - принципиально разные платформы. Мы знаем также, что в компонентах и классах Delphi Visual Component Library (VCL) использовались многие особенности, характерные только для Windows, такие как специфические для этой платформы элементы управления, очереди сообщений, COM и др. Поэтому внешнее сходство Kylix и Delphi в определенной степени обманчиво - "внутри" эти продукты все же устроены по-разному. Но поговорим обо всем по порядку.

Типы создаваемых приложений и поддерживаемые графические оболочки

С помощью Kylix можно создавать стандартные двоичные исполняемые файлы формата ELF (Executable and Linking Format), а также библиотеки (Shared Objects). Приложения с графическим пользовательским интерфейсом, созданные с помощью Kylix, можно выполнять под управлением графических оболочек KDE или GNOME. Можно также создавать консольные приложения, которые вызываются на выполнение из командной строки.

Библиотека классов CLX

Поскольку применение библиотеки VCL в Linux и даже ее адаптация к этой платформе не представляются возможными ввиду использования в ней многих специфических особенностей Windows, для Kylix была разработана другая библиотека классов и компонентов - CLX (Component Library for Cross-platform), являющаяся не зависимой от платформы надстройкой над библиотеками Qt.

Так как библиотека CLX не зависит от платформы, она может быть использована и в Linux, и в Windows. Поскольку в ожидаемую, шестую версию Delphi эта библиотека, наряду с уже привычной библиотекой VCL, также будет включена, станет возможным создание приложений, переносимых между двумя этими платформами, с помощью Delphi 6 или Kylix. В этом случае можно будет использовать условную компиляцию для указания модулей, требующихся для Linux- или Windows-приложения, которые должны быть включены в проект.

Модули, входящие в состав CLX, можно разбить на четыре группы:

  • BaseCLX содержит базовые классы и функции CLX, такие как функции ввода-вывода, обработки строк, обработки исключений. В частности, в BaseCLX входят модули System, SysUtils, Classes.
  • VisualCLX содержит классы, необходимые для визуальных компонентов. Эта часть CLX отличается от соответствующей части VCL, поскольку основана на других библиотеках интерфейсных элементов. В частности, в CLX визуальные компоненты являются наследниками не класса TWinControl , содержащего реализацию обработки сообщений Windows, а класса TWidgetControl , реализующего общую функциональность всех элементов управления библиотеки Qt. Компоненты и классы VisualCLX, как правило, несколько отличаются от сходных по функциональности компонентов и классов VCL - обычно у них разные списки свойств и методов; исключением здесь является класс TCanvas. Впрочем, в браузере объектов Kylix класс TWidgetControl почему-то отсутствует, зато есть класс TWin Control (рис. 2). Будем надеяться, что и все остальные погрешности в этом продукте будут столь же незначительны.
  • DataCLX содержит классы, позволяющие создавать приложения, которые используют базы данных. Эта группа модулей состоит из двух частей: библиотеки визуальных компонентов для отображения и редактирования данных и библиотеки dbEx press , предназначенной для обеспечения доступа к данным.
  • Библиотека dbExpress содержит компоненты доступа к данным и драйверы баз данных (список их зависит от того, какая редакция Kylix используется; спецификация dbExpress, разработанная Borland, является открытой). Эта библиотека не имеет отношения к BDE, традиционно использовавшейся в Delphi. Дело в том, что BDE, наследница библиотеки Paradox Engine, несмотря на наличие средств доступа к данным серверных СУБД, сохранила многие черты библиотеки доступа к настольным базам данных, ориентированной на манипуляцию данными с помощью средств файловой системы, что в ряде случаев негативно проявлялось при создании клиентских приложений для серверных СУБД. Естественно, переносить BDE на новую платформу было неразумно, и вместо этого была создана новая библиотека доступа к данным dbExpress, представляющая собой не зависящий от платформы универсальный механизм доступа к данным.

Хотя сама по себе библиотека dbExpress позволяет создать только однонаправленный курсор, в модулях DataCLX содержится класс TClientDataSet , реализующий кэширование данных на стороне клиента и организацию двунаправленной навигации внутри этого кэша.

Помимо этого DataCLX содержит компоненты для обеспечения соединения с базой данных, средство слежения за запросами - SQL monitor, а также ряд компонентов - наследников класса TDataSet , предназначенных для выбора и редактирования данных (рис. 3).

NetCLX содержит классы для создания сетевых и Web-приложений (рис. 4). В частности, в эту часть CLX входят классы для доступа к сокетам, а также компоненты WebBroker , хорошо знакомые пользователям Delphi. В этой версии Kylix поддерживается создание CGI-приложений и библиотек, являющихся расширениями для Web-сервера Apache - Dynamic Shared Objects (DSO).

Библиотеки Qt

Библиотеки Qt, созданные компанией TrollTech, представляют собой набор GUI-классов, написанных на языке C++ и включающих, в частности, элементы управления, близкие по функциональности списку свойств и списку событий к элементам управления Windows, а также ряд других классов, предназначенных для создания пользовательских интерфейсов. Эти библиотеки существуют и для Linux, и для Windows, а так же для многих разновидностей UNIX. Поэтому приложения, созданные исключительно с их применением, можно переносить на другие платформы при наличии соответствующего компилятора.

Отметим, что библиотеки Qt были использованы при создании графической среды KDE.

Чего нет в Kylix

Как заметили многие из моих коллег, состав палитры компонентов и набор экспертов Kylix напоминают скорее первую, еще 16-разрядную версию Delphi, нежели Delphi 5. Это неудивительно - ведь в Linux нет поддержки COM, поэтому, естественно, не стоит ожидать ни соответствующих страниц в палитре компонентов (таких как ActiveX , Servers и др.), ни соответствующих экспертов в репозитарии. И тем не менее в Kylix поддерживаются данные типа Variant и интерфейсы - ведь и то и другое нужно не только для поддержки COM.

Тем не менее многие возможности среды разработки соответствуют возможностям, имеющимся в Delphi 5. В частности, практически аналогичны возможности, предоставляемые отладчиком, а также диалоговые панели опций проекта, инспектора объектов, менеджера проектов и многое другое. Отметим также, что в Kylix предусмотрены некоторые эксперты и компоненты, отсутствующие в Delphi 5, но ожидаемые в Delphi 6, в частности компоненты и драйверы dbExpress, а также набор созданных компанией Nevrona Designs компонентов INDY ( Internet Direct ) для разработки Web-приложений (о них мы уже писали в апрельском номере нашего журнала, рис.5).

Кроме того, в Kylix нет других компонентов, созданных сторонними производителями, - TeeChart, QuickReport, DecisionCube, реализующих простейшую функциональность Business Intelligence. Так что проблему использования деловой графики, простейшего анализа данных и, что самое важное, подготовки и печати отчетов по базам данных придется решать отдельно. Впрочем, на рынке программного обеспечения средства Business Intelligence представлены достаточно широко и их выбор отнюдь не ограничивается продуктами для Windows, поэтому эти проблемы в принципе разрешимы (подробности об основных производителях этих средств содержатся в обзоре средств Business Intelli gence, опубликованном в КомпьютерПресс №3 ’2001, а также в книге "Базы данных для всех", готовящейся к выпуску издательством "КомпьютерПресс" этим летом). Кроме того, вполне возможно, что сторонние производители довольно быстро создадут компоненты или утилиты, решающие эти проблемы, - например у TurboPower Software, ведущего производителя компонентов и утилит для Delphi и C++Builder, уже существуют продукты для Kylix. И не только у TurboPower - в коробке с Kylix есть целый компакт-диск с компонентами, примерами кода, руководствами пользователя, предоставленными сторонними производителями.

Технические требования к Kylix

Для применения Kylix требуется не так уж много - 64 Мбайт оперативной памяти, Pentium 200, 175 Мбайт свободного места на жестком диске.

Отметим, однако, что Kylix можно использовать не с любой версией Linux. Если исходить из официальной информации, помещенной на сайте компании Borland, Kylix гарантированно работоспособен в Red Hat 6.2 и выше, Mandrake 7.2 и выше, SuSE 7.0 и выше. Это не значит, что его нельзя применять и в других версиях Linux, но в их отношении нет никаких гарантий. На пример, в Caldera OpenLinux eDesktop 2.4 этот продукт мне установить не удалось.

В связи с этим следует заметить, что появление продуктов такого класса, как Kylix, заставляет всерьез задуматься о том, каковы должны быть стандарты на операционные системы с открытыми исходными текстами. То, что с помощью Kylix нельзя перекомпилировать ядро Linux (Kylix предназначен вовсе не для этого!), не означает, что этого нельзя сделать в принципе - просто для этой цели используются другие компиляторы, известные всем, кто занимается написанием модулей для ядра Linux. А некорректное внесение изменений в ядро операционной системы может, по крайней мере теоретически, сделать некоторые приложения неработоспособными. Как же в этой ситуации защитить интересы создавших их разработчиков? Наверное, на сегодняшний день существует единственный способ - указать конкретные версии дистрибутивов конкретных производителей, в которых работоспособность как самого средства разработки, так и созданных с его помощью приложений будут гарантирована. Что, собственно, и было сделано.

Различные редакции Kylix

Kylix в настоящее время доступен в двух редакциях: Server Developer и Desktop Developer.

Kylix Desktop Developer содержит средства создания настольных приложений, включая приложения для работы с базами данных. Kylix Server Developer включает помимо этого средства создания Web-приложений, а также драйверы dbExpress для доступа к серверным СУБД производства Oracle и IBM DB2 (в дополнение к уже имеющимся в Desktop Developer драйверам dbExpress для Interbase и MySQL). Ожидается выпуск еще одной редакции, Kylix Open Edition, предназначенной для создания программного обеспече ния, свободно распространяемого в соответствии с GNU General Public License (GPL). Эта редакция может быть доступна бесплатно на Web-сайте Borland или по относительно невысокой цене - в случае заказа ее на компакт-диске.

Подробности о различных редакциях Kylix можно найти по адресу http://www.borland.com/kylix/k1/features.html.

Несколько слов о поддержке русского языка

Поддержка русского языка является одним из важнейших вопросов применимости Linux на территории нашей страны. Известно, что сейчас широко используется несколько различных кодировок для русского языка и общепринятым стандартом для Linux является кодировка KOI-8r. Именно она и поддерживается в Kylix.

Помимо поддержки кодировки как таковой для успешного применения приложений Kylix требуется также наличие раскладки клавиатуры и клавиатурного переключателя, совместимых с Windows и не зависимых от дистрибутива Linux и графической оболочки. Подробности о настройке клавиатурного переключателя и раскладки клавиатуры, удовлетворяю щей этим требованиям, можно узнать по адресу http://www.borland.ru/kylix/linux_ru.htm .

Заключение

Итак, первое RAD-средство для Linux, в создание и тестирование которого было вложено немало сил и средств, наконец поступило в продажу. Теперь мы видим, что его освоение не представляет особого труда для пользователей Delphi. Да и тем, кто ранее с Delphi не работал, думаю, освоить его будет не слишком сложно - RAD-средства такого класса и качества, как правило, не очень сложны в освоении. Остается лишь пожелать этому продукту счастливой судьбы.

Коммерция, Разное, похожие статьи

"Собраться вместе - это начало.  Оставаться вместе - это прогресс.  Работать вместе - это успех". /Генри Форд/
Коммерция  |  08.12.2018
Как стало известно "Ъ", "Ростех" решил создать внутри госкорпорации холдинг, который объединит предприятия по спецхимии и промышленными взрывчатым веществам. Консолидация должна не только упростить модель управления разрозненными активами, но и устранить внутреннюю конкуренцию на рынке спецхимии...
Коммерция  |  05.12.2018
Мы рады представить сборник "НR c цифровым лицом: как построить организацию будущего".
Коммерция  |  10.11.2018
  Вся самая актуальная и нужная информация о состоянии ИИ.Натан Бенайх и Ян Хогарт -два серийных инвестора в ИИ-ориентированные стартапы - сделали невозможное...
Коммерция  |  06.08.2018
Коммерция  |  08.04.2010  | 
Яндекс цитирования