For me it's all down to philosophy. Prototype adds a bunch of global variables and extends loads of built-in ojbects. That's fine, unless you ever want to include code that has a different idea about how any of those extensionss should work (like mooTools, which I also avoid on philosophical grounds). jQuery adds just one global variable (called jQuery) along with a revertible alias (the $ symbol). That pretty much guarantees jQuery will work flawlessly with any other code.