Gobject introspection permet d'éviter l'écriture des liaisons entre les bibliothèques C qui utilisent gobject et les autres langages.
En d'autres termes, le support de gobject introspection par telle implémentation de Javascript, de Python, de Scheme, de Lua, de brainfuck... vous ouvre la porte sans trop d'efforts à une belle tripotée de bibliothèques C.
L'une des fonctionnalités très appréciée des VM "modernes" c'est la possibilité d'utiliser un framework avec plusieurs langages. C'est l'un des objectifs principaux de Parrot, c'est une fonctionnalité populaire de .NET (ironpython, F# etc.), et c'est arrivé assez tardivement sur la JVM, tardivement mais sûrement (Scala, Clojure etc.).
Gobject Introspection n'est-il pas une "réponse" élégante aux tendances actuelles des VM ?
Avantages, inconvénients ?
Le novice que je suis est très impatient d'entendre vos avis éclairés sur la question !
# j'ai pas bien compris comment ca marche
Posté par NeoX . Évalué à 6.
Mon langage (ruby, python, javascript, ...) et je faisais des liens vers les bibliotheques dont j'avais besoin
Aujourd'hui, j'ai
Mon langage (ruby, python, javascript, ...) et je fais un lien Gobject au lieu de la bibliotheque ?
ou c'est l'inverse,
si j'ecrit un programme C avec Gobject, je n'ai plus besoin de faire de wrapper/bibliotheque pour les langages Javascript/Ruby/python/... ?
[^] # Re: j'ai pas bien compris comment ca marche
Posté par téthis . Évalué à 9.
http://live.gnome.org/Vala/Bindings
La partie la plus importante : « The .gi file defines the objects, structures, constants, enumerations and functions in an abstract markup language. Since GLib and GObject follow a well-defined naming convention for object members, functions, etc., it's possible to generate these independent definitions from the source code. The resulting .gi file is then used to generate the .vapi file that defines the vala bindings. ».
En gros, grâce à GI, on se retrouve avec une définition précise des fonctions de la bibliothèque qu'on veut « binder ». Il suffit alors de la passer dans un outil adapté au langage qu'on utilise pour créer automatiquement le code kivapreskbien(tm).
The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein
# Petite introspection sur l'introspection
Posté par cedric . Évalué à 6.
[^] # Re: Petite introspection sur l'introspection
Posté par Mildred (site web personnel) . Évalué à 2.
Donc c'est bien.
# En C++, sans GObject
Posté par viridis (site web personnel) . Évalué à 1.
http://linuxfr.org/2010/06/15/26993.html
Pour simplifier, ça permet (permettra...) de faire la même chose, mais en C++ et sans GObject.
(Je me permet de poster le lien parce que ça peut intéresser les lecteurs de ce journal qui n'ont pas vu passer la dépêche sur CAMP)
[^] # Re: En C++, sans GObject
Posté par barmic . Évalué à 2.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: En C++, sans GObject
Posté par caouis . Évalué à 1.
Dans ce cas ça réduit beaucoup le nombre de libs accessibles par ce moyen (Gnome en gros).
[^] # Re: En C++, sans GObject
Posté par jbbourgoin (site web personnel) . Évalué à 2.
Glib est une bibliothèque multiplateforme utilisée très largement en dehors du monde Gnome il me semble.
Il faut également rappeler que Gobject Introspection, s'il est un moyen conçu pour fonctionner partout, et avant tout un projet Gnome ;)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.