As you've seen in several examples in this book, especially the latter chapters, the problem with client-side development is the many different web browsers you have to account for. Be it writing event-driven code or an Ajax application, somewhere down the line you'll run into the incompatibilities between the browsers.
Many professional developers found cross-browser development to be too time-consuming and cumbersome to deal with on a daily basis, so they set out to develop frameworks or libraries to aid in their cross-browser development. Some framework authors released their frameworks to the public, and a few of them gained quite a following, like jQuery, Prototype, and MooTools.
The aim of general frameworks is to balance ...