The Helms and Horwith Cage Match Pre-fight Interviews

 
Jun 23, 2006

By Clark Valberg

To be read aloud or to yourself in the voice of Howard Cosell

When I heard about the Helms and Horwith debate, I gotta tell you there was a stir in my stomach and the hair on the back of my neck stood straight up.

For years the sides have been chosen, positions hardened, words exchanged, articles written, blogs commented-on, and now finally a line in the sand has been drawn and the fight clock has been set to June 28, 2006 - LIVE from the CFUNITED conference in Bethesda, Maryland.

Line these two fellows up on a scale and surely you wouldn’t find a referee in the country who would let this match take place.  But under special arrangement with the Maryland authority on sporting and gaming (and software development, apparently), we've arranged what amounts to nothing less than a clash of the titans the likes of which the ColdFusion world has never seen.

Both our men's stats are impressive by anyone's standards.

They are both internationally recognized speakers, authors, teachers, bloggers… ColdFusion superstars!

So why would two men with seemingly so much in common have so much to fight about?

Frameworks, that’s why… Some of you celebrate frameworks, relying on them to get your work done every day.  Others among you see them as a terrible burden hung heavy on the neck of the faithful developer.  Whatever your opinion, few of you are as passionate about the subject as these two.   

Finally both sides will have the chance to face-off. One man will walk away holding the belt. The other will surely be forced to leave the software industry forever, only to be discovered years later working as a sausage maker in Prague.  

Before we gather around that squared circle and watch these two heavyweights touch gloves, I have a special report -- a pre-battle interview with our contenders, Mr. Hal Helms and Mr. Simon Horwith. 

Hal Helms Simon Horwith

Interview with Hal Helms, June 18, 2006

Clark Valberg: Mr. Helms has helped father two of ColdFusion's most popular frameworks. He's taught classes, written books, led training seminars for fortune 500 companies, all in the name of frameworks.

I come to you straight from Mr. Helms' training camp here in Sarasota, Florida.

Clark Valberg: Mr. Helms, nice to be with you today.

Hal: Thanks for having me, Clark.

Clark: O.K. enough small-talk, hoss -- let’s get down to the nitty gritty...

I want to loosen you up a little, have you hit the verbal speed-bag, as it were. So we're going to start off with a little word association.  I'll say a word and you say the first thing that comes to mind.

Hal: You got it. Let's get it on...

Clark: ColdFusion

Hal: … good 

Clark: Fusebox (framework)

Hal: … greater 

Clark: Flip (methodology)

Hal: … wonderful 

Clark: Engineering

Hal: … necessary 

Clark: Middle Management

Hal: … unfortunate  

Clark: Horwith

Hal: … I thought we weren’t going to use that kind of language!

Clark: Ok - I think I understand your position…
Tell me, what got you into using frameworks in the first place?

Hal: Two things.

One was the need for people to work together in teams. I was on one particularly large team working on a particularly large project. It was one of these crazy things where I would ask "Joe" something like, "Joe, where are you on this project?" And Joe would reply, "Well, I'm waiting for Anne to finish her stuff so she can get me what I need." Then I talked to Anne and she was waiting for Frank. Then I went to Frank and he was waiting on Jane - and so forth and so on. And I thought, Wow, this is no way to do things.

We need a way to work together so that we have minimal friction. And we have this concept where we all write to these well-defined interfaces. This makes it so that how you do your particular thing is not all that important to me as long as I know what messages your system will respond to. That’s what got me into frameworks.  At that time Fusebox what really young, like in 1.0.

The second thing was the frustration of writing the same code over and over and over. I wanted to be able to write a module once and re-use it without just cutting and pasting blocks of code.

Clark: How, and when do you use frameworks today?

Hal: I have to have a compelling reason NOT to use a framework.

I never know when I might have to hand a project off, or it could be that I may need to get someone else involved.

And you'll hear people who have mental deficiencies, like Simon, saying, "Well, my framework is more efficient." Ok - That's fine, but that's one SMALL part of project success. And, in fact, it's one of the least important parts.

I'll give you a quote. I think it was written by the British computer scientist Tony Hoare: "More sins have been committed in the name of computing efficiency, usually without achieving results, than for any other reason including blind stupidity".

This idea that whatever framework you use, Model-Glue, Fusebox, Mach-II, is not as efficient as whatever… This is such a tiny portion of project success, and it's almost completely unimportant. If you are working on really small things like device drivers, then efficiency is very important. But these frameworks weren't built for that. They were built for applications.

So really - these are application frameworks, and I would have to have a compelling reason NOT to use them. So compelling that it offsets the need for ease of communication among team members and the ability to reuse things that I've already done. That has to be an enormously compelling thing. For example, right now I'm in the middle of creating a large system for producing web applications and because it is very large, I'm probably not going to use a framework. I will, in fact, "roll my own framework".  But that’s because I have VERY specific needs and because the size of the project justifies paying the cost (and there's going to be a considerable cost) of not using something like Mach II, Model Glue, Fusebox, or one of those. Even then I'm gonna use other frameworks like ColdSpring. I just think NOT using frameworks is a sign of "developmental immaturity."

Some developers get caught up in that "I'll do it myself" kind of ego-trip.

Clark: Why are frameworks so important to ColdFusion developers? In other words, what's in it for them?

Hal: One of the big things is you can stop rewriting code you've written.

Ya know, how many times do you need to write a login? After a while it’s enough already.

And again, we may cut and paste stuff. Then we cut and paste again… Generally, any time you open up code you run the risk of introducing bugs. And that's not real "re-usability," at least not in the way I want it. I want modular reusability where we're able to plug things into an application without changing the actual code at all. Maybe at most what I would need to do is change my presentation layer.

Clark: What's the biggest misconception about frameworks?

Hal: That they are going to constrain the developer. And this is what my "bone-headed brother Simon" is going to be preaching, undoubtedly. Creativity occurs within the context of the constraint. It's when you DON’T have to worry about the "plumbing" that you can get creative. Ya know - I don’t want to get real creative with the "plumbing"; I want to get real creative with the user-experience. That means I have to offload as much of the other stuff as possible.

We have this idea of the "absent-minded professor." Well, the professor is only absent-minded because he's offloaded everything that's not essential to solving the problems he's working on.

And someone could say, "Well, my application is 5 ms faster." That’s fine. You take your 5 ms and I'll take my unhampered focus on creating a great user experience!

Clark: How do you plan to convince the audience to use frameworks?

Hal: That’s not really my goal. It's simply to relate my experience… and to leave the battered, broken corpse of my opponent, whom I will destroy through the sheer power of my inexorable logic.

I really just want to get a chance to explore these ideas because I think that for their own purposes, some people are spreading this idea that frameworks are unnecessarily hampering.

Then you have a lot of these new frameworks coming out… The biggest danger is that we end up with "Framework wars." Mine is better/faster/more unique than yours, etc. Then it seems almost like we have this unseen adversary out there trying to get us to be as unproductive as possible. I would love to see more collaboration between frameworks. I know people who create frameworks have a lot of their own personality and ego invested into it, but I think the idea of framework wars really doesn’t help anybody.

Clark: One last question: How can a CF developer get started on the road to learning frameworks in 10 minutes or less?

Hal:

- Check out Fusebox - the most accessible of the frameworks. The great thing about Fusebox is that even if you decide to go with Mach II, Model Glue or one of the others, you'll get a sense of the whole "front controller design pattern" that all of these frameworks use.  And they are lots of nice resources at Fusebox.org.
 

- Check out simple reference applications (explore some code).

 
- Check out books written about Fusebox.

- There’s a ton of stuff out on the web written about Fusebox

Let's say you're an OO person.  Fusebox works fine with OO but it does not force you to use OO. With a framework like Mach II or Model Glue you must use OO. 

Clark: Ooh ooh, one FINAL question - if things get out of hand, and you're forced to bludgeon your opponent with one book, which would it be?

Hal: Hmm... That’s a good question… I would have to say "What I Don’t Know about Software Development" by Simon Horwith.. Because it's such a large book!  And therefore I could pummel him unconscious with but a single blow.

Clark: Okay, that's all for now. Thanks so much for taking the time to chat with me today.

Hal: You're very welcome, sir.  

Interview with Simon Horwith, June 22, 2006 

Clark Valberg: Well, we're back with another pre-fight interview, and today we have with us the second ingredient of our brewing hell-storm, none other than Mr. Simon Horwith.  Don’t let his youthful appearance and cool charismatic demeanor fool you. Mr. Horwith is a true bull-dog of the ColdFusion world. A trainer, world traveler, renowned speaker, and widely respected member of the blogosphere, this fellow's consulting resume reads like a veritable who's who of the IT industry. 

Will this David topple the great Goliath?  Only time will tell and you’ll have to be at CFUNITED 2006 to find out…  

Clark Valberg: I report to you direct from Mr. Horwith’s training camp in Vienna Virginia, normally for lovers – but today I bring to you a real fighter…  

Mr. Horwith, thanks for chatting with me today...

Simon: Thanks for having me, Clark. 

Clark: I bet you're really looking forward to this match with Hal, eh?

Simon: Hell, yes, I am!  The past year or so has seen the emergence of several new frameworks.  Unfortunately, frameworks don't solve all our problems and, at the risk of encouraging people to think, I have been fairly outspoken about that. With Hal being the "Godfather of ColdFusion Frameworks", how could I pass up the opportunity to really let him have it in front of a live audience?

Clark: So... Simon... Is it true... Are you in fact the "anti-framework" zealot everyone says you are?

Simon: I don't use frameworks when I develop applications, I don't generally endorse their use by others, and the very idea of frameworks goes against my belief about what makes truly great software.  Am I anti-framework? Despite everything I just said, no, I'm not.

Clark: Tell me, when did you first form your feelings about framework use? Was there a specific event, or a project that left a bad taste in your mouth?

Simon: Honestly, I looked at Fusebox back in the latter part of the 90s. I thought it had goals, but I disagreed with the way it went about achieving them. It was back then that I became an Allaire Certified Instructor. I quickly noticed a trend -- students coming to class that said they had been using ColdFusion for a year or more... yet here they were in the most introductory level CF class available... AND STRUGGLING!  All these students - Fusebox developers.  Their use of a framework had been shielding them, holding them back, from actually learning how to develop applications.  It was then that I really developed a distaste for frameworks.

I know that Hal is going to tell you that this is not the fault of the framework. Well... it certainly appears to be one effect.  Most of these students found it more difficult to learn CF basics than students who had never seen CF before.  That's when it began... but it was not the deal breaker for me. 

I've done a lot of code and architecture reviews over the years.  More than anyone I know.  I'll tell you - debugging applications implemented with frameworks, coupled with looking at the code developers wrote in those applications, is enough to make anyone decide not to use them. 

Clark: What about experienced developers who are using frameworks? 

Simon: Experienced developers using frameworks? I think that's fine if it's what makes them happy and productive and keeps them gainfully employed. I have a bigger issue with the fact that most developers that aren't advanced, and only develop using a framework, are more likely never to become a better developer. 

Clark: So do you think frameworks can end up being a crutch of sorts?

Simon: Yes, I do think they become a crutch. It's not a fault of the framework itself, but it's an effect that frameworks have on developers. When I stop caring about becoming a better developer, when I stop feeling like there's something I could do better, when I feel that I've achieved absolute perfection as a developer.... that's when I'll stop wanting to build things myself and will use a framework. But that is simply because I strive to become better. If you want a more practical answer - the minute someone creates a framework that results in a better application code base, I'll be all for it.  Frameworks are expensive... in more ways than people realize.

Clark: So do you think Hal (who very much IS a framework zealot) is making a mistake by promoting frameworks so vehemently? What do you think is the fundamental flaw in his logic?

Simon: "Think"? I KNOW he's making a mistake.  I've known Hal for a long time and over the years, there are only three things about him that a person can rely on:

1. At 3 AM, yes, Hal is awake; he's somewhere playing poker. 

2. Hal has great ideas but couldn't be more irresponsible about how he puts them to use if he tried. 

3. Don't ever rely on Hal to show up where he says, when he says.  I've covered for him at conferences on more than one occasion.  I only hope he has the courage to show up this time.

Clark: Well, actually I do have to tell you - he’s NOT going to be at this conference. In fact he'll be "knuckling up" as it were, "virtually" via live video feed...

Clark: Did I hear a "cluck" "cluck" under your breath, sir?

Simon: I'm not surprised. Hal's been a confirmed speaker about as long as I have.... roughly 5 months.  I'm sure it was really THAT difficult to make sure he was at the conference.  You can run, Hal.... but you can't hide. 

Clark: Sounds like you're not buying it… 

Simon: Not at all. 

Clark: So tell me, sir, let's say a young developer came to you looking for guidance and said, “Mr. Horwith, oh Mr. Horwith, I’ve been reading your blog every day – and even tattooed your name on my… umm... well, somewhere... but anyway - I was thinking of learning [insert popular framework here], but I heard you caution against it so many times. Help me!” How would you dissuade that young man or woman?

Simon: I don't know that I would. I'd ask them WHY they want to learn that framework.  If it's justified, so be it. What I would most certainly explain to them are the many things they should learn, practice, and try to master first.  Skills that are applicable in all development environments -- CF and otherwise, frameworks or not. I would explain to them that strong is the dark side of the force. They must learn to control their emotions.

Clark: Can you give me a short list, let's say, 5 things that any developer should know before considering going down the framework path?

Simon:

1. Very strong expertise in the CFML language and development practices - including exception handling, writing and using Custom Tags, and writing and using ColdFusion Components

2. A firm understanding of the fundamental concepts of Object Oriented Programming

3. A good understanding of "Object Think"

4. A very decent amount of experience and high comfort level developing applications WITHOUT the use of any framework

5. The meaning of life

Clark: Someone told me you had your own "framework" or sorts... What can you tell me about that?

Simon: Hah!  Yeah, I'm sure they did.  No, I don't use a framework... but I do have a methodology that I've developed over the past 11 years of CF development.  It is an approach to planning and implementation, but there are no actual required files.  I have several files that I often use simply because I find I need them - but not always, and I frequently modify them for each application.  I call my approach the "Sensible Assembly Methodology"... and I'm in the process of finishing up the documentation for people who are interested.  One example of the approach is my petmarket application (available on cfpetmarket.com).  Software development, in many ways, is like so many other things in life... if you take a step back, it's really all about common sense.  The most avid framework fan should appreciate that. Even Hal.

Clark: So would you say that you're keener on the idea of a "methodology" than a framework?  What's the crucial difference?

Simon: Definitely. All developers have their own style.  I appreciate that AND I appreciate the need for consistency, which a methodology encourages. My methodology also encourages developers to become better, to reuse business logic and presentation tier code, and to create applications that are ridiculously easy to maintain. That's what I was talking about earlier when I talked about the cost of frameworks. The savings to my clients are huge using my approach to development... and I encourage Agile development, which allows me, and my teams, to meet changing needs when we must.

Clark: So where can a person find more information about this alleged "methodology"?

Simon: I haven't released the documentation yet, but watch my blog for info on that very soon.  I've got a book in the works as well. I talk about SAM or its core rules often at conferences and user groups, and my MAX 2005 sample application (available from my blog) and my petmarket application (available at http://www.cfpetmarket.com) are both examples of the methodology in use. 

Clark: Well it certainly sounds sensible. I think that perhaps Hal was out of line with a few of the things he said about you, sir... You're all right.

Simon: Out of line? Whatever did he say?

Clark I’m not sure if I should really say...

Simon: Give it up, Clark. 

Clark: Well he did say something to the effect of "if Simon’s momma was an application she would definitely be bloatware."

Simon: Hal shouldn't talk about bloating...

Clark: Okay then -- I’ll leave that one alone…  

Next question, If you could covertly write a one sentence forward to the future Fusebox 5 book and sneak it in before publication, what would it say?

Simon: I think I’d have to go with "don’t bother stealing this book. In fact, don’t buy it either... Unless perchance you're into really firm toilet paper."

Clark: Ooh, ooh, one FINAL question. If things get out of hand, and you're forced to bludgeon your opponent with one book, which would it be?

Simon: Bludgeon him with a book?  Dude, have you SEEN Hal?  Hell, no, I'm not hitting him with a book.  Do they make books that big? 

Clark: Simon... any final words for our audience, or perhaps your opponent? 

Simon: Whether you agree with Hal or myself, I think you should keep in mind that we are both trying to help.... and that Hal is getting old and senile. 

Clark: Well I think that about covers it. I know everyone's looking forward to this event. Thanks for chatting with me today, Simon. 

Simon: Thanks for having me Clark – see you at CFUNITED! 


Clark Valberg is CEO of Epicenter Technology Consulting in Albany, NY. Epicenter consults with growing web companies looking to expand their service offering and improve overall efficiency. Epicenter assists these companies in refining their internal production methodology and expanding to offer more sophisticated services to their maturing market.

# Posted By Perlenschmuck | 27-Nov-08 02:17 AM
# Posted By Zuchtperlen | 27-Nov-08 02:20 AM
# Posted By Perlen schmuck | 27-Nov-08 02:23 AM
Add a Comment
(If you subscribe, any new posts to this thread will be sent to your email address.)
  
Privacy | FAQ | Site Map | About | Guidelines | Contact | Advertising | What is ColdFusion?
House of Fusion | ColdFusion Jobs | Blog of Fusion | AHP Hosting