Journal Web toolkit

Posté par  (site web personnel) .
Étiquettes : aucune
0
6
sept.
2006
Bonjour,

Je n'aime pas le développement Web car c'est imprécis (aucune implémentation n'est à 100% fidèle au standard d'où des rustines pour ie essentiellement), je n'aime pas mélanger du code et du xml ou xml like (html). Pourtant le Web est pratique : développement de clients riches accessible par tous et par des moyens simple.

Je suis étonné qu'il n'existe pas de toolkit libre permettant d'avoir des Container, des Widgets, sans entrer une seule ligne de html/javascript, mais en codant avec son langage favoris, et qui à l'affichage génère xhtml, javascript si nécessaire, et même CSS. Et c'est là la raison de ce journal, je suis sûr qu'il en existe mais seulement qu'ils ne sont pas très connu voir pas du tout (par moi en tout cas). En connaissez vous ?

Dans le genre, il y a google webtoolkit, mais il n'est pas libre : http://code.google.com/webtoolkit/

Bref un truc structuré qui génère quelque chose de propre, mais moi je ne vois que mon code, idéalement en Perl/autre langage de script, et surtout pas de html.

Pour moi une des grosses limitation du web c'est le côté brouillon du développement web, ce serait bien de pouvoir coder une application web comme on code une application desktop. Et pas de plugin à la java (applets) ou autre flash.

De plus si ces toolkits sont bien fait, il seront vites adoptés, si la génération de xhtml/javascript est propre ça peux aussi aidé à rendre les sites plus conforme aux standard.

Moi je vois bien à terme des applications web avec une sorte de fichier glade pour la mise en forme, que l'on édite pour changer le thème de l'application.
  • # XUL ?

    Posté par  . Évalué à 1.

    Il me semble que tu décrits un XUL, XAML et consorts non ?
    • [^] # Re: XUL ?

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

      Bah non, xul, il faut ca taper du xml/javascipt à la main, ce n'est pas générique (ne fonctionne pas pour konqueror par exemple).

      Je n'ai jamais regardé de près XUL, mais je veux coder normalement, comme si je faisait un appli gtk ou par exemple, mais au lieu d'avoir une fenêtre lors de l'execution, j'ai une page web.
      • [^] # Re: XUL ?

        Posté par  . Évalué à 4.

        Ruby on Rails s'approche de cette idée, il propose des helpers SQL, HTML et javascript qui vont générer le code. Cependant il reste quand même un minimum de HTML et CSS à faire.
        • [^] # Re: XUL ?

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

          Pour le CSS (uniquement couleur) c'est normal qu'il faille le faire à la main. J'ai regarder RoR autre Perl Catalyst de près pendant un moment, mais il reste du html à faire et l'on retombe dans les risque de besoin de rustines, en revanche l'approche de départ est ce que je recherche, mais en plus poussé :)

          Pour le message précédent : faire un xml à la main ne me dérange pas dans qu'il ne fait que là description des widgets et container et qu'ensuite je les manipules depuis le code.
  • # pour python

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

    Dans le monde python il existe des trucs dans le genre : ca fait souvent parti d'un framework cohérent :

    Par exemple le framework turbogears fournit une bibliotheque de widgets :

    http://www.turbogears.org/docs/devcasts.html

    Un autre exemple avec le module cpsskins pour zope3 où tu ne programmes rien du tout : l'interface peut se construire avec un outil en ajax (y a plein d'animations pour montrer le principe) :

    http://www.medic.chalmers.se/~jmo/Zope3/
    http://www.z3lab.org/sections/front-page/white-papers/theme-(...)

    La seule limitation c'est que ci les briques fournies (widgets, portlets, ...) ne couvrent pas ton cas d'utilisation, il faudra coder toi même tes nouvelles briques. Dans ce cas les frameworks en question fournissent des languages de templating xml (xhtml) (kid pour turboeaou TAL") et des bibliothèques javascript haut niveau comme scritaculous, mochikit, ...
    • [^] # Re: pour python

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

      turbogears a l'air intéressant, je pense que je vais le regarder de plus près, en revanche, je vois dans le docs quelques lignes de html à la main, mais si c'est très limité, ce n'est pas trop gênant.
      • [^] # Re: pour python

        Posté par  . Évalué à 3.

        Turbogears, Django [1], ... ne répondent pas tout à fait à ton cahier des charges car ils se basent sur des langages de template et des bouts de code javascript et ne permettent pas de coder comme pour un desktop mais c'est vrai qu'il simplifient pas mal les devs.
        Ils s'inscrivent dans la mouvance "Convention over Configuration" initiée par Ruby On Rails [2] pour Ruby en réaction à la lourdeur de J2EE.
        Dans le monde Java tu as un petit nouveau bien sympathique et écrit par un petit gars de chez nous: Grails [3] qui s'appuie sur Groovy un langage dynamique à la syntaxe plus proche de Java que Python ou Ruby.

        Pour revenir à GWT il faut relativiser sa non liberté puisque seul le compilateur et le debugguer sont proprio. Tu peux donc toujours modifier ton appli après le deploiement puisque le framework sur lequel s'appuie ton dev est opensource.
        Mais c'est vrai que c'est une approche de l'opensource à la Google, un peu mais pas trop.
        Pour plus un tutoriel et avis plus critique sur GWT: [4]
        [1] http://www.djangoproject.com/
        [2] http://www.rubyonrails.org/
        [3] http://grails.codehaus.org/
        [4]http://www-128.ibm.com/developerworks/library/j-ajax4/index.(...)
        • [^] # Re: pour python

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

          Pour turbogears en regardant de plus près c'est plein de template de partout :(
          Pour GWT, le compilo et le debuggeur sont proprio, mais j'en ai besoin à chaques fois que je modifie => recompile mon appli. Ce qui me pose quand même un souci car j'ai tendance à être un peu intégriste sur les bords :)
          Concernant Grails, est ce qu'il tourne avec des VM libres, je n'arrive pas à trouver l'info sur le site ?
          • [^] # Re: pour python

            Posté par  . Évalué à 2.

            Oui mais une fois que tu as géneré ton code, si Google changeait d'avis tu peux toujours modifier ton appli même si tu dois mettre les main dans la plomberie génerée. Donc ce n'est pas bloquant. Sinon jette un coup d'oeil au lien un peu plus bas.

            Pour Grails, je ne sais pas mais comme je crois que ca tourne sur du Java 5 il y a peu de chance.
  • # Toolkit PHP/Mysql

    Posté par  . Évalué à 1.

    Je cherche la même chose, capable de générer du PHP/MySql, avec un IDE libre.
  • # Echo 2

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

    J'ai jamais utilisé, mais il semble que le framework echo ( http://www.nextapp.com/platform/echo2/echo/ ) ressemble à ce que tu décris. On ne code qu'en Java et ça génère du HTML+javascript. La version 2 est trés orientée AJAX et les démos sont assez jolies ( http://www.nextapp.com/platform/echo2/echo/demo/ ).
    • [^] # Re: Echo 2

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

      Celui là me plait bien, même si je me fout complètement d'Ajax, en revanche, il semble fonctionner avec gcj ce qui me plait => sur la liste des tests.
    • [^] # Re: Echo 2

      Posté par  . Évalué à 2.

      domage, il ne corrige pas le fameux bug IE6 qui fait apparaitre les combo (select) systematiquement devant tous les autres elements (et surtout les menu). alors qu'il "suffit" de placer un iframe vide dessous les menus justement... (que pour IE hein).
  • # ASP.NET

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

    Fais de l'ASP.NET avec Mono sous Linux, ca correspond à ce que tu décris : on code l'application comme on code une application Desktop :

    pour l'appli Desktop :
    using System.Windows.Forms;
    ...
    Button b = new Button();
    b.Text = "OK";
    this.Controls.Add(b);
    Label label = new Label();
    label.Text = "ceci est un label";
    this.Controls.Add(label);

    pour l'appli web :
    using System.Web.UI.WebControls;
    ...
    Button b = new Button();
    b.Text = "OK";
    this.Controls.Add(b);
    Label label = new Label();
    label.Text = "ceci est un label web !";
    this.Controls.Add(label);

    Après il y a des nuances et des contrôles différents, mais globalement la technique est la même, on ne touche pas au code HTML, c'est les contrôles qui se charge de le générer comme ils l'entendent, en fonction du navigateur (Mozilla, IE ou téléphone mobile etc.)

    Bref de la vraie programmation objet, uné véritable séparation entre code HTML et le reste, dans un cas ca génère un client lourd, dans l'autre du code XHTML strict et compliant, et sous Windows tu as un designer pour faire tes appli web de la même manière que tes appli lourdes.

    C'est que du bonheur.
    • [^] # Re: ASP.NET

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

      Intéressant, un second sur ma liste de tests. Est ce qu'il y a un mode cgi ou fastcgi ?? J'utilise actuellement lighttpd et j'aimerai bien le conserver, sinon je remetterai apache.
      • [^] # Re: ASP.NET

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

        Y'a un mini serveur standalone qui se lance dans le répertoire de l'appli web en ligne de commande, sinon c'est Apache ou Apache2.
        Si t'as besoins d'infos n'hésites pas à me contacter ;)
  • # dojo toolkit

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

    C'est exactement le but du Dojo tookit :

    http://dojotoolkit.org/
    • [^] # Re: dojo toolkit

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

      Quand je vois les turoriels je vois du html et du javascript par tout, or j'ai dit que je voulais comme un appli "normale", et qu'elle génère du code html/javascript (si nécessaire)/CSS.

      Donc non dojo ne répond pas du tout à ce que je cherche.
      • [^] # Re: dojo toolkit

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

        Il existe aussi qooxdoo dans le même style. C'est une bibliothèque qui tu proposes de tout écrire en javascript, avec notamment un GUI toolkit.

        Perso, je trouve cela bof, mais je connais quelqu'un qui adore. Bref à toi de voire.
    • [^] # Re: dojo toolkit

      Posté par  . Évalué à 2.

      N'utilisez JAMAIS dojo*.

      Je l'ai utilisé pour un développement en juillet/août sur un logiciel de gestion et avant que je vire la toolbar js et la barre de menus js par du full-css, ça prenait 15 secondes de chargement par page à 100% du proc.

      Maintenant, 3-5 secondes de chargement, mais en enlevant dojo le chargement est immédiat.

      C'est quand même très dommage, ce framework est réellement sympa quand on le regarde.

      D'ailleur dans leur FAQ (il me semble) il y a bien marqué qu'ils privilégie la facilité à la vitesse.

      * : Sauf si ça s'améliore bien sûr
  • # ce que tu cherches :

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

  • # J'ai ce qu'il te faut, c'est un pyjama

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

    tout est là : http://pyjamas.pyworks.org/

    C'est le port de GWT (google web toolkit) en python ! ça avance assez vite, et ça reprends toute l'infrastruture GWT ... Du ajax de haut vol, avec des container et tout qui va bien ...

    C'est evidemment du GPL ...
    Mais je ne crois pas que ça soit déjà très utilisable ...
  • # Petit tour

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

    Ce que je cherchais c'est un toolkit "basique".
    Les frameworks complets de :
    Turbogears, Django, RoR, Catalyst, Jifty : Très bien, (j'ai un préférence pour les deux derniers perl oblige :)), mais il reste du code HTML, même léger, ça ne répond donc pas à mes attentes, même si ça minimise fortement le temps passé sur cette partie là. De plus c'est bien pour des gros projets, mais si je veux faire uniquement des séries de wizard dans le but de pondre du PDF par exemple, c'est un peu trop gros.
    ASP.NET (en C#) : je suis bluffé, c'est exactement ce que je cherche, mais il y a un bémol : mon serveur de destination est FreeBSD est ce n'est pas encore très très stable sur FreeBSD.
    GWT : pas complètement libre donc je n'en veux pas.
    Frameworks java : difficile à mettre en oeuvre avec un jvm libre (au moins sur FreeBSD :( )
    Pyjamas : à l'air bien, mais pas encore de release officielles :(

    Bref J'attends encore que Pyjamas soit finalisé, que ASP.Net (mod_mono ou XSP) soit stable sur FreeBSD (je le garde de côté pour tester sur des serveurs sous linux). Dommage que d'autre langage n'est pas repris le principe de ASP.NET (codé en C# par ce que coder directement des fichiers aspx ne me convient pas).

    C'est étonnant je ne pensais pas être le seul à vouloir m'affranchir de la "galère" xhtml/javascript/css/support par les différents navigateurs pour me focaliser sur le code. C'est pas grave je vais encore attendre un peu.
    • [^] # Re: Petit tour

      Posté par  . Évalué à 2.

      Pour la partie "galère xhtml/javascript/css/support par les différents navigateurs", je trouve que c'est de moins en moins vrai.

      D'abord, pour le javascript, sauf à faire des choses très pointues, ça marche plutôt bien (et de toute façon, tout le monde utilise des bibliothèques comme prototype qui font pas mal du sale boulot).

      Ensuite, pour l'affichage, si tu utilises du xhtml/css, ça va plutôt bien quand même, surtout depuis XHTML. Au contraire même, le xhtml est très propre, et le principe d'accessibilité est à bien garder en tête: l'application doit pouvoir s'afficher n'importe où, y compris ne pas s'afficher (si la page est lue plutôt que vue). Dans ces conditions, il y a très peu de cas où on galère pour l'affichage, parce que justement on ne doit s'en préoccuper que modérément (et savoir accepter que son affichage diffère d'un navigateur à l'autre).

      En revanche, je suis plutôt d'accord avec toi, le mélange entre le (x)html et le code, c'est pas terrible, et à part la solution que tu cherches ("tout généré par le code"), il n'existe pas grand chose de satisfaisant.
  • # STFW ?

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

    Il y a pas mal de liens là : http://developers.slashdot.org/article.pl?sid=06/05/17/12721(...)

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # Quand tu auras fini de chercher

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

    Quand tu auras fini ton petit tour d'horizon des outils existants, ce serait intéressant de nous faire un petit topo sur ce que tu as vu.

    Un peu un récit de voyage, quoi :)

Suivre le flux des commentaires

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