This week DZone releases the ColdFusion Refcard, with all the latest updates for ColdFusion 9. I got the chance to ask Terry Ryan about ColdFusion and the advantages of using it in the crowded application server market.
DZone: Hi Terry, could you please introduce yourself?
Terry Ryan: I'm Terry Ryan. I used to be a full time developer, now I am an evangelist at Adobe. I've been involved with ColdFusion for 10 years.
DZone: What is ColdFusion, and how is it related to Java?
Terry Ryan: ColdFusion is a web application server that runs on J2EE. It takes ColdFusion code written in CFML or CFSCRIPT and compiles it down to Java bytecode. It has all of the power of Java, two concise languages, and powerful abilities included in it.
It has most mainstream communication protocols built in like SMTP, POP, LDAP, IMAP etc. It also connectivity to all of the major Database systems. It can call Java classes. It can also talk with a number of commonly used Microsoft technologies like Exchange, SharePoint, Office and .Net.
Finally, version 9 now includes the commonly used Java projects: Hibernate and ehCache under the covers.
DZone: With version 9 due out soon, ColdFusion seems fairly mature. Could you give us a little background into it's history and how it's used?
Terry Ryan: Sure, ColdFusion has traditionally been used as a Rapid Application Development tool. It's used by 75% of the Fortune 500 for services as wide and varied as small intranet sites to large corporate sites to giant sales tools.
One of my favorite recent uses of ColdFusion is for slidesix.com, a presentation sharing site. It's competing with the other sites in the presentation sharing market, it includes features that the rest of them lack, and it's run by 1 guy. All of those features and functionality, and it's run by 1 guy as a side business.
DZone: Does ColdFusion still have a large user base?
Terry Ryan: Third party numbers (Evans Data Group) show us having 778,000 developers last year. Those same numbers show us tripling our community over the past four years. So I would say we have a solid, growing developer base.
DZone: How does ColdFusion compare with other app servers and web frameworks?
Terry Ryan: It is my belief that ColdFusion is the most productive tool out there.
Want to send an email, that's two lines of code plus your message.
Want to talk to a database, that's 2 lines of code plus your SQL.
But that's pretty standard, so let's look for harder things to do.
Want to talk to Microsoft Exchange, THAT's two lines of code.
Want to get data from .Net and pass it to Java, that's two lines of code.
Want to produce a PDF from your site's content, wait for it... two lines of code plus your content.
It's that philosophy of making hard things easy that differentiates ColdFusion.
DZone: What is the key advantage in using ColdFusion?
Terry Ryan: I think the ease of use, coupled with built in power are ColdFusion's advantage. That sounds like marketing-ese but it's the truth. In fact, Gartner just gave us a pretty positive report recently where they stated: "ColdFusion is nearly unique in the industry because it provides a balance of ease of use and advanced features that can support 'entry level' business unit application developers, as well as 'advanced' centralized IT development teams." Which is just a fancier way of saying what I said.
DZone: Can it interact with other servers or frameworks?
Terry Ryan: Sure, it's written in Java, and can call Java objects natively. It can also call .NET assemblies as objects as well. There have been some experiments with Java scripting tools that allow you to run Ruby and PHP through ColdFusion.
DZone: What is your top tip for ColdFusion users?
Terry Ryan: Make sure you check out Riaforge.com and CFLib.org from time to time. There are a lot of shared code and Open Source applications out there, you may be re-inventing the wheel.
DZone: What cases exist where I should consider ColdFusion? And when should I not use it?
Terry Ryan: I think you should use it for everything... But then again I work for Adobe, and am basically a professional ColdFusion fanboy. :)
But seriously, it should be considered anytime you're working on a web application. ColdFusion can handle both simple and small web sites, to large and complicated web applications. Specifically it can be useful when you need to integrate with several backend systems. ColdFusion is a great enterprise connector.