0

Odd lingering perception - Mach-II is the 'hard' framework. Really?

ColdFusion

I can't even count the times that I have been in discussions, presentations, BOFs, etc, and heard the following when describing the big 3 ColdFusion frameworks, Fusebox, Model Glue, and Mach-II.

"Fusebox is the easiest to learn as you don't have to know OO programming. Model Glue is the next easiest one to grasp. Mach-II is the hardest."

Really? Inevitably this seems to usually be spoken by someone who hasn't actually used all three very regularly, but is passing along information that they had gleaned from other conversations.

To be clear, I have not used Fusebox since FB3, so I can't state how it compares to the other two other than what I have heard in passing conversations. However, I can't imagine that understanding OO concepts would not be strongly beneficial in using it! So putting Fusebox aside, when it comes to the differences between Model Glue and Mach-II, I can't see how anyone could really state that there is any difference in the learning curve.

Recently I built a simple application in Model Glue Unity so I could get a feel of some of the work that Joe has been doing in the framework, and mostly so I could speak at least half intelligently when drawn into discussions about it. It is certainly a comfortable framework to use, and has a very similar feel (as it should being an MVC framework) to using Mach-II. It uses the same type of event model, passing an event object in which variables can be set throughout the life of the event, events can announce other events.  Although wired slightly differently it has the same concepts of listeners that act of specific actions in the event and so on.

Now, I realize that the differences are greater as you dig deeper into development, but when it comes to initial learning curve, I can't even name one thing that is necessarily harder or easier when comparing the two, nor can I see how a developer of a particular skill level would be better suited to one framework over the other.

If you are one of those that claims that Model Glue is easier to learn than Mach-II, I would be interested in hearing why you believe that.

tags:
ColdFusion
Jim Priest said:
 
I recently completed my first Mach-II application - previous apps were spaghetti code or more lately Fusebox. I think the learning curve was larger on Mach-II due to the OO aspect - but I wouldn't say it was harder... just different.

The little I've looked at ModelGlue - as you mentioned - it looks very similar to Mach-II and I think the only learning curve there would be if I wanted to leverage some of the additional frameworks it supports like Transfer and Coldspring - but I'll probably try implementing those with my next Mach-II application as well.

 
posted 738 days ago
Add Comment Reply to: this comment OR this thread
 
 
Jim, keep in mind that some of your work is already done for you. When you download ColdSpring, you will see that it comes with a Mach-II plugin. Within a couple of minutes you can have a ColdSpring "beanFactory" property as part of your Mach-II app. Don't reinvent the wheel! :)
 
posted 738 days ago
Add Comment Reply to: this comment OR this thread
 
Jim Priest said:
 
Yep - I'm aware of that - and looking forward to it! :)

But I think a lot of people maybe try to use too many of these things at once and end up with a huge learning curve and then declare it's 'too hard'.

For my first Mach-II application I purposely didn't use any of the additional frameworks like Reactor and ColdSpring because I wanted to understand what exactly was going on 'under the hood'. I learned a lot and for my next application I'll evaluate using one of those additional technologies and take another baby step...
 
posted 738 days ago
Add Comment Reply to: this comment OR this thread
 
brian said:
 
I would say that the perception comes from the pre MG:Unity days when ModelGlue was a different animal than it is now.

Back in 2005 I tried Mach-II and found it to be more difficult than I anticipated so I tried MG1 and found it to be much easier to learn at the time. Since then I have learned MG:Unity and also gone back to try out Mach-II. I believe MG:Unity and Mach-II have a lot more in common now than they did in the earlier days of MG.

The docs were different at the time too. I think the MG1 quickstart was a huge boost to my learning MG at the time.
 
posted 738 days ago
Add Comment Reply to: this comment OR this thread
 
 
I think you may have hit it on the head. Joe does a really great job with documentation/instruction and the quickstart that he includes with MG:U (and apparently with MG:1) makes it easy to get started out of the gate. Good point Brian.
 
posted 738 days ago
Add Comment Reply to: this comment OR this thread
 
Rob Brooks-Bilson said:
 
Hi Dave,

I'd agree with Brian RE the documentation. We've been a Mach-II shop for a number of years now, but when I first took a look at MG, mt first reaction was that the quick start guide made it a lot easier to pick up and run with than the Mach-II documentation set at the time.

The number one complaint I've heard from other developers in the past was lack of documentation on the Mach-II side. It's good to see that being addressed.
 
posted 737 days ago
Add Comment Reply to: this comment OR this thread
 
Brian Rinaldi said:
 
I think Brian has a point, but I also think this perception lingers in part because Mach II was the first OO framework out there. At the time, people, myself included, thought it was really difficult because they didn't understand OO in CF. I think some people have not necessarily revisited it now that they have a better grasp of OO and realized it was not as difficult as it once seemed.
 
posted 733 days ago
Add Comment Reply to: this comment OR this thread
 
Sean Corfield said:
 
Once you've learned either Model-Glue or Mach II, it certainly makes it easier to pick up the other framework. The real question is which framework is easier to pick up for newbies.

If you can put yourself in the mind of a newbie, there are several things that are inherently more complex about Mach II: three ways to wire in code (listeners, plugins, filters), the event queue and why announcing an event doesn't cause it to get executed immediately (or it may not be executed at all). And then there's the whole style of the documentation: Mach II was designed and developed - and documented - by Java developers in the early days (Ben Edwards mostly, myself to some extent).

By contrast, Model-Glue has one way to wire in code (controllers), messages are broadcast and they cause immediate execution of listener methods, results cause immediate execution of event handlers (i.e., immediately at the end of the current handler). The whole thing was designed, developed and documented by a CF developer.

Once you grok the concepts - event-based, implicit invocation, MVC - they start to look much more similar.
 
posted 730 days ago
Add Comment Reply to: this comment OR this thread
 

Search