Voici les trois paradigmes de JavaScript :
- C'est un langage orienté prototype
- C'est un langage impératif
- C'est un langage fonctionnel
Dire que deux de ces paradigmes ne sont pas homogènes entre eux n'a aucun sens.
Quand à dire que JQuery brise ou modifie l'homogénéité d'un des ces paradigme par rapport à un autre, ça n'a pas beaucoup plus de sens.
Quand j'ai utilisé ce terme, je voulais dire que votre conception du développement (votre vision du développement - votre paradigme), qui semble être, «*à chaque problème prenons le temps de choisir la solution la plus adaptée*», n'a pas de réalité économique. Elle est peut être très jolie telle qu'énoncée, mais dans la pratique, très peu de sociétés vont perdre ce temps. Généralement, ce sont des sociétés qui ont un département R&D qui se permettent ce luxe. Entre autre, parce qu'il faut au moins avoir une personne connaissant chacune de ces technologies, et d'autre part, parce que développer un prototype avec chaque librairie, pour ensuite comparer les résultats, demande du temps et coûte de l'argent. Sans même parler d'avoir ou pas en interne les ressources formées aux technologies visées.
Quant à mettre en rapport «*l'homogénéité des paradigmes*» d'un langage et l'ergonomie d'une application, je nage en plein surréalisme. Je ne vois pas en quoi l'un influe sur l'autre.
Je veux bien discuter, mais ne faites pas des phrases qui n'ont aucun sens.
Le développeur va se tourner vers les technologies qu'il connaît, tout simplement par se que son patron ne va pas lui accorder de jours de travail pour se former à une autre technologie, sauf si elle est imposée par le client. Si votre réponse c'est de me dire, «*le développeur n'a qu'à passer son temps libre pour se former à ce qu'il ne connaît pas*», vous oubliez sûrement que la vie de famille ne permet pas non plus ce luxe, ou que les loisirs ne consistent pas, pour tout le monde, à compulser des documents techniques. Et comment voulez-vous que les développeurs connaissent l'ensemble des librairies/frameworks JavaScript*? Rien que sur cette page, il y en a autant que de lettres dans l'alphabet : http://en.wikipedia.org/wiki/Compari...ipt_frameworks.
Vous pensez que le monde fonctionne comme vous. Et dans un sens, je vous rejoins, si tous les développeurs avaient le temps de faire de la veille technologique, voire de s'autoformer aux nouvelles technologies qui pointent au coin du web, alors, dans ce monde merveilleux, on ferait plein d'applications, bien fabriquées, qui auraient pu être réfléchies, testées, éprouvées, et même voire sans erreurs. Mais la réalité, c'est que très peu de gens dans l'industrie logicielle peuvent avoir ce luxe. Demander que tous les développeurs connaissent tout même de la technologie principale qu'ils utilisent au quotidien, c'est irréaliste.
Lorsqu'un événement est déclenché par une action utilisateur sur un bouton et que l'action qui s'en suit, par exemple, c'est imprimer «*bonjour*» dans un champ de texte, par exemple, le code qui est associé au bouton doit retrouver le champ de texte pour y imprimer «*bonjour*». Bien que ce soit vous qui ayez fabriquer le champ texte plus tôt dans l'application, vous êtes obliger de le retrouver (ou de le nommer) pour écrire le code du bouton, si vous voulez qu'il puisse écrire dedans. Et une application JavaScript, ce n'est principalement que ça. Des réactions aux interactions de l'utilisateur (des événements) qui permettent aux composants du DOM de se retrouver mutuellement et de s'échanger de l'information pour modifier leur états, visuels ou pas. Voilà à mon sens, «*Pourquoi devoir chercher ce qu'on a créer*».
Je prend cet exemple, uniquement dans le cas de ces librairies. Pour des frameworks plus évolués, où l'on peut manipuler les éléments de l'application en terme plus abstrait, on peut s'abstenir de cette tache, le champs texte serait peut être conservé en tant que propriété d'un autre objet, auquel le bouton ferait sa demande. Mais dans la réalité, les frameworks, supportant le MVC, par exemple, commencent à peine à émerger et sont anecdotiques en terme d'exploitation. Comme aujourd'hui, beaucoup d'applications sont fabriquées avec JQuery, il y a une demande forte pour cette technologie.
la réponse est simple parce qu'on utilise une techno faite pour enrichir des site Web. lorsque je crée un élément du DOM, le n'ai pas besoin de le chercher je viens de le créer je n'ai qu'à le manipuler. JQuery est plutôt très mal foutu pour produire un DOM. en fait il ne crée pas un DOM il délègue ça au moteur HTML plutôt que d'utiliser l'accès au DOM de javascript.
Heureusement que JQuery délègue une partie de la création au moteur JavaScript, sinon votre code serait truffé de
si (moteurJavaScript1) alors FaireAvecLaMethodeOuSyntaxeMoteur1
sinon si (moteurJavaScript2) alors FaireAvecLaMethodeOuSyntaxeMoteur2
sinon si (moteurJavaScript3) alors FaireAvecLaMethodeOuSyntaxeMoteur3
etc.
Ça, c'est un plat de spaghettis mal cuits, mais sans la sauce bolognaise, une mélasse.
Heureusement que JQuery nous abstrait de ce genre de problèmes, c'est une de ses fonctions.
Plus bas vous dites que vous utilisez une sorte de framework propriétaire, qui doit probablement faire la même chose que JQuery, c'est-à-dire encapsuler toutes ces spécificités dans des fonctions / méthodes, qui vous masquent ces implémentations fastidieuses. Vous reprochez à JQuery ce que votre framework fait aussi pour vous il me semble. Ce n'est pas très clair.
De quoi parlez-vous*? La référence à une instance de prototype JQuery peut être aussi stockée dans une variable pour être utilisé (référencé) plus tard. Vous opposez trop JavaScript «*pur*» à JQuery. Quand on fait une application avec JQuery, on fait forcément aussi du JavaScript. Qu'il soit «*pur*» ou pas, ça n'a aucune importance.
Votre opposition JavaScript «*pur*» / librairie me rappelle une discussion d'un autre temps, à laquelle j'ai assisté, où des types s'opposaient entre application assembleur «*pur*» et C. Le côté «*pur*» semble avoir un attrait pour certains et devenir comme une balise / une norme qui offriraient les meilleures solutions. Après, on adhère ou on n'adhère pas. C'est pour l'anecdote.
Je vais revenir à la question initiale «*Peut-on se passer de JQuery*?*»
Je ne comprend pas où vous voulez en venir. Vous ne dites jamais la même chose. Au départ, vous me disiez, que pour faire une bonne application, il faut utiliser la librairie qui est le mieux adaptée aux problématiques de l'application, pour ensuite vanter les mérites de ExtJS puis de YUI, en particulier, pour enfin nous dire que vous vous semblez travailler avec un framework propriétaire.
La réponse que vous proposez à cette question, «*Peut-on se passer de JQuery*?*», c'est d'utiliser soit deux librairies qui sont utilisées de manière anecdotiques dans l'industrie logicielle, soit d'utiliser un framework, qui appartient à votre société, et qui est donc propriétaire, voire inaccessible*?
D'autre part, si on dit se passer de JQuery, alors on dit aussi que toutes les applications qui sont déjà en exploitation vont devoir migrer vers une autre solution, avant que JQuery devienne totalement obsolète. Où trouver suffisamment de développeurs pour migrer dans des solutions qui ne sont encore que trop peu utilisées aujourd'hui*?
Enfin, vous dites, qu'il ne faut pas se contenter d'une solution unique, mais vous vous semblez, vous aussi n'en utiliser qu'une seule, votre solution propriétaire.
Que vous fassiez du haut niveau, on ne peut être que content pour vous, puisqu'à ça à l'air d'être important pour vous. Par contre, si la réponse à «*Peut-on*» c'est «*Moi, je*», alors je trouve ça un peu court comme réponse. Et encore, c'est plutôt, si on vous suit bien, «*les autres doivent utiliser ExtJS et YUI, et d'autres framework à peine émergents, moi je continue avec mon framework propriétaire*».
Ma réponse c'était de dire, dans l'état actuel de l'industrie où JQuery est majoritairement utilisé, se passer de JQuery n'est pas envisageable. Maintenant, JQuery n’est pas le summum de ce qui peut se faire en terme de support de développement. D'ailleurs commencent à émerger de vrais frameworks MVC comme Angular et des environnements événementiels et server-side comme Node.js. Mais tant qu'il n'auront pas été suffisamment éprouvés, ils ne peuvent pas remplacer JQuery, et ses consoeurs, dans l'industrie. Faire migrer les applications déjà en exploitation et former une grande partie des développeurs à d'autres technologies et de nouveaux paradigmes, comme le fait que JavaScript devienne un langage serveur, prend du temps.
Peut-on se passer de JQuery*? Probablement, mais ce n'est pas pour demain. Malgré toutes ses qualités et sa richesse, il est loin d'offrir le mieux de ce qui se fait en développement moderne. Mais dans l'état actuel, il n'est pas possible de dire on va se passer de JQuery, parce qu'aucune autre alternative industrielle ne s'est suffisamment imposée pour la remplacer.
Le reste, c'est encore des histoires de 90%, voire de certitudes au niveau 5 sigma, je ne commente plus.