The Dopefly Tech Blog

<< The Dopefly Tech Blog Main page

Choosing a framework is a big deal

posted under category: ColdFusion on February 26, 2007 at 1:00 am by MrNate

There's been a fair amount of talk recently about choosing an application framework for your ColdFusion applications. The general consensus seems to be "Just pick one, already. It doesn't matter!" Well, contrary to popular opinion, picking the best framework is something that needs a lot of thought.

Consider this. The average CF developer came from an HTML background. Maybe, just maybe, a little javascript, but mostly HTML. CFML has a familiar feel and the ease-of-use is just off the scales, especially for making your first apps: feedback forms and basic content management.

This basic CFML developer now knows 2 computing languages.

The choice to learn a framework will push the boundaries of their emerging brain cells. A domain specific language (aka DSL, thx Peter Bell for this great term), such as a Mach-II XML config file, will force a 50% jump in the number of programming languages known. It's much easier than their first and second languages, but still, quite a chore.

Fusebox has 2 DSLs, the fusebox.xml file and circuit.xml files. Model-Glue Unity has 3 because it includes an ORM and an IOC object container.

Further, most frameworks encourage (some strongly) object oriented development practices. This alone can be a nightmare to figure out (much less with practical application) ideas like encapsulation, polymorphism and inheritance.

No. For your basic CFML developer, picking a framework is a big deal. Depending on your framework choice, you could be forced to double your programming language knowledge.

I'm not saying don't do it. Not whatsoever. I'm a huge proponent of frameworks. Everyone should have a few under their toolbelt and know when and how to use them. I'm also a huge proponent of learning as many programming languages as possible, which will be a tremendous help, even just for writing CF. I'm just saying, it's not that easy for first-timers.

Too old to comment!
On Feb 26, 2007 at 1:00 AM Brian Rinaldi (brinaldi via said:
It would seem you are referring to my post about overthinking your framework.

First of all, you are creating a false dichotomy here. The alternative to overthinking is not no thinking. Second of all, the XML config file is not a new language (the only weak argument in this case might be for FuseBox and the addition of lexicons). Third, you create a straw horse by somehow implying that I, and those who have agreed with me on this, are implying that you should jump into OO and frameworks lightly.

In fact what I was discussing was the tendency to overthink *which framework* as if this were some life altering decision. Whether you choose Mach II, Model Glue, Fusebox , etc. isn't really going to make the difference - read my post and I think you will see that I actually state that learning OO is indeed the difficult part and the framework itself is pretty basic (regardless of which one you choose).

So, I guess I am saying I don't disagree with your sentiments exactly, but I do disagree with your portrayal of my argument.

On Feb 26, 2007 at 1:00 AM Nathan Strutz ( said:
Yes, your post sparked the latest round of debates. Too many "Me Too" replies make me sick, so I thought I'd be a little controversial, if only for fun.

Overall, I agree, those on the edge shouldn't stall, and everyone should learn the frameworks, the best practices and the methodologies. The more, the merrier. If you're a ColdFusion developer, you should know your field (it's not all that big - not like we're doing .net or java here).

Lately I've been surprised at the number of developers I've met that have no knowledge of CFCs, no desire to use a framework and no drive to forge ahead on the (sometimes) bleeding edge of web application programming. What's wrong here? Is it their fault? Is it ours? I would venture to say both, but mostly neither. Some people just don't have the drive we do. They would rather work 9-5 and not touch the computer over a weekend.

You and I, on the other hand, are pretty hardcore. We spend time on personal projects, contribute code to OSS and connect with the community. I wonder if we're pushing ahead so far that it creates the skills divide - a debate from a few months back.

One last point, XML config files being a language. Read the DSL wikipedia article:
While not necessarily fully-featured application programming languages, these DSLs are really languages that a newbie has to learn, and that can be a frightening concept for some.

On Feb 27, 2007 at 1:00 AM Brian Rinaldi (brinaldi who can't believe it's not said:
No worries. As for the developers you describe, we can help them have the tools to learn things like CFCs, OO and frameworks, but there is nothing we can do about their desire to learn it. This is what distinguishes the good programmer from the bad one to me - it isn't what they know as much as what they want to know.

Lastly, I saw that Wikipedia article when Peter discussed the topic of DSL's and I think it is a stretch to call these languages. Its like saying I own a BMW because BMW owns mini (or more like saying My Chrysler is a Mercedes because Daimler owns the factory).

On Feb 28, 2007 at 1:00 AM Matt Williams (mgw4jc at the ever famous said:
I have to agree with Brian that learning how to manage an XML config file is quite trivial. My mother (a retired English teacher) is into genealogy. I am quite sure I could take the family tree and put it into an XML format, show it to her and she would understand it. Would she have to learn a programming language to do that? No. XML is a way to describe data, not much diffenet from reading the yellow pages.

On the other hand, I would say the OO part is by far more complicated to learn than CF, HTML, or any other acronym for that matter. It is a continual process that you can always question yourself on (I do it daily).

Brian, you're right that we can't change anyone's desire to learn it, but they may come around if for no other reason than fear of being left behind.
Too old to comment!