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. To find out more about it officially, visit the Macromedia ColdFusion product page and the Macromedia ColdFusion Application Development Center. For more of the unofficial side of ColdFusion, 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.
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 now 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 ColdFusion MX: Fusebox 4, Model-Glue, Mach II and Tartan. The first three let you build HTML user interfaces easily on top of an OO model built with CFCs. The fourth, Tartan, lets you structure your model as a set of services and commands, as well as providing support for your data access layer and value objects.
I consider myself to be a pretty hardcore software engineer and I love ColdFusion MX - I can use all the knowledge I've acquired over the years about good software design and I can apply it to ColdFusion MX to build web applications easily and quickly.