An Interview with Mark Drew, Speaker at CFUNITED Europe

 
Mar 09, 2008

by Paul Vernon

With CFUNITED Europe coming up, Paul Vernon, Fusion Authority reporter, has interviewed Mark Drew about his upcoming presentations and his work on the open source CFEclipse project.

Paul Vernon:
So, I guess the first question is, how did it all start for you? How did you get involved with ColdFusion, and what makes you stick with it?

Mark Drew:
My first involvement was back in 1997. I was working for a company called Nettec, and we were asked to develop an insurance quoting system. Up until then, I had been using Perl on an e-Commerce product called Intershop, and I didn't think Perl was up to the job, especially when you considered the time we had to do it, so I had a look around and stumbled upon ColdFusion. In about an afternoon I had most of the system written, apart from the pretty interface. After that, I recommended it to other developers for any custom work we had to do. We all loved it since we all came from a HTML background. It was a nice fit, and seemed to make a lot of sense.

I use ColdFusion for many reasons today, but one of the main ones is that every new release of ColdFusion introduces features which, even if you don't use them every day, are a great addition to your developer's toolbox.

It's just the Swiss army knife of development languages, and as a server, it's awesome.

PV:
What a coincidence! The first ColdFusion job in I took in '99/'00 used JobMagnet, written by Nettec, as a basis for its platform.

MD:
That was me. I did some nice features for JobMagnet, such as the ability to add fields and enumerated fields for jobs and for candidate information.

PV:
It was a good product. I worked on building a whole suite of applications based on JobMagnet for about three and a half years. It's still in use today by some major UK high street names for applicant attraction and engagement. But I digress!

About the ColdFusion feature set. As you've said, with every version, ColdFusion has introduced some fantastic new ideas and tools into the language. What features of ColdFusion 8 are you using the most? How are you using them and how do they make life easier for you as a developer?

MD:
I would like to say that I am heavily using ColdFusion 8 but we are in the process of upgrading the product we develop to CF8. Some of the features that really get me buzzing are the Ajax capabilities and especially AjaxProxy, which I still think uses voodoo to make it work.

Related to that, I have been using ColdFusion 8 for a while simply so that I can debug and check the performance of applications; the step-debugger is a real boon! As I said, it's my toolbox and every version brings in another great tool.

PV:
So, you are pretty well known in the community as (to coin a phrase) as "Mr. CFEclipse." How do you keep up with all the new tools that ColdFusion, and, for that matter, the other CFML engines introduce when developing CFEclipse?

MD:
Read, read, read and then just in case, I read some more. I go through the release notes of each version and I try to read blogs by people like Ray Camden and Sean Corfield, as well as trying stuff out myself with the product. Then I think about how people might be using those features in CFEclipse or an IDE, and I try to integrate things that way. Blogs are a really good source for ideas, especially in the ColdFusion community. I am also lucky that I am in a good position with most of the vendors of CFML engines and have good relationships with people within those companies.

PV:
Having worked on some parts of CFEclipse with you, I know first-hand how much work you put into CFEclipse and how much time it can take up when you're chasing down that niggling little bug or developing that new feature. Being open source, the CFEclipse project needs contributors to help it move along. What's the best way people can do that? How can the community help the project more?

MD:
There are several aspects of the project, some simple and some that are more complex. To resolve the simple aspects, my presentation at CFUnited Europe on CFEclipse Reloaded will dig into how people can customize things like the Syntax Dictionary and Frameworks Explorer. Hopefully, this will give people some ideas on how they can fix those niggling "this attribute is missing" type bugs with the language dictionaries.

So it's basically letting people help themselves and the community. Another aspect, as you know, is that Java isn't that hard, really. There are some core concepts you need to get your head round, but once you have done that, you can get the code and get stuck in [Editorial Note: British term meaning "jump in"].

The whole idea of opening the source rather than CFEclipse just being a free product is that it allows developers to mess with the code and see how it all works, and hopefully fix and extend it.

PV:
So if there was one feature that you could have today that isn't there in CFEclipse and another developer turned up and said "I've built x for CFE", what would that be?

MD:
(Laughs) There are a couple of features, actually. One, which I am porting from ColdFusion to Java, is the variable scoper, which finds un-var'd variables in functions. It would have been nice if someone had already built it in Java, as I could have just plugged it in!

There have been a few projects out there that I wanted to port to CFE, including one called cfcdoc, which creates JavaDoc-like documentation from CFCs. I am thinking of porting this as well, but it would be nice if someone had already done it.

PV:
There's plenty of potential for people to get involved with those two ideas alone, then. I can see how both of those projects would be very useful for developers when they are working on large, framework-based apps.

MD:
For the project to grow, it needs more people involved, and what could be easier as a starter Java project than to convert ColdFusion applications?

PV:
I agree, starting from something you know always makes the transition a little easier.

Just backtracking a little bit, the Frameworks explorer features you mentioned earlier are relatively new in CFEclipse, too. Can you give me a quick rundown of its application and what frameworks it supports "out of the box"? How easy is it to build in support for custom frameworks? Can people do that for themselves?

MD:
The Frameworks Explorer is essentially a view that you can open, and depending on which file you are editing it will check to see what project a file is in and look for "known" files, such as coldspring.xml or modelglue.xml and create a tree of the application that you can navigate.

With that tree, you can also then navigate to specific places, get an insight into the contents of an XML node, add sub nodes or put some code, such as a call to get a bean into your editor.

The clever thing about the frameworks explorer is that it is configured as a framework itself, so there are three ;XML files to edit that will add new frameworks, actions or labels to the tree. It also has its own XPath processor. Currently it supports Reactor, Transfer, ColdSpring, ModelGlue, Mach-II, Fusebox.

You can also add any XML file and it will show it as a tree, though, so you don't need to even configure that side of things, it's there for you.

PV:
That sounds really useful. I think one of the arguments that can be leveled at CFC-based projects is the difficulty in knowing how the CFCs interact with each other and other areas of the application. Being able to quickly and easily navigate your way around the framework is a great way of saving time and allows you to get a good clear picture of how everything fits together.

MD:
Exactly. It's like a God's view of your app, finally!

PV:
Related to the Frameworks explorer are the frameworks themselves. You've mentioned ColdSpring a couple of times now and, of course, that is the other subject you'll be covering at CFUnited. You'll be talking about configuring it for maximum efficiency and making the developer's life easier. Can you give me a run-down of how ColdSpring can do that?

MD:
When I started getting my head around components, I started to use them everywhere as function containers. Then, as OO programming paradigms were introduced into the ColdFusion development process, applications started to get a bit bloated with CreateObject statements.

This also meant that if you wanted to make a change to how that object is configured with its dependencies (what it needs for it to be ready to do some work) you had to get your search and replace hat on, which never seems to find all the instances... This is where ColdSpring steps in for the ColdFusion developer. It provides a great way to configure all the services and multiple instance use components in one place, and if you change how it's configured, you don't have to change your code!

PV:
So using ColdSpring takes a lot of the hard work out of sorting out dependencies and making the basics of the application platform work, leaving developers to work out the business logic of their applications.

MD:
Precisely, it also allows you to make each object focus on what it has to do, rather than on configuring other objects so that it can get its work done; and it removes the nightmare of changing things throughout your application, bringing in bugs and edge cases.

PV:
I get it. Maintaining any larger application becomes very much easier due to the centralized management process that ColdSpring offers to developers. I guess you'll be going into much greater depth at CFUnited; are there any ideas that you'll be covering that you think people should pay real attention to?

MD:
I think the "Better Living through Configuration" presentation will really be helpful to ColdFusion developers. I wanted to do it because I am nearly a zealot with regards to this... It really changed my way of coding.

PV:
"...nearly" a zealot. I don't think that's a bad place to be. I think frameworks, whichever one you choose, can under the right circumstances make life far easier for developers and I, for one, am looking forward to seeing your presentations at CFUnited. All that remains is for me to thank you for your time and sign off. So thank you very much for giving up the time to chat with me and I hope all goes well for the presentations next week.

MD:
No problem. Great stuff.

To find out more about CFUNITED Europe and about Mark Drew's presentations, go to http://europe.cfunited.com/. The conference takes place March 12-13, 2008, at the Novitel London West, UK.


Paul Vernon, co-owner of New Media Development, Ltd., has been building ColdFusion powered websites since 1999. He specializes in building feature-rich applications and content management systems powered by ColdFusion, and has built careers websites for a client list that includes several major UK household names, including Tesco's, Mothercare, Debenhams, The Body Shop, Save the Children, Homeserve and Bhs. Many ColdFusion developers know Paul through his work developing CFX tags such as CFX_POP3 and CFX_IMAP4.


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