IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

[Ext JS] Choisir mon framework : Extjs ou jQuery ?


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut [Ext JS] Choisir mon framework : Extjs ou jQuery ?
    Bonjour,

    Je suis codeur php, et je dois me mettre un peu au javascript (et ajax) pour mes interfaces web. Je cherche "mon" framework javascript (ou plutôt ma bibliothèque de fonction). Je dis "mon" framework, car je suis convaincu que tous ont des défauts et avantages, et chaque codeur ses préférences.

    J'étais parti sur Dojo au départ, mais j'en suis vite revenu car ces défauts sont rédhibitoires pour moi :
    - quelques problèmes avec IE
    - super lourd à charger quand il s'agit de faire "juste" une validation d'email par exemple.

    J'ai revu ma copie, fait le tour de mes besoins et des forums, parcouru les docs, et je me retrouve à avoir sélectionné 2 : ExtJS et jQuery.

    Bien-sûr, je ne cherche pas un framework javascript juste pour valider une adresse email, mais cela fait aussi parti des besoins.

    Je préfèrerai utiliser ExtJS, car plus évolué (framework de haut niveau), mais ne vais je pas tomber dans le piège de la lenteur évoquée pour Dojo ?
    Les performances pour les éléments simples (type validation de formulaire) sont très importantes pour moi, et tant qu'à faire, je préfère me former sur 1 framework plutôt que 2.

    Merci de vos conseils.

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Tu as besoin de quoi exactement? Parce que c'est quand même à partir de ce besoin que tu dois te déterminer ^^

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut
    Voici mes besoins génériques :
    • licence : open source préférée, mais pas obligatoire
    • projet actif, une bonne communauté
    • un apprentissage pas trop difficile (pour un développeur)
    • une documentation bien faite, complète (si possible en français, mais l'anglais va bien aussi). Rien à voir avec Javascript, mais pour cela Zend Framework est bien.
    • Cross over impeccable : le code doit être (vraiment et toujours) fonctionnel quelque soit le navigateur (je suis déçu de Dojo à ce niveau)
    • rapidité : doit être rapide pour les opérations simples (type validation de champ, fausse popup, onglet) dans le navigateur internet (je suis également déçu de Dojo à ce niveau, quand on charge dojo juste pour ça)
    • Facilité de débogage, rapidité de développement.
    • Je code avec Eclipse PDT, si cela a un intérêt.


    Ce que j'ai besoin de prime abord :
    • onglets
    • slideshow et lightbox
    • fausse popup
    • Editeur WYSIWYG léger (facultatif)
    • faire des menus

    D'autres besoins naitront certainement au fil du temps (c'est pourquoi je pensais à ExtJS), mais chaque chose en son temps (jQuery suffirait).

  4. #4
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Alors j'aurais tendance à dire Ext, parce que c'est un framework spécialisé dans le GUI et donc tu aurais presque le tout avec une vraie cohérence graphique.

    Avec jQuery, faut souvent aller piocher dans des plugins persos et tu te retrouves vites avec des choses qui vont visuellement mal ensemble.

    Mais peut etre que d'autres auront un avis différent, je connais pas très bien jQuery.

  5. #5
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut Un peu d'huile sur le feu
    Salut,

    Prends Ext c'est un excellent framework - et en plus tu disposeras de php-ext.

    Mais attention. Ext est un excellent framework.
    Tout comme jQuery.
    Tout comme Prototype.
    Tout comme Dojo.
    Tout comme YahooUI.
    Tout comme Mootools.
    Tout comme Dhtml Goodies.
    Tout comme ..

    Tout ceci n'est à mon humble avis que querelle de clocher. Actuellement il n'y en a pas de "mauvais", ils sont tous bons, et disposent bien souvent d'un tronc commun de fonctions. A la base ils sont régulièrement l'union de plusieurs librairies opensources communes... De là à dire qu'ils tendent tous à faire presque la même chose avec presque la même aisance, il n'y a pas grand pas à franchir. Un exemple: à quel framework appartient ce code (pose d'un événement onclick sur toute balise P) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $("p").click(function () { 
          $(this).slideUp(); 
        });
    C'est du jQuery.

    Et à quel framework appartient ce code (pose d'un événement onclick sur toute balise P) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      $("p").click(function(){
        $(this).addClass("expanded");
      });
    C'est du Dojo.

    Tu vois la différence ?

    Alors évidemment chacun de nous a ses propres besoins, mais ces frameworks sont tellement maléables qu'au final tous peuvent convenir. Un aura besoin de plugins, l'autre de plus de code JS, etc...

    Le problème qui se pose plutôt c'est de très bien connaitre le framework que tu choisis. Car sans cela, et même armé du meilleur framework du monde, tu peux générer la pire des performances.

    Rapidité, qualité du rendu ou encore facilité de codage sont avant tout liés à la connaissance du framework.

    Prenons l'exemple de Dojo (mais cela s'applique aussi bien aux autres) que tu as certainement un peu manipulé d'après ton post, et qui t'a déçu.
    Il fonctionne sous la forme de packages (un peu comme java) et ne télécharge au fil de l'eau que ce dont il a besoin. Tu veux valider des emails en étant cross-plateformes (événementiel, etc...), cela te coute 26ko de téléchargement (aussi peu que les autres). Beaucoup de programmeurs téléchargent trop de packages pour rien, ce qui évidemment ralentit le client JS. Et si tu as besoin de composants graphiques tu ajoutes alors quelques librairies (dijit) en choisissant bien sûr uniquement celles dont tu as besoin. Et si cela ne suffit pas, tu disposes d'un Builder qui regroupe l'ensemble de tes librairies utilisées dans ton projet pour n'en faire qu'une seule optimisée à télécharger. Pour le débug il est nativement intégré à Firebug, c'est un pur bonheur (j'exagère un peu mais c'est l'aspect avocat du diable qui ressort !). Il gère nativement Google GEARS, les sources de données JSON, REST, OPML, FLICKER, PICASA etc... Et aussi Adobe AIR. On lui reproche aussi de ne pas disposer d'une fonction $ (comme Prototype ou jQuery) mais de devoir appeler dojo.query: il suffit d'écrire $ = dojo.query et le tour est joué (voir ici pour plus de détails).
    D'un autre côté, je trouve personnellement que la communauté est très en retard sur la qualité graphique des templates CSS proposés qui sont ridiculement amateurs en comparaison de Ext. Mais c'est full opensource alors que Ext mérite une lecture très attentive de la licence.
    Enfin tu souhaites pouvoir comparer les rapidités des frameworks ? Beaucoup l'ont fait et les résultats sont souvent étonnants. Regarde un peu par exemple ici. Ce n'est pas exhaustif, mais c'est instructif.

    En bref, connaître avant tout au mieux son framework - quel qu'il soit - et savoir comment fonctionne le chargement d'une page Html à travers une requête HTTP (cela évite de faire n'importe quoi), voilà l'essentiel pour réussir un dev client JS.

    Sans vouloir donner l'impression de rouler pour Dojo (ce qui n'est pas le cas, je travaille aussi bien avec Prototype ou GWT), j'espère avoir pu t'ouvrir un angle de réflexion différent.

    Finalement tu te sens à l'aise avec Ext, ou tu le trouves élégant, ou il répond à tes besoins ? Lance toi.

    ERE


    PS: de tous les tests que j'ai faits... Adobe Flex les enterre tous...

  6. #6
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Ouais fin bon, faut aussi comparer ce qui est comparable hein

    Ext et prototype ou jQuery, ca n'a strictement rien à voir...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Moi j'avais choisit yui 2.6.des patates (qui est maintenant passé en 2.7)
    Car il fournit de base pas mal d'éléments, et que c'est yahoo.

    Ben je trouve qu'il remplit très bien son rôle. Le seuls bémol que j'ai est l'extension de l'existant sur lequel je galère un peu.
    Mais bon de la à te dire si cela vient du langage (js est particulièrement difficile à développer je trouve) ou le fw, je ne sais pas te dire.

    Maintenant ils en sont à yui 3, c'est dire si ils font des progrès, et pour ce que j'en ai vu ils ont vraiment l'air d'avoir réaliser un gros effort pour améliorer en profondeur le fw.

    Après j'aime pas la charte graphique de YUI, m'enfin ça je m'en fou pour l'heure.

    http://developer.yahoo.com/yui/
    http://developer.yahoo.com/yui/3/

    a plus

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Salut,
    ...

    ...
    PS: de tous les tests que j'ai faits... Adobe Flex les enterre tous...
    D'abord, merci pour l'ensemble de ton propos, aussi intéressant que documenté, avec l'éloquence mais sans la prétention... bravo

    Cependant : c'est très mal de jouer avec notre curiosité de développeur comme ça...
    Après un avis aussi détaillé et complet, cette petite allusion fuyante à propos de Flex m'a laissé sur ma faim...
    A une vache près, comme ça, à quels avantages mirrifiques pensais-tu en faveur de Flex ? ^^


    ps : juste avant de lire ton post, j'allais poster en faveur de Prototype mais ton message m'en a dissuadé ^^ (j'avais effectivement déjà le sentiment que les frameworks devaient se valoir à peu près, mais ton argumentation me donne à penser que j'étais en dessous de la vérité...)

  9. #9
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut
    Petit déterrage de topic mais je me dis que n'importe qui peut passer par là et trouver mon avis utile, après tout…

    Prototype
    Des 3 frameworks JS évoqués ci-dessus, j'ai commencé avec Prototype. Par rapport à du JS classique, c'est beau, c'est lisible, c'est compatible sous tous les navigateurs, … bref, du pur bonheur. La personne qui me l'avait conseillé a suivi d'assez près mes développements histoire que je parte dans la bonne direction, que je prenne de bonnes habitudes. Je me suis retrouvé avec des pages structurées, hyper propres (HTML = présentation pure, JS = dynamisation de la page, CSS = mise en forme, et enfin des templates pour les zones qui changent). Aujourd'hui encore, je continue à développer de cette manière, je n'ai encore rien trouvé de mieux.

    JQuery
    Puis on m'a parlé de JQuery. Ne faisant pas partie de cette catégorie de développeurs grincheux incapables de faire l'effort de s'intéresser à de nouvelles technos (mini-troll, désolé ^^), j'ai regardé comment JQuery fonctionnait. On est vraiment très très proche de Prototype. Pour faire simple : l'opérateur $$ devient $ et certaines méthodes changent un petit peu de nom (addClass au lieu de addClassName, …). Cette bibliothèque présente pour moi 2 avantages sur Prototype : son poids (plus léger) et des fonctionnalités supplémentaires (animations, par exemple). Petit à petit, j'ai donc abandonné Prototype et JQuery est devenu ma référence.

    ExtJS
    Récemment, il m'a ensuite été demandé de faire des développements avec ExtJS. Les interfaces sont chouettes, on reste cohérent dans le style visuel (tout est homogène) et les accès aux données sont relativement propres. Pour un formulaire ou un tableau, c'est nickel. Puis est venu le temps de travailler un peu plus au corps ce framework pour avoir des interfaces un peu plus complexes (tableaux à double entrée, verrouillage de colonnes, …) et là, ça a été un véritable drame.
    • De base, rien n'est proposé dans ce framework : tout doit être développé manuellement via des plugins. Au final, on va chercher des morceaux de codes copiés/collés au hasard de nos recherches sur le net, dans l'espoir que ça réponde à notre problématique.
    • Du côté du code source généré, je ne m'en étais pas rendu compte au départ mais c'est du grand n'importe quoi : on a des <table> et des <div> imbriqués de partout, des images en guise de couleur de fond, … d'un point de vue du respect des standards du web, c'est une honte. Petit exemple pour mieux se rendre compte de l'étendue des dégâts : les boutons des formulaires sont en fait des <table> 3x3 pour pouvoir faire des bords arrondis . Je m'avance peut-être un peu mais pour moi, on ne code plus comme ça depuis la fin des années 90…
    • Les accès en base de données sont biens de base, mais dès qu'on veut rafraichir la page uniquement dans certaines conditions, on passe des heures à s'arracher les cheveux et à limite vouloir se pendre (de base, il faut obligatoirement recharger les données pour actualiser l'affichage d'une grille, ce qui implique l'enregistrement de ces données → contrainte aussi inutile qu'agaçante).
    • La personnalisation des contrôles consiste à y aller à tâtons : il est nécessaire de bidouiller tantôt le code, tantôt les feuilles de style sans pouvoir anticiper l'impact, tant il y a de classes CSS à modifier.
    • Du code ExtJS mélange de l'interface (boutons, listes déroulante, cadres, …) avec des traitements (appels Ajax, …) : c'est franchement sale.
    • Les forums sur ExtJS sont assez fournis (en anglais, certes, mais quand on est développeur, c'est le minimum). On finit par trouver plus ou moins ce qu'on cherche (même s'il faut savoir faire preuve d'acharnement parfois). Les mecs de Sencha répondent volontiers pour donner un coup de main mais sont parfois d'une mauvaise foi hallucinante dès lors qu'on critique un tant soit peu leur framework. Très décevant de leur part.
    • ExtJS possède plusieurs versions : les développeurs de Sencha n'ont rien trouvé de mieux à faire que de changer radicalement la manière de déclarer les objets d'une version à l'autre. Pire encore : certaines fonctionnalités disparaissent d'une version à l'autre, on ne sait pas pourquoi. Alors il y a peut-être une subtilité que je ne saisis pas dans ce framework mais je me dis que je ne dois pas être le seul à pester contre cette logique.

    Tant d'inconvénients pour un framework, de surcroît payant, on hallucine. Avec toutes ces contraintes, je suis donc repassé sous JQuery pour les interfaces les plus complexes, où à titre informatif, je me suis rendu compte que je divisais mes temps de développement par 5.

    Conclusion
    Vous l'aurez compris : énorme déception en ce qui concerne ExtJS (et je pèse mes mots). Proposer une interface graphique avec un framework JS n'est pas une mauvaise idée à la base, mais en y réfléchissant : c'est une hérésie. Le JS ne devrait selon moi servir qu'à dynamiser une page, en aucun cas il ne doit se substituer à ce que propose déjà CSS en ce qui concerne la présentation. C'est peut-être chiant aux yeux de certains mais je suis désolé, être développeur, c'est savoir rester propre et arrêter de vouloir se simplifier toujours plus la tâche au détriment de la qualité du code derrière et du respect des standards. CSS est certes un langage assez particulier, aux comportements parfois très aléatoires… mais être développeur web implique de le connaître (ou alors il faut changer d'orientation).
    Selon moi, JQuery reste donc à l'heure actuelle LA référence en terme de framework JS. Seul point positif pour ExtJS : bien pour des interfaces graphiques très simples, si on n'a que peu de temps pour les réaliser, si on passe outre le fait qu'il est payant et si on accepte de se faire maudire par le développeur qui s'occupera de maintenir le code plus tard.

    Merci pour votre lecture en tous cas, car c'est un bien gros pavé que j'ai pondu là

  10. #10
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Pour moi la question ne se pose pas en ces termes

    J'ai des pages HTML et je veux avec JavaScript ajouter des fonctionnalités aux éléments de la page
    Pour cela j'ai besoin de retrouver facilement les éléments de ma page et de fonction qui permettent d'ajouter ces fonctionnalités.
    C’est le domaine de prédilection de JQuery. L’inconvénient est l’hétérogénéité des plugins

    J'ai une page blanche et je veux en JavaScript créer une grille de données un menu et une zone de saisie.
    Je ne parle donc pas d'élément HTML mais de grille, de menu et de zone de saisie
    Ma page étant blanche j'ai besoin d'un framework qui possède ces composants me permet de les implémenter sans avoir au préalable à me plonger dans le cambouis du HTML. C’est le gros avantage de ExtJs face à JQuery les composants sont riches homogènes et nombreux. Pourquoi devrais-je créer du HTML le faire interpréter au navigateur puis chercher les éléments créer pour ajouter via JavaScript des fonctionnalités que HTML ne connais pas. Alors que mon besoin est de créer un objet complexe. C'est l'esprit d’ExtJS. Et je reconnais qu’ExtJS produit un HTML (tout terrain même de vieux navigateur le supporte) un peu pourave. Mais je ne manipule jamais avec lui de HTML.

    L’approche est très différente

    Autre point JQuery s'adapte bien aux sites multipages
    ExtJs est plutôt pensé application singlePage

    C’est volontairement que j'utilise site pour l'un et application pour l'autre.

    En résumé
    Avec Jquery je pense site web page html et enrichissement
    Avec Extjs je pense application composants applicatifs données modélisation.
    A+JYT

  11. #11
    Membre confirmé Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Par défaut
    Dans certains contextes, je comprends tout à fait cette approche de vouloir se simplifier la tâche et aller au plus vite. Quand on dit :
    Citation Envoyé par sekaijin Voir le message
    sans avoir au préalable à me plonger dans le cambouis du HTML
    on paraphrase le fameux « sans avoir à ré-inventer la roue » mais est-ce qu'au final ça ne se fait pas au détriment de la qualité de ce qui est produit derrière ? J'ai vu tellement de développeurs aller au plus simple à cause de délais imposés par le commercial et/ou le client (ou qui ne souhaitent simplement pas se casser la tête). Sauf que derrière, dans 99% des cas, on se retrouve avec un truc fait à l'arrache et vraiment pas propre. Et je ne parle même pas de la maintenabilité.

    Le cambouis du HTML fait pour moi partie intégrante du métier de développeur web. Avec un minimum de connaissances en HTML et CSS, on arrive très vite aux résultats attendus. Après, encore faut-il faire l'effort de connaître HTML et CSS… C'est tout le problème de beaucoup de développeurs je trouve : la fainéantise pour tout ce qui concerne la partie graphique. Après, il ne faut s'étonner de voir des chefs de projet considérer les développeurs comme de bêtes machines à produire du code.

    Pour recentrer le débat sur ExtJS : avoir un framework qui te génère tes composants, oui. Mais qu'il le fasse de manière beaucoup plus propre. Sur les premières versions, on peut lui excuser de ne pas être parfaitement rodé mais à l'heure du web 3.0, il ne peut plus rester aussi rigide.

Discussions similaires

  1. Aidez moi à choisir mon sujet d'exposé
    Par SavoitTout dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 26/05/2008, 05h09
  2. Choisir le FrameWork à utiliser sous BDS 2006
    Par msuzenne dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 10/11/2006, 10h32
  3. [Disque Dur]Comment choisir mon disque dur (vitesse)
    Par pierrot10 dans le forum Composants
    Réponses: 4
    Dernier message: 07/09/2006, 02h30
  4. Réponses: 6
    Dernier message: 11/05/2006, 18h33
  5. Cherche conseil pour choisir mon orientation.
    Par AslDice dans le forum Débuter
    Réponses: 6
    Dernier message: 24/04/2003, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo