Bonjour,
suite à mes premiers pas avec Python4Delphi, j'aimerais découvrir un peu Python. Pour les bases, j'ai trouvé une vidéo ... qui m'a fait progresser un peu, mais surtout rapidement. Cette aide à la mise en route sur mes 3 OS d'une solution d'IDE est appréciable. Cependant j'aimerais quelques précisions plus "générales" avant d'aller plus loin.
Je fais du développement desktop (Windows, Linux et mac OS), du web et parfois du mobile. Mes IDE (sauf Delphi) fonctionnent tous sur les 3 OS de mon poste de développement. Dans tous les cas, j'ai besoin pour mes projets d'un GUI moderne. Par exemple y compris en desktop, j'ai besoin de traiter les chaines en HTML ce qui suppose "disposer" d'un éditeur de saisie de texte enrichi, d'un affichage HTML dans les cellules des tableview, d'une impression ou mieux d'une génération pdf de ces chaines HTML. Actuellement, je ne dispose que de Qt pour faire cela facilement et surtout proprement.
Mon projet actuel est l'assemblage d'une solution de learning analytics. Ce projet suit et organise notamment avec un moteur d'IA la progression pédagogique individuelle des élèves, d'un groupe ou d'une classe. J'ai besoin d'y intégrer une solution de force-directed graph.
Qt possède tous les éléments pour faire cela en desktop et en mobile mais pas de solution web. Si l'on en croit les sites internet de présentation, les bibliothèques de Python (moteur IA, force-directed graph) sont à la hauteur de celle du C++.
Et...On peut interfacer Python avec les fenêtres UI de Qt Designer et avec le code Qt. Ce qui résout au moins partiellement le traitement des chaines HTML. C'est la seule approche que j'ai trouvée. TKinter, WxPython, Kivy ne semblent pas permettre ce genre de "prouesses".
Reste quand même un problème technique. En desktop, je compile Qt statiquement pour pouvoir simplifier le déploiement chez le Client. J'y intègre y compris les bibliothèques openSSL et libmariadb que je ne distribue donc pas. Je fais pareil avec Lazarus et Delphi ne distribuant qu'un seul fichier, l'exécutable. Je ne vois pas faire installer Python sur son poste par le Client. Il semble être possible de "compiler" (i.e. produire une application ne nécessitant pas l'installation de Python sur le poste client) mais ces solutions sont-elles compatibles avec le binding des bibliothèques Qt ?
Je ne me suis que partiellement penché sur le problème des licence et des obligations. Je possède une licence Qt mais le binding avec Python est réalisé par une société tierce ? 480 € semble-t-il. Dans un premier temps, je suppose que comme pour Qt, on peut l'utiliser gratuitement avec toutes les restrictions que cela impose évidemment.
L'énorme avantage que présenterait l'utilisation de Python sur Qt serait le "portage" sur le web. J'ai vu plusieurs solutions, Django, Flask, ... J'ai un peu comparé les modes de fonctionnement. Je serais plutôt attiré par FastAPI. Nous hébergeons nos propres serveurs (Windows et Linux) aussi nous disposons de la flexibilité nécessaire. J'ai rencontré une présentation sympathique. Mais évidemment, il est difficile de déterminer les revers de la médaille et notamment ce que l'on ne peut pas faire avec, et les performances exactes comme la réaction à la charge, pas seulement au nombre de connexions à un instant donné, mais par exemple, à la charge de 30 calculs requis par 30 visualisations simultanées de force-directed graph distincts par 30 élèves en début de cours par exemple. Si j'en crois ce que j'ai lu, par exemple Django nécessite plus de ressources qu'un FasAPI pour faire le même travail, notamment en requête simultanées sur un même site. Ma question complémentaire serait "que ne peut pas faire le framework FastAPI que feraient usuellement Django ou Flask ? Ou pour quel travail FastApi serait-il moins habile ?
Merci de vos conseils. Cordialement. Gilles
Partager