In my previous post on porting one of my Fusebox applications over to ColdBox, one of my readers asked the question in the comments:
Curious as to why you are porting from Fusebox to Coldbox? What about Coldbox do you like more than Fusebox if anything?”
I actually started replying to his question in the comments and then I realized I had about 3 paragraphs in my reply already and this might get buried in the comments. So I decided to make it a post to explain my reasons for choosing to use ColdBox over Fusebox for this application and most all of my new applications.First, some history. I have been around Fusebox a LONG time. I remember when the very first Fusebox mailing list was created on Topica. I remember the discussions on Fusebox 2 in development. I remember Alaska Alan (what ever happed to you Alan?) and for Gods sake, I remember STAN COX! Fusebox has always been my framework of choice. Developing Fusebox apps just always felt “right” to me. It just fit my development style and made me a better programmer for using it. It was like an old Baseball glove, it was good ‘n’ broke in, it fit good and did exactly what I needed it too.
Along the way, I have used Model-Glue, Mach-ii and a few other not so well known frameworks (remember CFObject?) in some form or fashion and I always kept coming back to Fusebox. It just “fit”.
Now jump forward 8+ years and I have found myself complaining about Fusebox more and more. Not that Fusebox isnt a great framework, it really is great. It’s just that it doesnt seem to “fit” me anymore. The XML controllers, no matter how many of them I write, are just bugging the hell out of me. They seem to convolute things. XML is great for configuration but not to control your application flow! Thats just my opinion BTW, lots of people have no problem with or actually like the XML controllers.
So that being the case, I started evaluating the “big” frameworks by writing small applications in each one. Actually writing the same exact application in each one just to see which seemed to fit me better. After coding that application in 4 different frameworks, Fusebox included, one of them stood out above the others to me. ColdBox.
Looking back on it now after porting this application over to Fusebox, I think I know now why it stood out over the others so much. Coming from a background in Fusebox for so long, Model-Glue and Mach-ii were quite different than what I was used to. There were several things about both of them that I really liked but the “style” used to develop applications was very different than what I had become accustomed too. When it came to ColdBox, it wasn’t much different than Fusebox. Everything in ColdBox just seemed familiar to me almost right away. It just felt more comfortable to me than the others. I even made the comment to someone once that it was everything that I wished Fusebox would’ve evolved into. I know with the new release of 5.5 for Fusebox, the XML controllers can be replaced by CFC based controllers like ColdBox uses and the differences between the two will become even less. But as of now, Im sold on ColdBox. The documentation is second to none! And it supports all of the features that I need for my applications.
So Im not so sure that really answered the question with any specifics but at least maybe I shed a little light on how I made my decision.
Please don’t read too far into this post and take it as a bashing of any framework. Thats not what Im trying to say here. Out of the 4 big frameworks that I have used lately, I found things that I like about all of them. Every one of them has its place in the ColdFusion community. I for one am glad that we have the options available to us to choose what we like to use and what fits our development styles the best. In my opinion the choice of framework is a personal one. You should choose what works for _you_ the best.
Most of all, just pick one, and for Heaven’s sake, have fun with it! When you stop having fun, it becomes work! After-all, “ColdFuzian Rocks the Rockin’ Horse House Baby!!!”