Hi, > Maybe the reason you have 4000 lines of javascript is that you're not using > chaining. > > Why would you pick a library, then decide NOT to use one of it's biggest > strengths?
First of all, I started developing my library when I started using the ExtJS library. The purpose was to create a Façade between my applications and the ExtJS code. A Façade pattern can be useful when interfacing with code that belongs to somebody else, as it allows for some standardization of the interface which can come in handy sooner or later, and in my case it was both. Sooner because I kept the redundancy down as I used some of the ExtJS code in different applications under my control, and later when I decided to move out of ExtJS, as my applications depended only on this Façade I had created. Thus, as long as I could find and/or create an alternative to some of the ExtJS controls, I could remove the dependency on ExtJS with certain ease. In the process of leaving ExtJS, I gave YUI a try, which made me create some of other abstractions as YUI didn't provide them, while ExtJS did. It was then that I created a basic "DOM Helper" and "Element" classes/methods, and when I finally decided to give jQuery a shot as I wasn't too happy with YUI, I already had much of the code I needed in place. :-) Of course, ExtJS is a rich library, and I only used some of its components, like its data grid, combobox, toolbar, dialog window... When I came to jQuery, I finished implementing my own versions of such controls, which gave birth to my own widgets library, which comprises wrappers for Button, TextField, TextArea, Select, Image, Label, Dialog window, Packer (layout management), support for dragging and resizing of Packer, Data Grid, DataSet, and so on... Also, I have a Web framework of my own which has helped me with developing my client-size JavaScript library. I mean, if I could find value in adopting jQuery chaining, I certainly would, but so far it has not been needed. Much of my JavaScript and DOM is dynamically generated, which has allowed me to clean up some of my server-side code as well, and now with Ajax I even have some kind of "Ajax services" which I find handy. :-) Cheers, Joao