Après une naissance (voir Naissance aujourd'hui de Tikka, un nouveau client!), je dois vous annoncer une fin.
J’ai décidé de stopper mes développement sur Sakia.
Pourquoi ?
J’ai consacré un mois à plein temps pour que Sakia soit stable. Sans succès.
J’avais donc décidé de simplifier le code en supprimant asyncio et aiohttp, pour rendre le projet plus facile à maintenir et réduire les bugs.
Malheureusement, PyQt5 ne contient pas toutes les fonctions de Qt5 ! Les objets QFuture, que je voulais utiliser pour remplacer les Futures de asyncio ne sont pas implémentés. Il semble que cela soit résolu dans PySide6 qui est le binding officiel pour Qt6.
Après réflexion, même si je passe à nouveau un mois à refactoriser tout le code de PyQt5 à Pyside6 (sans garantie que les fonctions QFutureBaseInterface fonctionne comme attendue), j’aurais sur les bras un code pensé pour BMA. Ce qui explique aussi sa complexité. Il faudrait donc refondre l’architecture du logiciel pour qu’il utilise GVA. Encore des jours et des jours de travail pour défaire et refaire…
J’ai donc décidé de lâcher l’affaire et d’écrire un client from scratch, avec un cadre d’application que j’utilisais il y a 20 ans avec le langage TCL et le langage Python : Tkinter. Cet outil est livré en standard avec Python, ultra stable, rapide et très simple à coder. Il m’a toujours enchanté. Il n’allait pas si loin que Qt, mais dispose maintenant d’une extension (ttk) qui permet de faire plus de chose, dont des treeviews.
Tikka reprendra petit à petit les bonnes choses de Sakia, mais avec l’api GVA (plus rien en BMA). Il sera donc rapide et sera un très bon projet pour connaître les besoins à implémenter en GVA.
Je laisse à qui veut le poste de mainteneur de Sakia.