En effet, alors que Qt est, depuis récemment, disponible sous trois licences différentes (GPLv3, LGPLv2.1 et commerciale), PyQt est resté sur le modèle GPL + commercial. Riverbank Computing, l'entreprise développant PyQt, n'ayant probablement pas les reins suffisamment solides (Riverbank Computing vivant de la vente de licence de PyQt, au contraire de Nokia) pour passer PyQt en LGPL. Rappelons rapidement que la licence LGPL permet d'utiliser le code mis à disposition dans un programme dont la licence diffère. Pour caricaturer, on peut faire du propriétaire avec du libre sans payer. D'où donc les réticences de Riverbank Computing, même après discussion avec Nokia.
Nokia, pour sa part, voit dans cette approche un possible frein au développement d'application Qt en python, et cherche à promouvoir ce domaine en recréant un binding en LGPL, dans le même esprit que le passage à la licence LGPLv2.1 permettant une plus grande possibilité d'adoption de Qt. Notons que ce changement de licence, et la création de PySide, interviennent dans un contexte de changement plus profond chez Nokia, qui cherche à faire converger Maemo, système d'exploitation pour tablettes graphiques, et Qt en remplacement de Gtk+.
PySide et PyQt, bien que compatibles au niveau API (pour le moment), possèdent néanmoins quelques différences : PyQt est une solution éprouvée, qui fonctionne indifféremment sous Linux/Unix, Windows et Mac OS X. PySide, de son coté, reste très jeune et ne fonctionne pour le moment que sous X11 (Linux/Unix donc) et n'offre donc pas pour le moment la qualité et le service fourni par Phil Thompson, le créateur de PyQt.
Nokia espère qu'une communauté ouverte se créera autour de son projet. Espérons que cette nouvelle mouture entraîne une saine compétition entre PySide et PyQt, et non pas la mort de l'un et/ou de l'autre. Certaines différences permettent d'établir une comparaison entre PySide et PyQt.
Licences :
PyQt est GPLv2, GPLv3 et commerciale
PySide est LGPLv2.1
API :
identique pour le moment. Le projet PySide cherche à rendre l'API plus pythonique, et donc moins proche de ce qu'il se fait en C++
Plate-forme supportée :
PyQt : Windows, Unix et Linux (X11), Mac OS X
PySide : Unix et Linux (X11) uniquement, pour le moment
Documentation :
PyQt : manuel d'utilisation de PyQt et documentation de l'API auto-générée depuis celle de Qt
PySide : documentation de l'API auto-générée depuis celle de Qt (certaines infos manquent, comme les signaux), documentation sur les outils de fabrication du binding. La navigation est plus agréable.
Création du binding :
PyQt : création automatisée. Extraction via MetaSIP (non publié), génération via SIP (licence de type BSD)
PySide : création automatisée. Extraction et génération via des outils fourni en LGPL v2.1
Python supporté :
PyQt : de Python 2.3 à Python 3
PySide: Python 2 seulement (dans l'attente de Boost.Python for Python 3)
N.D.M. : Merci à Reeth pour son journal sur le même sujet.
Aller plus loin
- PySide (105 clics)
- PyQt (46 clics)
- Qt / Nokia (58 clics)
- Maemo (7 clics)
# commentaire d'avant le café
Posté par feth . Évalué à -7.
Et surtout L-GPL ! (light GPL ;-)
Le reste du texte semble correct.
[^] # Re: commentaire d'avant le café
Posté par dguihal . Évalué à 7.
De plus il me semblait que le L de LGPL voulait dire Lesser plutôt que Light .
[^] # Re: commentaire d'avant le café
Posté par zecrazytux (site web personnel) . Évalué à 9.
# Oubli
Posté par Emmanuel C . Évalué à 2.
[^] # Re: Oubli
Posté par Fopossum . Évalué à 1.
Yurk ! Remercions les relecteurs / correcteurs aussi !
cd /pub && more beer
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.