Is ColdFusion Dead?

Yup, this one again. For literally years people have been asking “is ColdFusion dead?”, each time one of the well-known developers in the CF community would scoff “Pah! Of course not because of xyz…” – but for a while I have been thinking, perhaps there is no smoke without fire….

Not dead, but more like Duran Duran or ShedSeven…

Personally, I don’t think ColdFusion is actually dead; more like a has-been pop band, living out its days putting out the odd release for a hugely diminished yet loyal fan base. Most of the followers from “back in the day” have moved on and found something new, and the only current fans have been there since the beginning – but it’s not gaining any new ones…

I still think ColdFusion is good at what it does; it’s great for fast development of both small and enterprise applications; it’s just that it’s not as popular any more – which comes with it’s problems.

Back in the “Macromedia Days” of ColdFusion, there was a bit of a buzz about it, albeit not in the majority, it was still popular and you didn’t get blank looks from other developers when you mentioned it. There weren’t many real server-side options to choose from (compared to today), and ColdFusion managed to win a few people over with its rapid development, and enterprise features. Still, PHP and ASP were probably more popular than CF, mainly because they came without the prohibitive licencing costs – however CF was better (in my opinion).

Over time however, ColdFusion became less prevalent and is now competing against more alternatives for enterprise environments, and competing against even more for server-side developments. Within about 10 years, ColdFusion slipped from being a popular trend, to some forgotten part of the pre “Web 2.0” era, and is now mostly found in legacy systems and the phrase “is ColdFusion dead?”

Where things went wrong

The Development Community is essential

One of the most important aspects of any programming language is the community – without it, you don’t have anyone to build for, nobody pushing for new features, and a poor support community which is essential. ColdFusion had a big community (it still has a knowledgeable one), but it has shrunk and there seems to be no effort from Adobe to combat this, other than put out new releases.

The question “is ColdFusion dead yet?” is asked so often because it doesn’t seem to be putting up any fight against its contemporaries from back in its heydey, nor has it really evolved or changed much (oh sorry, it’s got rid of JRun and now uses Tomcat). Look at some of the alternatives to ColdFusion 15 years ago:

  • Java is everywhere” as they put it – and they’re right. The software is everywhere and so are the developers. It’s also a nice strongly typed language.
  • PHP is hugely popular, and used to build some of the most popular content management systems in the world (WordPress, Magento, Drupal)
  • ASP though classic ASP is arguably on the decline, this is likely because Microsoft gave everyone something new to use in ASP.NET, which is also hugely popular.

Where is ColdFusion? What massive things has it done? Well, software giant Adobe became its new owners in 2005, and since then…..well, nothing much really.

It’s greatest strength…

A huge problem with ColdFusion is that it’s greatest strength is also it’s greatest weakness – it’s so easy to pick up. This meant that during its heyday, anyone who picked it up could start writing code quickly – regardless of their ability, which made it a pretty popular choice. However, this meant that almost anyone could cobble something together and even if it wasn’t done well, would still get a result (just because something works, doesn’t mean it’s been done right). This meant that memory leaks became common, and due to a lack of understanding, this often resulted in a call to “restart JRun” with ColdFusion taking the blame – not the developer.

Other languages like Java or .NET, are complex to write but you have to understand it in order to make it work; their complexity is almost a barrier to entry which means that less experienced developers are likely to opt for something more “scripty” or actually learn it properly.

Licencing Fees…

Of course, the cost of ColdFusion licencing has also played a big part in the shrinking of the community; why would a development company pay for an expensive CF licence when it could use PHP for free? True the development process with CF is faster, but businesses would not know this without first buying the software, and unlikely to see a financial benefit until their developers were up to speed with CF.

It definitely is shrinking…

The signs are there that it is undoubtedly decreasing in popularity; the number of jobs in ColdFusion are a fraction of what they used to be, and any companies that still use ColdFusion are diversifying into more common platforms (typically seems to be .NET or Java). For me, the greatest sign of ColdFusion’s demise is the diversifying of its high profile users/bloggers, that the CF community seems to rely heavily upon for reassurance that it still exists…

  • Raymond Camden (apart from heralding new CF releases) seems to spend a lot of his time developing PhoneGap applications and is becoming one of Adobe’s faces for this.
  • Ben Nadel is becoming more involved with Javascript frameworks, though still blogging on CF.
  • Joe Rinehart (contributor of the ColdFusion ModelGlue framework) publicly announced he was moving away from CF in a thought-provoking open letter to ColdFusion on YouTube – favouring other technologies such as Grails.

Apart from these, there are many other developers (other companies, my colleagues, and myself!) that have moved elsewhere. For me, I decided to move to .NET – why? I made a conscious decision to look hard at a few other languages before making a solid decision to throw myself into another one. What are other companies using? What are the better language alternatives? How can a language be used? What is the community like? Where are the better jobs found?

Nails in the Coffin

A large part of me wanted a change, and ColdFusion doesn’t seem to change much. Nothing incredibly radical in the language happens to improve it. However, some final nails in the coffin really helped me make up my mind…

  • Frameworks are being left. A while ago there was a message on www.reactorframework.com to say that the ORM project was being “parked”, however the site is now entirely dead. Machii framework has also been “sun-setted” at version 1.8, with a message on its website to say that its original developers have all moved away from ColdFusion (what does that tell you). Finally ColdSpring, the DI, IoC and AOP framework modelled loosely on Java’s Spring. If it were an animal, a kid would be poking it with a stick by now; it’s there, but nothing seems to be happening any more (version 2 has been in Alpha release since 2011). The documentation is weak, and searches for tech info often bring up unrelated results from “www.mail-archive.com” (always a sign you’re getting nowhere).
  • Nobody Uses it anymore. It’s true. There were a handful of organisations locally that I knew of using CF, however these have moved/moving to other technologies now.
  • Adobe isn’t interested in ColdFusion, and doesn’t really seem to push it or develop it. After Adobe bought out Macromedia, it took about 2 years before the “Macromedia ColdFusion Service” was renamed (how hard could it have been?), and even 10 years on, db error messages still refer to “[Macromedia][SQLServer JDBC Driver]”. Has it really been so long since they took a look at the code, that the previous owners name is still on it? Adobe did however release a “dedicated ColdFusion IDE”, ColdFusion Builder – based upon the open-source IDE Eclipse. Apart from the logo and the price, both IDE’s are identical – they’re even as buggy as each other.
  • I want to try other things. CF is a web language, whereas others such as Java, Python or .NET can be used in other ways too. I’m interested in developing software for other uses, not just the web.
  • CF Documentation is appalling. Adobe Livedocs (whatever they call it now) is terrible, and it has been for some time. Compare this with the in-depth, ever-deep-linking documentation of Java or .NET and it doesnt even compare. The examples on livedocs have for a long time been terrible, often with comments from the public correcting them. Also, if Google takes me to a tag reference for CF8, and I then click on the CF9 link – I expect to see the equivalent tag reference for CF9 (llike .NET does) – not an introduction to CF9. The poor standard of what is supposed to be the “official documentation” is just another example of how Adobe invests minimal effort into the software and its community.
  • CFscript frustrates me so much. Things are so convoluted to write in comparison with CFML or only even possible in CFML, so why bother even bothering with CFscript if it’s only a matter of time before you have to come out of it and use CFML to get everything you want done? I would actually prefer to be able to write everything in cfscript (more OOP feel, and less markup-type coding) but things are just much easier in CFML.

Since ColdFusion MX I’ve been building large applications ColdFusion, but now the time has come to move on. The software world is changing, and CF doesn’t seem to be part of it; so many other platforms take precedence over CF, and for the future prospects of businesses/developers, it’s not a great horse to back with a shrinking community, and no new blood coming in.

Advertisements

9 thoughts on “Is ColdFusion Dead?

  1. bradwood

    This entry is only a few months old but I somehow missed when it came out. I’m curious how you can write about the current state (and future) of CFML without any mention of the entire Box library lineup (ColdBox, ContentBox WireBox, CommandBox, CacheBox, LogBox, etc,etc) or Railo Server (Now forked as Lucee Server). It seems that you only addressed the dying frameworks and slow-moving CFML engines to further your point.

    Reply
  2. mrphilmunro Post author

    It wasn’t my intention to present both sides of the argument, but essentially to present the reasons behind my decision to move on from CF. In my mind, the box libraries, nor Railo are a good enough reason to counter those for leaving; the main one being the shrinking community – and I provided some examples to backup my point.

    Another fact that illustrates the demise of CF, is that SOTR (the UK’s biggest CF event) is no more. Attendance dwindled, speakers moved to different technologies – people have moved on. The community is shrinking.

    To demonstrate a point, here are some stats on job vacancies in alternative web technologies across the whole of the UK (I had to try a couple of different job sites before I found one that returned any results for Railo).
    Railo: 3
    CFML: 5
    ColdFusion: 126
    Ruby On Rails (much younger than CF): 678
    .NET MVC: 6,000+
    PHP: 12,000+

    In all honesty, I hope that Railo does revive CFML and becomes the defacto CFML engine; in the long run it’s probably the best chance for CF.

    Reply
    1. bradwood

      Railo is for a practical intents, dead. It has been forked as Lucee and the entire development team has moved to the Lucee camp. Lucee is doing great and pushing out new stuff all the time. I also hope it continues to gain traction as well.

      Reply
      1. bradwood

        That press release is _not_ by TRC. It is by a single bitter shareholder (with minority votes) who has no real legal standing and shoddy understanding of OSS. Much of that blog entry is misleading or straight up untrue. I am close enough to the project to know that with extreme certainty, and the rest of those involved have been taking the high road in not engaging with the playground antics. (which is commendable) The bit about investments is especially laughable if you know the truth. The code in Railo was open sourced under LGPL, plain and simple. Anyone can fork it and Lucee did. The entire development team and community have moved on and that post is nothing more than sad saber rattling by the individual who was at the helm of TRC while it ran aground.

  3. mrphilmunro

    Ouch! Some savage truths there! 🙂

    The risk here, is like a company changing its address; without telling its customers about the change, there is the risk of a drop off. If Railo is dead like you say, and people don’t know about Lucee (I hardly think the Railo site will be redirecting people to Lucee), then there is the risk that people will assume the defacto open source CFML is dead (when it’s only changed to Lucee).

    Hopefully, Lucee quickly becomes synonymous with Railo so that developers who aren’t as close, understand that it is in fact just a continuation of Railo/CFML. The last thing the world needs is ANOTHER language, when really it’s not – but I understand why there was the need for a new name.

    Reply
    1. bradwood

      For sure, it was a huge risk, but I assure you it was the last ditch after all attempts at salvaging Railo had been made. Lucee has actually done incredibly well. In the State of the CF Union survey taken in March, the percentage of Lucee usage had already matched the Railo usage in 2 short months. Even NASA (who uses CF!) has switched already to Lucee.
      https://www.surveymonkey.com/results/SM-TGZK98H7/

      To be honest though, the Lucee team cares about CFML compat, but is MORE interested in marketing itself as a lightweight JVM language without the baggage of CF to the greater programming arena.

      Reply
  4. mrphilmunro

    “the Lucee team cares about CFML compat, but is MORE interested in marketing itself as a lightweight JVM language”
    …this I think is a good move.

    Reply
  5. danyims

    As someone who only casually knew CF by name, thank you for clarifying why it seemed to have just faded away from the web. Great post.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.