Recently there was some discussion about the CAB during which I think we found the core difference between the CAB approach vs. some of the OSS tools that were brought up in the discussion (sorry, I can't recall who first brought up this observation).
Frameworks has a much higher adoption cost associated with them vs. services. Services are more easily compassable and replaceable. The general option is that services == Often Good, Frameworks == Sometimes Good. Feel free to shift the scales every which way you want, obviously I am leaning toward the services over frameworks, but others has different approaches.
So, given this, how do you explain the success of Ruby on Rails? Isn't it a big framework?
Well, I don't see RoR as a framework, it is a Framework Skeleton, and filling this skeleton there is a set of independent services that can be used to build your application. This approach means that you can:
- Replace the services with your own implementations
- Use the services outside the framework
This means that if you really liked the logging component in the framework, you can pull it out very easily and start using it, without having to drag the rest of the framework in.