[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.
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:
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:
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... :D