Why do you use CFCs?
Derek Perez has a bit of a dilemma, and its one I am rather familiar with. His problem is that he likes to use CFCs, and has been using them for quite a while now. Actually, that's not really the problem. Really, his dilemma is trying to convince other experienced ColdFusion developers that they are not simply an over-complicated alternative to things such as custom tags and includes, and actually present any opportunities not really visible when using these more primitive forms of encapsulation. Things work just fine the way they are, so why ruin a good thing, right?
I have also been faced with this very problem in the past, and it can be incredibly frustrating. Generally, there can be all sorts of reasons not to use any new functionality, but usually there is one you can always rely on to deliver: "It ain't broke, so why fix it?"
But I digress.
When entering these sorts of discussions, I want to talk about things like encapsulation, extensibility, polymorphism, inheritance, and separation of concerns. You know, object oriented programming, concepts that many other modern languages have seemed to embrace with relish. However, while I hold these values close to my little programmer's heart, it is not the same for the others who have not acquainted them selves with OOP. These words do not hold the same (if any) meaning to them, and simply make the whole endeavor seem like a lot of work for nothing but something that sounds bloated and academic.
I know this happens quite a bit, and many times everyone just agrees to disagree and move on without ever really resolving it. However, I also know a lot of people have also been able to bridge this great divide and moved their development team forward into the modern age.
If you use CFCs as a matter of course, do you know why you use them? Can you articulate those reasons?
Go give Derek a hand.
