CF Conf Central
August 30th - September 1st, 2003
Las Vegas, NV


Each week from now until the Fusebox conference (Aug 31 - Sep 1), we're talking with one of the conference speakers.

WEEK 4: Hal Helms

FB: We're talking with Hal Helms, who will be giving an extensive
overview of Fusebox 4 at the upcoming Fusebox conference August 31?
Sept 1 (www.cfconf.org/fusebox2003). I admit that this conversation is
a little?weird.

HH: How weird?

FB: On a scale of 1 to 10? Maybe an 11.

HH: No, I mean, how is it weird?

FB: It's weird because I am, you know, you. I'm interviewing myself.

HH: Ah, and that troubles you?

FB: Well, doesn't it trouble you? me? us?

HH: Not at all. I talk to myself all the time.

FB: ThiS beminds me of the book, Goedel, Escher, and Bach. A good deal
of the book is about the paradoxes of self-referentiality.

HH: I've been meaning to read that book. Did you like it?

FB: Oh, it's great. You should read?oh, never mind. Let's get on with
this interview. You're giving an overview of Fusebox 4, is that right?

HH: Yes, I think I start off the conference with that overview.

FB: Give us a sense of what the overview will cover.

HH: Well, I'm going to first show people that there are great similarities
between Fusebox 3 and Fusebox 4. In fact, during the beta period, we
had developers convert FB3 to FB4 apps in a very quick time.

FB: So, no wrenching changes this time?

HH: No. We knew that when we went from FB2 to FB3, the changes
were going to be tough, but thought that the advantages were worth it.
With FB4, the big change is that the FBX_Switch file goes away,
replaced with an XML file.

FB: Why use XML?

HH: To ensure that future changes to FB will not impact FB4 code.
Since XML is language-independent, whatever new features FB5 or FB6
introduce won't break FB4 code. It's about providing for backwards

FB: Which previous versions of Fusebox didn't have.

HH: No, they didn't. FB4 still isn't 100% backwards compatible, but the
changes are quite small and they were put in to make sure that from
here on out, we have true backwards compatibility. Of course,
backwards compatibility would have been great all along, but there's an
advantage to letting something mature before you freeze the form of it.

FB: Do you think Fusebox is mature now?

HH: I think Fusebox has definitely become an adult, capable of taking on
long-term commitments, paying taxes, maybe even getting married some
day. And to think, I can remember when I could balance little Fusebox
on my knee?

FB: Um, this interview is weird enough as it is. Let's just stick to the

HH: Sorry. So, yes, I do think it's quite mature. And this new version
has some great new features.

FB: Such as?

HH: Greatly improved runtime performance. We moved to a parsing
phase, in which a lot of things that were dynamically resolved are
determined during a quasi-compile cycle. It's not compiled in the sense
of moving from source code to a more machine-like language, but it
does mean that the runtime core files have very little to do. Their work
is queued up for them ahead of time and so their workload is greatly
reduced?hence, the improved performance.

FB: That's certainly a welcome improvement. What else is there?

HH: I mentioned that the configuration files have moved to XML.

FB: Yes, does that mean Fuseboxers are going to have to learn about
XPath and XMLSearch and all that?

HH: Well, it certainly would be a good idea to learn that?but no, all that
is handled internally. It's no harder than learning six new tags and their
attributes. It's very easy.

FB: OK, what's next?

HH: The ability to execute multiple fuseactions in a single HTTP request.
That's tremendously helpful when using something like the Model-View-
Controller pattern in applications. It just allows for greater cohesion of
circuits with looser coupling between them.

FB: Which is a good thing?

HH: A very good thing, yes. Another great feature of Fusebox 4 is

FB: Yes, John Quarto-vonTivadar spoke with us last week about plugins
and security.

HH: Yes. Also exception handling through plugins is very slick and very
simple to do. Then there are content components?

FB: What are those?

HH: They are a mechanism to save pieces of content into variables for
later use. Think of the cfsavecontent tag, which itself was based on
Steve Nelson's wonderful cf_bodycontent custom tag.

FB: Yes, but doesn't that cause a conflict when using cfflush?

HH: It did in Fusebox 3, but no longer. You can use cfflush to your
heart's content.

FB: So would you say that Fusebox is becoming more object oriented?

HH: No. In fact, I can tell you that we made a very conscious decision
that we wanted to keep Fusebox as a procedural framework. The idea
that there's only one way to write applications is just prejudice.

FB: But you're a big proponent of OO yourself.

HH: I am, indeed. But that doesn't mean that you have to use or even
should use OO for everything. There are a lot of procedural coders doing
a lot of very fine work. Fusebox is there to support them. Moving to OO
is much more than some new syntax and new language features. To
gain the power of OO, you have to make a large mental shift in thinking.

FB: And that's where Fusebox MX comes in?

HH: Ben Edwards and I started down the Fusebox MX path, but found
that we wanted to do more than graft some OO features onto Fusebox.
We wanted a true OO framework that would natively implement MVC and
help programmers learn object orientation?not just CFCs. What we
ended up with was so different from Fusebox?even from "Fusebox MX"?
that we decided to change the name to Mach-II.

FB: And is that available?

HH: We're in beta right now and will release Mach-II officially at the
conference. Ben Edwards and I will be spending several hours explaining
Mach-II to folks on Monday morning. Right now, you can get a beta
version with some support materials (but not much) at www.mach-

FB: Well, thanks, Hal. Anything else you want to say?

HH: Let me just say that over the years, I've really admired your work.

FB: Please?

HH: One last thing. Well, a couple of last things. First, John Quarto-
vonTivadar and I are giving a class on Fusebox 4 August 27-29,
immediately prior to the conference. That will be in Las Vegas. People
coming to the class will get free attendance to the Fusebox conference.
Second, Ben and I are doing two classes around the same time: Java for
ColdFusion Programmers August 18-22 and a class on Mach-II August
25-27. People can get more info at my website, www.halhelms.com.
Also, they can sign up for my Occasional Newsletter while they're.

FB: So you'll be in Las Vegas for a while.

HH: Yes, I just read a wonderful book on "How To Beat the Slots" and I
expect to come back a millionaire. And one really last thing: my friend,
Michael Smith of TeraTech, has an opening for a Fusebox ColdFusion
architect/development manager. We're seeing more and more job
openings requesting Fusebox experience. That's great, as it pays off
people's investment in Fusebox in terms of career advancement.
Anyway, people interested can find out more details at

FB: Thanks, Hal.

HH: No, thank *you*

Previous weeks:
Week 1: Ben Edwards
Week 2: Michael Smith
Week 3: John Quarto-von Tivadar
Week 5: Jeff Peters

If you have any questions, contact [email protected]