PySide : python et Qt par Nokia

Posté par  . Modéré par patrick_g.
Étiquettes :
17
21
août
2009
Python
Du nouveau dans le monde Qt/Python : Nokia vient de publier un nouveau binding, PySide, permettant d'utiliser sa fameuse boîte à outils Qt (base de KDE, multi-plateforme) avec le non moins populaire langage Python. Ce rapprochement n'est pas nouveau puisqu'il existait déjà un produit, PyQt, permettant cette approche. L'initiative de Nokia s'explique du fait du modèle de licence de PyQt vis-à-vis de Qt.

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

  • # commentaire d'avant le café

    Posté par  . Évalué à -7.

    «En effet, alors que Qt est, depuis récemment, disponible sous trois licences différentes (GPLv3, LGPLv2.1 et commerciale),»

    Et surtout L-GPL ! (light GPL ;-)

    Le reste du texte semble correct.
  • # Oubli

    Posté par  . Évalué à 2.

    Je me suis aperçu après envoi de la dépêche que j'avais oublié de citer Reeth dans les remerciements (son travail m'aillant beaucoup aidé lors de la rédaction). L'équipe de modération linuxfr a corrigé ce malencontreux oubli :-)
    • [^] # Re: Oubli

      Posté par  . Évalué à 1.

      son travail m'aillant beaucoup aidé lors de la rédaction

      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.