At first, YUI may seem rather big and confusing. Everything in it is namespaced, for example YAHOO.util.Dom, YAHOO.widgets and so on, which may initially confuse especially beginning developers.
However, YUI has excellent documentation and a lot of samples, and after you spend a little time getting used to it, it’s a great library.
YUI’s strong points are encapsulation, modularity and extensibility, not to mention the fact that it has a lot of very good features, such as the RichEdit widget.
All of its classes are encapsulated in the YAHOO namespace, therefore making it very easy to use it with other libraries. This is something other JS libraries need to take heed of!
The classes of the Yahoo UI library are also easily extendable to provide custom functionality.
The only big drawback of using YUI is that you won’t get much “ready to use” functionality. For example, you will not get various ready-made animations or drag and drop functionality like you would get with libraries like Scriptaculous.
YUI is a bit like a good toolbox – it provides you with all the hammers, screwdrivers and other things you need to build your scripts. It also has a few ready components like the RichEdit box, DataTable and TreeView components. The top notch documentation, samples and webcasts help with the process of learning the ins and outs of the library.
If you don’t mind having to write concrete implementations of things yourself, YUI is a very good and well programmed library to base your JS code on.