11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je m'appelle Emmanuel et je suis actuellement étudiant en 1ère année à l'Ecole Centrale de Nantes. Dans le cadre de notre formation, nous devons effectuer un projet d'étude industriel par groupe de 6. Celui de mon groupe consiste en une étude comparative des Frameworks Javascript les plus usités.

Face à nos difficultés de compréhension, ( nous ne maîtrisons que quelques bases de Javascript) nous avons pensé qu'un petit questionnaire pourrait nous aider.

C'est pourquoi je vous demande, si vous en avez bien sur le temps et l'envie, de répondre à quelques questions concernant les Frameworks que vous utilisez. Le questionnaire est un googledoc que vous pourrez trouver ici :

https://docs.google.com/spreadsheet/viewform?formkey=dC02ODdTaF9CYmlJR24ybnlJZFFONkE6MQ

Cela ne vous prendra que quelques minutes, et votre aide nous sera précieuse croyez moi !

N'hésitez pas à critiquer le questionnaire, toute suggestion constructive sera la bienvenue.

En vous remerciant,

Emmanuel
Mes habitudes ne sont certainement pas représentatives mais j'ai tendance à "faire les choses moi-même". Force est de constater cependant que jQuery est très complet et fait gagner beaucoup de temps. Par contre, avec des frameworks, on a toujours un tas de fonctionnalités dont on ne se sert pas, on se retrouve donc avec 100Ko (la bibliothèque jQuery) à faire charger au client alors qu'on en utilise 5Ko par page tout au plus.

Du coup, je me suis fabriqué ma propre bibliothèque : je suis en train de créer le site de la doc, on peut y voir le rendu de quelques animations : jsb.selfbuild.fr, et de la navigation AJAX directement intégrée à la bibliothèque.

Elle n'a pas vocation à concurrencer jQuery, c'est avant tout une lib pour répondre à mes besoins persos.

Tout ça pour dire que du coup, je peux plus facilement modifier et ajuster le code à mes besoins, alors qu'on est plus vite bloqué avec un lib dont on ne maîtrise pas le code.

De plus, les frameworks tout en essayant de résoudre des problèmes de compatibilité en créent parfois d'autres. Avec des fonctions couteau-suisse, il est difficile de tester toutes les applications et en parcourant les forums, on constate souvent que des utilisateurs constatent des différences entre navigateurs, ont des conflits avec d'autres codes/plugins...

Voilà quelques points faibles plutôt communs à tous les frameworks, de ce petit laïus, je vous liste quelques points qui peuvent vous servir de critères de comparaison :

- Fonctionnalités : le premier critère reste la quantité de fonctionnalités offertes.
- Qualité : jQuery propose parfois des fonctionnalités très poussées mais au détriment de quelques bugs dans les animate (un point qui reste très très difficile à maîtriser), le évènements "live" et plus généralement la manipulation du DOM et de javascript dans des contenus chargés dynamiquement. En gros : moins une lib est buguée mieux c'est.
- Impact sur la bande passante : en gros combien pèse la bibliothèque. Plus elle est légère mieux c'est.
- Compatibilité : faire quelques tests de codes très pointus sur différents navigateurs (de préférences anciens et nouveaux) pour comparer.
- Extensions : Regarder/Compter les extensions basées sur chaque lib.
- Communauté : Essayer de parcourir les forums pour voir en combien de temps les utilisateurs trouvent des solutions à leurs problèmes. C'est important, malgré le grand nombre d'utilisateurs de jQuery, c'est parfois une vraie sinécure de solutionner un problème.
- Qualité de la documentation : pour prendre en main une lib, il faut une bonne doc. Il est clair que la lib de jQuery pour le coup est vraiment bien faite : exemples détaillés, recherche rapide, un vrai bonheur. Celle de prototype est déjà un niveau en dessous par exemple.

Voilà, c'est loin d'être exhaustif, mais il est clair qu'on ne peut pas réduire la question à une note sur 5 et surtout qu'il n'est pas uniquement question de "générer du contenu interactif". Les lib ont chacune leurs points forts, leur cheval de bataille et elles n'ont tout simplement pas toutes le même but.

En plus le "permettre" est le mauvais terme. Car il faut bien comprendre que aucun framework ne permet de faire plus que le JavaScript seul. Le framework facilite la tâche du codeur, il ne permet strictement rien et n'apporte aucune fonctionnalité supplémentaire. Les capacités de génération de contenu sont définies par les normes du JavaScript (ECMA) et leur implémentation dans les navigateurs.
Je parcours les questions suivantes et donc :
Question sur le serverside/clientside :
JS peut être exécuté des deux côtés ce qui implique que tous les frameworks JS peuvent l'être. Donc pas très pertinent de poser au développeur cette question. Peut-être cherchiez-vous à savoir si les développeurs s'en servait en serverside dans ce cas peut-être vaut-il mieux le demander carrément : vous servez-vous de ce frameworks en serverside ?

Pour l'utilisation principale ça rejoint ce que j'ai dit plus haut :
Toutes les lib "simplifient l'écriture du code", on a l'habitude de dire qu'on se sert d'une lib pour pas réinventer la roue.
L'utilisation ou non de framework ne va pas jouer sur la "taille" de l'application et il n'y a aucune effet ou animation qu'on puisse faire avec une lib qu'on ne pourrait pas faire avec du simple JS. Donc si on se sert de jQuery pour faire des animations par exemple, c'est juste qu'on s'en sert pour les faire plus vite/facilement et ça rejoint la deuxième réponse qui est finalement la plus pertinente dans tous les cas.

Question tableaux/widgets ? Euh moi je traduis tableau par table et widget par accessoire, donc je ne vois pas bien le rapport. Smiley rolleyes

La communauté : le nombre ne fait pas tout cf. plus haut.

La question sur les plug-ins est bien.

Après, la remarque générale, c'est que votre sondage comporte beaucoup de question objective. Or pour avoir des réponses à des questions du style : combien de plug-in, ben le sondage n'est pas adapté. Pour le savoir, faut compter. On peut se donner un critère du style : combien trouve-t-on de plugin en cherchant "plugin framework" dans google sur les 10 premières pages, et on remplace framework par le nom de chaque lib.

Parce que le risque là, c'est que vous n'aurez pas beaucoup d'utilisateur qui pourront vous parler de toutes les libs. Du coup, vous aurez des utilisateurs de Moo qui donneront un avis subectif du nombre de plugin sur Moo mais laisseront vides les autres cases et des utilisateurs de SWFO qui ne cocheront que pour SWFO et qui auront peut-être d'autres critères car ce framework est très différent. Du coup, il sera absurde de comparer les deux résultats car rien d'objectif ne les lie.

Bon courage.
Merci pour ces précisions, je savais qu'il y avait quelques incohérences, cela me permettra de faire un questionnaire plus pertinent !
Modérateur
Bonjour, j'ai moi aussi quelques remarques:

a écrit :
ACCESSIBILITE - Parmi les Frameworks que vous utilisez, quels sont ceux qui vous permettent de générer un contenu qui soit un maximum interactif à la fois au niveau visuel et/ou auditif ? 1 Ne permet pas ou peu de générer du contenu interactif – 5 Permet de générer beaucoup de contenu interactif


Je cale dès le début. Le titre est accessibilité mais tu parles d'interactivité. à mon avis il y a confusion sur les termes. De l'interactivité visuelle pourquoi pas, de l'interactivité audio, jamais vu...

De plus je n'ai de loin pas testé tous les frameworks, mais je sais que déjà scriptaculous est un add-on de prototype, de les séparer donne des résultats étranges.

J'ai rapidement abandonné de lire, parce que ça me fatigue. Met un texte foncé sur un texte clair afin d'améliorer la lisibilité. Déjà que c'est ch.. de remplir un questionnaire, si en plus faut s'exploser la tête à le lire...
Modifié par kustolovic (03 Apr 2012 - 14:55)
"l'interactivité audio, jamais vu" > Ça semble logique ^^

N'empêche que c'est un peu vrai. visuel + audio = audiovisuel, tout simplement. Sinon Multimédia peut être le titre cherché. En effet, on a maintenant des extensions de lib style jPlayer (extension jQuery) qui permet de créer facilement des players audio ou vidéo compatible Flash et HTML5.

Après, ça revient à ce que j'ai déjà dit l'interactivité, ce ne sont pas les frameworks qui les permettent mais les normes (HTML5, CSS3, ECMA) et les évolution des navigateurs car Framework ou pas, on ne peut utiliser des fonctions modernes qu'au pris d'une moindre compatibilité.

Tiens, il me vient une idée de test qui pourrait apporter un élément plus objectif à votre étude (et là pour le coup, on pourrait vraiment parler d'étude) : mesurer et chronométrer des codes.

Prenons un échantillons de scripts simples :
- Vérification d'email dans un formulaire avec affichage au fur et à mesure de la saisie
- Décompte avant téléchargement
- Menu déroulant avec animation de l'opacité et de la largeur ou hauteur
- Création d'une fenêtre DOM avec un overlay (l'écran s'assombrit et un cadre apparaît au milieu)
- Champ de recherche permettant de filtrer des éléments d'une liste
- Champ de recherche avec suggestion au fur et à mesure de la saisie (ajax)

Voilà, on code ensuite chacun de ces exemples en JS pur puis on regarde si chacun des framework permet de simplifier le code. Si c'est le cas, ce sera probablement alors au détriment d'un ralentissement plus ou moins grand. On peut le chronométrer avec des (new Date).getTime() (qui renvoie un timestamp à virgule très précis) Ce qui vous permettra d'établir un tableau du style :

Moyenne sur un échantillon de X scripts (voir liste) :
Framework - Poids du code - Vitesse
JS (sans framework) - 100% - 100% (référence)
jQuery - 78% - 134%
prototype - 82% - 109%
SWFObject - 100% - 100% (probable que celui-ci ne donne rien avec les exemples qui j'ai trouvés)
etc.

En tout cas moi je vous invite vraiment à pas vous contenter d'un sondage. Sondage et micro-trottoirs peuvent être pertinents à condition d'être mis en relations avec d'autres sources de renseignement. Seuls, ils ne sont pas significatifs. Et surtout pour un sujet pointu et technique comme celui-ci.
Modérateur
Bien d'accord avec toi pour qu'un sondage soit plutôt un complément d’enquête. De plus avoir du solide au préalable permet d'éviter de poser de mauvaises questions.

Pour l'interactivité, regarder une vidéo ce n'est pas de l'interactivité. Un forum c'est de l'interactivité (et il n'y a pas besoin de javascript). Interactivité => le site et le visiteurs agissent chacun, l'un apportant à l'autre et vice-versa. Sinon on peu parler de multimédia, d'animation ou que sais-je encore mais ça n'a rien à voir avec l'interactivité.
kustolovic > On peut quand même dire que JavaScript peut être employer pour accroitre l'interactivité.

Suggestion lorsqu'on tape dans un champ de recherche.
Aide au remplissage des formulaire.
Sans parler des jeux codés en JS.

Ce sont des exemples d'applications qui seraient moins interactive sans JS (ou une librairie JS).

Du coup, le mot "interactif" en soit ne me choque. C'est plus "permettre" qui me dérange. On peut dire en effet que PHP "permet" l'interactivité. On dirait plutôt de JS qu'il "facilite" ou "asynchronise" l'interactivité.