Что такое код kylix


Содержание
Илон Маск рекомендует:  Что такое код ocicollappend

Kylix 3

Купить Kylix 3

Программа Срок комплектации, не более:

Kylix 3 – средство быстрой разработки приложений для платформы Linux на языках Delphi и C/C++. Kylix 3 объединяет в одной среде разработку баз данных, графических интерфейсов (GUI), Web-приложений и Web-сервисов. Встроенные в Kylix 3 развитые и удобные платформы для разработки Web-приложений позволяют создавать полностью интегрированные в корпоративную информационную систему, масштабируемые Web-службы, сервисы и приложения.

Kylix 3 содержит такие инструментальные средства, как среда разработки, интерактивный отладчик, интуитивный визуальный дизайнер и постоянно пополняемый набор компонент, что позволяет сделать разработку Linux-приложений быстрой и легкой. Использование Kylix 3 и операционной системы Linux позволяет разрабатывать необходимые клиентские Linux-приложения без дополнительных затрат на приобретение дорогостоящих операционных систем и сервисов и на существенную модернизацию технического парка. Встроенная в Kylix 3 кроссплатформенность дает возможность использовать разработанные коды не только в Linux, но и легко и быстро перенести их в Windows. Соответственно, весь комплекс наработок алгоритмов и дизайна в операционной системе Windows так же свободно можно перенести в Linux. Кроме того, в Kylix 3 реализованы обширные средства разработки распределенных приложений на таких платформонезависимых стандартах, как CORBA, SOAP, XML, HTTP.

Основные возможности и преимущества Kylix 3:

  • свобода выбора: использование языков С/С++ или Delphi с помощью Borland Two-Way-Tools;
  • создание бесплатных баз данных, GUI, Web-приложений и Web-служб в единой интегрированной среде;
  • удобный импорт Web-служб и их добавление к функциональности приложения;
  • быстрая компонентная разработка необходимых решений для информационной поддержки бизнеса в жёстких временных рамках при современных рыночных условиях;
  • гибкое предоставление актуальных сервисов и возможностей доступа к корпоративной ИС благодаря использованию межплатформенных технологий;
  • интеграция ресурсов типа business-to-business с Web-службами с помощью WebSnap;
  • создание с помощью технологии DataSnap серверов приложений с возможностью работы с Web-службами, которое масштабируется и взаимодействует с законченными решениями для электронного бизнеса;
  • встроенная платформа для разработки приложений электронного бизнеса – BizSnap: импорт и использование W3C-совместимых Web-служб с поддержкой XML, SOAP, WSDL и т.п.
  • средства и компоненты преобразования XML-схемы — преобразования и приспособление приложения для распознавания новых XML-форматов для обмена данными с деловыми партнерами;
  • лёгкое и удобное подключение Linux-приложений к корпоративным базам данных;
  • производство XSL-страниц для объединения XML-источников данных с XSL-преобразованиями для получения полностраничных результатов в HTML;
  • возможность разработки серверов и клиентов, основываясь на стандарте CORBA (VisiBroker);
  • возможность проектирования заданий для сборки приложений и включение настроенных замен для средств сборки С++ IDE;
  • создание и использование динамически подгружаемых пакетов для повышения эффективности работы приложения;
  • возможность создания многократно используемых двоичных ELF-приложений и библиотек с правом свободного распространения;
  • двойная (GPL или частная) лицензия разработчика для профессиональных продаж программного обеспечения.

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

Передовая разработка с помощью Borland Kylix

Исторически сложилось так, что разработка приложений для Linux с использованием общепринятых средств представляла собой определенные трудности. Такие традиционные инструменты Linux, как GCC и Emacs, трудны для изучения и не предоставляют требуемую для корпоративных разработчиков степень производительности. Kylix меняет эту ситуацию. Kylix вводит в операционную систему Linux высокопроизводительное решение для быстрого создания приложений электронного бизнеса с интегрированными языками С++ и Delphi . Создание баз данных, графических интерфейсов пользователя (GUI), Web-приложений и Web-служб при помощи Kylix стало гораздо более простым и быстрым. По мере роста популярности Linux, платформа для разработок Kylix с ее расширенными и высокопродуктивными возможностями становится все более выигрышным решением для создания корпоративных приложений для электронного бизнеса, баз данных, GUI, Web-приложений и Web-служб.

Свобода выбора: использование языков С/С++ или Delphi

Borland Kylix 3 предоставляет для программирования как язык ANSI/ISO С++, так и Delphi, то есть два мощных объектно-ориентированных языка в одном решении для разработки! Благодаря поддержке стандартов ANSI/ISO С++, Kylix 3 позволяет улучшить как новые, так и уже существующие исходные коды на С++ и использовать уже наработанные навыки программирования. Интегрированные компиляторы и для С++, и для Delphi представляют собой высокопроизводительные встроенные компиляторы кода, которые существенно сокращают время компоновки и создают небольшие, компактные и надежные исполняемые файлы для более быстрых и более эффективных решений на платформе Linux . За созданные с помощью Kylix 3 базы данных, GUI, Web-серверы, одно- и двухзвенные приложения для баз данных не нужно платить никаких лицензионных отчислений. Разработка решений на языках С++ и Delphi возможна как независимо, так и коллективно в зависимости от нужд проекта и доступных ресурсов.

Разработка баз данных, GUI, Web-приложений и Web-служб из единой интегрированной среды

Быстрая разработка приложений в удобной визуальной среде. Kylix 3 объединяет в себе проектирование приложения и его разработку, позволяя быстрее и более надежно, чем с помощью других средств визуальной разработки, создавать сложные Linux-приложения. Быстрый переход от прототипа к готовой системе с помощью уникальной комбинации интегрированных возможностей, в которые входят средства визуального проектирования, библиотека компонентов Borland CLX , расширенный редактор кода с полностью интегрированным графическим отладчиком CodeInsight, а также собственный компилятор кода. Все эти возможности специально настроены для совместного функционирования в процессе разработки высокопроизводительных приложений работы с базами данных, GUI, Web-приложений и Web-служб.

Ускоренный выпуск продуктов на рынок с помощью основанного на компонентах процесса разработки CLX

Быстрое создание надежных высокопроизводительных приложений посредством основанного на компонентах процесса разработки с помощью Borland CLX (Component Library for Cross-platform – Межплатформенная Библиотека Компонентов). CLX предоставляет современную палитру из сотен многократно используемых, настраиваемых и дополняемых готовых компонентов и классов для быстрого создания приложений на языках программирования С++ и Delphi. Возможно простое усовершенствование уже созданной функциональности CLX, для создания совершенно новых специальных компонентов и решений, а также легкая интеграция компонентов CLX сторонних производителей в палитру Kylix. Поскольку библиотека CLX интегрирована во встроенные двусторонние средства визуальной разработки, создание приложений с помощью компонентов становится быстрым, простым и интуитивно понятным.

Открытие новых рынков благодаря межплатформенной разработке

Kylix 3 используется для разработки собственных приложений для Linux, которые затем могут быть перекомпилированы и перенесены на платформу Windows для повышения уровня доступности приложения и уровня его продаж. Написанные на Kylix 3 приложения и Web-службы могут быть портированы на Windows-платформу путем компиляции в Borland C++Builder 6 или Delphi 6, что дает значительный рост отдачи инвестиций. Kylix совместим не только с различными платформами, но и с различными серверами: можно разработать динамические высокопроизводительные приложения для Apache на платформе Linux, а затем перекомпилировать их с помощью Delphi или C++Builder для использования с Apache, Microsoft IIS или Netscape Web Server на платформе Windows.

Общение с миром с использованием Web-служб

Благодаря технологиям BizSnap, WebSnap и DataSnap Kylix 3 позволяет создавать и использовать Web-службы в приложениях по всему миру.


  • BizSnap, встроенная в Kylix платформа для разработки Web-служб, упрощает интеграцию ресурсов типа business-to-business (B2B) путем удобного создания стандартных SOAP/XML Web-служб и подключений, которые объединяют бизнес компании с приложениями потребителей и поставщиков.
  • WebSnap, встроенная в Kylix платформа для основанной на компонентах разработки Web-приложений, придает процессу разработки гибкость, скорость и эффективность благодаря серверному языку сценариев JavaScript.
  • DataSnap позволяет создавать хорошо масштабируемые корпоративные решения для доступа к данным через промежуточный слой программного обеспечения, которые объединяют бизнес-процессы нескольких деловых партнеров.

Благодаря передовой среде разработки, интегрированному отладчику, интуитивному визуальному дизайнеру, современному набору компонентов и платформе разработки Web-служб Kylix предоставляет все необходимые средства для быстрой и удобной разработки приложений электронного бизнеса с Web-службами на платформе Linux.

BizSnap предоставляет интеграцию Web-служб и ресурсов типа business-to-business

Благодаря возможностям XML и Web-служб для электронного бизнеса BizSnap расширяет возможности операционной системы Linux. Технология BizSnap облегчает обмен, преобразование и манипуляцию XML-документами, предоставляя гибкость и расширяемость для использования новой волны электронной коммерции типа B2B. Kylix соответствует промышленным стандартам, позволяя уверенно реагировать на постоянно меняющиеся нужды бизнеса. Kylix обеспечивает прекрасную связь между различными приложениями торговых партнеров, системы которых работают на стандартных платформах с поддержкой Web-служб, таких как .NET и BizTalk от Microsoft или ONE от Sun Microsystems.

WebSnap придает гибкость и скорость процессу разработки Web-приложений

WebSnap превращает Web-серверы Apache в мощные корпоративные серверы, работающие с базами данных Web-приложений. WebSnap придает созданию Web-приложений для Apache гибкость и скорость основанного на компонентах процесса быстрой разработки приложений (RAD – Rapid Application Development), увеличивая производительность коллектива разработчиков и надежность кода. Благодаря использованию динамической, управляемой страницами, объектно-ориентированной и основанной на архитектуре базы данных, структура приложений WebSnap распространяет сферу деятельности бизнеса на Web. Поддержка в WebSnap серверного языка сценариев JavaScript облегчает настройку HTML-документов на стороне сервера и интеграцию Web-приложений в корпоративные сайты и Web-порталы, созданные в популярных средах разработки сайтов на HTML.

DataSnap позволяет создавать высокопроизводительное промежуточное программное обеспечение для работы с базами данных с использованием Web-служб

DataSnap использует такие стандарты распределенных вычислений, как SOAP, XML и HTTP для облегчения интеграции существующих корпоративных баз данных, приложений и объектов с приложениями электронного бизнеса. Используя высокопроизводительное распределенное промежуточное программное обеспечение, DataSnap оптимизирует подключения к серверу системы управления реляционными базами данных и пропускную способность канала связи путем централизации доступа к данным, а также организации обновлений данных со стороны процессов и приложений электронного бизнеса в масштабируемом промежуточном слое. DataSnap поддерживает все решения Kylix для подключения к источникам данных с высокопроизводительным доступом к базам данных Borland InterBase, IBM DB2 и Informix, Oracle, MySQL и PostgreSQL. В Kylix 3 включена полная лицензия разработчика на DataSnap, а лицензии на развертывание промежуточного программного обеспечения DataSnap можно приобрести отдельно для каждого развернутого сервера промежуточного ПО.

Простое подключение приложений Linux к корпоративным базам данных

Интеграция корпоративной информации в приложения с помощью высокопроизводительных драйверов доступа к базам данных dbExpress для таких популярных баз данных, как InterBase, DB2, Informix, Oracle, Red Hat Database, PostgreSQL и MySQL. Широкий набор зависящих от данных GUI- и Web-компонентов в Kylix 3 используется для визуализации актуальных данных в приложениях по мере их разработки от прототипа до развертывания и для предоставления актуальных данных во время проектирования. SQL Monitor и другие компоненты баз данных служат для оптимизации приложения с точки зрения производительности, масштабируемости и качества обслуживания запросов. Компоненты dbExpress в Kylix 3 гибко и прозрачно масштабируются от одноуровневых локальных баз данных до двухуровневых клиент/серверных систем для встраивания в n-уровневые корпоративные системы без перекодирования и перепроектирования приложения.

Построение оптимизированных систем «под ключ» с помощью Borland InterBase

С помощью Kylix 3 и InterBase высокопроизводительная разработка объединяется с быстрой, межплатформенной и соответствующей стандартам SQL базой данных с низкой необходимостью в обслуживании. InterBase обеспечивает гибкость, необходимую для мобильных, встраиваемых и Интернет-приложений баз данных, а также предоставляет и развертывает высокопроизводительные системы.

Вы можете купить программу из любой точки России, т.к. мы осуществляем доставку по России в малые и крупные города.

Кроме того, вы можете связаться с нашими специалистами по многоканальному телефону: (495) и получить исчерпывающую информацию по интересующему вас программному продукту, а также сделать Онлайн-заказ через форму отправки в нашем интернет магазине.

Kylix — Первые впечатления

Delphi , ОС и Железо , Kylix

Наверное каждый программист, хотя бы время от времени работающий с Delphi, слышал о том, что Kylix – это Delphi для Linux. Более строго, Kylix – это средство разработки на основе ObjectPascal и VCL для платформы Linux/QT. Данная серия статей предназначена прежде всего для программистов, ранее писавших на Delphi, и желающих теперь освоить программирование для Linux. Я сам пишу программы как на Delphi под Windows, так и на QT под Linux. Надеюсь, мои впечатления и наблюдения покажутся Вам полезными.

Первый взгляд на Kylix

Разработчики из Borland постарались сделать Kylix максимально похожим на Delphi, и это касается не только языка программирования и структуры VCL. Пользовательский интерфейс Kylix полностью воспроизводит интерфейс своего «старшего брата». Даже диалоги открытия и сохранения файлов практически одинаковы в обеих версиях. У программистов, привыкших к интерфейсу Delphi, работа в Kylix не вызовет проблем. Для тех, кто имеет опыт программирования для Linux, отмечу, что интегрированная среда разработки Kylix отличается стабильностью графического интерфейса, развитым набором функций редактирования текста и прекрасной встроенной справочной системой. Кроме того, Kylix снабжен отличной печатной документацией (на компакт-диске имеются ее электронные версии): руководством по языку ObjectPascal, справочником по библиотеке VCL (Библиотека визуальных компонентов) и руководством для быстрого освоения пакета.

Преимущества Kylix – те же, что и у Delphi: ускорение цикла разработки приложений, готовые компоненты для работы с базами данных, Web-интерфейсами и Интернет. К этому следует добавить возможность переноса дополнительных компонентов, написанных для Delphi. Тут надо отдать должное разработчикам: для переноса модулей, написанных исключительно средствами ObjectPascal и VCL, достаточно просто перекомпилировать исходные тексты в новой среде. Естественно, многие компании и программисты, занимающиеся разработкой компонентов для Delphi, уже выпустили их версии и для Kylix. Некоторые из этих компонентов можно найти на втором диске дистрибутива.

Немного соли и желчи

Традиционными недостатками Delphi считаются медлительность и громоздкость результирующего кода. К сожалению, в этом вопросе Kylix также копирует своего «старшего брата». Для того, чтобы приложение, написанное в Kylix, могло работать отдельно от среды разработки, ему требуются некоторые разделяемые модули времени выполнения (runtime packages). Список модулей, которые могут понадобиться Kylix приложению, а также правила их распространения и установки приводятся в файле DEPLOY, расположенном на первом диске дистрибутива. Размеры самих исполнимых модулей примерно такие же, как и в случае с Delphi, простейшее приложение занимает на диске

400 килобайт. Плюс несколько сотен килобайт дополнительных модулей, которые в Delphi не нужны. Для сравнения: простое приложение, написанное на Delphi без использования модулей SysUtils, Classes, Forms и т. п. (т. е. используя только Windows API) занимает 20-40 килобайт. Такой же размер имеет и аналогичное Linux приложение, написанное на C++ с использованием QT library.

Очевидно, что Kylix – не лучший выбор в ситуации, когда компактность кода и быстрота являются критическими параметрами.

Все это не умаляет, однако, достоинств Kylix, как средства быстрой разработки приложений для работы с сетью и базами данных, а при использовании большого числа Kylix приложений, удельные расходы на разделяемые модули времени выполнения снижаются.

P.S. Для тех, кто не знает, kylix — это античная винная чаша, обычно покрытая росписью с внешней и с внутренней стороны.

Статья Kylix — Первые впечатления раздела ОС и Железо Kylix может быть полезна для разработчиков на Delphi и FreePascal.

Комментарии и вопросы

Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.

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. Ее вы сможете найти на нашем CD-ROM.

Некоторые технические особенности 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 почему-то отсутствует, зато есть класс TWinControl (рис. 2). Будем надеяться, что и все остальные погрешности в этом продукте будут столь же незначительны.
  • DataCLX содержит классы, позволяющие создавать приложения, которые используют базы данных. Эта группа модулей состоит из двух частей: библиотеки визуальных компонентов для отображения и редактирования данных и библиотеки dbExpress, предназначенной для обеспечения доступа к данным.
  • Библиотека 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).

Чего нет в 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 Intelligence, опубликованном в КомпьютерПресс № 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 e-Desktop 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-средства такого класса и качества, как правило, не очень сложны в освоении. Остается лишь пожелать этому продукту счастливой судьбы.

Вышла бесплатная (GPL) редакция Kylix

Borland Software сообщила о выпуске бесплатной редакции своего инструментального пакета для платформы Linux — Kylix Open Edition, распространяемой на условиях GPL-лицензии.

Re: Вышла бесплатная (GPL) редакция Kylix

И после такой новости сайт Borland просто перестал обслуживать дополнительных клиентов. Вообще можно отметить, что не с выпуском Кайликса для предприятий, а именно с этой версии, которая бесплатна, и пойдет продвижение этого IDE в жизнь.


Re: Вышла бесплатная (GPL) редакция Kylix

В данный момент для разработчиков пишуших на Языках С\С++, килих пока не интересен. Вот через год (?) борланд выпустит С++ IDE.. точно не знаю как он будет называтся..толи Kylix C++.. толи C++ Builder for Linux.

Согласен

Re: Вышла бесплатная (GPL) редакция Kylix

Я тоже жду C++, однако Kylix тоже интересен. У нас Delphi потихоньку становится корпоративным стандартом. Интересно как это все пашет на Linux.

Вот только поставить Kylix trial на Redhat 7.1 не удалось. При инсталляции пишет, что ошибка -10 на установке пакета kylix-ide ;(

Если кто наступал на такие грабельки, свисните плиз на johnball@bmz.gomel.by

Re: Вышла бесплатная (GPL) редакция Kylix

На SuSE 7.1. все прекрасно установилось. Но все таки немного притормаживает из — за того что SuSE был установлен с коробки, со старой версией X/KDE.

Re: Вышла бесплатная (GPL) редакция Kylix

Нашел на Borland ответ на свой вопрос про ошибку -10:

Re: Вышла бесплатная (GPL) редакция Kylix

Kylix ne pod GPL vypuschen, a pod litsenziei pozvoliayusche pol’zovat’ ego besplatno dlia sozdaniya GPL programm.

Re: Вышла бесплатная (GPL) редакция Kylix

По поводу Red Hat 7.1 и Kylix — не ставь его под root — ставь обычным юзером в домашнюю директорию — все будет тип-топ

Re: Вышла бесплатная (GPL) редакция Kylix

Я на личной машинке всегда root. Понимаю, что неправильно это.
Но лень перелогиниваться.

Re: Вышла бесплатная (GPL) редакция Kylix

А кому-нибудь известны официальные/неофициальные планы выпуска C++ Builder for Linux. Бо паскаль это может и класно, но очень непривычно. :)

Re: Вышла бесплатная (GPL) редакция Kylix

Можно попробовать поставить в корневой директорий /.

Re: Вышла бесплатная (GPL) редакция Kylix

Да нет, Дельфи (если кто еще непонял) — это конструктор такой, для приложений. Паскаль там только «для связки слов» (ну, примерно, как мат — в русском). Все основное там вовсе не в Паскале.

Re: Re: Вышла бесплатная (GPL) редакция Kylix

:)
>Паскаль там только «для связки слов»
Это в том случае если у программы кроме интерфейса больше мало что есть. А когда интерфейс там так, что бы был, используют делфи, билдер и т.д. шоб не мучаться еще и с интерфейсом.

Re: Вышла бесплатная (GPL) редакция Kylix

Точно точно. Самое неприятное это гуи писать..хоть в qt это довольно легко, но «логику» программы писать куда приятнее чем возиться с гуи.

п.с. знаю про qt Designer.

Re: Re: Вышла бесплатная (GPL) редакция Kylix

>знаю про qt Designer Imo, красивая и совершенно бесполезная штука. На C++Builder не тянет.

Re: Вышла бесплатная (GPL) редакция Kylix

Может быть кто нибудь ответит, зачем вообще нужен Delphi под Linux. А то вот я такой ламер, что не понимаю.

Re: Вышла бесплатная (GPL) редакция Kylix

2qwe: Затем же зачем там нужен qt-designer, KDevelop, etc.

Re: Re: Вышла бесплатная (GPL) редакция Kylix

2devil (*) (2001-07-26 15:07:28.0):
> 2qwe: Затем же зачем там нужен qt-designer, KDevelop, etc.
Для ламеров.

Re: Re: Re: Вышла бесплатная (GPL) редакция Kylix


>> 2qwe: Затем же зачем там нужен qt-designer, KDevelop, etc.
>Для ламеров.
Очень оригинальное мнение. Может пан анонимус и предпочитает весь интерфейс творить собственными лапками(имеется ввиду на С/С++), я же как заправский ламер предпочитаю набросать интерфейс в каком-нибудь дизайнере, и не терять время на то что того не стоит. Куда более важные вещи скрываються за интерфейсом, в самих кишках проги. А сидеть и учить тот-же qt в деталях, а то и до Xlib :) добираться мне незачем, и без того проблем море.
А тагие программы как Kylix, Borland C++ Builder, etc мне в этом очень сильно помогают, ибо вождям надо чтобы усе было красиво, и при этом нормально работало, а времени и на то и на то не дают.

Re: Re: Re: Re: Вышла бесплатная (GPL) редакция Kylix

Ламеризм полный. На гуёвое ваяние гуйни ты тратишь гораздо больше сил и времени, чем если бы воспользовался правильным языком (Tcl) и правильным, содержащим layout manager тулките (Tk). А уж какой отстойный гуй делают ламеришки в Delphi — проблеваться можно! Про layout manager-ы никто и не слышал. Растянешь окошко, фонт поменяешь — и всё плывёт в жопу.

Исходя из вышеизложенного могу заявить, что единственные гуёвые гуерисовалки, отвечающие всем требованиям, и дозволяющие работать быстро и ненапряжно — это VisualTCL и Glade.

Re: Re: Re: Re: Re: Вышла бесплатная (GPL) редакция Kylix

>Растянешь окошко, фонт поменяешь — и всё плывёт в жопу.
:) к сожалению, было, есть и будет есть
Но в любом случае мнение некоторых товарищей что гуй надо ваять руками, нелогично, так как на интерфейс тратится до хрена(мягко говоря) времени.

Re: Вышла бесплатная (GPL) редакция Kylix

to Antichrist (*) (2001-07-26 16:25:43.0)

Вот вот вот. О чем и речь.

Re: Вышла бесплатная (GPL) редакция Kylix

«qt Designer Imo, красивая и совершенно бесполезная штука. На C++Builder не тянет. «

Оно и не должно тянуть. Это не IDE, а всего лишь designer ;-)
он создает .ui файлы, а затем их можно конвертировать в .h + .cpp, на этом qt designer заканчивается. Вот KDevelop + QT Designer = IDE, т.е. их надо рассматривать вместе.

«Может быть кто нибудь ответит, зачем вообще нужен Delphi под Linux.»

Чтобы было. Чем больше выбор продуктов\языков пр-я под конкретную платформу, тем платформе (в данном случае Linux) лучше.
Если ты этим не пользовался, не пользуешься и не собираешься пользоватся, это не значит, что другие этим не пользовались, не пользуются и не собираются.

«А то вот я такой ламер, что не понимаю.»

Re: Re: Вышла бесплатная (GPL) редакция Kylix

«Это не IDE, а всего лишь designer ;-) » Может, я видел не ту версию? Но пр поверхностном сравнении содержания основных панелек Билдера и панельки Qt Designer-a. грустно становится. НЕ годится он для ваяния интерфейсов, слабоват.

Re: Вышла бесплатная (GPL) редакция Kylix

«Исходя из вышеизложенного могу заявить, что единственные гуёвые гуерисовалки, отвечающие всем требованиям, и дозволяющие работать быстро и ненапряжно — это VisualTCL и Glade.»

«Про layout manager-ы никто и не слышал. Растянешь окошко, фонт поменяешь — и всё плывёт в жопу.»

Языком трепать все горазды. Ты наверника никогда не слышал про QLayout.. а далее QVBoxLayout QHBoxLayout QGridLayout.. мм?

Re: Вышла бесплатная (GPL) редакция Kylix

Здравствуйте Странное у Вас, господа Антихристы и qwe, представление о программировании. Всему ведь свое предназначение. Вот и дельфи с к-девелопом и вц++ и т.д. являются CASE-средствами, предназначены для ПРОЕКТИРОВАНИЯ и разработки программных систем с использованием технологии RAD (http://www.citforum.ru/database/case/index.shtml) А в ней, если внимательно прочитаете, найдете, что там и прототипы интерфейсов нужно заказчику показывать, и много еще для чего нужны «гуевые ваятели». У нее весьма широкая область применения, хотя эта технология неприменима для разработки ОС, программ, работающих в области, где ошибка может обернуться человеческими жертвами (это потому, что там цикл разработки несколько специфичен). Может, господин qwe именно такие проекты разрабатывает? Тогда он отчасти прав — ну не видел он процесс разработки, как он выглядит в RAD. Ну что поделаешь — у каждого свой мир, свои представления, каждый в этом мире абсолютно прав. Не надо только так грубо навязывать их другому. А то — ламеры и пр.

Re: Вышла бесплатная (GPL) редакция Kylix

2Eldhenn (*) (2001-07-26 17:29:28.0):
«Но пр поверхностном сравнении содержания основных панелек Билдера и панельки Qt Designer-a. грустно становится.»

по пунктам, плиз. Общие фразы не катят.

п.с. на сколько я помню в Билдере есть еще кнопочки для создания socket’ов, db access, com\другие порты, timer’ы, sound проигрывателей (не путать с выигрывателями ;-), и еще куча всего, что не имеет ничего общего с gui. Так что сравнивать колличество кнопочек не имеет смысла. QT Designer только для рисование кнопок, input-box’ов, label’ов и тех же layout’ов.

Re: Вышла бесплатная (GPL) редакция Kylix

а ставил кто Кайликс под Слакварь?

Re: Re: Вышла бесплатная (GPL) редакция Kylix

Врать не буду, оба видел давно, под руками ничего из них нет. Но я не про db acess, я как раз про обычный интерфейс. Что там в дизайнере было. ну, кнопочки, лэйблы, едиты. вот, аналога richedit не видел, не помню насчёт TImage (или как там борляндовский компонент обзывается), не видел TStringGrid, кажется нет bevel-ов, не помню насчёт Panel и SpeedButton, но кажется нет. Но повторяю — QtDesigner видел давно, около часа времени, не поручусь, что это была свежая версия. Но у борлянда для стандартных элементов интерфейса было три панельки, а у Qt я видел всего одну.

Re: Вышла бесплатная (GPL) редакция Kylix

Да, крепко Вас, господа, Билли Г. научил: «чтобы машина что-то сделала нужно чтобы кто-то написал некую программу, причем с интуитивно понятным интерфейсом». Б`ольшая часть задач под *NUX замечательно решается средствами ОС (Вы, наверное, слышали про системные утилиты, конвейеры и т.п.), работают они даже в командной строке, а интерфейс к ним прикрутить тоже труда не составляет. Я к тому, что стоит ли впихивать программу и интерфейс в одну упаковку.

Re: Re: Вышла бесплатная (GPL) редакция Kylix

Вы хотите заставить бухгалтера, секретаршу пользоваться «системными утилитами» и конвейерными фичами? Заставить их прикручивать интерфейс к программе?

Re: Вышла бесплатная (GPL) редакция Kylix

to Eldhenn (*) (2001-07-26 18:07:43.0) А Вы хотите неучить ее работать с Kylix?

Re: Вышла бесплатная (GPL) редакция Kylix


Простите описка, не неучить, а научить.

Re: Re: Re: Re: Re: Вышла бесплатная (GPL) редакция Kylix

>На гуёвое ваяние гуйни ты тратишь гораздо больше сил и времени, чем если бы воспользовался правильным языком (Tcl) и правильным, содержащим layout manager тулките (Tk).

U vashego Tk (hot’ on i deistvitel’no viglyadit «pravil’nim» i intuitivno ponyatnim) — control’i ubogie. Poetomu — ne katit.
Krome togo, dlya mnogih interfeisov on prosto ne goditsya — v chastnosti, v silu svoei tormoznutosti i ubogoi koncepsii Tcl «vse — stroka». Ya uzh molchu, chto pri previshenii nekotorogo kriticheskogo ob’ema cod Tcl stanovitsya absolutno unmanageable.
V obshem, hotya Tcl/Tk i deistvitel’no vo mnogom interesnaya shtuka, goditsya eto tol’ko dlya odnogo — chto bi na skorouu ruku slyapat’ interface _dlya_sebya_.

Re: Re: Вышла бесплатная (GPL) редакция Kylix

> Да, крепко Вас, господа, Билли Г. научил: «чтобы машина что-то сделала >нужно чтобы кто-то написал некую программу, причем с интуитивно >понятным интерфейсом». Б`ольшая часть задач под *NUX замечательно >решается средствами ОС (Вы, наверное, слышали про системные утилиты, >конвейеры и т.п.), работают они даже в командной строке, а интерфейс к >ним прикрутить тоже труда не составляет. Я к тому, что стоит ли >впихивать программу и интерфейс в одну упаковку. Вот не надо, пожалуйста, меня учить тому, что и как делается под *NIX, пока я того сам не прошу. А прошу я научить чему-либо тогда, когда сам не могу найти это. Кроме того, я никогда не слушал лекций БГ, не был на семинарах Microsoft, etc. Совершенно некорректно говорить о задачах под OC. Просто есть задача. Сначала она анализируется, строятся модели и т.д., а затем выбирается инструментарий, среда разработки. Довольно часто процесс построения мат. модели перемешан с анализом существующих средств, требуемых ресурсов. Но задача ставится обычно так: построить систему Х (управления полетами, например). А если какой-то самодур попросит написать систему управления полетами под Юникс(Виндовс, любую ОС), то Вы напишете ее на конвейерах и системных утилитах, а потом что-то (интерфейс в смысле) прикрутите? И неважно, в командной ли строке работает программа или с ГУИ. Важно то, что попросит заказчик или то, в чем его убедит разработчик :). На книгу Вы, конечно, не удосужились взглянуть. А ведь я говорю не о том, чтобы создать программу, прикрутить к ней что бы то ни было. Я говорю о разработке информационной системы. При этом обычно в проекте участвуют несколько человек — не только программеры, но в первую очередь архитекторы и проектировщики. В рамках конкретной технологии должна поддерживаться связь между участниками проекта, документооборот, жизненный цикл ПО. НЕОБХОДИМЫ средства моделирования. Информационная система (не вспомогательная программа, инит скрипт какой-нибудь) может быть написана на чем угодно (средствами ли юникс или еще на чем-нибудь). Это становится значимым лишь после того, как готова концептуальная, а затем и математическая модель системы. Часто эти модели существуют лишь в головах программеров (кодеров, проектировшиков и архитекторов в одном лице), а не на бумаге. Отсюда и проблемы поддержки и сопровождения ПО. Почему-то многие не знают о том, что в области разработки ПО столько наработано, каждый пишет так, как вздумается. Черт с ним, если для себя и на два дня. А то — прикрутить.

Kylix: кросс-платформенная разработка от Borland

Тема сравнения 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 ожидается в марте.

Другие статьи из раздела

  • Программная платформа IBM для повышения эффективности бизнеса
  • ИБП для защиты серверов
  • Интегрированное решение для защиты центров обработки данных
  • На пути к построению единой платформы защиты данных
  • Виртуализация без ограничений

Поместить в блог

Комментарии к статье

Рекламные ссылки

Chloride
Демонстрация Chloride Trinergy
Впервые в России компания Chloride Rus провела демонстрацию системы бесперебойного электропитания Chloride Trinergy®, а также ИБП Chloride 80-NET™, NXC и NX для своих партнеров и заказчиков.

NEC Нева Коммуникационные Системы
Завершена реорганизация двух дочерних предприятий NEC Corporation в России
С 1 декабря 2010 года Генеральным директором ЗАО «NEC Нева Коммуникационные Системы» назначен Раймонд Армес, занимавший ранее пост Президента Shyam …

компания «Гротек»
С 17 по 19 ноября 2010 в Москве, в КВЦ «Сокольники», состоялась VII Международная выставка InfoSecurity Russia. StorageExpo. Documation’2010.
Новейшие решения защиты информации, хранения данных и документооборота и защиты персональных данных представили 104 организации. 4 019 руководителей …

МФУ Panasonic DP-MB545RU с возможностью печати в формате А3
Хотите повысить эффективность работы в офисе? Вам поможет новое МФУ #Panasonic DP-MB545RU. Устройство осуществляет

Adaptec by PMC
RAID-контроллеры Adaptec Series 5Z с безбатарейной защитой кэша
Опытные сетевые администраторы знают, что задействование в работе кэш-памяти RAID-контроллера дает серьезные преимущества в производительности …

Chloride
Трехфазный ИБП Chloride от 200 до 1200 кВт: Trinergy
Trinergy — новое решение на рынке ИБП, впервые с динамическим режимом работы, масштабируемостью до 9.6 МВт и КПД до 99%. Уникальное сочетание …

Внимание: Kylix


Ценность Kylix для разработчиков — в простоте разработки и более высокой производительности
Как только Kylix начинает работать, он предлагает несколько окон, в том числе инструментальную панель Project, модуль проектирования форм и Explorer Window

Корпорация Borland выпустила Kylix, собственную версию Delphi для среды ОС Linux. Полнофункциональная среда быстрой разработки приложений обеспечивается за счет пакета QT, включающего средства разработки ПО графических пользовательских интерфейсов и языка Object Pascal. Широкое обсуждение в прессе сделало Kylix одним из самых долгожданных программных продуктов ушедшего года для Linux.

Kylix заинтересовал меня по ряду причин. Хотя я и не занимаюсь разработкой программного обеспечения под Windows, я готов подписаться под всеми изъявлениями восторга по поводу самой идеи простой кросс-платформенной разработки под Windows. Первым созданным мною приложением была программа в среде dBase 4, предназначенная для обработки индивидуальных заказов книжного магазина. Я сталкивался с Microsoft Windows только когда вынужден был воспользоваться QuickBooks и предоставлять поддержку покупателям с унаследованными системами. В нашем офисе используется Linux, и только Linux. Даже на iMac работает бета-версия YellowDog Linux 2.0. Шумиха, развернутая вокруг Kylix, побудила меня с ним ознакомиться.

Установка

Вскрыв коробку, я вспомнил, почему мне действительно нравится Borland. Из-за его документации. Когда несколько лет назад я писал свое первое приложение для базы данных, я программировал исключительно с помощью руководства Borland, поставляемого с Dbase. Мне не понадобились никакие дополнительные материалы. Такое впечатление, что Borland сохранил эту традицию и в отношении Kylix, который включает в себя Developers Guide, Quick Start и Language Guide.

Инсталляция Kylix потребовала таких же усилий, как нажатие кнопки Reset на зависшей машине с Windows. Для его установки достаточно вставить компакт-диск в дисковод и запустить setup.sh. Kylix инсталлирует свои собственные библиотеки. Другими словами, он создает полностью автономную среду, в которой затем и работает.

После инсталляции Kylix предлагает сценарий, называемый startkylix, который устанавливает корректные переменные среды. В первый раз, когда вы запускаете Kylix с помощью сценария startkylix, на экране появляется окно с сообщением «Генерация матрицы шрифтов. Подождите, пожалуйста. ». Искушенные пользователи, скорее всего, воскликнут: «Осторожно! Опасность!»

Да, Kylix использует WINE, прекрасную реализацию Win32 API для Linux. Это значит, что WINE позволяет производителям намного проще переносить свои Windows-приложения на Linux. Однако WINE пока не закончен, и, вполне возможно, так и не будет закончен из-за того, что API-интерфейсы все время меняются.

Кое-кто может возразить, что Kylix должен был стать оригинальным Linux-приложением. Да, это так. Компания Borland использовала WINE для переноса некоторых ориентированных на Win32 функций с Windows на Linux. При этом Kylix позволяет компилировать оригинальные двоичные модули Object Pascal для Linux. Мой особый интерес к Kylix пробудил RAD-инструментарий. Kylix открыл для меня новый мир. Мне давно хотелось заняться графическим программированием, но никак не удавалось найти среду, которая меня бы устроила. Kylix решил эту проблему.

Работа с Kylix

Как только Kylix начинает работать, он предлагает несколько окон, в том числе инструментальную панель Project, Object Inspector, модуль проектирования форм и Explorer Window.

Инструментальная панель Project предоставляет навигационную структуру для любой операции, которую вы бы хотели выполнить в Kylix. Она содержит стандартные пункты меню, такие как file и edit, а также ваши компоненты для дизайнера форм.

Object Inspector содержит свойства каждого объекта из программы, которую вы разрабатываете. Не имеет значения, редактируете ли вы глобальные свойства формы или событийные характеристики клавиши. Если у объекта есть свойства высшего уровня, вы редактируете их в Object Inspector.

Form Designer на самом деле не что иное, как конструктор экранов. Он представляется в виде открытого поля с заголовком Form 1, расположенным под Project Tool Bar. Конструктор Form Designer позволяет быстро создавать презентабельные экраны или формы. Вы можете использовать стандартные операции буксировки объектов для создания необходимых изображений. На рис. 1 показан проектировщик форм с двумя объектами, которые размещаются внутри формы.

Как можно видеть на рис. 1, я ввел текст: FirstName и поле для ввода данных Теперь начинается самое интересное. Шрифт по умолчанию — Helvetica с кеглем 12. Если передвинуть мышь на Object Inspector, то можно выбрать Font и получить все значения для объекта. В качестве примера я изменил цвет шрифта с черного на серо-белый и гарнитуру с Helvetica на Utopia. Я заметил, что гарнитура для Utopia в кегле 12 выглядит не очень красиво, и изменил размер на 18. Результат моих действий можно увидеть на рис. 2.

Теперь мне показалось, что оливковый фон не очень хорошо подходит для шрифта серо-белого цвета. Чтобы изменить фон на черный, я указал на фон в форме и выбрал пункт Color в Object Inspector.

Пример, приведенный выше, очень прост, но он иллюстрирует мощные возможности Kylix. На все эти операции потребовалось три минуты и несколько щелчков клавишей мыши. Ниже я привожу код.

Этот код извлекает параметры объекта из файла xfm. Далее представлено содержимое файла xfm.

Добавление событий

Не знаю как вам, а мне явно потребуется больше трех минут, чтобы все это написать. Так что я создал быструю форму, которая ничего не делает. Давайте посмотрим, что произойдет с кодом, если я выполню событие. Во-первых, я собираюсь создать клавишу в консрукторе форм. Поскольку это первая клавиша, по умолчанию она будет называться Button1. Прежде всего я изменю название на Submit. Следующий шаг — присвоить событие объекту клавиши. Чтобы присвоить событие, выберите Events в Object Inspector.

Первое событие в Object Inspector — это OnClick. Чтобы использовать OnClick, наберите имя процедуры, которое должно вызваться по нажатию клавиши. В нашем примере я назвал процедуру colorChange. По нажатию на клавишу Submit изменится цвет объектов. Здесь следует отметить одну особенность. Если я нажимаю Enter в поле события OnClick при открытом окне Explorer, Kylix автоматически помещает курсор в область кода процедуры colorChange.

Я определил событие процедуры. Чтобы использовать это событие, я должен набрать реальный код, но прежде чем сделать это, я бы хотел показать вам, как форма выглядит после компиляции.

Клавиша Submit пока ничего не делает, но если я добавлю следующий фрагмент кода, где Explorer разместил мою процедуру colorChange, то это будет выглядеть следующим образом.

Форма отобразит результаты на рис. 4.

На создание кода в этом проекте у меня ушло менее 10 минут. Конечно, это проект, в котором далеко не 40 тыс. строк, но этот простой пример показывает, в чем принципиальная ценность Kylix для разработчиков. А именно: простая разработка и более высокая производительность.

Резюме

В первый раз, когда я запустил Kylix, произошел сбой. Я думаю, что это было случайное обращение по некорректному адресу. Я загрузил Kylix на свой мобильный компьютер, и там возникла такая же ошибка. Второй раз, когда я запустил Kylix, он заработал без проблем.

Первый сбой заставил меня подумать о том, готов ли Kylix к массовому распространению. Использование WINE в других проектах не всегда приводило к успеху (вспомните WordPerfect). Однако за исключением небольшой задержки в некоторых задачах, я не заметил ничего, что заставило бы меня отказаться от использования Kylix в крупных проектах разработки.

В общем, Kylix меня не разочаровал. Да, использование WINE может заставить вас задуматься о стабильности, но, похоже, Borland подготовила неплохую реализацию. По мере совершенствования Kylix и по мере того, как все больше программистов Windows Delphi решат расширять свои рынки, Kylix будет становиться все более мощной силой для Linux.

Поделитесь материалом с коллегами и друзьями

Что такое код kylix

Наверное каждый программист, хотя бы время от времени работающий с Delphi, слышал о том, что Kylix – это Delphi для Linux. Более строго, Kylix – это средство разработки на основе ObjectPascal и VCL для платформы Linux/QT. Данная серия статей предназначена прежде всего для программистов, ранее писавших на Delphi, и желающих теперь освоить программирование для Linux. Я сам пишу программы как на Delphi под Windows, так и на QT под Linux. Надеюсь, мои впечатления и наблюдения покажутся Вам полезными.

Первый взгляд на Kylix

Разработчики из Borland постарались сделать Kylix максимально похожим на Delphi, и это касается не только языка программирования и структуры VCL. Пользовательский интерфейс Kylix полностью воспроизводит интерфейс своего “старшего брата”. Даже диалоги открытия и сохранения файлов практически одинаковы в обеих версиях. У программистов, привыкших к интерфейсу Delphi, работа в Kylix не вызовет проблем. Для тех, кто имеет опыт программирования для Linux, отмечу, что интегрированная среда разработки Kylix отличается стабильностью графического интерфейса, развитым набором функций редактирования текста и прекрасной встроенной справочной системой. Кроме того, Kylix снабжен отличной печатной документацией (на компакт-диске имеются ее электронные версии): руководством по языку ObjectPascal, справочником по библиотеке VCL (Библиотека визуальных компонентов) и руководством для быстрого освоения пакета.

Преимущества Kylix – те же, что и у Delphi: ускорение цикла разработки приложений, готовые компоненты для работы с базами данных, Web-интерфейсами и Интернет. К этому следует добавить возможность переноса дополнительных компонентов, написанных для Delphi. Тут надо отдать должное разработчикам: для переноса модулей, написанных исключительно средствами ObjectPascal и VCL, достаточно просто перекомпилировать исходные тексты в новой среде. Естественно, многие компании и программисты, занимающиеся разработкой компонентов для Delphi, уже выпустили их версии и для Kylix. Некоторые из этих компонентов можно найти на втором диске дистрибутива.

Немного соли и желчи

Традиционными недостатками Delphi считаются медлительность и громоздкость результирующего кода. К сожалению, в этом вопросе Kylix также копирует своего “старшего брата”. Для того, чтобы приложение, написанное в Kylix, могло работать отдельно от среды разработки, ему требуются некоторые разделяемые модули времени выполнения (runtime packages). Список модулей, которые могут понадобиться Kylix приложению, а также правила их распространения и установки приводятся в файле DEPLOY, расположенном на первом диске дистрибутива. Размеры самих исполнимых модулей примерно такие же, как и в случае с Delphi, простейшее приложение занимает на диске

400 килобайт. Плюс несколько сотен килобайт дополнительных модулей, которые в Delphi не нужны. Для сравнения: простое приложение, написанное на Delphi без использования модулей SysUtils, Classes, Forms и т. п. (т. е. используя только Windows API) занимает 20-40 килобайт. Такой же размер имеет и аналогичное Linux приложение, написанное на C++ с использованием QT library.


Очевидно, что Kylix – не лучший выбор в ситуации, когда компактность кода и быстрота являются критическими параметрами.

Все это не умаляет, однако, достоинств Kylix, как средства быстрой разработки приложений для работы с сетью и базами данных, а при использовании большого числа Kylix приложений, удельные расходы на разделяемые модули времени выполнения снижаются.

P.S. Для тех, кто не знает, kylix — это античная винная чаша, обычно покрытая росписью с внешней и с внутренней стороны.

Статья и примеры программ © 2001 Андрей Наумович Боровский. При воспроизведении ссылка на первоисточник обязательна.

Что такое код kylix

В процессе разработки приложений в средах Delphi и Kylix время от времени возникает необходимость в обращении непосредственно к прикладному интерфейсу системы. Это происходит по двум причинам: во-первых, несмотря на широчайший выбор компонентов, библиотека VCL/CLX не в состоянии охватить все возможности, предоставляемые операционной системой. Во-вторых, даже в том случае, когда среда разработки предоставляет готовый компонент, обладающий соответствующей функциональностью, в целях повышения быстродействия имеет смысл использовать системные функции, лежащие в основе компонента.

В Delphi интерфейсы большинства системных функций определены в библиотеках времени выполнения (run-time libraries), а для упрощения реализации недостающих интерфейсов в язык Object Pascal введены элементы, облегчающие “перевод” деклараций функций и объектов с С++ на Object Pascal и взаимодействие с системными библиотеками. Фактически, можно утверждать, что интерфейс Win32 API полностью доступен в Delphi.

Разработчики Kylix также постарались сделать интерфейс системы Linux максимально доступным в среде Object Pascal. Однако, при программировании в Kylix, непосредственное взаимодействие с системой осуществляется несколько сложнее, чем в Delphi и Windows.

Прежде всего, следует учесть, что Linux не так “монолитна”, как Windows. То, что мы дальше будем называть “интерфейсом системы” состоит из нескольких независимых друг от друга частей. В Linux графическая подсистема отделена от остальной операционной системы и в принципе эта 32-х разрядная многозадачная ОС может использоваться вообще без графического интерфейса. У такого подхода есть свои преимущества: при решении ресурсоемких задач вся мощность процессора может быть брошена на выполнение полезной работы, а не затрачиваться на перерисовку окон. Кроме того приложениям с текстовым интерфейсом присуща большая стабильность. Работа с графикой в Linux осуществляется на основе сервера XFree86. Эта графическая подсистема предоставляет в распоряжение программиста интерфейсы для выполнения базовых операций, необходимых для построения графического интерфейса пользователя и вывода графической информации. При решении большинства задач у программиста не возникает необходимости писать код, взаимодействующий непосредственно с XFree86. Дело в том, что над XFree86 существует несколько “надстроек”, облегчающих работу с графикой и построение пользовательского интерфейса. Одной из таких надстроек является библиотека Qt library, на базе которой реализована графическая оболочка KDE. Qt librar y является также основой набора компонентов VisualCLX, — аналога VCL для Kylix. Следует отметить, что библиотека Qt реализована не только на Linux. Существуют версии Qt для Mac OS, Solaris и даже для Windows. Ожидается, что поддержка Qt будет введена в Del p hi 6.0, что в свою очередь еще больше упростит перенос приложений между Kylix и Delphi.

В Kylix большая часть системных функций Linux инкапсулирована в модулях System, SysUtils и т. д., а большинство возможностей Qt library реализовано в наборе компонентов VisualCLX. Кроме этого Kylix предоставляет программисту возможность непосредственной работы как с интерфейсами Linux, так и с классами библиотеки Qt. Далее мы рассмотрим эти возможности подробнее.

Kylix и Linux API

Импортирование функций Linux API осуществляется достаточно просто и очень похоже на импортирование функций из Windows DLL. В Linux аналогом DLL являются разделяемые библиотеки (shared object files, so files). Обычно имена файлов разделяемых библиотек включают расширение .so. Не следует путать эти файлы с файлами объектного кода. Модули времени выполнения Kylix импортируют многие функции Linux API. Например, модуль Libc импортирует функции glibc — GNU C library. Между именами функций glibc и их декларациями в Libc существует четкое соответствие, так что для изучения функций модуля Libc можно воспользоваться документацией по glibc и страницами man. Между прочим, если в окне редактора кода поместить курсор на имя glibc функции и нажать F1, будет открыто не окно справки Kylix, а соответствующая man-страница.

Рассмотрим, например, glibc функцию fork, которая создает в системе новый процесс, являющийся точной копией того процесса, из которого вызвана эта функция. В glibc данная функция определена следующим образом:

pid_t fork (void);

В модуле Libc декларация этой функции выглядит так:

function fork: __pid_t; cdecl;

Обратите внимание на указание формата вызова cdecl. Этот формат используется по умолчанию для вызова системных функций Linux, также как в Delphi для вызова функций Win32 API используется stdcall.

Вы сами можете импортировать функции из разделяемых библиотек. В следующем примере осуществляется импортирование функции vga_setmode из библиотеки VGAlib (разделяемый файл libvga.so). В заголовке библиотеки, написанной на С, эта функция объявляется как

int vga_setmode (int mode);

В модуле Kylix пишем:

function SetVGAMode (Mode: Integer) : Integer; cdecl;

function SetVGAMode; external ‘libvga.so’ name ‘vga_setmode’;

Интеграция кода, написанного на C/C++, и Kylix-приложений будет рассмотрена подробнее в следующих статьях.

Kylix и Qt library

Библиотека Qt library является основой библиотеки VisualCLX точно также, как Windows GUI API является основой Delphi VCL. Большинство компонентов VisualCLX можно рассматривать как “Object Pascal оболочки” соответствующих объектов Qt library.

Однако механизм взаимодействия между VisualCLX и Qt library сложнее, чем механизм взаимодействия между VCL и Windows GUI API. На рисунке справа показаны различные уровни интерфейсов между XFree86 и VisualCLX. На схеме видно, что между VisualCLX и Qt library лежит «прослойка» CLXDisplay API . Необходимость в этой «прослойке» вызвана тем, что Qt library — это не набор функций, а иерархия классов С++. В Object Pascal не существует возможности импортировать классы С++ непосредственно, и разработчикам Kylix пришлось пойти в обход этой проблемы.

Идея CLXDisplay API заключается в трансляции методов классов в функции. (Говоря о классах, я буду использовать терминологию Object Pascal, а не С++). Для обращения к какому-либо методу экземпляра класса Qt library вызывается соответствующая функция, которой в качестве одного из параметров передается указатель на экземпляр класса, для которого должен быть вызван данный метод.

Поясним вышесказанное на простом примере: Допустим, в библиотеке, написанной на С++, реализован класс QSomeClass. У этого класса есть конструктор, деструктор и метод Method1. Для того, чтобы сделать методы класса С++ доступными в Object Pascal, мы пишем на С++ библиотеку-оболочку для данного класса, экспортирующую функции QSomeClass_Create, QSomeClass_Destroy и QSomeClass_Method1. Теперь, для того, чтобы в программе, написанной на Object Pascal, создать экземпляр класса QSomeClass, мы вызываем функцию QSomeClass_Create, и передаем ей в качестве параметров значения, требующиеся конструктору класса. Написанная на С++ функция QSomeClass_Create создает экземпляр класса QSomeClass и передает значения своих параметров его конструктору. В качестве результата функция возвращает некий идентификатор созданного экземпляра, например, указатель на него. Таким образом мы можем создать несколько экземпляров класса QSomeClass. Если теперь мы хотим вызвать метод Method1 для одного из экземпляров QSomeClass, мы вызываем функцию QSomeClass_Method1, передавая ей в качестве одного из параметров значение, возвращенное функцией QSomeClass_Create. Оболочка класса вызывает метод Method1 для экземпляра, соответствующего переданному идентификатору, передает этому методу необходимые параметры и затем, если нужно, возвращает значение, возвращенное методом Method1. Для уничтожения экземпляра QSomeClass вызывается функция QSom e Class_Destroy, которой передается идентификатор этого экземпляра.

Таким образом можно сказать, что CLXDisplay API представляет собой набор функций, «деклассирующих» библиотеку Qt library. Для упрощения работы с этим интерфейсом имена функций строятся по определенной системе. Рассмотрим для примера Qt класс QPushButton. Класс QPushButton реализует кнопку — элемент пользовательского интерфейса и является основой класса TButton из библиотеки VisualCLX. У класса QPushButton есть несколько конструкторов, деструктор и ряд методов, таких как SetDefault, IsDefault, SetFlat и т. д. Далее мы рассмотрим, какие функции для работы с этим классом предоставляет CLXDisplay API. Функции интерфейса CLXDisplay API объявляются в Kylix модуле Qt, который поставляется с исходным текстом. В комплект документации, поставляемой с Kylix, справочник по CLXDisplay API не входит, так что нашими главными источниками информации по этому вопросу будут файл Qt.pas из поставки Kylix и документация к Qt library.

Из файла qpushbutton.h, входящего в Qt library, явствует, что у класса QPushButton три конструктора:

QPushButton( QW > QPushButton( const QString &text, QW > QPushButton( const QIconSet& icon, const QString &text, QW >

Каждому из этих конструкторов соответствует своя функция в модуле Qt:

function QPushButton_create(parent: QWidgetH; name: PAnsiChar): QPushButtonH; overload; cdecl;
function QPushButton_create(text: PWideString; parent: QWidgetH; name: PAnsiChar): QPushButtonH; overload; cdecl;
function QPushButton_create(icon: QiconSetH; text: PWideString; parent: QWidgetH; name: PAnsiChar): QPushButtonH; overload; cdecl;

Обратите внимание на спецификатор overload. В качестве префикса к имени функции используется имя класса, в данном случае QPushButton. Далее следует _create, означающее, что функция создает экземпляр класса и вызывает его конструктор. Все три функции возвращают значение типа QPushButtonH, которое является ссылкой на созданный экземпляр объекта. Это значение следует передавать другим функциям для работы с экземпляром QPushButton. Имя типа ссылки на экземпляр класса составляется из имени класса с добавлением H. Обратите внимание на переменную parent типа QWidgetH — эта переменная является ссылкой на экземпляр одного из потомков класса QWidget, базового класса Qt library. В этом параметре передается ссылка на экземпляр объекта пользовательского интерфейса, которому принадлежит создаваемая кнопка. В иерархии указателей действуют те же правила, что и в иерархии классов: переменной типа QWidgetH можно присваивать указатель на экземпляр любого класса-потомка QWidget. В переменной name передается имя экземпляра. Оно используется в некоторых средах разработки и для поиска экземпляра объекта в иерархии объектов. Вы можете присваивать этой переменной любое значение.

Для уничтожения экземпляра объекта QPushButton служит процедура QPushButton_destroy:

procedure QPushButton_destroy(handle: QPushButtonH); cdecl;

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


procedure QPushButton_setFlat(handle: QPushButtonH; p1: Boolean); cdecl;

Для проверки того, является ли данная кнопка элементом управления, выбираемым по умолчанию предназначена функция

function QPushButton_isDefault(handle: QPushButtonH): Boolean; cdecl;

В начале этого раздела было отмечено, что в основе компонентов VisualCLX лежат классы Qt library. Можно ли получить доступ к экземпляру класса Qt, соответствующему данному экземпляру класса VisualCLX? VisualCLX предоставляет такую возможность. Для каждого класса VisualCLX определено свойство Handle, которое во время выполнения программы содержит ссылку на «нижележащий» класс Qt library. Эта ссылка позволяет вызывать методы класса Qt. Рассмотрим конкретный пример. Пусть при проектировании пользовательского интерфейса приложения в окне формы была создана кнопка — компонент класса TButton. Это означает, что в программу была введена переменная Button1 : TButton. Как и следовало ожидать, свойство Button1.Handle имеет тип QPushButtonH. Воспользуемся этим указателем для доступа к Qt объекту и сделаем данную кнопку элементом управления по умолчанию:

Конечно, тоже самое можно было бы сделать и при помощи свойства Default объекта Button1.

В заключение отмечу одну юридическую тонкость, касающуюся использования Qt и Kylix. Библиотека Qt library распространяется на основе двух типов лицензий: бесплатной и коммерческой. Если Вы получили Qt в составе дистрибутива Linux, значит Вы являетесь обладателем бесплатной лицензии. За коммерческую лицензию Вам придется заплатить дополнительно. Бесплатная лицензия дает Вам право на разработку Qt приложений при условии, что эти приложения будут распространяться на основе General Public License (GPL), т. е. вместе с исходным текстом. Для того, чтобы иметь право распространять Qt приложения на коммерческой основе, Вам потребуется коммерческая лицензия. Если Вы являетесь пользователем легальной копии Kylix, т. е. обладаете лицензией Borland, Вы имеете право создавать при помощи Kylix как открытые, так и коммерческие приложения, даже если у Вас нет коммерческой лицензии на использование Qt. Однако тут действуют некоторые ограничения:

  1. Если Вы используете в коммерческом приложении элементы CLXDisplay API, Ваше приложения должно содержать экземпляр TApplication и хотя бы один компонент, являющийся производным от TControl. В противном случае Вы должны либо распространять приложение на основе G P L, либо приобрести коммерческую лицензию на использование Qt.
  2. Если в создаваемом приложении Вы используете Qt-функциональность, не связанную с CLXDisplay API, (например, взаимодействуя непосредственно с С++ модулями Qt), Вы также должны либо сделать приложение открытым, либо приобрести коммерческую Qt лицензию.

Есть, конечно, и третий путь — просто наплевать на все лицензии, однако я Вам этот вариант не советую.

В этой статье была описана работа с Linux API и вызовы методов объектов Qt library из программы, написанной на Object Pascal. Однако, для того, чтобы воспользоваться мощью Qt в полной мере, необходимо также уметь создавать свои обработчики событий Qt library. О том, как это сделать, будет рассказано в следующей статье.

Статья и примеры программ © 2001 Андрей Наумович Боровский. Воспроизведение возможно только с разрешения автора.

Блог о Linux и Windows

Записки по настройке Debian Ubuntu и Microsoft Windows

Замена Kylix — Lazarus

Kylix не оправдал возложенных на него надежд. На данный момент проект как таковой уже умер, и Борланд отказался от дальнейшего развития и поддержки Kylix. И что делать тем, кто хочет, продолжит использовать язык Паскаль и Object Pascal. Есть альтернатива в лице Lazarus , основанной на FreePascal.Free Pascal Compiler (FPC) — это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами. Он совместим с Borland Pascal 7 и Object Pascal – Delphi, но при этом обладает рядом дополнительных возможностей, например, поддерживает перегрузку операторов. FPC — кроссплатформенный инструмент, поддерживающий огромное количество платформ. Среди них — AmigaOS, DOS, Linux, *BSD, OS/2, MacOS(X) и Win32.’, ‘Однако FPC — не просто компилятор. Он имеет в своём составе великолепный набор библиотек, одной из которых является FCL, включающая в себя компоненты, совместимые с невизуальными компонентами VCL из Borland Delphi. Разработка визуальных компонент — это цель другого проекта — Lazarus.

/tmp
$ wget http://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20i386%20DEB/Lazarus%200.9.30/lazarus-0.9.30-i386.deb.tar/download

После того как скачали для начало распаковываем архив lazarus-0.9.30-i386.deb.tar при помощи Ark или tar $ cd

/tmp
$ tar -xf lazarus-0.9.30-i386.deb.tar

и начинаем устанавливать пакеты при помощи GDebi Package Installer или в консольном режиме $ cd

/tmp/deb/
$ sudo dpkg -i . i386.deb и так все пакеты из каталога deb и только потом устанавливаем lazarus_0.9.30-i386.deb После установки мы можем выбрать Главное меню — Программирование — Lazarus или в консоле ввести команду

$ /usr/share/lazarus/startlazarus или выбрать в меню Программирования — LazarusР Вот и все желаю удачи.

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. Ее вы сможете найти на нашем CD-ROM.

Некоторые технические особенности 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 почему-то отсутствует, зато есть класс TWinControl (рис. 2). Будем надеяться, что и все остальные погрешности в этом продукте будут столь же незначительны.
  • DataCLX содержит классы, позволяющие создавать приложения, которые используют базы данных. Эта группа модулей состоит из двух частей: библиотеки визуальных компонентов для отображения и редактирования данных и библиотеки dbExpress, предназначенной для обеспечения доступа к данным.
  • Библиотека 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).

Чего нет в 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 Intelligence, опубликованном в КомпьютерПресс № 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 e-Desktop 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-средства такого класса и качества, как правило, не очень сложны в освоении. Остается лишь пожелать этому продукту счастливой судьбы.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL