Vous aurez remarqué la montée en puissance qu’a connu et que connait Javascript avec la vague Web 2.0 et les RIA (Rich Internet Applications).De nombreux frameworks Javascript se font la guerre et le développeur se retrouve un peu perdu dans tout ça.

L’utilisation de Javascript aussi diffère grandement d’une application web à une autre. Quelques applications web n’utilisent JAVASCRIPT juste pour avoir quelques effets sympas et de beaux widgets, d’autres par contre nécessite une utilisation plus approfondie pour aboutir par exemple à une application entière sur une seule page sans rafraichissement. C’est souvent cette dernière catégorie d’applications qui nécessite l’utilisation d’un framework (ou d’une architecture solide faite par le développeur lui même).
Travaillant sur une application web de ce dernier type (Zikyt), je me suis trouvé face à ce problème et pour être tout à fait franc, je ne suis pas encore convaincu par aucun des frameworks actuels (peut être par manque de connaissance de quelques uns).
JQuery
Le framework que je connais le mieux et que j’utilise le plus c’est jQuery, tout d’abord ses avantages :
- Très léger,
- Abstraction très facile du DOM, manipulation avancée du DOM,
- Easy Ajax, des fonctions assez simples vous permettent de faire des appels AJAX assez simplement,
- Des widgets et plugins plus ou moins sympas avec jQueryUI notamment,
- Très bonne communauté et documentation.
Le framework (à lui tout seul) est en effet assez pratique pour les applications web qui n’utilisent pas le Javascript pour faire des RIA, mais plutot pour du design et à la limite deux ou trois appels AJAX par page. Cependant pour le développement d’une Rich Internet Application, la tâche est moins aisée. Il est nécessaire de se construire sa propre architecture de l’interface coté client, et le framework n’offre pas d’outils pour simplifier la conception de cette architecture mais sert plutot de complément (« simplificateur de Javascript pour la manipulation du DOM »).
DOJO
Un framework intéréssant (que je connais un peu moins bien que jQuery) mais qui dispose de quelques atouts intéressants :
- Javascript Orienté Objet : DOJO offre une manière élégante de faire de l’orienté objet en Javascript,
- Chargement de fichiers (classes) à la volée : DOJO charge vos fichiers que lorsque c’est nécessaire => gain de performances,
- Abstraction du DOM.
Malgré ses fonctionnalités qui permettent de faciliter la conception de RIA (notamment l’aspect programmation orientée objet), je trouve que DOJO est un peu vieillissant, notamment avec ses widgets (le design laisse à désirer). Bien sur, Il est tout à fait possible de ne pas utiliser ces widgets.
Autres frameworks
Ma connaissance des autres frameworks Javascript (Prototype, Mootools, Scriptaculous, …) n’est pas suffisante pour pouvoir les analyser. Un framework sort du lot GWT, qui vous permet de générer automatiquement du Javascript à partir de code JAVA (A Tester).
Voila je compte sur vous pour enrichir cette liste avec vos propres analyses des frameworks. Je partage avec vous, mais je compte bien apprendre de vous aussi
A propos de JQuery, il faut également savoir qu’il est poussé par Microsoft qui l’intègre désormais à Visual Studio.
http://www.journaldunet.com/developpeur/breve/45863/microsoft-devient-contributeur-jquery.shtml
Ils font l’apologie de ce framework depuis au moins 18 mois avec ASP.NET.
http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx
Sinon, je l’ai déjà pas mal utilisé, il est vraiment bien.
a+
Quelqu’un a des pistes pour un plug-in Symfony-Ajax qui simplifie l’utilisation de l’Ajax dans une RIA ?
Un truc genre Propel2Jquery (passer des infos du modèles au variables javascripts simplement).
il y a Extjs qui permet des RDA full javascript …
Il y a aussi YUI 3.0 de yahoo …
Après avoir longtemps utilisé le couple prototype / script.aculo.us et ensuite mootools, jquery est quasiment devenu aujourd’hui le standard.
Une bonne librairie pour Jquery : http://flowplayer.org/tools/index.html
L’équivalent Jquery sur extjs s’appelle Extjs core. Une petite lib js.
jQuery est très populaire mais la critique qu’on lui fait généralement est qu’il cache tellement de choses que les développeurs qui commencent avec ça n’apprennent jamais vraiment à manipuler JS.
Ca ne pose pas de problème jusqu’à ce qu’on commence à avoir besoin de performances ou à devoir développer un gros projet en objet avec des events un peu partout
YUI2 évite cet écueil, mais du coup il est plus compliqué à prendre en main, surtout que la doc n’est pas extrement claire. YUI 3 a repris la syntaxe légère de jQuery, en y rajoutant le concept super pratique de « sandbox », qui évite que différents codes ne se marchent dessus.
Si vous vous intéressez au développement orienté objet, voici une des syntaxes possibles :
http://jpv.typepad.com/blog/2010/03/javascript-orient%C3%A9-objet-syntaxe-de-base-des-classes.html