La posibilidad de desarrollar aplicaciones en y para Linux usando una herramienta similar a Delphi. Esto es lo que nos ofrece Borland con su producto Kylix, disponible desde hace pocas semanas.

Hace unos meses, en un primer contacto publicado en PC World, nos acercábamos al denominado proyecto Kylix de Borland evaluando una versión beta del que sería el primer producto de dicho proyecto: Delphi para Linux. Dicho producto, hoy ya en la calle, se ha denominado finalmente con el nombre del proyecto, es decir, se llama Kylix. Básicamente, podríamos decir que es una versión de Delphi para Linux, con características similares a las que en su día tuvo Delphi 4 y algunos de los elementos de Delphi 5.

No obstante, Kylix no es una simple conversión de Delphi para el sistema operativo GNU/Linux, sino un producto que incorpora novedades tan importantes que repercutirán en toda la gama de productos de Borland, como el próximo Delphi 6. Una nueva librería de componentes multiplataforma, conocida como CLX; un mecanismo de acceso a bases de datos alternativo al BDE, integración con Apache, etc.

En este artículo hacemos un recorrido por la mayoría de las características más destacables de Kylix, mostrándole sus posibilidades y, al tiempo, evaluando la idoneidad del producto para cada tarea, aunque sin entrar en detalles ni ejemplos prácticos. Nuestro objetivo es facilitarle la información necesaria para que pueda decidir si Kylix es un producto que puede interesarle, más que aportarle conocimientos prácticos sobre su uso.

La interfaz de usuario

El entorno de desarrollo de Kylix es del tipo RAD (Rapid Application Development) y para usarlo deberemos trabajar con un entorno gráfico, como KDE o Gnome. El compilador puede ser utilizado directamente desde la línea de comandos de Linux pero, lógicamente, perderíamos la mayor parte de sus posibilidades.

Tanto Kylix como las aplicaciones que generemos con él pueden funcionar en los dos escritorios más usados: KDE y Gnome. No importa, por tanto, cuál de los dos usemos. Lógicamente, también podemos generar aplicaciones no gráficas, que funcionarían directamente desde la línea de comandos del sistema.

En cuanto a la interfaz de usuario de Kylix propiamente dicha, como se aprecia en la Figura 1, es bastante parecida a la Delphi 5. Tenemos un menú de opciones, paletas de botones, la Paleta de componentes, el Inspector de objetos, el Editor de código y un formulario. La mayor parte de los objetos que encontramos en la Paleta de componentes son idénticos o muy parecidos a los que existen en Delphi, lo cual allana el camino para cualquier usuario de esta conocida herramienta de Borland.

La metodología de trabajo es exactamente la misma que podemos encontrar en otros entornos RAD. Mediante operaciones de arrastrar y soltar gestionamos los componentes, personalizándolos en el Inspector de objetos y asociando código a los eventos. El Editor de código dispone de los mismos sistemas de asistencia a la edición, facilitando listas de métodos y propiedades o ventanas emergentes con información sobre parámetros.

Las configuraciones de escritorio pueden almacenarse y recuperarse, como en Delphi 5. También tenemos a nuestra disposición la lista de tareas o to-do list, así como todas las ventanas auxiliares para gestión de proyectos y depuración. El sistema de ayuda electrónica también es similar al de Delphi, como se puede ver en la Figura 2.

Lógicamente, todos los elementos de la interfaz de usuario de Kylix son configurables. Las ventanas pueden adosarse, las paletas de componentes modificarse y cambiar de lugar, por ejemplo convirtiéndose en ventanas flotantes; el funcionamiento del editor puede personalizarse, etc.

El motor

Detrás de la interfaz de usuario que acabamos de describir, básicamente la de Delphi 5, se encuentra el motor que hace funcionar a Kylix: el compilador. Concretamente se trata de la versión 14 (véase la Figura 3) del compilador de Object Pascal que Borland creó originalmente para Turbo Pascal, modificado para funcionar en Linux y generar tanto ejecutables como librerías o shared object libraries.

Este compilador sigue produciendo código x86, lo cual significa que Kylix no puede ser utilizado para desarrollar aplicaciones Linux para otras plataformas de procesador. El código generado es nativo y optimizado, lo cual significa que no es necesaria ninguna capa intermedia de emulación, como pudiera ser Wine. Esto permite una distribución teóricamente fácil y sin necesidad de pagar derechos adicionales por el uso de librerías de soporte.

Una característica interesante del compilador de Kylix es la incorporación de BASM (Built-in assembler), un ensamblador incorporado que nos permite introducir en el código de los módulos instrucciones directamente en ensamblador. Se contempla el uso de las instrucciones de Pentium Pro, Pentium II, MMX, AMD 3DNow! y SSE, lo cual permite efectuar optimizaciones manuales allí donde se precise sin necesidad de recurrir a un ensamblador externo.

Una nueva librería de componentes

Aparte de la novedad de ser uno de los primeros entornos de desarrollo profesionales y comerciales para Linux, seguramente entre las características más importantes de Kylix se encuentre la aportación de una nueva librería de componentes. Ésta, que viene a ser equivalente a la VCL (Visual Component Library) que utilizan Delphi y C++ Builder en Windows, se llama CLX (Cross Platform Component Library). Su propiedad más destacable: estar diseñada desde el principio como una solución multiplataforma.

Al iniciar el proyecto Kylix, Borland tenía como objetivo convertir su actual VCL para poder usarla en Linux. Este objetivo, no obstante, se presentó como un importante desafío por la fuerte dependencia que la VCL tenía respecto al API de Windows. Para recrear todos los elementos gráficos, esenciales a la hora de diseñar interfaces de usuario, existían, básicamente, dos opciones posibles: trabajar directamente con el gestor de ventanas o usar una librería de widgets o controles ya existente. Se tomó la segunda opción, iniciándose entonces una nueva decisión: ¿qué librería usar? Las dos más difundidas eran GTK y Qt, asociadas tradicionalmente a los escritorios Gnome y KDE, respectivamente.

Tras un largo periodo durante el cual lo único que trascendió es que Borland no tomaba la decisión, o al menos no la comunicaba, sobre qué librería usar, llegó la noticia: Qt, de la empresa noruega Trolltech, sería la base para la nueva CLX. Esta librería, esencialmente de controles gráficos, está disponible en varios sistemas operativos, lo cual posibilita que la CLX pueda ser usada, sin cambio alguno, en Linux y Windows. Se alcanzaba así el objetivo de la multiplataforma sin necesidad de partir totalmente desde cero.

CLX, sin embargo, no es simplemente un envoltorio escrito en Object Pascal en torno a la librería Qt. Además de los elementos de interfaz de usuario, englobados en lo que se denomina VisualCLX, también se han recreado otros elementos como las clases de utilidad general, componentes para acceso a datos o que hacen posible la comunicación en redes Internet/intranet. Esas clases y componentes se agrupan en categorías llamadas BaseCLX, DataCLX y NetCLX.

Hay que destacar el hecho de que cualquier aplicación escrita con Kylix que tenga interfaz de usuario necesita las librerías de Qt para p