I find it interesting that some web applications have matured to the point that they basically become frameworks in and of themselves. Take WordPress as an example. Originally written as a blogging tool, it has evolved into a framework of its own through its various hooks and actions that, if you were feeling adventurous, allow you to do pretty much whatever you want, from creating new tables to creating entirely new functionality.
Playing with a system that’s evolved into a framework is very different to playing with a system that was written as a framework first and foremost. I’ve been developing a plugin for vanillaforums to allow classified listings on a forum site, and it’s interesting to look at the architecture. On some levels, vanillaforums feels over-complicated for just a forum. But then you look a bit deeper and find a whole MVC framework coded up, with the forum module essentially just an application written on top of the framework. I do wonder sometimes why someone would go to the trouble of re-inventing their own framework when there are so many available ones out there. But I can, at the same time appreciate the desire to create a framework that follows your own opinions rather than falling in line with someone else’s.
I wonder at what point we could consider an application to be a framework? Because any well designed system is or should be easy to extend. I think what makes an application into a framework is documentation. Good documentation that allows moderately skilled developers to jump in and be productive immediately turns a simple app into a framework in it’s own right. That and a .org domain name 🙂