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 by Nathan

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.

Nathan is a software developer at The Boeing Company in Charleston, SC. He is essentially a big programming nerd. Really, you could say that makes him a nerd among nerds. Aside from making software for the web, he plays with tech toys and likes to think about programming's big picture while speaking at conferences and generally impressing people with massive nerdiness and straight-faced sarcastic humor. Nathan got his programming start writing batch files in DOS. It should go without saying, but these thought and opinions have nothing to do with Boeing in any way.
This blog is also available as an RSS 2.0 feed. Click your heels together and click here to contact Nathan.