Right after the OpenCF Summit earlier this year, I read a few blog posts in which people mention the topic of "More Apps, Not Frameworks" (or something along those lines). If you haven't heard about it, this is basically the idea that CFML already has enough solid frameworks out there, and we don't need any more. What we need are more free, open source CFML apps that can help spread the use of CFML. Now, I'm not here to argue or debate whether or not we need more frameworks or not, the point of this post is to simply ask one question. If we do start building more and more open source CFML applications, should we use frameworks for those applications?
I've come to like frameworks. Specifically, I like to use Mach-II, and I've dabbled with FW/1 a bit. I see the value in using frameworks, and personally plan on using a framework on my projects whenever I can. But not everyone feels this way. There are people who are dead set against frameworks, and won't have anything to do with them. They've got their reasons and that's fine. I don't have a problem with whether or not someone uses a framework, to each his own, you can do whatever works better for you.
But, I can't help but wonder, would using a framework on an open source application actually serve as a deterrent to the adoption of that application? My initial reaction is "No", but as I think more about it I'm not so sure. Would people who need and want your application decide not to use it because you used a framework and they don't like frameworks, or because you used Framework A and they like Framework B?
Take a CMS for example. Let's say we have a CMS built using Framework A and it's a great application, it can manage content like nobody's business. But Bob the developer doesn't like Framework A, he's a die hard Framework B junkie. So, rather than use the application built on that piece of crap Framework A (Bob's words, not mine) Bob decides to build his own CMS using his beloved Framework B and put it out there as an open source application. Now we have two CMS applications built on two frameworks. That's fine, variety is good. But then we have Bill the developer who hates all frameworks, and decides to write his own CMS rather than use one of the already established CMS applications. Now we have three OS CMS applications. But wait, Framework X is new an hot and generating some buzz, so someone builds a CMS on it. And this pattern goes on and on and on until we have a dozen different CMS applications on a dozen different frameworks.
So in the above example, is there really anything wrong with that? We now have a large selection of CMS applications to choose from, and that's a good thing right? What happens when someone new to CFML gets overwhelmed and asks the community for advice on which one to use? Will they get reviews of the different CMS applications, or a bunch of "I like this one because it uses my favorite framework" or "use this one because it doesn't use a blasted framework" answers? What happens when people find several open source CFML applications that they need, and each application uses a different framework? Now they have to download another framework to go with each app. You could easily wind up managing 4 or 5 applications written on 4 or 5 frameworks.
I guess it really doesn't matter, when it's all said and done you're not going to be able to write an application that everyone likes, no matter what you use. Despite my ramblings above, I say "yes" to the questions of whether or not to use a framework on OS applications. But, I still want to post the question to the community: What is your opinion, should we use frameworks when building open source applications?