When we are discussing dynamic websites with our clients or just shooting the breeze with other developers at our local watering hole, I am always surprised at how much is misunderstood about the power of ColdFusion and how easy it is to leverage that power. There are a multitude of server side programming languages available to the web and this is by NO means a podcast devoted to why ColdFusion is better than your programming language of choice. Rather an attempt to reach out and explain exactly what ColdFusion is and why you might want to consider it on your next dynamic project. Besides if I open up the my language is better than yours can of worms we will be answering angry email until well into 2007…lol
With that in mind let’s jump right in:
What is ColdFusion?
ColdFusion is one of the most popular web development technologies on the Internet, originally developed by the Allaire brothers in 1995. With the success of the language they formed the Allaire Company, which was later bought by Macromedia who was in turn recently purchased by Adobe.
Don’t you just love corporations?
Like most Web languages, ColdFusion was meant to provide Web developers with a way to talk to a database and display data on Web pages. As with many such languages, in the early days, it was not the most advanced technology, but it was one of the more simplistic to implement, understand and use with a gentle learning curve.
An interesting fact; ColdFusion was the reason Microsoft released ASP, which was being developed by Aspect Software, a competitor of Allaire, Aspect Software was later bought by Microsoft because of the ColdFusion growing popularity with developers. So, in a round about way, all you ASP programmers have the ColdFusion developers to thank for your programming language!
I bet that statement will get us some email, but it’s true none the less.
ColdFusion has grown leaps in bounds since its inception in 1995 and is being used in more than 75 of the Fortune 100; ColdFusion provides the power behind over 18 million pages on the public Internet.
With the help of ColdFusion, companies like Allied Office Products, Bank of America, Boeing, FAO Schwarz, Hertz, Jaguar, and Simon & Schuster have built customer service applications, online publishing systems, e-learning solutions, business reporting applications, business-to-business extranets and more just to name a few, later on we will talk about some other companies that leverage the power of ColdFusion.
ColdFusion 8 (Scorpio) Announcement
With ColdFusion 8 underway at Adobe, codenamed “Scorpio”, it is scheduled to be released by the second half of 2007.
The focus for Scorpio is innovation. Confirmed new features for Scorpio are the cfpdfform tag, which enables integration with Adobe PDF forms, image manipulation functions, Microsoft .Net integration, and the cfpresentation tag, which appears to allow creating and integrating with live Macromedia Breeze presentations. The CF Administrator is also reported to have a new Flex 2 interface, and there will be built-in server monitoring.
How the Heck does ColdFusion Work?
ColdFusion is an application server, which in simple terms is nothing more than a piece of software that (usually) resides on the same computer as your web server that enables the web server to do some things that it normally wouldn’t be able to perform, mainly ColdFusion functions, if you want to learn more about this visit our show notes for resources about ColdFusion at enginesofcreation.com/podcast. The ColdFusion Application server simply looks for pages or templates that have instructions written in ColdFusion’s language CFML.
The ColdFusion Application server then runs the code on the page processing any special processing instructions before handing it off to the web server and then to the browser for the user to see. This all happens in the blink of an eye and if you haven’t made any programming errors the end user has a seamless experience and never knows the difference. ColdFusion isn’t just an application server however, and as mentioned previously it has a very powerful and flexible language, CFML or ColdFusion Markup Language. CFML along with some HTML tags, CSS and whatever else you like to add to your pages allows the creation of some very powerful apps.
ColdFusion is a tag based programming language based on standard HTML that is used to write dynamic web pages. Like any server side programming language it lets you create pages on the fly that differ depending on user input, database lookups, time of day or whatever other criteria you can come up with!
ColdFusion pages really aren’t that much different than your typical HTML page in that they still consist of standard HTML tags but these are mixed together with CFML (ColdFusion Markup Language) tags. Just like with HTML there are some simple syntax guidelines to use when coding in CFML, but they are not overly complicated and you would be amazed at what you can accomplish with just a few lines of CFML compared to other server side programming languages. A few of the nifty things CFML can do:
- Read, Update and Delete information from a database
- Send and retrieve email
- Send and retrieve SMS or text messages
- Process form submissions
- Use conditional processing
- Work and interact with local files
- Create sessions, use cookies and more…
This list is by NO means all of what you can do with CFML in fact it’s not even the tip of the tip of the iceberg. You can interact with XML, Java & almost every relational database system and web service. You can even integrate ColdFusion with:
- C and C++
- COM
- COBRA
- And more…
ColdFusion – Simple and Straight Forward
With little or no effort you can begin coding applications that range from auto email functions, ColdFusion Flash forms to dynamic .pdf or FlashPaper 2 documents.
EX: – Take the CFMAIL tag, this tag functions exactly the way it sounds, it sends an e-mail message that can optionally contain query output, using an SMTP server. All you have to do is pass it some values; perhaps from a form a user fills out or at the end of a checkout process to inform the user of the status of a transaction. I actually use it on our website to send an email to my mobile when we get a contact as well as an auto generated email to our office PC’s. This way I am always on top of things and I don’t miss a beat.
As we already know ColdFusion is an application server used for the development of dynamic web sites, ColdFusion also supports other programming languages like server side ActionScript.
More advanced users can use ColdFusion as a productivity layer above a J2EE platform or use ColdFusion as middleware in a service oriented architecture (SOA), generating SOAP or RESTful web services or Flash remoting.
ColdFusion can also handle asynchronous events such as SMS and instant messaging via its gateway interface, available in ColdFusion MX 7 Enterprise Edition.
If your eager and want to start right away, Adobe allows you to download a fully functional developer edition to use as a robust developing tool. The free developer edition even comes with the ability to test SMS messaging applications.
Behind the Scenes of a ColdFusion Page Request
To better understand how ColdFusion works, let’s preface with how a website functions in general. A website is a collection of files that reside on a server. The web server handles requests for those files. When a user types in a web address, clicks a link etc. to visit a web page they are asking their browser to make a request for that page. When a web browser requests a static web page such as an HTML page, the web server locates the file in the file system and then sends it back to the browser for display.
When a page in a ColdFusion application is requested by a browser, it is automatically pre-processed by the ColdFusion Application Server. Based on the CFML in the page, (indicated by a .cfm extension of .cfc), the ColdFusion Application Server dynamically constructs the page before delivering it to the web server. the Application Server executes the application logic, interacts with other server technologies, and then dynamically generates an HTML page which is returned to the browser.
Based on the CFML, the server may interact with database servers, the file system, mail servers, and potentially other applications and systems.
The output from ColdFusion can be HTML, WML, XML, and even application-specific content, such as data for Flash or desktop applications such as Microsoft Excel.
ColdFUsion Architecture Brief Overview
ColdFusion is built on a completely standards-based infrastructure; ColdFusion Server includes an embedded Java server based on the Adobe (formerly Macromedia) JRun technology. This proven infrastructure provides the runtime services for ColdFusion applications, including high-performance connectivity to databases, Internet protocols, and components; a standards-based web services engine; and resource management features like database connection pooling, thread management, and security, complete with the ability to sandbox developers for ease of project management.
In addition to providing tighter integration with Java technologies, ColdFusion also offers support for the Microsoft .NET architecture. ColdFusion includes continued support for Windows and integration with the .NET Enterprise Servers, including IIS, SQL Server, and Exchange. ColdFusion also makes it easy to integrate with applications built using Microsoft technologies through native support for the COM component model and integration with .NET web services.
On top of this powerful infrastructure, ColdFusion provides an enhanced version of the rapid server scripting environment and built-in application services that have made ColdFusion wildly popular.
Why Use Coldfusion?
Ok, now that we know exactly what ColdFusion is and what it’s made of not to mention a smattering of what it’s capable of let’s investigate why you should use ColdFusion.
ColdFusion Provides Powerful Internet Capability.
Developers, businesses and clients love options, control and power over their application and I say the more control the better. ColdFusion delivers powerful Internet capabilities within an easy-to-learn and highly productive server scripting environment that can truly empower users and site owners alike, which is why ColdFusion has a very committed and happy community that is constantly growing.
It’s EASY – Deliver applications in record time.
Intuitive tag-based language that requires fewer lines of code by handling low-level programming tasks automatically and simplifying code reuse.
Server-side ActionScript that enables Macromedia Flash developers to use the same scripting language for both client and server logic.
Complete support for new ColdFusion features within the Dreamweaver development environment, including powerful visual layout and prototyping, enhanced code editing and development capabilities, and integrated debugging
POWERFUL – Deliver a more compelling user experience.
ColdFusion provides a robust architecture and rich set of built-in capabilities that deliver high performance and scalability and enhance your applications with advanced functionality.
Fully integrated application services for adding full-text search, dynamic charting, and high-performance connectivity to Macromedia Flash clients to your applications.
Innovative architecture that delivers the scalability, reliability, and power of the Java. Platform without the complexity.
Complete extensibility via custom tag libraries, reusable components, Java/C++, and thousands of available third-party add-ons.
OPEN – Leverage the latest industry standards and infrastructure.
ColdFusion supports open industry standards and easily integrates with your existing technology infrastructure.
Highly approachable integration with all of the major Internet standards and component models, including XML, web services, Java, .NET/COM, and CORBA.
Support for developing and deploying applications on a standalone ColdFusion Server or on leading Java application servers such as IBM WebSphere.
Support for the leading server operating systems, web server software, mail servers, directory servers, file systems, and relational database management systems.
ColdFusion Is Popular and Cost-Effective
Investing time and effort into learning and integrating a Web programming language can be difficult work because creating large-scale applications can be very expensive, not to mention time consuming. Presumably, you’re going to have to live with the environment that you select for a long time. For these reasons, you want to make sure that your language will continue to grow in the years to come and that it is capable of performing the heavy-hitting transactions that you’ll require of it.
ColdFusion is trusted on some of the most transaction-intensive, sensitive sites on the Web. For example, Bank of America, the United States Senate, use ColdFusion to get their work done.
Perhaps the reason it’s so popular is that, using ColdFusion, you can do a lot more than write dynamic Web pages and shopping carts. You can do really fantastic things with standard language elements that would require dozens of lines of code or custom tags in other languages. (This saves development time which saves you money)
Efficient Data Interaction
You can use a subset of XML called Web Distributed Data eXchange (WDDX) to serialize and expose packets of data as generic XML. You can also perform file and directory manipulation, perform full FTP interactions, and create intelligent agents. It is easy to interact with LDAP servers with just one ColdFusion tag. You can create database-driven graphs and charts in Flash all through ColdFusion.
Customized Tags – Pimp my <cfride>
As in JSP (JavaServer Pages), you can create your own extensions to the language, custom tags. You can write custom tags in ColdFusion, C++, or Java.
The ColdFusion Developer’s Exchange and other Web sites have thousands of free custom tags available for download. These tags range from very simple utility tags to full-blown applications. As a developer this means that odds are you won’t have to recreate the wheel when it comes down to a development time crunch.
Cost Effective & Free for Developers
You probably know that, unlike JSP or PHP, ColdFusion is not free.
Depending on your projects needs ColdFusion can be very cost effective. As mentioned earlier Adobe offers the developer edition as free download that you can install on your local machine or development server and comes with all the features as their enterprise edition. There are tons of ColdFusion Shared hosts to meet your applications needs. Check our show notes for links to the developer edition as well as links to hosts that offer ColdFusion plans.
A few features that ColdFusion makes readily available and simple
ColdFusion is intended as a rapid application-development platform. This means that the tags that make up the language encapsulate much of the complexity of the code required to perform sophisticated operations. One tag in ColdFusion can do the work of 10 or 20 lines of Java servlet code.
Some other simple functions for ColdFusion are
Conversion from HTML to PDF and FlashPaper client-side form validation including rich forms using Flash
GUI widgets such as data grids and date pickers platform-independent database querying via ODBC or JDBC data retrieval from common enterprise systems such as Active Directory, LDAP, POP, HTTP, FTP client and server cache management session, client, and application management file indexing and searching service based on Verity K2
Who is Using ColdFusion?
More than 300,000 developers at over 10,000 companies worldwide rely on ColdFusion to build and deploy powerful web applications faster than any other technology available on the market today. ColdFusion is in use at 75 of the Fortune 100 companies and at more than 10,000 other companies worldwide. A few of the more notable companies that power their online applications with ColdFusion are:
- windowsitpro.com
- quark.com
- American Psychological Association (apa.org)
- 192.com
- ACD Direct
- Allied Office Products
- America First Credit Union
- American Power Conversion
- Amkor Technology
- Aspen Skiing Company
- AT&T Wireless
- Bank of America
- Bertelsmann
- BMW USA
- Boeing
- Casio USA
- Caterpillar
- Chicago Bears
- City of Davis, CA
- County of San Diego, Dept. of Child Support Services
- Crayola
- Dallas Stars
- DHL
- Dial Corporation
- East Carolina University
- eBags
- Eli Lilly
- eMCSaatchi
- FAO Schwarz
- First Union
- Foot Locker
- George Washington University
- Georgetown University
- GlobalSpec.com
- Goodyear
- Half.com
- Hasbro
- iHotelier
- Inmarkets Training, Ltd.
- International Speedway Corporation
- InvestEdge
- Jaguar Australia
- Legato
- The Limited
- Mayo Clinic
- Mayo Health Systems
- Michelin
- Moen
- MySwitzerland.com
- NASA Goddard Space Flight Center
- New York Giants
- New Era Cap Company
- New York State Office for Technology
- One World Alliance
- Peace Corps
- Pepsi
- PGA of America
- Pottery Barn
- Prometheus
- Quaker Oats
- Roche Pharmaceuticals
- Rugby Football Union
- Schlumberger
- Scott’s Corporation
- Seattle Times
- United States Senate
- Siemens
- Simon & Schuster
- SmartMoney.com
- Sprint
- State of New York
- Symantec
- Travelers
- United States Olympic Committee
- US Bank
- The Wharton School of the University of Pennsylvania
ColdFusion Hard Facts
More than 125,000 ColdFusion servers deployed
Estimated base of over 300,000 developers
Purchased by more than 10,000 organizations
Relied on by 40% of the Media Metrix Top 50 Web Properties
Used by nearly all major branches and agencies of the U.S. federal government
Used to develop more than 19.7 million ColdFusion pages (Source: Google)
Global network of more than 360 user groups
Official Macromedia Developer Certification Program availableThousands of third-party components and add-ons
In use at leading systems integrators, including CSC, PricewaterhouseCoopers, and Deloitte Touche.
Online Resources
- ColdFusion developer edition download
- Adobe ColdFusion Developers Center
- Adobe ColdFusion Exchange
- Ashwin Mathew’s MAX presentation on the CF8 server monitor
- Adobe Labs page
- Ben Forta’s Blog
- Wikipedia
- House of Fusion

