Un framework es solo una aplicación con hooks; puedes diseñar un framework ad hoc empezando con una aplicación que hace una sola cosa e intentando generalizarla en varias direcciones. Puedes parar en cualquier momento y llamarlo "un framework". Pero una buena librería requiere mucho más. Necesitas empezar por los requerimientos, abstracciones y el intento hacer una API mínima que cumpla al máximo con los requerimientos. Los frameworks no tienen el requerimiento de ser mínimos en tamaño sino máximos en cuanto a características.
Díría que es un poco provocador y radical, pero se acerca a la realidad. Últimamente se ha visto un crecimiento en las críticas a los frameworks, como respuesta, supongo, a su proliferación y aumento de popularidad. Una lista de críticas:
- Why I Hate Frameworks, discusión en los foros de joel on software
- Contra los fameworks, que cita al anterior
- Why Frameworks Suck
La misma entrada en BP
