Hal Helms on "OO Programming with CFCs"

 
Mar 19, 2007

by Clark Valberg

Hal Helms is regarded by many as the patriarch of the ColdFusion MVC movement. His upcoming CFUNITED 2007 talk, "OO Programming with CFCs", promises to be an exploration of OO techniques and thinking from one of the foremost experts on the subject. Today I sat down with Hal to find out a bit more.

Clark Valberg: Hey Hal, thanks for joining me today.
Hal Helms: My pleasure, Clark.
CV: So I want to chat with you a bit about your upcoming talk at CFUNITED 2007, "OO Programming with CFCs".
HH: Ahh, yes.. one of my favorite topics on which to pontificate. What would you like to know?
CV: Well, by the sound of it, it appears to be a beginner's topic. Is that right?
HH: No, I wouldn't say so, Clark. You can use CFCs to wrap some functionality, but that's a long way from doing good OO programming.
CV: So would you say there are "degrees" of OO?
HH: Yes. And from my experience, the more you learn, the richer your designs become and the more robust your code. But there's a long stretch between learning the basics of classes and methods and real OO mastery.
CV: So, should all ColdFusion applications be written in an "OO style"? That seems to be the word on the street.
HH: I wouldn't say that either. For simpler applications, which we all build a fair number of, procedural programming works just fine. OO can really be a hindrance in those cases.
CV: Hindrance? How so?
HH: There's a level of complexity for doing OO apps and if all your client needs is simple "grab stuff from a database and display/massage it", writing a bunch of classes provides little benefit, but significant cost.
CV: Ok, that makes sense. So let's say our company starts developing all new applications in a "strict OO" style. What happens with our procedural developers? Do they become our new parking attendants?
HH: Hopefully not! If your company starts doing OO development, there's still plenty of space for those procedural developers to help out as they acquire OO skills.
CV: So how long do you think it should take for proficient procedural developers to get the hang of OO?
HH: When I was doing Smalltalk, we used to say it took a good six months, sometimes a year, for a procedural programmer to change the mindset and learn the skills. One of the biggest hindrances is the illusion of knowledge. I must be an OO programmer because I'm writing classes and instantiating objects.
CV: What about Design Patterns, Hal? Where do they fit in?
HH: Design patterns show us new ways of thinking about old problems. They can be very useful, not when they're slavishly copied, but rather as inspiration.
CV: I read a book about some "gang of dudes" and in it were tons of design patterns. Should I start cramming those into my apps like crazy, or what?
HH: The more the merrier. Well, OK, not really. Design patterns can help us see new ways of looking at old problems. That can be (a)humbling and (b)inspirational. What you want to do is understand the mindset of the design pattern designers because you're learning the amalgamated wisdom of a lot of expert OO designers.
CV: So something to be internalized, but not just copied?
HH: Yes, very much so.
CV: So, Hal, what do I have to know before coming to your session?
HH: It helps if you have already worked a little with CFCs and know the basics.
CV: How about the bottom line here? Will attending your session and learning OO really advance my career as a ColdFusion developer?
HH: What I would hope for is that it will help you think about writing apps in a different manner. And yes, that means it can good for your career. But it's because really grappling with OO will make you a better thinker, a better problem solver. And that makes you a better programmer.
CV: So if I want to bone up a bit before your session, can you recommend any good books?
HH: Head First OO Analysis and Design would be a great choice.
CV: Right, those Head First books are great.. What if I need something a bit more "hands-on", say for myself, or my team? Your condo is in Sarasota, right – when is a good time to drop in unannounced?
HH: I'm always open. Hey, wait a minute! Actually, I teach classes on this subject. My website, HalHelms.com, has a newsletter sign-up where folks can keep abreast of classes and schedules.
CV: Sounds great... Well, Hal, I'm looking forward to your talk at CFUNITED 2007. Thanks again for chatting with me today. See you there!
HH: Thanks, Clark.

Those who wish to enjoy Hal's presentation at CFUNITED 2007 can register at https://secure.teratech.com/cfunited07/register.cfm. The conference takes place on June 25th- June 30th, 2007, with options for a four-day, three-day and one-day (Saturday only) conference package.


Clark Valberg is President of Epicenter Technology Consulting in Albany, NY. Epicenter provides software design and consulting services to organizations of all shapes and sizes. Clark's under-visited and under-authored blog can be found at this cleverly worded URL: http://www.clarkvalberg.com/

# Posted By Perlen schmuck | 27-Nov-08 02:07 AM
# Posted By Zuchtperlen | 27-Nov-08 02:08 AM
# Posted By Perlenschmuck | 27-Nov-08 02:12 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