Journal Anvil le retour

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
18
27
juin
2022

Bonjour Nal

Ce journal est avant tout une question, sur un framework qui m'intéresse beaucoup : ANVIL

Cela permet de coder avec python coté serveur ET navigateur, ce qui est assez rare pour être signalé et
il y a un éditeur en ligne Wysiwig
une version cloud et server local
et plein d'autres choses (email, base de données … ) plus d'infos ici

Mais surtout c'est OpenSource

Bref c'est presque trop beau pour y croire.

Et même si on atteint rapidement les limites avec ce genre d'outils, apparemment cela permet permet de coder simplement et facilement de petites choses sympathiques.

Aussi je voulais savoir si quelqu'un était allé un peu plus loin que moi avec cet outil et ce que vous en pensez.

Et comme quoi rien n'échappe à ce forum : La sortie d'anvil sur LinuxFR il y a 10 ans

  • # Bon je vais quand même en dire un peu plus ...

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

    Cela partait d'un bon sentiment … mais comme tout le monde le sait l'enfer est pavé de bon sentiments et de bonnes intentions.

    Sinon Anvil c'est bluffant, en quelques minutes j'ai créé un formulaire, une table dans une base de données et j'ai pu envoyer le résultat du formulaire par mail.
    Il suffit de suivre le tuto sur le feedback

    Il me reste le coté publication de l'application pour voir ce que cela donne IRL

    Dans le prochain épisode …

    • [^] # Re: Bon je vais quand même en dire un peu plus ...

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

      Du coup, je pige pas, l'IDE est libre aussi ? C'est pas super clair sur le dépôt git.

      • [^] # Re: Bon je vais quand même en dire un peu plus ...

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

        Tu as trouvé autre chose que "The runtime engine for hosting Anvil web apps" et des exemples, en libre?

        De ce que je comprend de la page sur l'open source, avec "The Anvil App Server is a standalone, open-source server that can host an Anvil app on any computer", c'est seulement une partie qui est open source.

        Il faudrait que l'auteur du journal nous confirme qu'on peut éviter l'éditeur en ligne et qu'on peut prendre n'importe quel éditeur de texte pour ensuite filer le fichier source à cette "App Server" libre, bref que le libre n'est pas qu'un truc pour faire acheter la partie non libre comme c'est souvent le cas.

        • [^] # Re: Bon je vais quand même en dire un peu plus ...

          Posté par  (Mastodon) . Évalué à 4.

          L'app Anvil, via l'éditeur, est apparemment versionnée avec git automatiquement et tu peux la cloner, donc derrière coder avec ce que tu veux, et ne pas utiliser leur éditeur.

          Donc je suppose que tu peux te passer totalement de l'éditeur, mais peut-être après une petite période d'apprentissage.

          • Yth.
      • [^] # Quand on arrive Anvil, les prix changent de trottoir

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

        Il y a une page tarification. Peut être plus de l'opensource as a demo ?

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

    • [^] # Re: Bon je vais quand même en dire un peu plus ...

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

      J'ai parcouru les docs, ça parait plutôt bien construit. L'idée est que anvil remplace un développement full-stack:
      - apache/nginx/etc => un serveur d'application en Python
      - javascript / css / bootstrap => du python pour faire de l'UI qui est transpilé en javascript
      - django / node / api rest => un serveur d'application en Python
      - base de donnée, ORM, configuration aux petits oignons => le serveur d'application Python inclut postgres directement.

      Ca donne un peu l'impression d'être de retour dans les années 80 avec du RAD. Mais ca a l'air de bien se tenir et de s'appuyer ouvertement sur des technologies éprouvées et Open Source.

      L'aspect montée en charge n'est pas très explicite. Mais tout le monde n'a pas besoin de faire des sites pour servir des millions d'utilisateurs …

      Typiquement, dans ma boite, on fait des applications web en interne alors que c'est pas notre métier. Donc ça nous prend bcp de temps proportionellement, parce qu'on apprend javascript + css + django + UI web, tout ça pour des applications à petite audience (quelques dizaines d'utilisateurs). En théorie, Anvil serait une très bonne approche pour nous.

      Après, d'un point de vue "skills", j'ai envie de pouvoir marketer que je sais faire du django/js/css donc je vais pas me lancer là-dedans. Ou en tout cas, je vais pas mal réfléchir avant.

      En tout cas, ça laisse une bonne impression.

  • # Effectivement

    Posté par  (site web personnel) . Évalué à 5. Dernière modification le 28 juin 2022 à 11:49.

    Effectivement

    Cela rappelle les RAD des années 80-90
    Avec les défauts et qualité de ces outils

    Et en grattant un peu :

    • l'IDE n'est pas open source et tout le produit tourne autour de l'IDE
    • je n'ai pas trouvé comment accéder aux bases de données en dehors de l'éditeur (sauf export CSV)
    • le coté 'git' est difficile a utiliser en dehors de l'IDE

    Mais pour moi cela reste un beau produit qui permet rapidement de 'faire' des applis rapidement
    avec des notions prises en charge par l'outil difficile a faire autrement (authentification etc …)

    C'est un outil qui "pourrait" permettre de faire de jolies choses, après seul l'avenir nous dira si cela restera un "bon" produit.

  • # Alternatives

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

    Bon puisqu'on parle de Python dans le navigateur et que c'est un sujet que je suis depuis des années, on peut mentionner aussi :

    • Transcrypt qui transpile du Python en JavaScript : c'est du "plus ou moins python" avec des fonctionnalités activables via des options, et comme on a du JavaScript à l'arrivée, il n'y pas ou peu de pénalités par rapport à du JS natif.

    • Brython qui transpile à la volée en JS aussi, avec une couche de compatibilité Python. Là on a du vrai Python, la compatibilité est très bonne, avec une légère pénalité au démarrage (surtout la première fois, après le cache aide) et à l’exécution. L'auteur principal est très actif et réactif si on rapporte un problème, et il y a une petit communauté autour.

    J'utilise le dernier pour le frontend de mon client XMPP (Libervia), et c'est devenu un petit framework pour développer en Python avec XMPP en backend (pour gérer les données avec en prime la décentralisation, la gestion des comptes, et tout ce qu'apporte XMPP).

    Par contre tout ça c'est sans l'IDE.

    Pour faire un truc de style RAD, je pense qu'aujourd'hui j'utiliserais Godot : même si c'est un moteur de jeu à la base, il y a des options pour rendre la boucle principale plus adaptée à une application, et ça permet de produire facilement sur de nombreuses plateformes (les bureaux des OS les plus utilisés, le Web, Android, iOS, etc).
    Le langage principal, GDScript, est inspiré et proche de Python (c'est aussi possible d'utiliser autre chose, Mono notamment). Il y a une communauté très active autour, et le développement d'applications avec semble être pris de plus en plus au sérieux (ils font en ce moment un appel aux développeurs d'applications pour faire un showreel, c'est à dire une vidéo de démo).

    Enfin il y a RustPython à surveiller : un interprète Python en Rust, qui via WebAssembly peut tourner sur le web aussi. Le problème dans ces cas là (interpère Python complet via WebAssembly), c'est qu'on finit souvent avec des très gros fichiers à télécharger, pas idéal pour le web.

    J'en passe quelques unes, notamment Pyodide, et probablement d'autres.

    • [^] # Re: Alternatives

      Posté par  . Évalué à 8.

      Enfin il y a RustPython à surveiller : un interprète Python en Rust, qui via WebAssembly peut tourner sur le web aussi. Le problème dans ces cas là (interpère Python complet via WebAssembly), c'est qu'on finit souvent avec des très gros fichiers à télécharger, pas idéal pour le web.

      Je trouve curieux qu'il soit "à surveiller". Après 4 ans il n'a toujours aucune doc : https://rustpython.github.io/docs/

      C'est 2 développeurs qui font l'énorme majorité du boulot et qui intègrent quelques commits d'autres dev.

      Le tout pour prendre pour exemple jython (entre autre) qui est une purge amha.

      Si c'est pour faire tourner un interpréteur python qui tourne dans du webassembly je n'ai pas trouvé s'ils font une compilation vers le bytecode python avant/après téléchargement et s'il existe un moyen pour que ce byetcode soit compilé nativement en webassembly… Je trouve sincèrement que ça fait relativiser le terme d'usine à gaz pour les applets java ou flash.

      Vraiment avant d'arriver à ce genre de solutions, ça vaut le coup de se demander si apprendre js ça va vraiment vous arracher les doigts. Prendre le sujet du web avec un minimum de sérieux et apprendre js ou typescript sera immensément plus idiomatique et vous permettra de ne pas craindre la disparition d'une techno bringuebalante tout en vous simplifiant la vie à terme.

      https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

    • [^] # Re: Alternatives

      Posté par  . Évalué à 5.

      Je suis tombé sur cela dernièrement : Pyscript

      • [^] # Re: Alternatives

        Posté par  . Évalué à 1. Dernière modification le 02 juillet 2022 à 07:50.

        Pour les joueurs:
        "We encourage people to play and explore with PyScript, but at this time we do not recommend using it for production."

Suivre le flux des commentaires

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