* Agence Joomla Le Havre
***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe
Agence Joomla Le Havre
Article:
Le nom GObject indique une interface de programmation et une bibliothèque logicielle multiplate-forme lancée sous licence libre (LGPL), offrant la faculté de manipuler des objets en langage de programmation C, ainsi qu'une palette d'objets élémentaires. Elle est également présente au sein d'autres langages de programmation. La plupart des nouveaux langages de programmation (langages de haut niveau) suggèrent leur propre système d'objets, ainsi que des fonctionnalités fondamentales pour la gestion des données, de la mémoire et des algorithmes remplaçant le code de bas niveau. Alors que le reste de la GLib a pour objectif d'apporter au C ces fonctionnalités haut-niveau, quant à GObject elle y intègre la programmation orientée objet (POO). La structure de GObject fait écho à celle d'Objective-C, aidant l'évolution d'applicatifs sous Mac OS X (cf. Cocoa). GObject, classe initiale de toutes les classes-objet de GTK+ 3.0/Gnome 3, est présentement au cœur de toutes les applications construites depuis ces deux bibliothèques graphiques. La bibliothèque GObject, se rapportant uniquement au libc (cf. Bibliothèque standard de C/glibc) et de GLib, offre des propriétés aussi diverses que la programmation par événements, des adaptateurs de type, un système d'administration d'exceptions et un algorithme de ramasse-miettes. Les types d'objet sont en premier lieu conçus par le Moteur d'exécution. Cela accorde aux classes objet une aptitude d'analyse, bien qu'au préjudice de la sécurité du typage. Contrairement à C++ , l'architecture particulière de GObject t la faculté d'héritage multiple; il est possible de pallier cette restriction à l'aide d'un protocole de classes d'interface comme on en trouve en Java ou en C#. En GObject, toute classe est implémentée par un minimum de deux types de données abstraits (des structures au sens du langage C) : l'une contient les informations relatives à la classe, par exemple les méthodes ou la table virtuelle des appels et les variables statiques associées ; la seconde contient les instanciations, par exemple les variables d'instance. Contrairement aux langages C++, C# ou Java, il n'y a pas de spécificateurs de portée comme public, protected, private ; mais on peut toujours implémenter les objets de classes réservées (private) grâce au type « structure » du langage C. Ces structures réservées n'ont pas à être déclarées dans les fichiers d'en-tête de la classe. Pour remplacer une classe de GObject, il faut souvent ré-écrire à la main plusieurs macros et fonction d'initialisation. Un outil a été mis au point pour faciliter l'écriture de classes, GOB2 (GObjectBuilder), dont la syntaxe emprunte beaucoup à Java. GOB2 se présente comme un préprocesseur du compilateur C, et génère donc du code C. Une alternative à GOB2 est le langage de programmation Vala, qui peut, outre du C, générer du code C#. Les limitations majeures du frameworkGObject sont l'absence d'espace de noms, l'impossibilité de surcharger d'opérateurs et méthodes ainsi que l'administration encore « artisanale » des exceptions.