Je dirais que Vala est à C/GObject ce que moc est à C++/Qt.
C'est bien possible car on retrouve des trucs similaires, qui existait cependant déjà en C mais qui sont bien plus pratique (IMHO) à utiliser en Vala :
- des signaux et des slots : depuis longtemps en GObject, très simple à utiliser en Vala grçave à l'opérateur += et sympa grace aux fonctions anonymes. bla.my_event += (foo, evt) => { stdout.printf ("bla!\n"); }
- de l'introspection : on attend toujours gobject-introspection mais les outils sont déjà là en Vala (pour les GIDL par exemple).
- de signaux très pratiques [..] : la gestion des signaux de GObject, avec des connect_after, connect_before, combiné aux delegates de Vala est vraiment cool.
- d'une gestion [...] de la destruction : la gestion des références de GObject permet déjà d'avoir une gestion de la mémoire bien plus souple qu'en C de base. Vala gère ces références automatiquement (bien que tout reste paramétrable) et fait donc des appels aux destructeurs correctement.
- de la notion de propriété : que permet aussi le GObject avec des constructeurs et accesseurs à ces propriétés configurable.
Donc c'est vrai qu'on a toujours eu affaire à deux conceptions qui se ressemblent mais basée sur deux langages différents (le C++ pour Qt et le C pour GObject).
[^] # Re: C & Cie
Posté par Émilien Tlapale . En réponse à la dépêche Sortie de Vala 0.1.6. Évalué à 2.
C'est bien possible car on retrouve des trucs similaires, qui existait cependant déjà en C mais qui sont bien plus pratique (IMHO) à utiliser en Vala :
- des signaux et des slots : depuis longtemps en GObject, très simple à utiliser en Vala grçave à l'opérateur += et sympa grace aux fonctions anonymes. bla.my_event += (foo, evt) => { stdout.printf ("bla!\n"); }
- de l'introspection : on attend toujours gobject-introspection mais les outils sont déjà là en Vala (pour les GIDL par exemple).
- de signaux très pratiques [..] : la gestion des signaux de GObject, avec des connect_after, connect_before, combiné aux delegates de Vala est vraiment cool.
- d'une gestion [...] de la destruction : la gestion des références de GObject permet déjà d'avoir une gestion de la mémoire bien plus souple qu'en C de base. Vala gère ces références automatiquement (bien que tout reste paramétrable) et fait donc des appels aux destructeurs correctement.
- de la notion de propriété : que permet aussi le GObject avec des constructeurs et accesseurs à ces propriétés configurable.
Donc c'est vrai qu'on a toujours eu affaire à deux conceptions qui se ressemblent mais basée sur deux langages différents (le C++ pour Qt et le C pour GObject).