J'utilise prototype par habitude, je n'ai pas trop confiance dans les sélecteurs CSS qui imposent un parsing et du coup j'ai toujours le sentiment (infondé) que ça va prendre trop de ressource.
Et puis j'adore les Event.observe, Array.each, Object.extend etc... Pour la doc : http://www.prototypejs.org/api
Même jQuery semble excellent, quelques arguments/préjugés me font rester sur prototype :
- J'adore l'API prototype qui est très bien pensée (car fondée sur RoR, mais conservant une syntaxe plus explicite grâce à notre merveilleux langage qu'est ECMAScript).
- Les "write less, do more" libraries, j'en ai connu beaucoup et la plupart donnent du code "write-only" (c'est un peu le cas de RoR justement).
- Cette histoire de parsing (je n'utilise jamais $$ dans prototype justement pour éviter ça).
Mais il faudra vraiment que je me penche dessus, même au boulot je vois de plus en plus de partenaires web qui abandonnent prototype/scriptaculous au profit de jQuery. Donc je crois qu'un peu de veille techno spéciale javascript ne me fera pas de mal
Edit : après avoir revisité le site de jQuery, une chose m'a choquée et m'a rappelée pourquoi je ne l'utilisais pas. Où est passé l'orienté objet, ni même dans les plugins d'ailleurs ? Pas de Class.create() ni d'Object.extend() pour les librairies par défaut ? L'esprit Prototype à ce niveau me semble beaucoup plus "propre" et permet de faire de belles librairies avec une homogénéité du code (une convention définie pour créer des classes, et pas chacun sa méthode). Sans doute cet aspect fortement orienté objet rend l'exécution parfois plus lourde, mais ça m'est indispensable.
Du coup je range toujours aujourd'hui jQuery dans la catégorie "librairies à sortir pour de petites bidouilles" mais je n'irai jamais baser une interface riche là-dessus. Sans doute est-ce par contre très bien adapté à nos projets pour lesquels le Javascript est plus utilisé pour de "petits détails" (pour ne pas dire "petites bidouilles") que dans de gros projet de RIA.
On appréciera dans le fait que jQuery se base systématiquement sur des sélecteurs CSS que cela pousse inconsciemment le développeur à passer la première étape d'un JS dégradable : ne pas mêler JS et HTML.
Et puis j'adore les Event.observe, Array.each, Object.extend etc... Pour la doc : http://www.prototypejs.org/api
Même jQuery semble excellent, quelques arguments/préjugés me font rester sur prototype :
- J'adore l'API prototype qui est très bien pensée (car fondée sur RoR, mais conservant une syntaxe plus explicite grâce à notre merveilleux langage qu'est ECMAScript).
- Les "write less, do more" libraries, j'en ai connu beaucoup et la plupart donnent du code "write-only" (c'est un peu le cas de RoR justement).
- Cette histoire de parsing (je n'utilise jamais $$ dans prototype justement pour éviter ça).
Mais il faudra vraiment que je me penche dessus, même au boulot je vois de plus en plus de partenaires web qui abandonnent prototype/scriptaculous au profit de jQuery. Donc je crois qu'un peu de veille techno spéciale javascript ne me fera pas de mal
Edit : après avoir revisité le site de jQuery, une chose m'a choquée et m'a rappelée pourquoi je ne l'utilisais pas. Où est passé l'orienté objet, ni même dans les plugins d'ailleurs ? Pas de Class.create() ni d'Object.extend() pour les librairies par défaut ? L'esprit Prototype à ce niveau me semble beaucoup plus "propre" et permet de faire de belles librairies avec une homogénéité du code (une convention définie pour créer des classes, et pas chacun sa méthode). Sans doute cet aspect fortement orienté objet rend l'exécution parfois plus lourde, mais ça m'est indispensable.
Du coup je range toujours aujourd'hui jQuery dans la catégorie "librairies à sortir pour de petites bidouilles" mais je n'irai jamais baser une interface riche là-dessus. Sans doute est-ce par contre très bien adapté à nos projets pour lesquels le Javascript est plus utilisé pour de "petits détails" (pour ne pas dire "petites bidouilles") que dans de gros projet de RIA.
On appréciera dans le fait que jQuery se base systématiquement sur des sélecteurs CSS que cela pousse inconsciemment le développeur à passer la première étape d'un JS dégradable : ne pas mêler JS et HTML.
Ressources [PHP][MySQL][prototype.js]