Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

PySide 2 sera de retour sous l'ombrelle du Qt Project

Qt sera fourni avec une couche de liaison Python

Le 2016-04-27 22:44:17, par dourouc05, Responsable Qt & Livres
Qt est un framework C++ principalement connu pour la création d’interfaces graphiques, c’est notamment ce qui lui a valu bon nombre de couches d’accès depuis d’autres langages, principalement Python. Il en existe deux : PyQt et PySide. Historiquement, PyQt est arrivé en premier, mais sous licence GPL ou commerciale — ce qui ne convient pas à bon nombre de projets, la famille de licences GPL étant prévue pour empoisonner tout le code qui l’utilise (copyleft). Nokia a donc lancé le développement de PySide, qui est disponible sous une licence bien plus permissive : la LGPL.

Cependant, dès 2011, les développeurs avaient des doutes sur la viabilité de PySide : Nokia venait d’arrêter de les financer. Le projet n’a plus pu avancer à un bon rythme les années d’après, même en rejoignant l’infrastructure du Qt Project. En 2015, il a été déclaré officiellement abandonné. Au niveau technique, PySide n’a jamais pu être porté tel quel vers Qt 5, il s’est limité à Qt 4, à cause notamment de la nouvelle architecture modulaire.

Peu après l’annonce de mort cérébrale, un développeur indépendant a repris le travail vers un PySide 2. Le projet revit petit à petit.

Depuis lors, la Qt Company a vu son intérêt grandir dans le projet et s’apprête à y consacrer plusieurs développeurs à temps plein, ainsi que d’investir dans l’infrastructure nécessaire, de telle sorte que PySide devienne une partie intégrante des nouvelles versions de Qt. L’intérêt principal est de fournir une couche de liaison Python sous une licence libre — la LGPL —, en accord avec les derniers changements à ce sujet dans Qt. Évidemment, l’objectif est aussi de fournir PySide sous une licence commerciale, ce qui nécessite l’accord des développeurs existants de PySide.

Pour la technique, l’avenir de PySide passera probablement par une grande réécriture de son code. En effet, une bonne partie utilise Shiboken, un générateur de code qui doit analyser une bonne partie de la syntaxe C++ du code de Qt, un exercice qui deviendra de plus en plus difficile avec Qt 5.7 et l’exploitation plus importante de C++11. Une possibilité serait d’exploiter Clang, plus particulièrement sa partie d’analyse syntaxique et sémantique du code C++.

Source : Bringing pyside back to Qt Project.
Ce contenu a été publié dans Qt par dourouc05.
  Discussion forum
10 commentaires
  • mintho carmo
    Membre éclairé
    Envoyé par BufferBob
    Pyside est une implem plus "libre" que QT, notamment intéressante au niveau de sa licence plus permissive pour qui souhaite commercialiser son application
    PySide n'est pas une implementation de Qt, c'est une surcouche (comme tous les bindings). Donc ce n'est pas plus libre, cela utilise Qt et donc les licences de Qt.

    Qt est sous licences LGPL, GPL et commerciales. Un binding etant par nature un linkage dynamique, c'est donc la licence LGPL de Qt qui s'applique. Donc PySide est sous licence LGPL parce que Qt est sous licence LGPL.

    Envoyé par BufferBob
    est-ce que mettre une licence commerciale sur Pyside ne reviendrait pas tout bonnement à éliminer l'intérêt principal du projet, et donc à le tuer ?
    Donc non, au contraire. Comme dit dans l'annonce, le projet est deja au ralenti et le support de Qt Company permettra de mettre plus de moyens dans PySide.

    Envoyé par BufferBob
    et est-ce qu'à mots couverts QT ne joue pas un peu de sa position dominante, à savoir que sans QT le projet n'est plus financé et n'a plus de développeur si je comprends bien, du coup la question de l'accord des développeurs semblerait un peu jouée d'avance non ?
    Qt Company n'a pas de position dominante dans PySide. S'il y avait pleins de moyens dans le projet et menacerait de les supprimer si on ne fait pas ce qu'il veut, ca serait utiliser sa position dominante.

    Mais la, le projet a peu de moyen, et une grosse entreprise vient proposer son aide avec ses conditions. Les devs n'ont rien a prendre s'ils refusent (par contre, le projet gagnera beaucoup s'ils acceptent).

    Par contre, bien sur que si les devs acceptent, Qt Company aura une position dominante apres. Mais c'est le cas de beaucoup de projet open source.

    Envoyé par BufferBob
    est-ce qu'avec tous ces hauts et ses bas on peut considérer le projet comme une solution "fiable", sur laquelle on pourra compter dans l'avenir ou est-ce que ça n'est pas d'ordre à rebuter ceux qui voudraient choisir entre les deux et à les diriger presque automatiquement vert QT ?
    Au contraire. Un projet maintenu par une poignee de devs est peu fiable sur le long terme. Le support par une entreprise (et la monetisation du support technique) est un gage de fiabilite et de confiance pour les entreprises.
  • dourouc05
    Responsable Qt & Livres
    Envoyé par BufferBob
    certes, mais ce que je veux dire c'est quelle sera la valeur ajoutée de Pyside sur l'api QT officielle si le projet vient à passer sous licence commerciale, acté qu'un des attraits principaux de Pyside est justement sa licence ?
    PySide sera disponible en deux licences : LGPL et gratuite, commerciale et payante. Il restera du gratuit et libre, une version avec support commercial sera créée. Il y aura donc une deuxième licence possible, pour ceux que ça intéresse, mais le projet restera libre.

    Envoyé par BufferBob
    c'est une perception de la chose et pour le moins jouer sur les mots tout de même, si on résume tu dis "il y aura position dominante quand ce sera fait" et "Pyside a tout intérêt à ce que ça se fasse", j'aurai plus tendance à percevoir ça comme "un mal nécessaire pour un projet pris à la gorge" que comme une chance perso
    Ce n'est pas vraiment un mal nécessaire, c'est l'une des très rares solutions pour que le projet survive… Un seul développeur, c'est très limite, comme solution viable à long terme.

    L'organisation de Qt est un peu particulière… La Qt Company (qui fut une partie de Digia) s'occupe de fournir du support commercial, des développeurs, mais ne possède pas Qt ; le Qt Project est l'organisation qui gère le projet libre, qui en possède les droits… et dans laquelle la Qt Company injecte des fonds (maintenance de serveurs, par exemple). L'intégration ne se fera pas directement dans une société commerciale (Qt Company), mais directement dans l'organisation libre (Qt Project), avec des développeurs payés par la Qt Company.
    Enfin, si j'ai bien tout compris !
  • tyrtamos
    Expert éminent
    Bonjour,

    Envoyé par vayel
    pourquoi utiliser pyside alors qu'il existe pyQT5 ? c'est faire 2 fois la même chose non ?
    La licence n'est pas la même. Celle de PyQt est plus contraignante.
  • BufferBob
    Expert éminent
    le projet est deja au ralenti et le support de Qt Company permettra de mettre plus de moyens dans PySide.
    certes, mais ce que je veux dire c'est quelle sera la valeur ajoutée de Pyside sur l'api QT officielle si le projet vient à passer sous licence commerciale, acté qu'un des attraits principaux de Pyside est justement sa licence ?

    Qt Company n'a pas de position dominante (...) le projet a peu de moyen, et une grosse entreprise vient proposer son aide avec ses conditions (...) Qt Company aura une position dominante apres. Mais c'est le cas de beaucoup de projet open source.
    c'est une perception de la chose et pour le moins jouer sur les mots tout de même, si on résume tu dis "il y aura position dominante quand ce sera fait" et "Pyside a tout intérêt à ce que ça se fasse", j'aurai plus tendance à percevoir ça comme "un mal nécessaire pour un projet pris à la gorge" que comme une chance perso

    Au contraire. Un projet maintenu par une poignee de devs est peu fiable sur le long terme. (...)
    oui c'est ce que j'ai voulu dire, je me suis peut-être mal exprimé
  • BufferBob
    Expert éminent
    Envoyé par dourouc05
    PySide sera disponible en deux licences (...)
    L'organisation de Qt est un peu particulière (...)
    ok je comprends un peu mieux la chose, merci à vous deux pour vos éclaircissements
  • archqt
    Membre émérite
    Je suppose que cela permettra d'avoir du LGPL + Commercial, contre simplement du GPL+Commercial pour pyQt
  • mintho carmo
    Membre éclairé
    Comme dit dans le premier post, pyside appartient a Qt Compagnie, pas PyQt. Donc il est logique qu'ils bossent dessus.
  • BufferBob
    Expert éminent
    je ne me suis intéressé que très récemment au sujet, si j'ai bien compris Pyside est une implem plus "libre" que QT, notamment intéressante au niveau de sa licence plus permissive pour qui souhaite commercialiser son application, au delà l'histoire du projet a des airs de Santa Barbara, avec ce dernier rebondissement d'un QT qui souhaite intégrer directement Pyside, mais en y mettant une licence commerciale

    du coup,
    • est-ce que mettre une licence commerciale sur Pyside ne reviendrait pas tout bonnement à éliminer l'intérêt principal du projet, et donc à le tuer ?
    • et est-ce qu'à mots couverts QT ne joue pas un peu de sa position dominante, à savoir que sans QT le projet n'est plus financé et n'a plus de développeur si je comprends bien, du coup la question de l'accord des développeurs semblerait un peu jouée d'avance non ?
    • est-ce qu'avec tous ces hauts et ses bas on peut considérer le projet comme une solution "fiable", sur laquelle on pourra compter dans l'avenir ou est-ce que ça n'est pas d'ordre à rebuter ceux qui voudraient choisir entre les deux et à les diriger presque automatiquement vert QT ?
  • vayel
    Inactif
    pourquoi utiliser pyside alors qu'il existe pyQT5 ? c'est faire 2 fois la même chose non ?