This does introduce some fairly fundamental changes in the API. Breaking every book ever written about your framework is fairly ballsy.<p>In a lot of ways it's the inevitable conclusion of Rails' trend towards named_scope'ing everything. Chaining everything ends up being pretty flexible, even when you're building up things dynamically (I'm seeing a lot of `.send('the_scope')` in my future). And the lazy-loading should be quite helpful.<p>And the weird side-effect is that you can now write it somewhat as SQL: User.select().from().where(), etc., which conceivably could help those new to the framework.<p>Really, though, I'm still surprised at the rather large change here. At least it seems we have ample time to start the transition before 3.2 (and, as one commenter mentioned, you could start building your own .where() named_scopes today to somewhat ease the transition).