ColdFusion

Is it a language? Is it a set of application services (searching, graphing, database query caching)? Is it an application server? Yes, it's all of those really. Check out my ColdFusion Resources page, my Mach-II pages, my thoughts on Fusebox and my blog - An Architect's View - for up-to-date hints and tips.

Coding Standards

It goes without saying that coding standards are a good thing, doesn't it? The Macromedia Web Technology Group have published their ColdFusion MX 7 Coding Standards on LiveDocs, along with their Mach II Development Guide. These were both recently updated to reflect Blackstone (aka CFMX 7) best practices.

What I think of ColdFusion

If you've been following my career, you'll know that after my extensive C++ work, I ended up in the Internet industry building dynamic web sites with BroadVision and that led me to Macromedia. Early in 2001, Macromedia acquired Allaire and became the owner of, amongst other things, ColdFusion. My work has led me to become increasingly familiar with ColdFusion and, despite an initial scepticism, I find that I really rather like it!

At first, it looked a lot like early BroadVision because of its tag-based nature but that is deceptive. Unlike BroadVision, the tags were well-designed and generic and, most importantly, they separated presentation (HTML) from logic. ColdFusion was easily extensible too, since new "custom tags" could easily be created within ColdFusion itself.

With the arrival of ColdFusion MX (June 2002), you can define ColdFusion Components (CFCs) which provide a way to encapsulate data and functions in an object-like manner with inheritance. You can also interact with Java much more easily. The expressiveness of ColdFusion MX now lets you take advantage of several well-known software design patterns to help you improve your applications. There are also several extremely cool and well-designed application frameworks available for CFML: cfWheels, ColdBox, Fusebox, FW/1, Mach-II, Model-Glue and many others.

I consider myself to be a pretty hardcore software engineer and I love CFML - I can use all the knowledge I've acquired over the years about good software design and I can apply it to CFML to build web applications easily and quickly.