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
compatibility.
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
facts.
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
plugins.
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-
ii.com.
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
http://www.teratech.com/jobs/Architect.cfm.
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