jeudi 13 août 2015

GTK3 - attention à bien débuter, sinon vous risquez de perdre beaucoup de temps.


J'ai eu la faiblesse de croire que GTK, la librairie graphique sensée permettre de programmer facilement des applications graphiques, me ferait gagner du temps. Au départ, j'ai commencé à programmer avec Xlib (cad au niveau du serveur X Window). Par la suite, j'ai basculé mon développement en GTK (pour sa popularité et son ancienneté). Malheureusement, j'ai très vite déchanté: le gain de temps (cad en terme de réduction de code) ne fut pas évidente, car les appels aux fonctions à GTK sont finalement presque aussi nombreux que ceux à Xlib.

Mais le point le plus négatif fut le problème initialement sous-estimé des différentes versions de GTK. Pour faire simple, 3 versions majeurs de GTK ont donné lieu par deux fois, à un cortège de fonctions obsolètes ou disparues, et de modules remplaçant certains autres, et de concepts fondamentalement transformés. Le principal inconvénient concerne la documentation, mais surtout les différents exemples présents sur le Net. J'ai donc trop souvent perdu du temps à étudier un exemple de code écrit pour GTK1 ou GTK2, sans même le savoir, car trop souvent cette information n'est même pas mentionnée. On le découvre bien souvent lors de la compilation avec les options et librairies GTK3.

Ayant pris la décision dès le départ de développer en GTK 3, j'ai ainsi perdu trop d'énergie avec la documentation disponible sur le Net, qui très rarement ne concerne pas réellement GTK3. Idem pour les livres, qui bien souvent ne signale même pas le n° de version traitée par l'auteur.

Mon premier conseil: n'achetez pas de livre sur GTK dont la première édition date d'avant GTK3 (début 2011). Ils sont rares, voir inexistant. Sinon, vous risquez de perdre du temps à étudier des fondamentaux inutiles et de programmer avec des concepts de GTK2 (voir GTK1), dorénavant obsolètes.

Mon deuxième conseil est simple:
Pour étudier des exemples de code, n'utilisez que ceux présents sur gnome.org (ci-dessous). Malheureusement, tous les autres risquent de vous envoyer vers des solutions inadaptées, et de vous faire perdre beaucoup de temps. A noter que même sur les exemples GTK3 officiels, vous serez susceptible de rencontrer des fonctions obsolètes, car GTK3 évolue très rapidement.

Donc, ne perdez pas de temps (comme moi) avec des PDF ou documentation "offline" qui ne soit pas téléchargeable sur le site officiel, avec la dernière version en date. Oubliez donc dans un premier temps vos habitudes de recherche de code sur le Net "au petit bonheur la chance". Limitez-vous strictement vous au exemple de code du site officiel (ci-dessous). Tous les concepts y sont présents sans exception.

Et oubliez les conseils des anciens qui vous diront que GTK2 est bien suffisant, et que le passage de GTK2 vers GTK3 peut se faire à peu de frais. Les conseilleurs ne sont pas les payeurs.

Avec un peu de chance, vous ne perdrez pas les jours que j'ai pour ma part dépensé inutilement à cause de cela. Bonne continuation à vous.

Liens vers les exemples de code pour GTK3
Liens vers la référence pour GTK
Wiki concernant GTK


L'intelligence, c'est d'avoir raison la deuxième fois. Avoir raison la première fois, c'est simplement de la chance.

Aucun commentaire: