Kay lives here

working with the web

ColdFusion_iconimage.png

Mach-ii vs Fusebox 4

OLYMPUS DIGITAL CAMERA

Over on the CFAussie list, Jason Sheedy asked this ques­tion. In his post he said:

I find myself ask­ing, ‘why OO in a web envi­ron­ment’ and ‘how often do you
really need to re-use code blocks’?

I started writ­ing a reply with my take on this issue but it started to turn into a bit of an essay so I decided to post it here instead.

This is actu­ally some­thing we dis­cussed at the last CFUGWA meet­ing. I also find myself ask­ing “why OO in a web envi­ron­ment” but for dif­fer­ent rea­sons. I do find myself reusing code blocks a lot. But code reuse is pos­si­ble with Fuse­box 3 and 4 too, and there are other fac­tors to weigh in too.

For ref­er­ence, here’s a run­down of the envi­ron­ment I’m talk­ing about: small scale web devel­op­ment shop — shop­ping carts, sim­ple custom-requirements con­tent man­age­ment, mem­ber­ship sys­tems, sub­scrip­tion sys­tems, online pay­ments. A lot of sta­tic web sites, too, or sta­tic web sites with a very small dynamic por­tion. Any­thing that is generic we develop in PHP — mostly because the host­ing is cheap and plen­ti­ful. Any­thing that has slightly off­beat require­ments, needs any sig­nif­i­cant amount of cus­tom code writ­ten, or has to inter­act with exist­ing mate­ri­als like Excel files or Access data­bases or LDAP direc­to­ries we develop in CF. Up until recently, I was the only ColdFusion-specific devel­oper. Our team has lots of peo­ple with PHP expe­ri­ence, and a cou­ple with ASP expe­ri­ence too. As we’re oper­at­ing in the lower end of the mar­ket — small to medium busi­ness, and gen­er­ally not large cor­po­rate or gov­ern­ment sys­tems, the peo­ple we hire are usu­ally either straight our of TAFE or uni­ver­sity, or with a year or two of com­mer­cial expe­ri­ence. Lately with the indus­try pick­ing up, more and more of our new hires are straight out of school.

Please note that I’m not try­ing to gen­er­alise — all my com­ments are based on the spe­cific require­ments of the envi­ron­ment listed above, because that is what I have expe­ri­ence with.

I have a library of cir­cuits writ­ten in Fuse­box 3 that are con­stantly re-used — login sys­tems, mem­ber­ship sys­tems, sub­scrip­tion man­age­ment, prod­uct man­age­ment etc. They have been thor­oughly tested in pro­duc­tion sys­tems for over three years now, and they work really well. Even­tu­ally, some of them will end up being con­verted to Fuse­box 4 as new code is written.

In the past — three or four times over the last three years, I would say — we have had a CF project with an impend­ing dead­line — i.e., one that I couldn’t hope to fin­ish in time on my own. In each case, a devel­oper with some PHP or ASP expe­ri­ence has taken over, and based on my com­mon Fuse­box cir­cuits, has deliv­ered the project on time and to our code qual­ity standards.

This is pos­si­ble because:

  • Cold­Fu­sion code is sim­ple and straight­for­ward to pick up
  • Well-written Fuse­box 3 code is sim­ple and log­i­cal (and Fuse­box 4 is almost as simple)

So, would Mach-ii be good for our team?

Q: Would Mach-ii make our appli­ca­tions run faster?
A: Not any faster than an extra gig of RAM in the server would.

Q: Would Mach-ii speed our devel­op­ment time?
A: Ini­tally, no. Over time, for those of us who are Cold­Fu­sion devel­op­ers, possibly.

Q: Would Mach-ii make it eas­ier to get new devel­op­ers up to speed on exist­ing projects?
A: Big time NO. In fact, I think it would make it sig­nif­i­cantly more difficult.

It was men­tioned by Andy at the CFUGWA meet­ing that if you had Java pro­gram­mers, it would pos­si­bly be eas­ier for them to pick up Mach-ii. That might be true… how­ever as we haven’t ever had a Java pro­gram­mer in our shop I can’t com­ment on that one. Its been hard enough to find the right kind of peo­ple when we need them — if we can find some­one with PHP skills who under­stands web stan­dards and has a good atti­tude we con­sider our­selves lucky. I wouldn’t want to add to our require­ments “and has an under­stand­ing of OO cod­ing prin­ci­ples” as well, or I fear we’d never find anyone.

So on the whole, Fuse­box 3 has been very good to us and I have no doubt that Fuse­box 4 will prove to be even bet­ter as time goes on. I’m also sure that Mach-ii has a place in larger shops or those that already have OO pro­gram­mers or thsoe who have the bud­get to hire peo­ple with years of expe­ri­ence. But for our pur­poses, I think the win­ner is clear.

I’m still look­ing for­ward to Sean Corfield’s pre­sen­ta­tion at MXDU. Who knows, maybe I’ll walk out a convert!

Comments are closed.