ColdFusion 8 - Nine month review.

I've been a bad boy.  I was supposed to write a review of ColdFusion 8 back in October of last year, but an imminent change of job and my 10 month old boy (now sixteen months) conspired to eat up all my time to play with CF8, let alone write a review.  When ever I did try to write a review I always ended up with writers block.  All the blog entries, by developers far more knowledgeable and respected than I, seemed to already talk about all the great new features in this latest, and greatest, version of ColdFusion.

So, what am I supposed to write about?  I started asking around. Asking people on my IM list, friends and colleagues, what I could write about.  It was this process that made me realise that I should write a kind of "nine months on" round up of what people's thought were now that they've had a chance to actually use the new server, rather than just "play" with it.

I've asked a few people who's names you might recognise to spend just a few minutes to write a paragraph of their thoughts and what their top three most used new tags or features are. 

Everyone I've spoken to says, that ColdFusion 8 is probably the most significant upgrade for ColdFusion yet.  If you don't upgrade for anything else, then you must upgrade for the performance increase you will get for your cfcs and your application in general.  One thing that has to be noted, ColdFusion 8 ships with Java 1.6 as its underlying JRE. Java 1.6 has a bug in the class loader that causes a fairly substantial performance hit when first loading your application.  Recommendations that I've seen from all quarters and experienced myself recently is, downgrading to Java 1.5 will increase load time performance without detrimental overall performance. 

The JavaScript and image enhancements are also top of a lot of people's lists.  Many of us are jack of all trades, writing applications in ColdFusion one moment, JavaScript the next and then onto Actionscript. Operators in CF have always been just fractionally different to these other languages or missing common syntax, like i++ for increment.  The enhancements to operators in CF8 make the transition between languages that little bit easier. AJAX is the technology de jour (sorry I'm a bit of a ludite and cynic when it comes to AJAX).  The addition of the AJAX functionality, using the very excellent ExtJS library (ok so I can still appreciate the work being done even if I am a cynic), is appreciated by many and makes an excellent addition to cfforms. 

Two other major additions to CF 8 that have had everyone buzzing are debugging and server monitoring.

Many of the long serving developers who remember the debug tools in cfstudio and the newer converts from other languages have been asking for IDE based debugging have now got their wish in the form of a plug-in for eclipse. It's not just this group of developers that are benefiting. Many others are wondering how they ever managed without it! 

Server monitoring is a great new addition to ColdFusion server and compliment to the likes of FusionReactor and SeeFusion. The CF8 server monitor isn't just the realm of the server admin any more. It gives the developer the abililty to see what is going on under the hood of your application.  As well as providing some pretty sophisticated reporting on requests, variable scopes, memory usage and errors, to name a few, there's also an email alert system, the ability to make snapshots of the server and an api to allow you to build custom responses to various system states.

Because I've procrastinated so long over writing even this review (sorry everyone - I'm not the most confident writer, so it takes me a while to be happy with what I've written) updater 1 for CF8 has been released.  Updater 1 provides up dates to the FCKEditor, ExtJS libraries, improved AJAX, CFPDF and CFImage functionality, oh yeah and full 64 bit support on all OSs.

Again, apologies to everyone involved for how shockingly long its taken me to write this.  And now I shall hand over to my friends and colleagues to give you their thoughts on CF8.

Oh - and if you want to find out more about CF8, CFML, Flex, AIR, AJAX do I really have to tell you to get yourselves to Scotch on the Rocks at the beginning of June??  ;)

The contributed comments:

Jeff Coughlin -

Overall I think its an important upgrade, but unless you need 64bit or new features in CF8, I personally haven't seen the "need" to upgrade.

I've been liking the new speed enhancements, image manipulation, and Ajax features.

The fact that my JavaScript skills are poor at best and I can now build feature-rich UI experience using CF's new built-in Ajax features is mind-blowing.

top 3 most used tags/new features?

  1. cfimage
  2. cfajax (feature, not the tag)
  3. cfeclipse debugger plugin

Niklas Richardson -

Basically, we're using CF8 as our server layer for Flex applications.

So we're using all the features that CF8 gives us for Flex integration.

We are also using CF8 to generate documents for our Flex applications (PDFs, etc...) and sending out e-mails with attachments, etc...

Probably all I can say is the most used features are CFCs ;-)

  1. Flash remoting
  2. LCDS in CF8
  3. And that it's faster

Neil Middleton - FeedSquirrel

Here's the headlines:

- Performance, particularly CFC instantiation and cfthread

- Eclipse add-ons, debugger, CFC generator etc

- JSON returntype - opens up CF to a whole load of AJAX (but interestingly I don't have much time for the built in AJAX - I'm a jQuery guy)

Andy Allan - Fuzzy Orange - Scotch on the Rocks

PDF Forms

This has been a huge feature as it allows us to easily automate the processing of order forms and purchase orders, and the creation of invoices. Throw in the server side printing and it's job done in one easy step.

Presentations on Demand

Initially this feature was a curious one to us. We never saw the potential. All that changed when a client needed the ability to have dynamic content displayed on their in house company plasma screens that keep staff up to date with what is going on. Using <cfpresentation> we simply took the client driven content, put it together as a Connect presentation and slam, they had their dynamic, up to date company news on display, and fully under their control.

Server Monitoring

Fuzzy Orange do a lot of server consultancy and troubleshooting, and the Server Monitor has proved to be another invaluable tool for our resources. ColdFusion administrators and developers have been screaming for something like this built into the product since the release of MX 6.0 and now they finally have it.

Ray Camden - ColdFusion Jedi

While I'm still very impressed by image and Ajax support, I find myself being very happy with the real small changes. For example, being able to

loop over an array using array= in a loop, or adding to a string using &=. It's the small language constructs I think that I'm really grooving too right now. Not to say I think those are the most important features - but I'm noticing that I'm real happy to have them in my toolbox so to speak.

Another one is onMissingMethod, which has made my beans much slimmer.

Also - I know I blogged quite a bit about my problems with CFFEED, but I do find myself using it quite a bit, and when it works

well, it sure is a nice feature to have.

Andy Jarrett - Andy Jarrett

ColdFusion 8 and what it means to me as a developer

ColdFusion 8 has changed quite a few of my apps since its been released and for several reasons. New tags and functions always change your next project but with CF8 came some great performance enhancement which made delivering applications even faster. Below 3 of the most used new functions in CF8 that I find hard to live without when going back to CF7.  It's not say these are the best new features, but they are the ones that have helped me out in my day-to-day developing the most:

1. Argument collections

CF8 makes working with tags that have multiple attributes with different variations like CFFile so easy to work with. It allows you to specify the tags attributes in a single structure and pass them them to the tag.


This really made working with PDF's so simple. This tag allows you to interact dynamically with PDF's, PDF forms, merge, generate files on the fly.

3. Array and structure creation improvements

Probably one of the least exciting changes (along with JavaScript operators in expression) to be added but I find it makes code neater and easier to go back over.

Noteworthy mention goes out to all Ajax and Layout tags/functions that were introduced.

Peter Bell - Application Generation

By far my favorite feature in CF8 is OnMissingMethod(). It allows me to make my APIs much more readable while still being able to synthesize most of my code.

I think the AJAX feature (including cfajaxproxy) are a great way to improve the usability and responsiveness of your applications without having to learn too much about AJAX and I love the cfimage features for manipulating images easily.

I use a lot of CFC's and have also noticed a nice performance boost working with CF8 and overall have found it to be a painless and valuable upgrade.

Scott Stroz - Boyzoid Alagad Inc.

When ColdFusion 8 was released and Adobe started its world tour touting all the new features, it was sometimes difficult to keep track of all the new functionality and how we, as developers, could leverage that functionality.  In my mind, I thought there were a few new features I would use often (step debugging, AJAX integration and CFImage), and others that I thought were cool, but really had no current need for (CFPresentation, CFExchange).  About 6 months later, I use step debugging just about every day and to be honest, I am not sure how I survived so long without it. Just about every new application I create, I am using some of the AJAX integration and I find myself using cfimage even more than I imagined I would have.  I think these 3 things are, by far, the most useful additions to ColdFusion we have had in quite sometime.

Toby Tremayne -

Interfaces is right up there.

I haven't done as much as I'd like but very useful for really big projects with distributed development

I also make major use of the fact that enterprise features are now all in standard - often I only want to use something like that reasonably lightly anyway so the threading limitation isn't a problem

I was excited about the app specific mappings till I realized that they're no good for me :) They happen at run time, but cfc mappings and extends for example are compile time. (Ed's note: application specific mappings also don't work with cfimport because of the runtime/compile time issues with

Happy to see the debugger in there, although haven't had much chance to use it - I think the thing I probably use most is the improved operators in cfscript that and cfthread.  I write a lot of actionscript these days so it's nice to have a bit more similarity with the operators :) ooh ooh and JSON! yay for JSON!

Great compilation...
# Posted By ahamad | 8/25/08 3:50 PM
Thanks, great post. My host just upgraded to CF8 and this was a great starting point for me.
# Posted By Elliott | 3/9/09 8:34 PM