Journal Pyjamas est de retour

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
30
31
juil.
2013

Salut à tous,

Pyjamas est un port Python des Google Web Toolkit, il contient un compilateur Python => Javascript et une bibliothèque de Widgets calqués sur ceux de Google.

L'année dernière, suite à une mésentente entre le mainteneur principal et certains autres développeurs, le projet a été détourné. Attention, je dis bien « détourné » et pas « forké »: un des développeurs avait les droits d'administration sur le nom de domaine, a redirigé le site vers un miroir sur un autre serveur, et a également réinscrit de force tous les membres de la liste de diffusion (sur laquelle j'étais inscrit) sur une nouvelle. C'est à ma connaissance le premier cas de détournement de projet de ce type dans le logiciel libre (ou pas d'ailleurs).

J'avais expliqué cette histoire dans un commentaire que vous pouvez lire ici: https://linuxfr.org/news/salut-a-toi-en-route-vers-la-commune#comment-1423464 et juste après le détournement, un article a été écrit là (en anglais): http://technogems.blogspot.fr/2012/05/pyjamas-hijacked.html .

Cette histoire a fait perdre énormément de temps au projet, et a mis les projets utilisant Pyjamas dans une situation très inconfortable. C'est le cas de mon projet, Pyjamas étant utilisé pour l'interface web. Comme ce dernier est arrivé récemment dans Debian, la question est devenu plus importante: utiliser le projet détourné ce serait cautionner ce genre d'acte inadmissible, faire un fork hébergé sur mes serveurs demanderait un travail que je ne peux pas fournir en ce moment (j'ai déjà bien assez à faire avec mon propre projet).

J'ai donc contacté Luke Leighton - le mainteneur du projet avant cette histoire -, et les mainteneurs du paquet Debian. Après plusieurs échanges de courriels et malgré des emplois du temps surchargés, Luke vient de remettre un site en ligne: http://pyj.be, un grand merci à lui :).

Pyjamas est à mon sens un excellent projet, et je suis très satisfait de l'utiliser depuis maintenant plusieurs années. La compilation Python => Javascript a ses avantages (à commencer par éviter de changer de syntaxe toutes les 5 min quand le reste du projet est déjà en Python), et, couplé aux widgets, permet de développer très rapidement.

Si des personnes sont intéressées, tout est en place pour contribuer :)

À noter également que Pyjamas permet aussi de faire des applications de bureau (pyjamas-desktop), sans la compilation js => python, mais je n'utilise pas cette possibilité aussi je ne peux pas en parler plus en détails.

  • # SoSex

    Posté par  . Évalué à 1.

    Quels avantages par rapport à un Django (hormis la simplicité d'installation ?) ?

    PS : Je n'ai jamais travaillé avec.

    • [^] # Re: SoSex

      Posté par  . Évalué à 4.

      Pyjamas (et GWT dont il s'inspire largement) ont un paradigme assez différent des frameworks usuels : ils se chargent du code serveur (comme Django, donc) ET du code client.

      C'est à dire que tu vas écrire l'intégralité de ton application web en Python, que le code soit prévu pour être exécuté sur le serveur ou dans le navigateur. Et Pyjamas va se charger de générer le code Javascript qui va bien pour que ça fonctionne.

      • [^] # Re: SoSex

        Posté par  (site web personnel, Mastodon) . Évalué à 5.

        Pyjamas ne se charge pas du code serveur, uniquement de ce qu'il y a côté navigateur, mais fourni ce qu'il faut pour communiquer à base de json. Dans mon cas (Libervia dont vous pouvez voir la démo sur http://www.libervia.org), le code serveur est assuré par Twisted.

        Pyjamas est très différent de Django: avec Django tu fais ton code serveur et tu as des modèles (templates) pour produire le code côté navigateur selon la page sur laquelle tu te trouves. Si tu veux faire de l'Ajax, tu devrais faire du javascript dans tes modèles.

        Avec Pyjamas tu écris ton application web comme une application de bureau (avec des widgets de type button, panel, label, etc) , ça te donne un code Javascript (mais toi tu as tout fait en Python) qui se charge entièrement au lancement de ton site. Tu auras une application Ajax qui au prix d'un chargement un poil plus long la première fois (après ça devrait être en cache), sera réactive une fois lancé.

        Pour voir à quoi le code ressemble, tu peux regarder le pyjamas book, et en particulier la section "UI module": http://pyj.be/book/output/Bookreader.html#UI%20Module .

        Tu peux aussi regarder la FAQ qui explique tout ça: http://pyj.be/#FAQ

        • [^] # Re: SoSex

          Posté par  . Évalué à 3.

          Ah pardon, j'ai téléscopé ça avec Seaside/Opa/…

    • [^] # Re: SoSex

      Posté par  . Évalué à 3.

      Depuis La 1.5 Django utilise aussi bien python 2 que python 3, et de ce que j'ai lu de pyjamas (dont le install.txt de la 0.8, dernière version actuel)

      Dependencies

      For pyjamas javascript compilation, you need python 2 - that's it.

      le projet à l'air intéressant mais je comprendrais jamais pourquoi beaucoup de projet reste en python 2 et passe pas à python 3.

      • [^] # Re: SoSex

        Posté par  . Évalué à 1.

        le projet à l'air intéressant mais je comprendrais jamais pourquoi beaucoup de projet reste en python 2 et passe pas à python 3.

        C'est parce que les gens sont tous des boulets, moi le premier !

        • [^] # Re: SoSex

          Posté par  . Évalué à 1.

          Et qu'ils ont peur de ne pas être RedHat Compatible. LoL.

      • [^] # Re: SoSex

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

        Ce n'est pas évident de convertir une grosse base de code existante en Python 3, voilà pourquoi.

        Le mouvement de transition des bibliothèques les plus connues vers Python 3 a réellement été amorcé assez récemment, au final. À mon avis, une partie est due à l'ajout dans Python 3.3 du support du préfixe u'', comme en Python 2.7, qui simplifie beaucoup ce portage.

  • # Pourquoi GWT ?

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

    Pourquoi être parti de GWT en particulier ?
    Je ne trouve pas les exemples particulièrement sexy, personnellement.

    Cappuccino, qui utilise un peu la même idée (compiler un langage vers du javascript), mais le résultat est autrement plus joli (à mes yeux, en tout cas). En plus, il permet de réutiliser un IDE complet (XCode, en l'occurrence) pour dessiner l'interface graphique sans écrire une ligne de code, l'utilisateur se contentant de connecter les événements au code.

    • [^] # Re: Pourquoi GWT ?

      Posté par  . Évalué à 2.

      Malheureusement, l'IDE en question n'est ni libre, ni multiplateforme.

      • [^] # Re: Pourquoi GWT ?

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

        Je n'ai jamais dit qu'il fallait absolument faire comme Cappuccino. Sinon, autant prendre directement Cappuccino…

    • [^] # Re: Pourquoi GWT ?

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

      Pourquoi être parti de GWT en particulier ?

      L'API Vaadin, équivalent en Java de Pyjamas, a fait le même choix.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: Pourquoi GWT ?

        Posté par  . Évalué à 2.

        C'est pas déjà en Java, GWT? Vaadin est un équivalent en Java d'un truc en Java?

        • [^] # Re: Pourquoi GWT ?

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

          Gwt compile du java en javascript pour la partie client.

          Vaadin est une sorte de Qt côté serveur qui utilise Gwt côté client comme bibliothèques de widgets.

          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

          • [^] # Re: Pourquoi GWT ?

            Posté par  . Évalué à 1.

            Vaadin est une sorte de Qt côté serveur qui utilise Gwt côté client comme bibliothèques de widgets.

            Donc pas du tout un équivalent de Pyjamas, quoi :)

Suivre le flux des commentaires

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