Since the $() shorthand is used throughout the Prototype library and shows up in functions that are likely to be found inside critical inner loops (e.g. the Element methods), it seems unfortunate that Element.extend() is now an unavoidable part of $().
As anecdotal evidence, I have a bit of code that filters a list of messages while the user types keywords into a searchbox. On the first pass, Element.extend() applies itself to every element being filtered and thus multiplies the runing time by a factor of 8 (relative to a version where Element.extend() is not called in $()). That's a critical threshold for the average list size, since the time jumps from about half a second (acceptable) to more than four seconds (makes me sad). Snappiness is lost.
Could we possibly leave $() alone? The invocation of Element.extend needs to be opt-in rather than no-way-out. I might be persuaded otherwise if someone would point me to a thread where the merits of Element.extend are discussed in detail. For the time being, though, my local version of $() will have to live apart from the svn trunk.
Regards,
Ben