PDF de programación - GNOME 2.0

Imágen de pdf GNOME 2.0

GNOME 2.0gráfica de visualizaciones

Publicado el 30 de Abril del 2019
155 visualizaciones desde el 30 de Abril del 2019
25,0 KB
8 paginas
Creado hace 18a (15/11/2001)
GNOME 2.0
Rodrigo Moya

Proyecto GNOME, Madrid

rodrigo@gnome-db.org

Este documento presenta la ponencia sobre GNOME 2.0 presentada
para el IV Congreso Hispalinux, a celebrarse entre los días 15, 16 y 17
de noviembre de 2001.

En él se pretende introducir a los asistentes las maravillas que estaran
presentes en la siguiente gran versión del escritorio GNOME, que
debería estar disponible unas semanas después del congreso.

1. Introducción

Desde sus primeros inicios, uno de los objetivos principales del proyecto GNOME ha
sido el de ofrecer una plataforma de desarrollo completa y moderna que pueda ser
utilizada para el desarrollo de aplicaciones de gran calidad y que cumplan las
necesidades de los usuarios de entornos de escritorio.

Ya con la versión 1.4 de GNOME, aparecida en el mes de marzo-abril de 2001, vimos
la introducción de nuevas tecnologías en esta plataforma de desarrollo, que, durante
todos estos meses han ido asentándose. En esta versión 2.0, que marca la madurez de
muchas de estas tecnologías, veremos la consolidación de uno de los desarrollos más
importantes que se han hecho dentro del proyecto GNOME en particular y del software
libre en general: Bonobo, el sistema de componentes desarrollado para el proyecto
GNOME.

Así, GNOME 2.0 se presenta como la plataforma más completa y compacta presentada
hasta el momento por el proyecto GNOME, lo cual significa no sólo la disponibilidad
de un montón de tecnologías para los desarrolladores, sino tambien la disponibilidad de

1

un buen número de aplicaciones que hacen uso de estas tecnologías, y que facilitaran
enormemente el trabajo de los usuarios.

GNOME 2.0

2. Bonobo, el sistema de componentes

La consolidación de Bonobo como una de las tecnologías más importantes del proyecto
GNOME no es más que el cumplimiento de uno de los objetivos marcados inicialmente
dentro de GNOME: la creación de un sistema de componentes para UNIX/Linux que
permitiera el desarrollo de aplicaciones "profesionales", de gran envergadura, al estilo
de lo que nos encontramos en otros sistemas operativos.

Esta consolidación se traduce, en GNOME 2.0, en que todas, absolutamente todas las
aplicaciones GNOME usan Bonobo, con las ventajas que esto conlleva, como el fácil
reemplazo de cada una de las partes sin afectar al resto del sistema, etc. Cuando una
aplicación almacena su configuración, o cuando intenta visualizar un fichero en
determinado formato, o cuando interactua con el sistema, en todos estos casos, la
comunicación entre los distintos componentes del sistema se hace mediante Bonobo.
Esto es algo que no es nuevo dentro del proyecto GNOME, donde desde el principio, de
una u otra forma, casi todas las aplicaciones usaban CORBA (la tecnología sobre la que
se basa Bonobo). La diferencia es que antes el uso era un tanto "opcional", por lo que
cada aplicación lo implementaba como mejor le convenía al/los programador(es) de ese
proyecto determinado. Ahora, mediante Bonobo, todas las interfaces entre las distintas
aplicaciones estan claramente definidas por Bonobo, por lo que cualquier aplicación
puede comunicarse con cualquier otra sin necesidad de conocer las interfaces CORBA
que esa aplicación determinada usa para ello. Sólo tiene que conocer las interfaces de
Bonobo, que son públicas y estan ampliamente documentadas.

Uno de los pasos más importantes que se han dado con respecto a la versión 1.4, es la
separación de todas las librerías en dos partes: la parte no gráfica, perfectamente
utilizable por aplicaciones totalmente ajenas a GNOME y al sistema X Window, y la
parte gráfica, que esa sí que es dependiente del sistema gráfico y de GNOME. Esto está
facilitando el uso de la tecnología base de GNOME en cualquier tipo de aplicación, por
lo que se están empezando a ver multitud de aplicaciones/soluciones que integran, por
ejemplo, entornos de servidores, donde instalar el sistema gráfico es una aberración,
con entornos de oficina, donde priman las estaciones de trabajo con GNOME (o
cualquier otro sistema de escritorio).

Otro punto en el que se ha puesto especial énfasis es en solucionar el problema de los
"bindings" (enlaces con otros lenguajes de programación), que se estaba empezando a
convertir en algo bastante problemático. Y es que, por cada librería de la plataforma

2

GNOME 2.0

GNOME, hay que escribir una versión para cada uno de los lenguajes de programación
soportados (que, en el caso de GNOME, siempre han sido numerosos). Así, a partir de
ahora se pretende que las aplicaciones exporten sus funcionalidades internas no a través
de librerías en C que luego tengan que ser "enlazadas" a otros lenguajes, si no a través
de los interfaces CORBA definidos por Bonobo, de forma que simplemente haya que
añadir soporte para Bonobo en cada uno de los lenguajes soportados para que
aplicaciones escritas en dichos lenguajes puedan acceder a todas esas funcionalidades
exportadas por las aplicaciones. Este objetivo se está cumpliendo perfectamente, y ya
podemos usar Bonobo desde lenguajes tales como C (en el que está desarrollado el
propio Bonobo), C++, Guile, Perl, Python, Java.

Tambien es de destacar la fusión que han experimentado en estos últimos meses OAF
(Object Activation Framework), el sistema de activación de objetos CORBA de
GNOME 1.4, y el propio Bonobo. La razón para esta fusión es que no estaba muy clara
la línea que separaba a ambas librerías, más bien parecía que, si bien con objetivos
aparentemente distintos, en algunas cosas se solapaban la una con la otra. Así, ahora
tenemos bonobo-activation, que consiste en el antiguo OAF (sistema de activación de
objetos, como un DNS para objetos CORBA) junto con la parte básica del sistema de
componentes, que no es más que el famoso interfaz CORBA Bonobo::Unknown. El
resto de interfaces CORBA de Bonobo estan en las dos librerías de las que se compone
ahora Bonobo: libbonobo (los interfaces no gráficos) y libbonoboui (los interfaces
con salida gráfica, como controles, documentos compuestos, etc).

3. GTK+/GLib 2.0

Aparte de Bonobo, la otra estrella de GNOME 2.0 es el binomio compuesto por GLib y
GTK+ que, para esta nueva versión traen muchas novedades.

GLib es una librería de funciones para programación en C, que contiene multitud de
utilidades para facilitar la programación en este lenguaje. Incluye cosas como la gestión
de estructuras de datos como listas enlazadas, arrays dinámicos, tablas de búsqueda,
árboles binarios, o la gestión de Entrada/Salida asíncrona. Pero, puesto que se busca
que esta librería contenga todo lo (razonablemente) posible, para esta versión se ha
añadido el sistema de objetos de GTK a GLib, de forma que no sea necesario enlazar
con las librerías GTK (que dependen de X Window) para usar este potente sistema de
objetos, que permite simular, de una forma bastante transparente para los
programadores de C, la programación orientada a objetos, paradigma sobre el que se
basan todas las librerías que componen la plataforma GNOME.

GTK+ es la librería que se encarga de los "widgets", tales como los botones, ventanas,

3

GNOME 2.0

cajas de texto, etc. Incluye todo tipo de "widgets" que nos permitiran realizar fácilmente
todo tipo de aplicaciones con un interfaz gráfico. En esta nueva versión, las novedades
en cuanto a "widgets" se traducen en una limpieza generalizada de los "widgets"
existentes en versiones anteriores (procediendo incluso a la calificación como obsoletos
de algunos de ellos, como por ejemplo algunos de los tipos de listas), y, por fin, la
introducción de un "widget" que permite mostrar datos clasificados en filas y columnas
mucho más avanzado que el ya obsoleto GtkCList (que estaba muy, muy limitado).

Pero, la novedad más importante de GTK+ es el uso de Pango para la representación
del texto en pantalla. Pango es una librería que permite la representación de texto en
distintos alfabetos, teniendo en cuenta todos los detalles de cada uno de estos alfabetos,
como la dirección de la escritura, la separación entre caracteres, etc. El uso de Pango en
GTK+ es obligatorio, pero totalmente transparente al programador, que sólo tiene que
preocuparse de usar caracteres Unicode (un estándar para la representación de
caracteres en múltiples alfabetos) para todo el texto que quiera representar en pantalla;
GTK+ y Pango se encargaran del resto. Pango viene a cubrir las necesidades que
muchos usuarios de paises con alfabetos distintos al occidental para poder usar el
sistema X Window. Con Pango, todos estos usuarios podran usar sus escritorios
GNOME en su idioma nativo.

Tambien es de destacar la creación de ATK (Accessibility Tool Kit), por parte de la
empresa Sun™, que es un conjunto de clases abstractas, integradas en GTK, que
permiten el desarrollo de aplicaciones "accesibles" (para personas con deficiencias
físicas). Con la introducción de ATK al nivel de GTK+, se espera que esto lleve a la
capacitación de TODAS las aplicaciones GNOME de forma que puedan ser usadas sin
problemas por personas discapacitadas, algo que, junto con la internacionalización
conseguida con Pango, va a hacer aumentar, aun más, el número de usuarios y las
posibilidades de GNOME.

Como último, comentar que la versión de GTK+ para Windows, existente desde hace
más de dos años, forma ya parte de la distribución oficial de GTK+, lo cual significa
que Windows es, desde ya, otra de las plataformas soportadas "oficialmente" por
GTK+. Ya hay aplicaciones de la talla del GIMP o Glade que tienen sus
correspondientes versiones para el sistema de las ventanas.

4. Nuevas tecnologías

Como en cada versión de GNOME, GNOME 2.0 trae consigo alguna que otra nueva
tecnología que se añade a la plataforma de desarrollo. Hay que constatar que algunas de
estas librerías/tecnologías existen desde hace tiempo, pero es en GNOME 2.0 cuando

4

han pasado a formar parte "oficialmente" de la plataforma GNOME.

GNOME 2.0

4.1. Bonobo-config

Si ya en GNOME 1.4 se sustituyó gnome-config (el sistema de configuración basado en
archivos del estilo de los .INI de MS Windows, us
  • Links de descarga
http://lwp-l.com/pdf15806

Comentarios de: GNOME 2.0 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad