Kylix: кросс-платформенная разработка от Borland
Мария Сысойкина
maria@inion.ru
Тема сравнения Linux и Windows в последнее время весьма популярна. В прессе можно найти множество противоречивых мнений по поводу перехода с Windows на Linux. Но, как правило, все оппоненты сходятся на одном — недостаточное количество существующего ПО и сложность создания собственных приложений не позволяют так просто перейти на работу в Linux. Впрочем, Kylix, похоже, сможет изменить эту ситуацию в лучшую сторону.
Кросс-платформенная разработка
Слухи о новом проекте фирмы Borland ходили с июля 1999 года, когда на сайте компании появилась анкета, имевшая целью определить степень заинтересованности разработчиков в перенесении основных средств разработки приложений на платформу Linux. Затем Borland выставила список вакансий программистов с опытом работы в Linux для написания приложений на Delphi и C++. Официальное же подтверждение появилось 28 сентября, когда Borland опубликовала пресс-релиз, объявив о начале работы над Linux-версиями Delphi и C++ Builder.
Kylix — первоначальное рабочее название нового проекта, позднее ставшее официальным именем. Цель этого проекта — перенести на платформу Linux широко признанные среды разработки Delphi и C++ Builder.
На ежегодной конференции разработчиков BorCon 2000 представители Borland продемонстрировали альфа-версию Kylix. На глазах у толпы ожидающих чуда энтузиастов было создано приложение в среде Delphi. Затем этот код с небольшими изменениями был перекомпилирован с использованием Kylix для создания идентичного приложения под Linux. По словам очевидцев, оба приложения работали абсолютно одинаково.
Можно ли с такой же легкостью перекомпилировать под Linux любое Delphi-приложение? Нет. Если в приложении используются прямые вызовы библиотек Win32 или библиотеки и компоненты третьих сторон, то потребуются соответствующие изменения. Представители Borland утверждают, что в среднем приложение, разрабатывавшееся в Delphi в течение полугода, можно будет адаптировать под Linux за месяц. Но даже несмотря на то, что не каждую программу легко пересобрать, Kylix в значительной степени облегчает и ускоряет процесс переноса Windows-приложений на платформу Linux.
Кроме того, Borland привлекла к работе над проектом несколько компаний-разработчиков утилит и компонентов, чтобы обеспечить поддержку ПО от сторонних разработчиков к моменту выхода первой версии Kylix.
Что может Kylix…
Набор библиотек Kylix содержит не только улучшенный компилятор языка Pascal, а его интегрированная среда разработки (IDE) обеспечивает механизмы быстрой разработки приложений. Как следствие, в Kylix есть:
- синтаксический разбор текста программы в редакторе;
- интегрированный отладчик;
- визуальное проектирование форм (окон приложений и диалогов);
- визуальное проектирование систем меню;
- расширяемая компонентная модель;
- большой выбор визуальных компонентов и виджетов;
- компоненты для интеграции со многими популярными SQL базами данных;
- компоненты для работы с протоколами Интернета;
- коммерческие и бесплатные библиотеки компонентов от сторонних производителей;
- расширяемый набор design-time утилит для создания модулей для работы с сервером
Apache и простых и сложных приложений баз данных; - коммерческие и свободно распространяемые утилиты от других производителей.
Кроме того, нельзя не упомянуть, что среда разработчика в Kylix — вполне привычная, знакомая как собственно по Delphi, так и по другим продуктам фирмы Borland.
… И чего не может
Вы не мыслите процесса создания программы без собственноручного написания кода? Если вместо того, чтобы просто выбрать компонент и перетащить его на форму, вы предпочтете написать несколько сотен строк своего кода, то Kylix вряд ли придется вам по душе.
Не пригодится Kylix и тем, кому необходимо писать модули для ядра Linux. Kylix не поддерживает расширения GNU, имеющие какую-либо связь с ядром Linux (в частности, имеет другой синтаксис для написания ассемблерных вставок).
Нет смысла использовать Kylix и при создании программ, использующих серьезные математические вычисления (например, для статистических расчетов или обработки трехмерной графики, скажем, в играх). Компилятор Kylix не оптимизирует операции над числами с плавающей точкой.
Как используется RAD
Теперь вы знаете, для чего Kylix не приспособлен. Тогда что же в нем хорошего? Ответ — быстрая разработка приложений.
Это могут быть абсолютно разные приложения — от несложных игр до текстовых процессоров. Это могут быть клиентские программы для систем баз данных или элементы многозвенных систем. Это могут быть и сетевые клиенты, например, программы просмотра электронной почты, или сетевые серверы, скажем, Web-серверы.
Быстрота разработки достигается за счет возможности визуально проектировать формы (окна приложений и диалогов). Достаточно щелкнуть мышкой по нужному компоненту, перетащить его на форму и отредактировать его свойства. Этот механизм используется во многих средах разработки, и нет ничего странного в том, что он будет и в Kylix.
В результате "быстрая разработка" означает, что при помощи Kylix можно будет создавать приложения гораздо быстрее, чем в традиционных для Linux средах, таких, как gcc, emacs, vi и gdb. А это, в свою очередь, резко упростит процесс создания прикладных программ и, следовательно, приведет к большему распространению Linux как универсальной операционной системы.
Kylix предназначен не только для разработки графических интерфейсов. В его основе лежит расширяемая компонентная модель для работы с виджетами, компонентами доступа к базам данных, работы с сетью и т.д. Эта модель называется CLX (component library for cross-platform, "кликс"). До создания CLX основой Borland IDE была библиотека классов Delphi VCL (Visual Component Library).Подобно CLX, VCL включала функции обработки текста, ввода/вывода, даты и времени, управления файлами, доступа к данным и их визуализации, работы с графикой, сетями и т. д. Разница между CLX и VCL состоит в том, что функции VCL опираются на Windows API, а в CLX буквально все, что касалось Windows API, было переписано так, чтобы обойтись без него. Конечно, это было непросто, но результаты этой работы стали фундаментом для дальнейшего развития языков программирования, независимых от ОС.
CLX можно легко расширить и дополнить. В настоящее время независимые разработчики уже создают компоненты в дополнение к стандартному набору.
CLX состоит из нескольких частей:
- BaseCLX содержит ядро компонентной модели. Сюда входят такие элементы,
как функции работы со строками, ввода/вывода, функции работы с датой и временем,
работа с файлами, обработка исключений. - VisualCLX, использующая библиотеку Qt компании TrollTech (http://www.trolltech.com/products/qt/qt.html)
для создания графических интерфейсов. - DataCLX, использующая dbExpress — новый механизм фирмы Borland для
работы с различными SQL-базами данных, включая Interbase (Borland недавно
открыла доступ к его исходным кодам) и mySQL. DataCLX можно использовать в
однозвенной архитектуре (база данных и приложение на одном и том же компьютере),
архитектуре клиент-сервер или в многозвенной архитектуре. Причем dbExpress
сначала будет реализован для CLX, а только потом для продуктов Borland, предназначенных
для работы в Windows. - NetCLX предоставляет компоненты для работы с основными протоколами
Интернета — TCP, FTP, HTTP и возможность писать клиентские и серверные программы
с использованием модулей Apache. В Kylix технология Delphi WebBroker будет
расширена за счет поддержки для Apache. Это означает, что приложения для Web-сервера
можно будет писать как в форме CGI, так и в форме Apache DSO.
Поскольку в CLX можно добавлять любые компоненты, ожидается появление большого числа компонентов от других компаний — производителей ПО. Существует множество Web-сайтов, распространяющих тысячи компонентов, которые можно добавить в Delphi для Windows. А после выхода в свет Kylix можно ожидать такого же изобилия новых компонентов. Поставщики утилит и компонентов для Delphi уже работают с бета-релизами Kylix, чтобы к моменту появления первой версии большинство компонентов было готово.
Использование компонентов удобно для самых различных целей. Например, можно перетащить на форму компонент для POP3-клиента, добавить виджеты для отображения иерархии папок и списков сообщений в папках и окно отображения текста. Для связи всех компонентов на форме нужно добавить обработчики событий — а это ни что иное как методы соответствующих классов. Имея в своем распоряжении все возможности объектно-ориентированного языка (Delphi или C++), можно создавать обработчики событий любой степени сложности.
Таким образом, меньше чем за день вполне реально написать небольшой, но действительно работающий почтовый клиент для Linux.
Подход RAD имеет плохую репутацию в определенных кругах именно потому, что из-за использования инструментов и компонентов часто приходится создавать приложения с весьма ограниченными возможностями. Сама концепция быстрой разработки приложений предполагает большей частью визуальное проектирование и минимальные затраты сил на написание кода. А, как известно, серьезное программирование требует прежде всего самостоятельного написания кода.
Особенно приятно в Kylix то, что компонентная модель CLX упрощает утомительный процесс создания приложений, не скрывая при этом от программиста всех возможностей языка и операционной системы. Например, если вам нужно напрямую использовать в приложении какие-либо системные вызовы, вы можете сами написать такой код.
Открытая расширяемая среда разработки
Kylix имеет расширяемую IDE; следовательно, если возможностей определенного инструмента недостаточно, разработчики могут добавлять в среду новые инструменты для разработки приложений. Например, и главное меню программы, и всплывающие меню — это компоненты. Они в свою очередь содержат компоненты пунктов меню. Редактируя сами компоненты меню, вы вряд ли добьетесь вразумительного результата, поэтому Kylix предлагает интерактивный редактор, позволяющий визуализировать процесс изменения меню. В Kylix также входят так называемые Мастера — для создания приложений баз данных, модулей Web-серверов и т.д. Открытость и расширяемость IDE позволяет компаниям — разработчикам ПО создавать дополнительные программы-Мастера, да и многие программисты сами способны написать такую программу.
Некоторые утилиты требуют знания специальных языков расширений (например, Emacs Lisp). В Kylix можно использовать привычный язык программирования. Дополняйте Delphi IDE, используя Delphi, или C++ Builder — используя C++. Кроме того, можно дополнить Delphi новым Мастером, написанным в C++ Builder, или наоборот. Таким образом, разработчики могут использовать выбранный ими язык и распространять свои продукты среди всех пользователей Kylix.
Вот несколько вариантов дополнений IDE Kylix. Вы можете добавить:
- новые окна, например, редактор меню;
- новые пункты в главное или всплывающие меню в редакторе программ, редакторе
форм и т.д.; - новые кнопки в tool bars;
- дизайнеры форм и проектов (для создания форм, проектов и других файлов по
выбору пользователя).
С другой стороны, если вы любите работать с командной строкой, если вам неудобно работать с редактором форм по принципу WYSIWYG и если вы предпочитаете самостоятельно отслеживать и отлаживать ошибки переполнения буфера, то продолжайте творить в той среде, к которой вы так привыкли. Работать в Delphi вы вряд ли сможете.
И не только Delphi
Как бы ни был хорош Pascal, иногда приходится работать и на C++, поэтому в будущие релизы Kylix предполагается включить C++ Builder для Linux. C++ Builder использует ту же IDE и компонентную модель, что и Delphi, но только с синтаксисом языка C++. Таким образом, если для разработки приложений для Windows компания Borland предлагает два независимых продукта, то для Linux все сведется к единому инструментарию. Заметим, что C++ Builder не поддерживает расширения GNU, т. е. перекомпилировать ядро Linux при помощи C++ Builder не удастся.
Если вы во всем предпочитаете стандарты, C++ Builder может компилировать задачи в ISO-стандарте C++ и C. Вы можете скомпилировать любое приложение, основанное на стандартах ANSI/NISO, и, возможно, заметите, что компилятор C++ Builder для Linux работает быстрее, чем gcc или g++.
Технические особенности
Kylix изначально создавался для работы с разными дистрибутивами Linux. Без видимой разницы он может работать под управлением Red Hat, Mandrake, Caldera, Slackware или SuSE. Не играет роли для работы Kylix и графическая оболочка. Его можно установить и под KDE (рис. 1), и под GNOME (рис. 2).
Рис. 1. Kylix для KDE.
|
Рис. 2. Kylix для GNOME.
|
Однако, первый релиз скорее всего будет под KDE, так как и Kylix, и KDE используют набор графических библиотек Qt компании TrollTech.
Совместно с Trolltech фирма Borland создала компоненты графического интерфейса Kylix, не связанные с API C++, который используется в Qt. Приобретая Kylix, разработчик получает свободную лицензию на использование новых компонентов из библиотеки Qt. Эта лицензия распространяется на бесплатное, демонстрационное и коммерческое ПО, создаваемое в Kylix. Вам не придется дополнительно платить компании TrollTech за использование технологий Qt, лицензированных фирмой Borland, в отличие от ситуации, когда вы разрабатываете свои программы на базе непосредственно C++-API от Qt. Другими словами, покупая Kylix, вы получаете право разрабатывать и распространять бесплатное ПО, созданное с использованием библиотеки Qt.
Первая версия Kylix будет компилировать приложения, создавая собственный код и стандартные бинарные файлы в формате ELF. Однако эта версия будет работать только на аппаратной платформе X86. Возможно, последующие версии Kylix будут поддерживать другие платформы; не исключено, что даже можно будет увидеть Delphi и C++ для других операционных систем.
Kylix спасет мир?
Сейчас Linux сталкивается с тремя серьезными проблемами на пути к широкому распространению в качестве операционной системы для ПК. Это: сложность установки, сложность использования и малое количество ПО. Kylix вполне может помочь в решении последних двух проблем.
Почему большинство из нас использует Windows для просмотра почты, редактирования текстов и т.д.? Все просто — существует огромное количество приложений, доступных только под Windows. Одна из самых серьезных трудностей, с которой сталкиваются разработчики ПО под Linux, — это недостаток средств разработки качественных приложений.
В принципе вы можете работать в любой удобной для вас среде — будь то Tcl/tk, Python или даже Qt либо Jx, имеющие некое подобие IDE. Что бы вы для себя ни выбрали — это есть в Kylix. Это и многое другое. Естественно, не все захотят работать в Kylix (разумеется, никто и не обязан). Но если вы цените свое время, если хотите использовать в работе удобный инструментарий и создавать хорошие приложения для Linux, вам стоит обратить свое внимание на Kylix.
Первоначально Borland планировала выпустить первую версию Kylix к концу 2000 года. Но пока существует только бета-версия, доступная только компаниям — разработчикам компонентов и утилит. А выход первого релиза Kylix ожидается в марте.