Before getting any deeper into SOOJS I want to clear something up just a bit here. I will make it quick, but it needs to be said.
SOOJS is a pattern. And that is intentional.
I set out to define SOOJS as a pattern for very specific reasons, perhaps the exact same ones you are here for. A pattern is my teaching you how to fish. A library (a good one like jQuery) is non-impactful and can make you anywhere from more efficient to look like a genius to the boss. A full-blown framework is something like strapping an exoskeleton on your body and going out for a run — you may be fast, but you also need to understand the parameters of the suit; like how to make the dang thing stop!
Now, don’t get me wrong, I love libraries and frameworks. I’ve written both and used many. In fact, I find jQuery to be indespensible. John Resig is a genius and truly gets the “do no harm” mantra. And the whole jQuery community has taken it to heart. I think I’d hate my job without that library.
But SOOJS was not trying to write anything for you. My intention here is to give you solid concepts and a reasonable starting point to use them. I would fully expect that every implementation of SOOJS would be quite unique. And when that happens I know I have done my job.
I do not want to tell you what to do, how to do it, nor what is the best way. You are far better at knowing that than I could ever be. But whether you’re a cave-coder or on a large distributed team you need to agree upon a few standards and stick to them.
That’s why we’re all here. Now, let’s get down to business already!