Journal Du nouveau pour Python+Qt : PySide

Posté par  .
Étiquettes :
17
19
août
2009
Une bonne nouvelle pour le libre assurément, le couple Python+Qt va devenir plus "libre" d'ici quelques temps grâce à PySide. Ceux qui veulent seulement un résumé de ce que propose PySide peuvent aller en bas du journal.

Un peu d'histoire

Je pense qu'un certain nombre d'entre vous connaissent Python et son "binding" PyQt qui permet d'avoir accès au framework Qt de Nokia (anciennement Trolltech) bien connu pour être multiplateforme et être en particulier utilisé par le projet KDE.
Après le rachat de Trolltech par Nokia, celui-ci a décidé de libérer Qt (à partir des versions 4.5+) sous licence LGPL, et ce pour tout type de projet (en conservant aussi la gpl et leur licence propriétaire). C'est alors posé la question de la licence du binding PyQt édité par la société Riverbank Computing. Pour des raisons financières que l'on peut comprendre (cette société vit de la vente de ses licences alors que Nokia n'a pas besoin de la vente de licences pour survivre...), celui-ci est resté en GPLv2.

Pourquoi PySide

Nokia a réalisé un certain nombre d'acquisitions ces derniers temps: Symbian pour son OS pour portables, Trolltech pour Qt... et travaille sur des projets open source comme Maemo, son OS pour ses MID (Mobile Internet Device).
Les dernières déclarations de Nokia au propos de Maemo montrent que ces projets vont commencer à converger: Qt sera le toolkit graphique à la place de Gtk+ pour cette plateforme (même si une base gnome va être conservée pour certains éléments des fondations).
Les équipes de développement de Maemo souhaitent aussi profiter d'un toolkit graphique intéressant lié au langage Python. Ils se sont donc concertés avec Riverbank mais les négociations n'ont pas abouties, d'où la naissance de PySide...

PySide

Est un binding Python de Qt (actuellement compatible avec sa dernière version) créé par les dev Nokia sous licence LGPL, ce qui veut dire que l'on est plus limité à l'utilisation de la GPLv2 pour nos réalisations, bonjour BSD, GPLv3, WTFPL et autre licences plus exotiques.
La compatibilité avec l'API de PyQt a été une des priorités, donc un "import PySide" remplaçant un "import PyQt4" devrait être suffisant pour passer de l'un à l'autre.
Les développeurs sont les bienvenus pour aider à tester afin de stabiliser le binding. Le développement se déroule principalement à direction de Linux/X11 mais devrait passer progressivement au multiplateforme.
La documentation à l'air assez détaillée et bien faite.
Une conception plus "Pythonique" que PyQt est envisagée ainsi que sur le plus long terme un passage à Python3. Les efforts se portent aussi sur l'amélioration des performances & consommation de ressources.

Bref, si la licence de PyQt vous a rebuté d'essayer ce binding, PySide répondra certainement à vous attentes dans pas trop de temps. La question que l'on peut se poser pour finir, qu'adviendra-t-il de Riverbank et de PyQt?

Liens

Le blog d'où me vient l'information
[http://codeposts.blogspot.com/2009/08/lgpl-python-bindings-f(...)]
Le site de PySide
[http://www.pyside.org/]
Une description du projet et la FAQ qui répond à pas mal de question (bien évidement :)
[http://www.pyside.org/about/]
[http://www.pyside.org/faq/]
Pour l'instant les seuls packages qui existent sont pour ubuntu :/ tant pis pour les autres qui devront compiler le tout, mais à près tout c'est encore en développement
[http://www.pyside.org/downloads/]
La documentation pour se lancer
[http://www.pyside.org/docs/pyside/]
  • # Pas cool

    Posté par  . Évalué à 10.

    Pas cool pour Riverbank, qui ont toujours fait de l'excellent boulot. Ça sent le sapin, là.
    • [^] # Re: Pas cool

      Posté par  . Évalué à 3.

      Je plussoie. Et l'auteur du journal est un habile troll à dire que c'est "bien pour le libre".

      Avec PyQt, soit on fait du copyleft (GPLv2 et GPLv3) soit on s'arrange avec riverbankcomputing, y compris après le codage (contrairement à ce que prétendait pratiquer TrollTech qui exigeait qu'un développeur ait une licence dès le début de son projet).

      Le fait de développer une alternative en speed, qui plus est compatible, aura pour effet de bord de couler riverbank :

      •est-ce un effet non désiré ?
      •Nokia a-t-il un problème avec la notion d'écosystème ?
      • [^] # Re: Pas cool

        Posté par  (site web personnel) . Évalué à 10.

        Je pense qu'il y a deux problèmes pour Nokia, à la base :
        1. Avoir un binding python qui soit aussi permissif, au niveau licence, que Qt. Aujourd'hui, PyQt est restrictif de ce coté là.
        2. Pouvoir modifier/maintenir facilement le code du binding (les sources de PyQt sont fournies, mais il me semble que son générateur de code ne l'est pas - et le développement est effectué par une seule personne)

        La FAQ de PySide indique que Nokia a commencé par discuter avec riverbank computing, mais qu'ils ne sont pas parvenus à un accord.
        A partir de là, je pense que ce n'est pas un problème d'écosystème ni une volonté de couler une autre boite.

        D'ailleurs je pense que si Nokia s'intéressait à Ruby, QtRuby n'aurait pas ce problème-là : LGPL, code plus ouvert, plusieurs développeurs actifs.
        • [^] # Re: Pas cool

          Posté par  . Évalué à 1.

          Si si, le générateur de binding de PyQt est libre : il s'appelle SIP, et a un principe de fonctionnement assez proche de SWIG.
          • [^] # Re: Pas cool

            Posté par  (site web personnel) . Évalué à 4.

            SIP, qui s'occupe de faire fonctionner les bindings, est libre et nécessaire pour utilise PyQt (forcément), mais par contre le générateur, qui s'appelle MetaSIP, ne l'est pas.

            (d'après une citation de ce lien http://www.opensubscriber.com/message/pyqt@riverbankcomputin(...) ) :

            * PyQt is automatically generated through a tool called MetaSIP which
            was never released in any form to the public. Without MetaSIP, one would
            have to manually maintain PyQt in sync with Qt, which is not impossible
            but surely much harder (given how large is Qt nowadays).
      • [^] # Re: Pas cool

        Posté par  . Évalué à 10.

        Tout le monde ne pense pas que la GPL est le meilleur choix de licence libre.
        • [^] # Re: Pas cool

          Posté par  . Évalué à -5.

          Tout le monde ne pense pas qu'une licence sans copyleft (BSD, MIT, Apache) est le meilleur choix de licence libre.
          • [^] # Re: Pas cool

            Posté par  . Évalué à 5.

            Je ne disais pas "untel a raison" (ou pas). Je rappelais juste que tout le monde n'était pas d'accord au sujet de "riverbank c'était bien pour le libre", mais par contre ton commentaire c'est juste du bruit.
      • [^] # Re: Pas cool

        Posté par  . Évalué à 4.

        Le gros problème, à mon humble avis, c'est que le buisiness model était calqué sur celui de Trolltech, et qu'il a complètement changé maintenant.

        J'imagine que les négociations avec Nokia ont eues pour point d'achoppement ce point précis, Nokia voulait mettre les deux en adhéquation, et que riverbankcomputing a refusé, pour garder son indépendance, ou en pensant que son business model pouvait survivre, ce qui était visiblement dans ce cas un mauvais calcul ...
  • # Enfin !

    Posté par  (site web personnel) . Évalué à 9.

    >La question que l'on peut se poser pour finir, qu'adviendra-t-il de Riverbank et de PyQt?
    Ils vont se faire racheter par nokia ! (en tout cas ça serait pas un mal).

    Mais sinon c'est une bonne nouvelle que Nokia se sortent les doigts du cul pour proposer quelque chose de correct pour ses téléphones et MID. J'ai hâte de voire ce que symbian et/ou Maemo vont donner quand ils seront totalement ouverts aux developpeurs extérieurs.

    Je commence justement à développer avec Python et Qt et je doit dire que le couple est diablement intéressant ! Si Ovi Store est capable de concurencer l'apple store en terme de fonctionalité/gratuité/ouverture extérieur etc., Nokia aura de quoi proposer des alternatives aux Google phone, et ça n'as peut être que bon pour nous.

    Il va juste falloir qu'ils comprennent l'inutilité des DRM comme ils ont plus ou moins l'habitude de faire, qu'on a pas besoin de 250Mo de suite logiciel pour faire une synchronisation de contact et que eux se feront du fric en vendant des terminaux et pas des logiciels à la con.

    PyQT/Symbian/Nokia 97 (mis à jour, le premier semble avoir des défauts matériel), c'est le rêve pour tout les geeks!
    • [^] # Re: Enfin !

      Posté par  . Évalué à 4.

      Il n'est vraiment pas sûr que Nokia achète Riverbank puisqu'ils ont déjà un binding qui fonctionne (même si peut-être moins optimisé). De plus il semblerait que des négociations aient eu lieu mais sans résultats (concernant des licences ou un rachat je ne sais pas).

      Sinon ce que j'ai oublié de dire c'est que ce projet est lancée par Nokia mais il semblerait un peu de manière détournée par leur 'Institut Nokia de Technologie' situé au Brézil ainsi que par OpenBossa qui leur servent de labo concernant les technologies de ce genre (logiciel pour MID/portables...).

      Et pour compléter, à disposition des développeurs il y a un binding generator et un API extractor qui sont proposés pour créer facilement d'autres bindings pour Qt dans d'autres langages (peut-être même utilisables pour autre chose que des bindings Qt)


      L'INdT
      [http://www.indt.org.br/institutional/index.php]
      OpenBossa
      [http://www.openbossa.org.br/]
      Créer son propre binding
      [http://www.pyside.org/home-binding/]
      • [^] # Re: Enfin !

        Posté par  . Évalué à 7.

        s/Brézil/Brésil/ , non?

        Sinon, s'ils pouvaient déjà faire un nokia pc suite en Qt pour le porter sur linux, ça ferait pas de mal.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: Enfin !

          Posté par  (site web personnel) . Évalué à 2.

          PC suite est déjà écrit avec Qt (ils le disent dans sur betalabs: http://betalabs.nokia.com/betas/view/nokia-ovi-suite-20 ).

          Il y a des discutions sur le forum pour supporter Linux et Mac (par exemple: http://betalabs.nokia.com/forum/topic/3896 ). Je pense que c'est une bonne idée de les pousser à supporter Linux via le forum.
          Il y a aussi ce post sur le forum: http://betalabs.nokia.com/forum/topic/3210 qui est dédié aux demande de support pour Linux.

          À priori, si ils utilisent déjà Qt, ils n'ont "plus qu'à" porter porter les drivers pour que ça marche.
          • [^] # Re: Enfin !

            Posté par  . Évalué à 2.

            À priori, si ils utilisent déjà Qt, ils n'ont "plus qu'à" porter porter les drivers pour que ça marche.

            Surtout qu'on arrive déjà à communiquer avec le gsm sous linux (genre gnokii ou gammu)

            « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: Enfin !

          Posté par  (site web personnel) . Évalué à 3.

          Non justement ça serait bien qu'il abandonné l'idée ! Mon baladeur pour le mettre à jour je télécharge un zip sur le site du fabricant, je mets le contenu à la racine du baladeur (branché en UMS), je rallume le baladeur, un message s'affiche (mise à jour en cours) et hop j'ai un tout nouveau firmware.

          Vachement plus simple que de s'emmerder à utiliser un brontausore pour mettre à jour ou récupérer ses contacts...
  • # La doc

    Posté par  . Évalué à -3.

    C'est moi ou la doc est vraiment sans dessus dessous ? En cliquant sur http://www.pyside.org/docs/pyside/ je m'attends à avoir quelque part le lien vers un exemple pas à pas.

    A la place j'ai un gros charabia sans queue ni tête, où l'on ne sait pas par où commencer. Mmmh "qtUiTools" ? Je clique sur http://www.pyside.org/docs/pyside/PySide/QtUiTools/index.htm(...) et en bas s'affiche See also Calculator Builder Example World Time Clock Builder Example sans lien pointant vers l'exemple.

    Ok, y a un champs de recherche, je tente. Rien. Google me renvoie sur http://doc.trolltech.com/4.5/designer-worldtimeclockbuilder.(...) qui est un début mais les exemples ne sont pas en Python.

    En comparaison avec wxPython, ça se rapproche de :
    http://www.wxpython.org/docs/api/

    C'est sans doute bien utile quand on bosse au jour le jour avec mais ce qu'il manque pour démarrer c'est un équivalent au "Learning wxPython" de http://wiki.wxpython.org/How%20to%20Learn%20wxPython (lien présent dans le menu principal de wxpython, y a pas à chercher beaucoup pour le trouver).

    En plus c'est tout jaune flashy, franchement pas discret au taff même si c'est pour apprendre des choses pro et pas du clubic.com, je trouve ça dommage de s'exposer.
    • [^] # Re: La doc

      Posté par  (site web personnel) . Évalué à 1.

      C'est une version 0.1, on ne s'attend pas à une documentation parfaite. En comparaison, wxPython est un vieux framework, c'est normal qu'il y ai plus de documentation.

      J'avoue qu'ils auraient pu faire plus d'exemple. Le seul exemple que j'ai trouvé c'est celui sur D-BUS.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.