Et de fait, Gtk utilise une sur-couche par dessus le C pour faire de l'objet, et bien que ce soit fait intelligemment, ça reste très moche et limité. Il faut écrire un km de code pour faire de l'héritage, et on en a besoin de l'héritage si on fait une application évoluée.
C'est vrai que GTK est insupportablement bavard... ceci dit, bien que ne connaissant pas Qt, je connais assez C++ pour suspecter QT d'être lui aussi très bavard — de façon peut-être supportable.
En ce qui concerne l'écriture d'applications évoluées, l'extension du toolkit n'est pas du tout la bonne méthode. Ce qu'il-faut-faireTM, c'est écrire un nouveau toolkit décrivant l'interface de l'application avec des éléments de très haut niveau et puis implémenter le toolkit de haut niveau avec un toolkit de bas niveau comme Gtk. La raison de faire ainsi est qu'on s'assure de l'homogénéité de l'interface de l'application et qu'on maîtrise complètement la surface d'utilisation du «tiers code» ce qui est un atout pour la maintenance (mise à jour ou changement du toolkit de bas niveau). Donc du coup on se contrefiche complètement que Gtk soit écrit en C et pas en C++.
[^] # Re: Qt vs Gtk
Posté par Michaël (site web personnel) . En réponse au journal LXDE, Razor-qt et Qt (et GTK+). Évalué à 2.
C'est vrai que GTK est insupportablement bavard... ceci dit, bien que ne connaissant pas Qt, je connais assez C++ pour suspecter QT d'être lui aussi très bavard — de façon peut-être supportable.
En ce qui concerne l'écriture d'applications évoluées, l'extension du toolkit n'est pas du tout la bonne méthode. Ce qu'il-faut-faireTM, c'est écrire un nouveau toolkit décrivant l'interface de l'application avec des éléments de très haut niveau et puis implémenter le toolkit de haut niveau avec un toolkit de bas niveau comme Gtk. La raison de faire ainsi est qu'on s'assure de l'homogénéité de l'interface de l'application et qu'on maîtrise complètement la surface d'utilisation du «tiers code» ce qui est un atout pour la maintenance (mise à jour ou changement du toolkit de bas niveau). Donc du coup on se contrefiche complètement que Gtk soit écrit en C et pas en C++.