11 questions pour bien choisir votre framework Javascript

11 questions pour bien choisir votre framework Javascript

Par Benoit Collignon, le 14 septembre 2010
11 questions pour bien choisir votre framework Javascript

Aujourd’hui, il devient plutôt rare de concevoir un système de gestion de données en ligne sans utiliser une librairie ou un framework côté client. Puisque la vitesse de rendu et du moteur javascript semble maintenant faire partie des critères de sélection des navigateurs web et des arguments de promotion des entreprises qui les développent, il serait stupide de continuer à ignorer l’ergonomie et l’utilisabilité des applications web que nous développons.

Javascript et DOM offrent en effet beaucoup de possibilités en la matière et nous allons aborder dans cet article quelques réflexes et critères de sélection à avoir lors de vos développements (nous n’aborderons pas le cas du développement basé plugin via flash/flex, java/javafx et nous ne nous attarderons également pas à comparer un à un tous les frameworks usels disponibles sur le marché).

javascript-uiMais par où commencer ? Faut-il tout développer from scratch ? Quid de la compatibilité entre navigateurs ?

Bon nombre de développeurs Javascript expérimentés savent que si vouloir tout développer à partir de zéro apporte une maîtrise énorme sur le code produit, il ne sert dans bon nombre de cas à rien de vouloir réinventer la roue lorsque une application commence à prendre de l’ampleur; d’autant plus si vous souhaitez directement travailler avec une série de composants interactifs. Dans ce cas précis, l’utilisation d’une librairie ou framework devient pratiquement indispensable, surtout si vous souhaitez arriver rapidement à un résultat.

Mais avant de se diriger vers tel ou tel framework, il convient de vous poser onze questions primordiales qui vous permettront d’optimiser vos choix.

1. Est-il réellement nécessaire d’utiliser un framework ?

Cette question trouvera sa réponse en fonction vos objectifs finaux. Si votre but se résume simplement à vérifier qu’un champ <input> de votre formulaire n’est pas vide, alors, vouloir par exemple inclure Jquery à tout prix n’est peut-être pas obligatoire.

2. Ai-je suffisamment de bases techniques ?

Développer en Javascript en tenant compte des spécificités liées à tel ou tel navigateur n’est pas donné à tout le monde. Il est vrai qu’en passant par une librairie ou un framework qui abstrait le tout permet de gagner du temps. Mais le jour où un bug ne sera corrigé que dans la release de l’année prochaine, vous pourrez alors toujours vous en vouloir de ne pas avoir appris les bases qui vous permettraient d’aller directement disséquer le code de votre framework favori. Par ailleurs, si les frameworks Javascript sont en général complets, ils ne répondront pas toujours à toutes vos demandes. Il restera encore une partie de code à fournir par vous-même.

3. Ai-je vraiment envie de développer en Javascript ?

De manière à optimiser le code produit, certains frameworks sont basés sur d’autres langages spécifiques (c’est notamment le cas de Cappuccino en Objective-J et d’OpenLaszlo en XML/Ecmascript, qui produit du code utilisant Dojo).

A noter une nouvelle fois qu’en cas de bug, le problème présenté dans la question précédente s’appliquera de nouveau. Mais cela peut aussi apporter un gain de temps important en terme d’optimisation.

4. A quel niveau vais-je travailler ?

Habituellement, lorsqu’on travaille avec un framework Javascript au sein d’une page web, il existe deux niveaux d’abstraction :

  • le niveau low-level où la manipulation intervient directement entre les éléments DOM de votre page et votre cas (c’est notamment le cas de Jquery).
  • Le niveau high-level où on travaille généralement avec des objets de classe supérieure qui feront appel à la couche low-level en temps utiles (c’est souvent le cas pour les widgets interactifs – tableaux, arbres …)

Si travailler avec des widgets interactifs permet un gain de temps énorme, vous perdrez parfois l’accès direct à DOM si ces derniers reposent sur une couche high-level. Si la librairie est bien pensée, vous devriez toutefois y accéder via des méthodes/fonctions particulières mais veillez toutefois à ce que ce soit systématiquement le cas.

5. Le critère de vitesse est-il important ?

Si la vitesse d’exécution est importante, voici plusieurs facteurs entrant en ligne de compte dans votre quête d’un candidat potentiel :

  • la vitesse du sélecteur CSS – utile si vous souhaitez accéder rapidement à un élément DOM de votre page web
  • la vitesse de création et de manipulation des éléments DOM de votre page
  • le nombre d’éléments DOM nécessaires pour afficher un widget
  • la taille finale de vos fichiers  Javascript. Certains frameworks se basent sur des générateurs qui compilent vos fichiers source pour optimiser le code global ou combiner les sources, parfois au détriment de la taille des fichiers produits

A l’exception des deux derniers cas où le travail d’analyse se situera exclusivement de votre côté, il existe au moins deux outils qui vous permettront de faire votre choix :

6. Vers quelle plateforme physique ou logicielle se destine mon application ?

Veillez toujours à vérifier si le framework choisi permet de produire du code utilisable sur d’autres plates-formes que votre ordinateur usuel (PC/Windows/IE pour les débutants).  Les applications riches commencent également à se répandre sur plates-formes mobiles. C’est par exemple l’occasion de vérifier si telle ou telle librairies supporte les événements liées au toucher sur surface tactile.

7. Ai-je besoin d’un degré de généricité élevé ?

Tous les frameworks ne se valent pas au niveau high-level. Certains ne se contentent de proposer qu’un ensemble de widgets indépendants. D’autres se basent sur un objet générique dont tous les widgets hériteront; c’est notamment le cas de Qooxdoo. Si vous souhaitez créer vos propres widgets, la seconde option semble la plus adéquate.

8. Quid de la licence de développement ?

Ici encore, tous les frameworks ne sont pas égaux. A moins que vous ne développiez une application totalement Open Source, il vous faudra dans bon nombre de cas débourser une somme d’argent (parfois très importante) pour développer votre application commerciale. D’un autre côté, ça vaut parfois la peine de dépenser quelques euros pour bénéficier d’un support de qualité.

9. Suis-je la seule personne à l’utiliser ?

Veillez à prendre en compte la taille de la communauté de développeurs dans vos critères. Si celle-ci est importante, vous gagnerez toujours un temps précieux pour parfaire votre apprentissage et vous aider à trouver des réponses à vos questions ou encore pour profiter de leurs contributions !

A titre d’exemple, Jquery est très populaire, non pas parce que c’est la meilleure librairie en tout point, mais bien parce que la communauté sur laquelle elle repose est la plus importante.

Je n’irai par contre pas jusqu’à dire que vous devrez obligatoirement l’utiliser. En termes de widgets, JqueryUI n’est par exemple pas encore suffisamment évoluée. Et de manière générale, cela dépendra aussi de votre style de programmation.

10. La vitesse de développement

Ce dernier point n’est pas à prendre à la légère. Certains frameworks, bien que puissants, nécessitent un temps d’apprentissage beaucoup plus importants (pas forcément uniquement au niveau de l’API – qui doit être bien documentée, mais aussi des outils de conception).

De même, certains frameworks proposent des outils de conception très évolués (notamment des GUI Builders) qui produiront parfois le code final à votre place.

11. L’environnement de développement

L’environnement de travail est le dernier élément entrant en ligne de compte (mais pas forcément le plus essentiel). Vérifiez si l’équipe qui développe le framework que vous allez utiliser propose/suggère un plugin pour votre outil de travail favori ou un IDE complet, cela pourra également constituer un gain de temps significatif lors de votre phase d’apprentissage lorsque cela s’y prête.

Pour conclure

Cet article n’avait ni la prétention d’apporter toutes les solutions quant au choix d’un framework, ni pour but de favoriser l’une ou l’autre librairie javascript. Chacun a en effet ses propres critères, un niveau de connaissance différent ou encore ses propres préférences en termes de développement web. Mais en cas de doute réel, vous poser ces 11 questions vous aidera à finaliser vos choix.

Pour plus de détails sur ces frameworks, voici un comparatif (partiel) des frameworks usels sur le marché.

Retrouvez d'autres articles sur Actualité dans Locita Technologie
11 questions pour bien choisir votre framework Javascript

Benoit Collignon

Fort d'une expérience de plus de cinq ans dans le dév...

En savoir plus sur l'auteur

Articles similaires :

Se connecter

J'ai oublié mon mot de passe

S'enregistrer

Devenir contributeur

Pour devenir contributeur, merci de remplir le formulaire ci-dessous. Nous reviendrons vers toi très vite