La mejor estrategia es no utilizar varias bibliotecas. Es tentador querer arrojar más bibliotecas a un problema, pero es ineficiente, propenso a errores y hace que su código sea más difícil de mantener por otros.
En la mayoría de los casos, debe evitar el uso de múltiples bibliotecas al comprender su dominio problemático y qué biblioteca lo ayudará a resolverlo mejor. También hay una gran cantidad de complementos y extensiones para todas estas bibliotecas.
Por ejemplo, JQuery admite llamadas JSONP entre dominios de forma inmediata y tiene una buena biblioteca de widgets en JQueryUI, Prototype no.
$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });
prototipo tiene muy buen soporte OO y es fácil de recorrer el DOM, pero carece de algunas de las funcionalidades de dominios cruzados necesario para crear widgets y mashups.
var Foo = Class.create({
initialize: function(name) {
this.name = name;
}
});
var Bar = Class.create(Foo, {
initialize: function($super, name) {
$super(name);
}
});
Mootools tiene grandes efectos, un buen apoyo OO, widgets muy sólidos y solicitud de dominios cruzados, pero (y esto podría ser mi impresión), la comunidad de desarrollo no es tan colaborativo y social con la comunidad global (fuera de mootools) como las otras comunidades (el prototipo solía ser así). Esto podría ser el resultado de que su (s) desarrollador (es) principal (es) viva (n) fuera de los EE. UU., Y por lo tanto no pueden asistir a tantas conferencias ni participar en la comunidad en general. Sin embargo, no dejaría que eso te desanime por completo, pero es algo a tener en cuenta.
AFAIK El prototipo no tiene esta característica. jQuery namespaces todo dentro del objeto "jQuery", y Prototype tiene sus funciones diseminadas en docenas de clases personalizadas e integradas, por lo que sería muy difícil hacerlo. –
En cuanto a Yahoo, si recuerdo correctamente, oculta todo dentro de un espacio de nombre llamado "yahoo" o algo así, por lo que no entra en conflicto con nada por defecto. –