An Architect's View

ColdFusion, Software Design, Frameworks and more...

An Architect's View

Duelling Frameworks?

September 28, 2006 · 8 Comments

After Peter Bell stirred the pot, Peter Farrel wrote a fairly explosive post (repeating a lot of what he said on the cfweekly, episode ?) and it spurred Joe Rinehart to respond with an impassioned blog post defending the design choices made in the development of Model-Glue: Unity. As someone who has contributed extensively to Mach II, Model-Glue, Fusebox, ColdSpring and Reactor (phew!), I would like to step up and defend Joe's decisions - he's done a sterling job, sticking to his vision for the framework and has been very clear about what should be in the framework and what should not. As a framework developer myself, I can tell you it's a rocky road. The "community" deluge you with requests for all sorts of features and you have to stand firm and defend your vision. None of the popular frameworks are "kitchen sink" efforts - there are countless feature requests that have been denied by the framework authors. I've requested enhancements to all these frameworks. Some of those requests have been implemented but most have been denied. Even as lead developer on one of the Mach II releases, some of my suggested enhancements were turned down (and some of the changed Peter implemented in Mach II were reverted as inappropriate for the framework). When I built Fusebox 5, I was deliberately very conservative about what went into the framework and what didn't. I implemented a few things the community really wanted that I didn't think were great ideas but I also did not implement several things that I thought were great ideas that the community weren't very interested in. Fusebox 5.1 will be a fairly conservative enhancement release. Fusebox 6 has more scope for adding features but, even so, backward compatibility will be maintained and the addition of features will be strictly controlled but community-driven. I don't know how community-driven Mach II is. I don't think it has a public bug tracker (Model-Glue, Fusebox, ColdSpring and Reactor all do). I get the impression that Application.cfc support was added for coolness (the other frameworks have taken great pains to remain compatible with CFMX 6.1 and equivalent competing ColdFusion engines).

Tags: coldfusion · coldspring · fusebox · machii · modelglue · orm

8 responses so far ↓

  • 1 Matt Woodward // Sep 29, 2006 at 3:19 AM

    Sean, Application.cfc was not added "for coolness," it was added so developers can take advantage of the functionality of Application.cfc in the context of Mach-II. Not sure why you'd see that as a gimick.

    Additionally, Mach-II is absolutely compatible with CF 6.1 because using Application.cfc is a choice on the part of the developer. If you're on CF 7 you can use it; if you're on 6.1 you would continue to use Application.cfm.

    As for the community-driven aspects of Mach-II, we're moving in that direction. The code is already in SVN and when we rework the web site we're going to make Trac available to the community (at least that's the plan at this point).
  • 2 Kurt Wiersma // Sep 29, 2006 at 7:57 AM

    I read Peter F's blog and didn't really see it as saying anything negative about MG:U. I think his point was that you have to be careful about your dependencies when choosing a framework and that extensibilty is something to consider. He said he believes that you want something that is flexible and pluggable vs something which is not. I don't he believes that MG:U isn't pluggable but his point is you don't have to use all of those framework together. Finally my belief is evaluate the frameworks and choose the best one for you, something that Matt and Peter have said on their podcast. I think they have been very good about not saying M2 or MG:U is the only way to go.
  • 3 Jeff Self // Sep 29, 2006 at 8:54 AM

    I've only been developing in Coldfusion since February of this year. After writing two applications using nothing more than the ColdFusion MX7 WACK book at my side, I've decided there's got too be a better way. So I've started looking at frameworks, especially Model-Glue:Unity. Some have argued that you should become almost an expert before you should use a Framework. I say baloney. I don't have time to become an expert. If I can use a framework to shorten the time it takes to write an application, then I'm going to use one. I don't care to know about the nuts and bolts in Reactor or ColdSpring. My company isn't paying me to become a ColdFusion expert. It's paying me to write applications in ColdFusion. I'm going to trust those that have written the frameworks. You guys know a lot more than me. I'll put my trust in your code over my code for the time being. Thats for sure.

    I am looking forward to writing a real application in Model-Glue:Unity in the near future. I'm sure there will be times where I say "huh?" or "what the ...?". But I believe in the end, the framework will allow me to concentrate a lot more on the business problem rather than a ColdFusion problem.
  • 4 Sami Hoda // Sep 29, 2006 at 12:37 PM

    Sean,

    I can speak to App.cfc support in M2 mostly. It was added as a real need in my company. (You'll see that in the comments for that file.)

    Peter has been real good at listening to advice, and there is a small group that do email back and forth on suggestions for next versions.

    And I think the next version of the M2 site will make it much more "open."

    Sami
  • 5 Peter J. Farrell // Oct 1, 2006 at 9:48 AM

    Sean, I remember reading a while back that you, Ben, and Hal were working on app.cfc support for M2. I found this post on the old email list:

    houseoffusion [dot] com /groups/CF-Talk/thread.cfm/threadid:38178#193547

    Were you opposed to it then? Do you think our current implementation isn't benifical to developers?
  • 6 Sean Corfield // Oct 1, 2006 at 5:06 PM

    Peter, that was discussion around a 2.0 version (as the HoF post notes) and as the discussion unfolded, compatibility across a broader range of ColdFusion platforms was ultimately considered more important (than adding even optional features that were version specific).
  • 7 Sean Corfield // Oct 1, 2006 at 5:07 PM

    And just to be clear, we were never "working on app.cfc support", we were just discussing whether incorporating such support made sense - and the decision was that it did not make sense.
  • 8 SiamesePurr771 // Oct 4, 2006 at 11:47 AM

    The same four or five geeks trading blog comments isn't really as exciting as you make it sound. These are the same bunch of guys who go to developer conferences and sit around talking about code!

    -Purr

Leave a Comment

Leave this field empty: