March 15, 2006 — originally posted on artima.com
Neil Schemenauer made me see an interesting difference between frameworks and libraries. These are my words but it's really his idea:
A framework is just an application with a lot of hooks; you can design a framework in an entirely ad-hoc fashion by starting with an app that does one thing and trying to generalize in various directions. You can stop at almost any moment and call it "a framework". But a good library requires much more -- there, you need to start with requirements, abstractions and attempt at a minimal API that addresses the maximal set of requirements. Frameworks have no requirement to be minimal in size while maximal in features.