Too Small For A Framework?
When is an application too small to bother with an application framework? Andy Jarrett poses that question and offers some thoughts
. He was inspired to comment based on a post by Mike Rankin (see Andy's entry for the link) who is leaving Fusebox behind.
Mike criticizes Fusebox for a number of issues which I'll address here but first I'll highlight one sentence of his post:
"All three of the shops had implemented something less or different than the standardized fusebox. FuseDoc was used in only one shop, as were XFAs. None of them were even evaluating fusebox 4 yet."
It never ceases to amaze me how many people say "XYZ didn't work for us" but when you dig into it, you find out that they weren't using XYZ properly. I thought Fusedocs sucked at first but I've used them properly recently and, much to my surprise, they work. I was also resistant to XFAs but those also work. And if you're not using the standardized version of something, you ought to expect problems - standards are there for a reason.
So it's perhaps not surprising that Mike isn't a fan of Fusebox - he hasn't really been using it (it's taken me a couple of years to figure this out too, by the way!).
Now let's move onto his counterclaims about Fusebox benefits:
- Increased productivity - Mike hasn't seen big gains and feels Fusebox inhibits use of some productivity features in Dreamweaver. See his comment about how the development shops he's worked in have been set up - a recipe for failure. As for Dreamweaver, Steve Nelson has an awesome Fusebox Explorer extension for it (and, of course, CFEclipse has Mark Drew's Fusebox plugin too). The productivity benefits come from two main areas: if you use Fusedocs, you can more effectively parallelize the writing of the fuses; maintenance is easier when all your developers know how all your apps are structured (that's why frameworks are worth using).
- Increased code reuse - Mike acknowledges that Fusebox helps but thinks ColdFusion Components make it obsolete because they encourage more reuse. Well, CFCs work very nicely with Fusebox and I'd encourage Fuseboxers to learn to use those two tools together effectively. Using CFCs is no reason to stop using a framework!
- Easier code maintenance - again Mike thinks CFCs make Fusebox obsolete. Let me tell you, your developers will be able to write spaghetti CFCs just as easily as they write spaghetti CFML. In fact, I'm starting to recommend Fuseboxers moving to CFCs look at Tartan as a way of helping them structure their OO model (and use both Fusebox and Tartan together - it's a great combination).
- More productive team development - Mike says all of the development shops he's been in have "All the developers work off of a single development server using CFStudio as their editor." Well, that's just a recipe for disaster whether you're using Fusebox or not! Development shops need to grow up: use localhost development and a shared source code management system (CVS, Subversion); use a shared server for testing integration of parts. Developer Edition is free - use it! CVS and Subversion are free - use them! Stop working in the dark ages!
These are not problems with Fusebox, these are problems with the way the development shops are setup and misconceptions about CFCs being some sort of silver bullet.
He's also had problems using CSS with Fusebox (go read Sandy Clark's articles on accessibility, Fusebox layouts and CSS) and claims - without any substantiation - that "running fusebox in a shared environment can be a problem". Like what?
Finally, he says he'll "probably take a look at Mach-ii (sic), but I've heard that fuseboxers have trouble understanding it." Mach II requires a good grasp of OO which really has nothing to do with whether you're a Fuseboxer or not. Lots of people have trouble understanding Mach II and there's not really a huge amount of documentation around for it. The real issue here is more that the problems Mike cites for moving away from Fusebox will bite him even more in a Mach II environment. Swapping a metric wrench for an imperial wrench won't help one bit if no one knows how to use a wrench in the first place!
Tags: coldfusion · fusebox