Aliaspooryorik
ColdFusion ORM Book

Why use ColdFusion?

At work, we sometimes get asked why we use ColdFusion. This is usually because another company that has quoted for the job is using PHP. As a result I wrote some copy to go on our website stating "Why we use ColdFusion". I wanted to sell the positives of ColdFusion instead of point scoring against other server side technologies, as that just leads to a flame war!

I've posted the main content below, or you can read it on the Crisp eBusiness website

What is ColdFusion?

ColdFusion is a commercial, enterprise level, application server product from Adobe. ColdFusion is designed to be a high availability, rapid application development platform for web applications.

The key points

Trying to provide an accurate picture of the merits of a technology is not easy to condense into bullet points, but as you asked;

  • Wide adoption (75% of Fortune 100 Companies)
  • Award winning (CODiE, JOLT & Intelligent Enterprise)
  • Independantly recommended (Gartner)
  • Tight integration with Flex/Flash/PDF/AIR/BlazeDS (Adobe technologies)
  • Commercially supported
  • Frequent releases
  • In-built monitoring tools

What does that mean?

It means that your web site is running on a commercial platform which can be easily scaled as your visitor numbers increase. As a Rapid Application Development language, development time is kept to a minimum, keeping your costs and timescales down.

You've heard that ColdFusion is an old language

This is a common misconception. ColdFusion was launched in 1995 since then there have been eight major releases - that equates to a new version being released every two years. ColdFusion was purchased by Adobe from Macromedia in 2007 and is used by approximately 75% of the Fortune 100 companies. A Gartner report published in May 2009, recommended ColdFusion stating that:

"ColdFusion can provide unique value that is not addressed by any competing alternative technology. Most notably, ColdFusion is unmatched by any competitor for ease of use and technical capabilities"

Is ColdFusion expensive?

Adobe ColdFusion is a commercial product, so if you wanted to buy a licence yourself then there is a cost involved. However, there are numerous hosting companies, including Crisp eBusiness, who can host your application so it is unlikely that you will need to buy a licence. Alternatively, there are two free application servers, Railo and Open BlueDragon, which can run ColdFusion Markup Language.

An interesting point to consider is that the widely adopted free PHP application server, is not designed to run business critical applications, instead you should use the commercial version. To quote from the Zend web site:

"The community edition of Zend Server is a free, simple PHP Web Application Server environment that is ideal for running non-critical PHP applications or just for experimenting with PHP."

It is worth asking yourself if you want to run your web site on the cheapest solution you can find or consider it a sound investment to pay a little bit more. As a commercial product, ColdFusion has to be good to compete against what are perceived as the free alternatives.

I'd be interested to hear any feedback.


37 comments

  1. "Frequent releases"... frequent, as in "a new version every two years"?

    Comment by Wim – August 17, 2009
  2. I wrote a similar article a month ago. Although it's in german, you might be interested. You can find it at www.samelis.ch/blog/mischa/index.cfm/2009/7/16/why-we-use-coldfusion

    Comment by Mischa Sameli – August 17, 2009
  3. @Wim, haha - I see what you mean! I'd argue that a major release every two years for a server platform is actually relatively frequent, but I might change the wording. Thanks for the feedback.

    @Mischa, interesting read. Thanks for the link. I think your post is aimed more at why you as a developer choose ColdFusion, whereas my post was aimed at why a client would want to choose a company that uses ColdFusion, or at least not discount them because of lack of understanding!

    Comment by John Whish – August 17, 2009
  4. @John You're right, that's my perspective, because I'm getting asked by clients very often why we use this old language. And clients are never ever interested in my answers. They aren't interested in any answers, because it's not their question. That's the influence done by other agencies. I mean, who cares about frequent releases, or commercial support, or in-built monitoring tools? Clients? I don't think so. It's us, the developer community. Clients are interested in solid (and cheap) software. And the price is the biggest Point for our clients in europe, I think. The price and some very cool features like the office-integration goodies from cf9.

    Comment by Mischa Sameli – August 17, 2009
  5. @Mischa, I agree with you. I think that price is a key point, which is why I mention that PHP for business critical applications is not free, also Railo and OpenBD largely nullify that argument. A lot of the bad reputation that ColdFusion has is from before Coldfusion MX was launched so we as a community need to address these misconceptions. I'm all for anything that promotes CFML!

    Comment by John Whish – August 17, 2009
  6. "I think that price is a key point, which is why I mention that PHP for business critical applications is not free, also Railo and OpenBD largely nullify that argument."

    Railo and OpenBD don't nullify the price issue because, as far as I am aware, they are unproven for critical and large scale applications. Until a large and busy site uses either of these two platforms, enterprises will be very hesitant to adopt them and so price may still be a blocking factor in adoption.

    I love developing for ColdFusion but it is massively expensive; especially when running on Sun hardware as you can't use the Standard edition and have to go for the full Enterprise version.

    A large, or even medium scale enterprise more than likely won't be using a hosting company either as they'll run all their own networks themselves.

    George.

    Comment by George Bridgeman – August 17, 2009
  7. @George, thankls for the comments.

    When I said that the argument was nullified, I was referring to a client who wants to go for the free PHP server version because of cost, then they could go for Railo or Open Blue Dragon instead.

    I don't know, but I would have thought that a large scale enterprise company wouldn't be too concerned with the server costs, especially as this would be offset by the in-house developer training time/cost being potentially lower.

    Comment by John Whish – August 17, 2009
  8. Good point about PHP. An "enterprise" version of PHP costs from $1200 to $3200 per year but that does include a silver, gold or platinum support subscription which is still hugely cheaper than Adobe CF with a similar support subscription.

    Zend charge $600 for a developer license of their php server. Ha, at least Adobe don't charge a bean for a CF developer license. (But then again that $600 includes 1 year of web/email support for developers which sounds like a reasonable deal since getting support directly from Adobe is either difficult or expensive).

    I would like to know how old this "75% of Fortune 100 companies" fact is. I first saw that years ago, perhaps it needs auditing again and a date quoted along side. The 100 list is not static and neither is their choice of IT I imagine.

    John, I agree that your "Why ColdFusion" reasons need to be more client focussed. Cost, sustainability and reliability are usually their top concerns. Releases and server monitoring are probably in their "why would I care?" category. ;-)

    Comment by Gary F – August 17, 2009
  9. @Gary, I agree with your comments. My main reason for mentioning the Zend server was to show clients that PHP whilst considered to be free isn't necessarily. I'm not saying that PHP is bad or the wrong choice, I just wanted to address the perceptions that are out there!

    The 75% quote is in the ColdFusion Evangelism Kit which was published in September 08, so it is coming up to a year old. I'm afraid I don't have any newer statistics to say if this has changed.

    Clients do care about server monitoring, but usually only when they find out that their site went down all weekend!

    Thanks for the comments :)

    Comment by John Whish – August 17, 2009
  10. I work for a large enterprise company and the current price point for CF is not a huge factor. Things that are factors, the ability to find developers, the image it has in the business world, the learning curve for the administrators. Sure CF has always been easy to learn the language. However you could not run a production site off the default install. There was a learning curve for admins. It got some really bad raps due to bad configurations and people blamed the platform instead. Adobe needs to work hard to publish performance numbers and make better choices for the install defaults. It has gotten better recently. Also CF being taught in colleges would help. Seems like that is changing with the new educational licensing. Great work.

    Comment by ryan tj – August 17, 2009
  11. @ryan, excellent points. Compared to other communities, the ColdFusion developer base is small. Hopefully introducing the the free education licence will address this problem.

    I think tuning server configuration for performance is still something of a mystery to most developers (I'd include myself in that). Perhaps a "wizard" when you install ColdFusion which picked better defaults would be a good idea. Something which asks, the expected number of visitors, how many queries/cached data etc.

    Comment by John Whish – August 17, 2009
  12. @John, I like your idea about a wizard to finalise the CF install by adjusting both CF Admin settings and Java/Jrun based on answers to some simple questions.

    Perhaps if you re-run the wizard at a later date it can scan performance and logs files to suggest optimised settings for you based on recent real-world activity on your server.

    What's the effort and cost in building that wizard weighed up against how much more stable it would make 1000's of CF sites and incrasing CF's reputation? I'd say that wizard would be a real winner for everyone, even if it's not as good as calling in an optimisation expert, it's better than using the default settings.

    Comment by Gary F – August 17, 2009
  13. As far as "old" language is concerned it's worth noting that PHP 1.0 appeared in 1995 and PHP 2.0 appeared in 1996!

    Ruby 0.95 appeared in 1995, Ruby 1.0 appeared in 1996. Python pre-dates Ruby. Erlang, modern darling of the distributed functional crowd? Dates back to the 1980's!

    So CFML is not "old".

    @George, Railo powers some very large and extremely high-traffic systems - expect to read more about that on the Railo website shortly!

    Comment by Sean Corfield – August 18, 2009
  14. Hi Sean, maybe "old" is the wrong word. Some clients have heard via other development houses and so called consultants, that CFML is a dead language, but I didn't want to say "dead" in my post!

    Looking forward to the reading the Railo case studies. So far clients haven't heard of Railo or Open Blue Dragon or even CFML, which is why I entitled by post "ColdFusion", but I really hope that Railo makes CFML into a more widely adopted language.

    Comment by John Whish – August 18, 2009
  15. @Gary, I think scanning the log files and tweaking would be incredibly difficult, but would certainly be very cool!

    After speaking to some other people the idea of an set-up install has already been mooted, but I'm pretty sure that it has not been adopted for the CF9 release. Perhaps Sean and the guys at Railo would like to set the standard? :)

    Comment by John Whish – August 18, 2009
  16. Hi John, how seriously would you mind me "ripping" off your text, translating it into Dutch and adapting it to my needs? I like the way you address several issues and highlight both the customer and the eCrisp side. Having a starting point is always easier than inventing the complete text by oneself ;-)

    Comment by Sebastiaan – August 18, 2009
  17. Hi Sebastiaan - go for it. I'm always keen to see CFML promoted and some myths dispelled :)

    Thanks for asking!

    Comment by John Whish – August 18, 2009
  18. Hey, why don't you make "old" a virtue? I'm an "old" ColdFusion developer and sell myself as having wisdom, experience and an accountable track record :-)

    Comment by dickbob – August 19, 2009
  19. I like your thinking dickbob!

    Comment by John Whish – August 19, 2009
  20. * Wide adoption (75% of Fortune 100 Companies)

    Yep, because small agencies use it, that 75% of companies surely uses other technologies as well and CF is not the only one they use

    * Award winning (CODiE, JOLT & Intelligent Enterprise)

    Never heard of those...

    * Independantly recommended (Gartner)

    Depends on the weather/season/who writes it, you name it, they also say that CF has decreasing number of developers, why invest in it when in 5 years there will be no developers?

    * Tight integration with Flex/Flash/PDF/AIR/BlazeDS (Adobe technologies)

    Yeah, but no NULL values which makes working with CF and Flex a PiTA.

    * Commercially supported

    Money, money, money...

    * Frequent releases

    Yeah, right. Every two years.

    * In-built monitoring tools

    That don't work when the server hangs.

    "It means that your web site is running on a commercial platform which can be easily scaled as your visitor numbers increase."

    By buying the license. Money, money, money...

    "As a Rapid Application Development language, development time is kept to a minimum, keeping your costs and timescales down."

    Yep, however testing is still mostly done through cfdump and cfabort. So you may think your app is working but it is not. Most CF developers have no clue what UT is.

    "This is a common misconception."It is, CF is dead language. Just notice how much PHP, Ruby, ASP.NET, java evolved since they were introduced. This is not true with CF. ECMA style operators? Creating structs and arrays using short notation? Someone is playing catch up.

    Comment by douchebag – September 03, 2009
  21. Great post, and great comments. I'll agree with several of the commenters who expressed an opinion to deal with the dollars and cents side of the argument.

    Most client who are tech-ignorant enough to ask "why" aren't going to care about issues such as monitoring, release cycles, awards, or integration possibilities. Most will want to know two things because they are looking at their budget for the current fiscal year:

    1. How much money is it going to cost me NOW to develop this solution (i.e. can I fit it into my budget)?
    2. What are the ongoing support costs (i.e. how much will I have to add to my yearly budget)?

    Any firm confronted with answering questions has to have all the information, not just license fees and hosting costs. Showing customers the total cost of development (time + fixed costs) and maintenance will sell your solution.

    I like to make the point when having this discussion, and someone makes a comical comment such as, "but PHP or .NET are free", is that nothing is free to implement. The technology's implementation is where the costs are determined.

    You can build a web application using C++ if you like. Acquiring the technology doesn't cost you a dime, but it would sure cost you an arm and a leg to implement the solution with it.

    Comment by Steven Brownlee – September 03, 2009
  22. My only beef with ColdFusion is more a beef with Adobe. When people are starting out and need to learn web development, they get a web hosting provider and are given the choice (usually) of Windows/ASP or Linux/PHP. Adobe (or Railo) needs to give their product to GoDaddy & the other big hosting companies, provide some killer service for them, so there is a third option and it needs to be free/cheap for the end-user. CF is superior particularly when it comes to all those things that trip up new web developers. They don't end up with exposure to CF until much later, if at all.

    Comment by JohnO – September 03, 2009
  23. CFML is the glue between systems. Got java code that works use it via cfml, got .NET code use it by cfml got c++ code that works use it by cfml... Our application is huge we take the best bits of multiple languages and use those.

    We have some complicated encryption algorithms we tried to mimic this in cfml without much success so we wrote it in c++ and call it via cfexecute. We jump in and out of java and even have some .NET integration.

    For a large app a few grand for a application provider is a small investment based on "our" return.

    For smaller sites or a cheaper approach look at Railo and OpenBD. I'm amazed at Railo and how fast I can get applications to customers for free. I have also been looking at OpenBD's Google App Engine implementation wow it's amazing and really opens doors.

    In the end I'll code in the language the job requires but when I have the choice I choose CFML.


    @douchebag No nulls in CF does suck a bit but we can work around that :) and BlazeDS ( java ) and Flex/AS have nulls.

    Comment by Paul Kukiel – September 03, 2009
  24. @JohnO - the problem with hosting companies is the same issues @ryan tj mentioned.

    All hosting companies are familiar with PHP, tuning, etc.

    Hosting CF introduces a whole new set of issues: Server settings, security, tuning, etc. Plus I imagine many of the common admin tools like Plesk, etc don't play well with CF. Can they learn/develop all that and still offer CF hosting for the same cost as PHP? Probably not.

    Comment by Jim Priest – September 03, 2009
  25. @Jim Priest -- Agreed and why I mentioned Adobe needs to provide some killer service to GoDaddy (or others) to provide a usable install for the average hosting customer.

    <imho>Investing time to learn PHP and ASP comes a lot easier when its free with nearly every hosting package out there. Until CF is offered at a free or near free so learners can be exposed early to it, then it will always be a hard sell later on.</imho>

    Comment by JohnO – September 03, 2009
  26. @JohnO Railo is a free Open source CFML engine that you can use in production!

    www.getrailo.org

    Comment by Railo – September 03, 2009
  27. @Jim, more to the point, CF hosting requires Java expertise rather than PHP expertise. Cheap Java hosting is available from a number of companies but in general shared hosting is going away because the margins are too small and the complexities are general too high to maintain adequate performance. VPS-based offerings are coming down to shared prices (which is part of this shift).

    One of the benefits Railo offers for hosting companies is that each web application context (user account/site) is completely sandboxed automatically but also has a complete Web Administrator, allowing each user account to manage all their settings, including data sources, mappings, mail server setup, performance tuning and aspects of how the engine behaves (scope lookup, Application.cfc handling and so on).

    Comment by Sean Corfield – September 03, 2009
  28. @JohnO, the problem with GoDaddy isn't due to Adobe but a core issue with GoDaddy themselves: their technical support just plain ol' sucks. The poor folks on the end of the phone just don't know jack about programming or the configuration of the environment.

    GoDaddy have also locked down the CFMX7 sandbox so much as to make it almost unusable and you cannot configure anything yourself.

    To be honest, GoDaddy's cheap CF hosting does a disservice to CF because people think the problem is CF. I've moved several people off GoDaddy because of continued problems with their CF setup. I have just one CF site still on GoDaddy and its use of CF is extremely minimal.

    Comment by Sean Corfield – September 03, 2009
  29. This is not a cheap sales pitch just a factual statement there is a lot of material out there on tuning/setting up to CF to really perform well. Steven Erat posted a good deal on this and at my blog there are many concrete examples from real-world situations.

    www.cfwhisperer.com

    Comment by Mike Brunt – September 03, 2009
  30. I personally feel that unless CFML servers start including something more advanced than just 'the current tags in cfscript' people will continue to have a hard time pushing it to clients. ORM is fine but other languages have it so it isn't anything to 'wow' a client with.

    If on the other hand it included server side javascript like Jaxer only with the power and function of the CFML server, then it would be the greatest platform EVER. In my opinion. Especially if there were better enterprise level developer tools and if there was serverside javascript then Aptana would no doubt be able to include it in their great IDE. Oh what happy days would be had by all....

    Comment by Marcel – September 04, 2009
  31. Adobe purchased Macromedia in 2005, not 2007.

    Comment by Brian Meloche – September 04, 2009
  32. As always this topic interests me because my opinion is that ColdFusion is an elegant solution. I have humbly come up with some ways to describe the language in layman's terms. If you are familiar with Adobe Flex and MXML you know that MXML is basically AS3 code functions provided by the Flex library to help speed up development. You simply past arguments to these MXML tags through attributes and voila. Like Flex and MXML, CFML basically does the same thing. It meshes JAVA with EL to form CFML like a namespace. CFC's are essentially JavaBeans that can be written in a simple markup language when following simple rules. ColdFusion has a number of pre-built tags in its library that handle a number of common required business logic functions.

    So why do I CF? I have been developing in CFML for about 5 years now. I began developing in ASP, VBScript and PHP in the late 90's. Then, I got a full time job in an enterprise environment. For the first time I recognized that I needed to develop like a grown up. Meaning, I recognized that the enterprise required that I develop scalable applications and that they were built in JAVA with MVC. Let's face it, JAVA is the language of enterprise i.e.: Oracle, IBM. I know C interfaces for Oracle and IBM are out there but C is mostly a Windows thing and it seems that JAVA is the dominant language of the big 3rd party enterprise solutions.

    So, as a web developer what options do we have in the enterprise when JAVA is the dominant language? I can adopt a convoluted approach and spend countless hours developing or extending JAVA when I just want to get the job done. This is why Ben Forta and friends have created a great thing in ColdFusion. Just think about it, Flex is really a spawn of ColdFusion methodology.

    The real argument here is - time. ColdFusion boasts itself as "Rapid development", "Do more with less"; this is true in my experience. One important but not often considered point, ColdFusion enables you to trust the platform. Question...How many security or update patches have you had to install for ColdFusion? 1 or 2 maybe, limited. So it's a solid solution right? Another question, which versions of open PHP are you using, are they backwards compatible and scalable, who exactly manages this code, which interface do you use? With a ColdFusion install, from server to server you know what you're getting, there is no question and it can be deployed in minutes. I sleep well at night knowing that a competent well paid developer has designed my server-side technology and I'd always pay for that piece of mind. It's also great to know that my JAVA/jsps can also be run on my ColdFusion server too. In my 5+ years of enterprise development I see others struggling still leveraging convoluted methods to simple problems, while I sit back and move forward and provide real solutions with ColdFusion.

    As for Zend, unfortunately, it can be more expensive; I researched it prior to moving to ColdFusion because I was a PHP guy. Why would I want to introduce Zend to my inherent enterprise (JAVA) environment and have to Java Bridge when ColdFusion is JAVA? Also, at Zend like Adobe, they have to pay their guys. I'm not trying to rock the boat, code is code, but in my experience PHP is much more convoluted from the install to the language syntax. CFML is easy and elegant.

    Other pro-ColdFusion points to consider. Scalability, ColdFusion Enterprise has a number of easy interfaces to manage and maintain servers because it is deployed in ".war" packages like JAVA. In CF Administrator, I can easily package and deploy multiple instances of my server, how cool is that! ColdFusion can also act as a native Middle-tier server for RIA's, FLEX and AIR. It's nice to see diehard JAVA developers adopting these new technologies as a viable alternative to JavaFX. Flexibility and ease, ColdFusion is extremely flexible and can make you life easier by eliminating all the extra work from install to administration of your web application servers.

    Let's face it Adobe is doing things right. They are bridging design and development, spearheading innovation, and Flash/AS3 is the most innovative platform/language on the web. With the Flash Player having the highest percentage of penetration of any player in the world, come on.

    I challenge any other language to produce as rapidly and robustly as ColdFusion, while continually having a completive edge in innovation in the web development spectrum. Don't get me wrong F/OSS is a great thing, but do you work for free; is there no room for intellectual property? While the strictly F/OSS followers slowly develop apps I will continue to release them in half the time. It was a no brainier to introduce it to my enterprise environment and there shouldn't be any questions for you to do the same. But hey, this is just my opinion.

    Comment by Chad Fraser – September 16, 2009
  33. "While the strictly F/OSS followers slowly develop apps I will continue to release them in half the time."

    There's a 'rule' that's been kicking about the software engineering industry for about 40 years. I learnt it from my Dad (who learnt to program when computers took up entire rooms). It's called the 40-20-40 rule. It goes thus:

    40% of your time should be spent planning your design.
    20% of your time should be spent coding.
    40% of your time should be spent testing.

    It's true regardless of your chosen tool chain. If you're releasing apps in 1/2 the time then you're either skimping on planning, or testing, or both. That is definitely *not* enterprise level development.

    Comment by Chris Neale – September 17, 2009
  34. This is so well written, I'm having a hard time putting it into original words. Would you mind if I used this with some modifications on my own studio site?

    Comment by amclean – November 01, 2009
  35. @amclean. Sure, go ahead. Thanks for asking.

    Comment by John Whish – November 02, 2009
  36. You can find some small demos running on Open BlueDragon under Google App Engine at bit.ly/9oOMIy

    Comment by Matt – May 25, 2010
  37. I know this is an old thread but I liked it. Our version of 'why ColdFusion' is here www.aspevents.net/Content/Adobe-ColdFusion
    It's aimed at middle managers who get the third party inaccurate opinions.

    Comment by Arran – October 11, 2011

Leave a comment

If you found this post useful, interesting or just plain wrong, let me know - I like feedback :)

Please note: If you haven't commented before, then your comments will be moderated before they are displayed.

Please subscribe me to any further comments
 

Search

Wish List

Found something helpful & want to say ’thanks‘? Then visit my Amazon Wish List :)

Categories

Recent Posts