Dans l'enfer des librairies...
Je bosse sur l'un des plus gros projets de ma boîte, mais aussi un des plus vieux. Pour résumer, un petit projet de base qui s'est gonflé de fonctionnalités au fil des ans et des demandes du client, pour devenir un béhémoth. Je ne jette pas la pierre à mon collègue codeur de l'époque, car ce n'était pas son cœur de métier (il est surtout graphiste) et qu'il était seul à l'époque, ni l'évolution ultérieure puisqu'il n'a jamais été prévu que le projet évolue ainsi*
Au fil du code, la librairie jQuery 1.5 fut utilisé, intégré, et des libs supplémentaires se basant sur celle-ci furent ajouter pour des éléments essentiels à l'application.
Puis, par la suite, il fallut de nouvelles libs pour des fonctions plus avancés, mais entre-temps ces nouvelles libs exigeaient un jQuery récent (pour faire court, dans jQuery il y eu un "avant 1.9" et un "après 1.9"... tout en comptant qu'on a à la fois aujourd'hui des 1.9+ et des 2.X...bref).
Ce qu'il y a de
bordélique magique avec jQuery, c'est qu'on peut insérer deux versions différentes à la suite. Les fonctions de la première insérée seront appelées sous la forme de $.function() (forme classique) et de la seconde sous la forme jQuery.function()
Maintenant le bordel est que selon les pages, les libs utilisées et la version jQuery nécessaire, on peut se retrouver à avoir des $.mafunction() d'un côté, mais jQuery.mafunction() de l'autre, il s'agit de jongler.
Et régulièrement de se prendre la tête parce qu'une fonction est appelé avec le mauvais sigle $ ou jQuery, selon l'ordre ou le nombre de libs jQuery appelées dans la page.
tl;dr Jongler avec deux namespaces pour les deux versions d'une même librairies, avec lesdits namespaces ayant des appellations sous certaines conditions, webcoding is fun !
* Dans le même genre, on leur a conçu une très grosse appli pour un autre projet, et le déroulement a été similaire (mais au moins la base était moderne : je l'ai conçu

) : des évolutions constantes rajoutées au fur et à mesure. Tellement qu'au bout d'un moment ils nous ont lancé sur un plus gros projets encore : une v2 de zéro de ladite appli, avec toutes les nouvelles fonctionnalités qu'ils souhaitaient. Nous n'avions pas fait 30% du projet qu'ils ont commencé par demander de nouvelles fonctionnalités sur la v1, c'était nécessaire de suite, ça ne pouvait pas attendre la v2. Puis d'autres, et d'autres encore. Au début on s'est inquiété à se dire que toutes ces nouveautés seraient à ajouter à la v2 au final... mais conclusion : non. Aujourd'hui on travaille toujours à faire évoluer la v1, la v2 a été annulée (officiellement suspendue depuis presque 2 ans), et une part importante du budget de ce qui avait déjà été développé n'a jamais été payé.