gtkmm

gtkmm est un habillage (« wrapper ») C++ pour GTK+, une bibliothèque servant elle-même à créer des interfaces utilisateur graphique. gtkmm est sous licence LGPL : vous pouvez donc développer des logiciels ouverts, des logiciels libres ou même des logiciels commerciaux non-libres sans acheter de licence.

À l'origine gtkmm s'appelait « gtk-- » étant donné que GTK+ avait déjà un signe « + » dans le nom. Mais, comme « -- » n'est pas facilement indexé par les moteurs de recherche, le paquet logiciel a couramment été désigné par gtkmm et c'est ainsi que nous le désignerons dans la suite.

I.II.I. Pourquoi utiliser gtkmm plutôt que GTK+ ?

gtkmm vous permet d'écrire du code en se servant des techniques habituelles du C++ telles que l'encapsulation, la dérivation et le polymorphisme. En tant que programmeur C++, vous avez probablement déjà perçu que ces possibilités conduisent à un code plus clair et mieux organisé.

gtkmm possède une sécurité améliorée pour la typologie des données ; le compilateur détecte donc des erreurs qui ne seraient apparues qu'au moment de l'exécution en C. L'utilisation de ces types spécifiques rend l'API plus claire puisque vous pouvez voir les types à utiliser à la simple lecture de la déclaration d'une fonction membre.

L'héritage s'utilise pour dériver de nouveaux éléments graphiques. Dans un code C de GTK+, ce processus de dérivation est si complexe et sujet à erreur que quasiment aucun programmeur C ne l'utilise. En tant que développeur C++, vous savez que la dérivation est une technique essentielle dans la programmation orientée objet.

L'utilisation des instances membres simplifie la gestion de la mémoire. Tous les éléments graphiques C de GTK+ sont traités en utilisant des pointeurs. Vous savez, comme tout programmeur C++, que les pointeurs doivent, si possible, être évités.

Comparé à GTK+, avec l'utilisation des noms de fonctions préfixés et de nombreuses macros de forçage de type, gtkmm nécessite moins de code.

I.II.II. gtkmm comparée à Qt

Qt de Trolltech est le plus proche concurrent de gtkmm ; cela mérite une explication.

Les développeurs inclinent à préférer gtkmm à Qt, car gtkmm fait les choses d'une façon plus proche du C++. Qt est né à une époque où le C++ et les bibliothèques standard n'étaient, ni normalisées, ni bien prises en charge par les compilateurs. Ainsi, nombre de choses, aujourd'hui dans la bibliothèque normalisée, sont en double, comme les conteneurs et des définitions de types. Plus significatif encore, Trolltech a modifié le langage C++ afin de fournir des signaux, de sorte que les classes Qt ne se marient pas facilement avec des classes non-Qt. gtkmm a été capable d'utiliser du C++ standard sans modification pour fournir des signaux sans modification du langage C++. Consultez la foire aux questions pour plus de précisions.

I.II.III. gtkmm est un habillage

gtkmm n'est pas une boîte à outils en C++ natif, mais un habillage C++ d'une boîte à outils en C. Cette séparation entre interface et implémentation a des avantages. Les développeurs gtkmm passent la majeure partie de leur temps à discuter de la manière dont gtkmm peut présenter l'API la plus claire, sans compromis délicat en raison d'obscurs détails techniques. Nous contribuons un peu aux fondements du code GTK+ sous-jacent, mais les codeurs en C, Perl et Python, etc. font de même. Ainsi GTK+ bénéficie d'une base d'utilisateurs plus large que n'aurait une boîte à outils spécifique à un langage — il y a plus d'implémentations, plus de développeurs, plus de testeurs et plus d'utilisateurs.