Let's not Dilly-Dally: ColdFusion has its Merits

by Simon. Average Reading Time: about 5 minutes.

ColdFusion is 13 years old. That make makes it the daddy of the web world! It does not make it any less hip or useful than the relatively new kids on the block.

Take this scenario. A company I once worked for had what can be described as a business directory built upon a licensed, yet bastardised, version of a popular ColdFusion-based CMS. It didn’t work that well! The decision was made to redevelop the application in Java. It took two years to reach the same level of functionality! What happened next? Ruby-on-Rails is what! The rest is history and beyond the topic of this post.

So, in effect, the application almost went full-circle in its development paradigm — both ColdFusion and Ruby-on-Rails can be considered Rapid Application Development environments, Java, certainly not. Why did the decision makers not stick with ColdFusion and put time aside to actually build it properly in the first place? To put it simply, they lost faith in ColdFusion; it was largely mis-understood.

The weakness of every programming language does not lie with the language itself per se — albeit it can have an important influencing factor — but rather with the ability, or indeed inability, of the developer to leverage the language in the most efficient and optimal way.

ColdFusion, like every other programming language has had and I’m sure still does have its fair share of poor developers; those people simply working with it as a means-to-an-end, rather than those passionate about the language, those people programming without understanding the fundamentals of programming or the implications of their poorly written code. This is apparent from .NET to Java, ColdFusion to Ruby, JavaScript to ActionScript.

Let’s not dilly-dally, bicker or insult one another about which is best, which one is dying and which one is not worth the computer it is compiled on. What is important is to understand the merits of each language and decide which one best suits the application, not only in technical terms, but also in terms of time-to-market, cost of development, availability of a skilled workforce etc.

ColdFusion, whether rightly or wrongly in some people’s opinion, can sit proudly amongst its peers and provide a truly compelling alternative.

Here’s how (in no particular order):

  1. Low Total Cost of Ownership – frequently, ColdFusion is described as expensive, it simply isn’t especially if you consider the natively supported functions. But to put it bluntly, if your company cannot afford the cost of ColdFusion standard, or indeed ColdFusion hosting, you have bigger things to worry about regarding the profitability of the company; you won’t be able to afford much of anything! The problem becomes not the product. ColdFusion applications are quicker to develop and developers are vastly cheaper to employ than their peers in Java or Ruby, just look at ITJobsWatch for examples.
  2. Rapid Application Development – ColdFusion vastly simplifies tasks. What would take other languages numerous lines of code to produce is efficiently encapsulated either in a tag or function or as a setting in the administrator. This is a simplistic yet indicative example: where else can you connected to a database simply with one line of code or indeed simply by name? ColdFusion changed the idea of specifying development time in terms of months and years to weeks and months or small features a matter of hours and days. Simplicity is not the mother or all evil. To be pragmatic, simplification reduces costs.
  3. Rich Internet Applications – ColdFusion may or may not have pioneered the RIA paradigm, but it has played a significant supporting role to Flash and now Flex. ColdFusion natively supports Flash remoting, providing the all important data access tier.
  4. Platform Maturity – ColdFusion 8 is built upon the latest version of Java (1.6). Along with internal improvements to the ColdFusion application, this has afforded ColdFusion unprecedented speed improvements and stability.
  5. Language Maturity – with each major release of ColdFusion comes many language enhancements added to the core. This means that previous addons, for example image manipulation, which came at a premium are now standard. Adobe and other companies that produce CFML engines are now participating in a CFML advisory committee, which aims to set standards for the core language. This is not only a sign of maturity but a letter of intent by the industry that will mean your application will work on any engine, assuming no proprietary functionality is used.
  6. The Ultimate Middleware – ColdFusion sits comfortably between any backend and front end system. Be it interfacing with a host of databases, Java, .NET, COM, Corba or connecting to classic HTML or rich Flash, Flex and AJAX frontends with little or no configuration.
  7. Feature Rich – what other web technology natively supports PDF generation, charting, enterprise-level search, AJAX, image manipulation, Atom and RSS creation, Zip and JAR file manipulation, a server monitor, Flex integration, encryption libraries, all important database connectors, webservice creation, XML manipulation, inbuilt reporting application (similar to Crystal Reports), email, FTP to name but a few? I hazard a guess at none, unless you’re happy to pay a premium.
  8. Platform Independent – since ColdFusion 6, when Macromedia redeveloped the entire application in Java, ColdFusion has been platform independent. You can install it on practically any machine.
  9. OpenSource Alternatives – BlueDragon and Railo are both significant alternatives to Adobe ColdFusion and both have opensource alternatives, the latter of the two having recently joined the JBoss community. Adobe are also considering providing a free edition to academic institutions.
  10. The Future – many commentators have mentioned Hibernate as a significant addition to the next release of ColdFusion, version 9. But having seen the prerelease notes, that is not all that will be added. Alas I’m under NDA, but rest assured, there is going to be a significant intake of breath when developers get hold of the next release. ColdFusion 8 was firmly geared towards middle management with fuzzy additions, ColdFusion 9 is set to re-address the balance with compelling language and functionality enhancements.

ColdFusion evangelism needs to step up a gear! Adobe certainly doesn’t afford much marketing budget to the product, prefering The Community do the hard work. It is not always easy convincing the decision makers that ColdFusion is a good product of choice, without Adobe’s unnerving support, but we have to work hard, break down those barriers, encroach on events outside the comfortable sphere of the ColdFusion world and demonstrate ColdFusion’s match-winning ability.

ColdFusion isn’t dying, it’s simply niche. Every niche has its place.

UPDATE: If you would like to view the ensuing debate regarding ColdFusion prompted by Aral Balkan, feel free to do so. This post should serve as a positive reminder of ColdFusion’s virtues, alongside the need for a balanced and polite debate.

This article has been tagged

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Other articles I recommend

ColdFusion (CFML) Engines

CFML is the name of the scripting language used by ColdFusion and several alternative server environments. It stands for ColdFusion Markup Language and is similar to HTML in appearance in that it uses tags. CFML is the code that powers ColdFusion, a program available from Adobe (formerly Macromedia), as well as such engines as BlueDragon, IgniteFusion, Railo, Coral Web Builder, and other web development platforms.

ColdFusion Becomes a Teenager

Today ColdFusion moved into the next stage of its life and became a teenager, hopefully not a precocious one!

New Atlanta Open-Sources BlueDragon

New Atlanta is announcing today, at CFUnited Europe – a ColdFusion Markup Language (CFML) technology conference in London, U.K.- that they will be creating and distributing a free open-source Java Platform, Enterprise Edition (Java EE) version of BlueDragon, their ColdFusion-compatible web application server.

  • Re: Adobe are also considering providing a free edition to academic institutions.

    Do you know any more about this? Working, as I do, in higher education, this would be simply the greatest thing..ever.

  • Dutch Rapley
  • Pingback: Aral Balkan drop the bomb « cfbollocks()

  • @cfbollocks (the pingback URL to a WordPress.com blog) I think you have missed the point of my post. I wasn’t simply extolling the virtues of ColdFusion over any other programming language. The key point is that people shouldn’t berate languages that they are not overly familiar with, they should take each one for the value they can deliver. If the preference is PHP or Ruby or Python, so be it.

    Simply saying one language is rubbish or a waste of time, in an attempt to emphasise the virtues of one over the other is not productive and hints at the very tabloid nature of the discussion.

    I certainly don’t condone the use of some of the language used against Aral in his post. He is entitled to his opinion and people should hold him to account in a manner that does not resort to base language.

  • Nick

    “Alas I’m under NDA, but rest assured, there is going to be a significant intake of breath when developers get hold of the next release. ColdFusion 8 was firmly geared towards middle management with fuzzy additions, ColdFusion 9 is set to re-address the balance with compelling language and functionality enhancements. ”

    I can’t wait to see it.

  • Mango

    reason #1, to go into how coldfusion developers are cheaper than ruby on rails developers is conveniently dismissing the fact that coldfusion, based on reason#1, is dead as a web development language. coldfusion needs to go away and people need to learn real frameworks and languages like ruby (rails), python (django), or c# (asp.net). I mean seriously, coldfusion?

  • @Mango Damned if you support ColdFusion, damned if you don’t!

    If I remember correctly, Ruby languished in obscurity until Rails came along and saved its day in 2004/2005. Should you therefore include it as a language of choice?

    ColdFusion, granted, has had its bad times — version 6 was meant to be an epiphany for the product, but its redevelopment was implemented badly — but it remains a viable product through dogged perseverance, ease of use and compelling features.

    It is the sole responsibility of the developer to build the framework, application or website using the most suitable tools available. If that is ColdFusion, PHP or Ruby it makes little difference. All I hear are comments like ColdFusion is dead, ColdFusion is a waste of time, none of which are backed by fact, none of which would stand against Jeremy Paxman, let alone someone even less knowledgeable on the subject, in a debate!

    I see no valid reasons at all why ColdFusion is dead, a waste of time or any other negative comments that wish to be aired.

    Wow!! Diatribe over and done with … and I thought I wasn’t that much of a ColdFusionphile! 🙂

  • Proba

    Coldfusion is the fastest way to build RIA! It’s just the best for building web sitetes in html.
    I hope that coldfusion will last.

  • In regards to Mango’s comment, I’m not sure how CF would be dead if indeed all it’s missing is a good framework. Seems a bit like writing off a car simply because of the wheels it comes with off the dealers lot. What’s keeping a robust framework – again assuming it doesn’t already exist – like Django or Rails being written for CF? Like Simon mentioned, ruby was essentially an obscure, nearly unused language until a couple brilliant guys came along and built a wonderful framework for it. As far as I can tell one of their primary factors in picky ruby was simply that no one was using it. To me that shows not the power of the language itself but more so what a good framework can do.

    I don’t get the python thing. Django seems decent enough. But my over opionated two-bits on python is that it was created not as a web application language but years ago by some fancy pants unix admins who wanted to look cool by using something other than perl. Sure, there’s a lot more to it and you can do some nice things. But I fail to see how it’s any easier to to use or any better.

    I think the real problem with all of this language sucks and this is great stuff is that while it does have some merits, a lot of it nothing more than a bunch of geeks having the Calvin-pissing-on-a-Ford/Chevy/Dodge sort of verbal rant.

  • simon

    I work for a large organisation running Austrlian goverment projects, we are all split into teams working on various platforms and languages and it is always funny to see the other guys marvel when I (in coldfusion) can produce a project from start to finish in about 1/10 of the time they can.

    I always laugh when I see comments like CF is dead when Australian goverments are throwing more money at CF then every before.

  • Some truly interesting information, well written and broadly speaking user genial .

  • found your website perfect for my needs. It contains wonderful and helpful posts. I have read most of them and got a lot from them.

  • Thanks for your comment and for your actually constructive points. 
    I agree with you that you may not have to use actual controversial terms to get that sort of engagement.