ColdFusion Is Not Free Software

20 Jul 2006

I should preface this post-- this is not a critique on the licensing model provided by Adobe or New Atlanta, simply a post about why ColdFusion is not "free" in the big picture of software. While CF is typically my tool of choice for web apps, I'm very pragmatic and not afraid to admit it has weaknesses just like any other language, etc.

I think those that claim ColdFusion is "free" do not understand what the commonly accepted definition of free software is. Any development copy of ColdFusion MX or BlueDragon which does not have a paid license is Crippleware in Freeware's clothing, and I'll elaborate on why that is following the explanation of what free software is.

What is free software? Free software IS NOT freeware, and freeware IS NOT Free software. Free software is free as in speech, not as in beer. Free software means I do not have to pay for a license to use the software, the source code is included and I can modify it and use it as I see fit. For a more elaborate description of what free software is, read the Free Software Definition, or even the Wikipedia definition.

Examples of free software:

  • PHP

  • Python

  • Ruby

  • Perl

  • Linux

  • OpenOffice

  • .. and an exhaustive list can be seen here

So if ColdFusion is free, why is it not listed there? Because it is not truly free software. I can't download the source code for it and build it on my machine, and unless I pay for a license for it, I can't use a CFML server in production with all features. Basically, it's impossible for me to host a CFML based website at home without limitations, so I have no desire to do so. As such, it's very unlikely any sites I host at home will ever be ColdFusion even though it's what I have primarily developed in for the past 8 years. Adobe's development version of ColdFusion MX (as is the Freeware version of BlueDragon) is crippled freeware (crippleware) as some features are limited.

Freeware is software released at no cost which may also have licensing restrictions or feature restrictions (but certainly not always). Freeware with limited functionality compared to the "full" version can also be called Crippleware.

Other examples of commercial crippled freeware:

  • SQL Server 2005 Express

  • Winamp

  • Google Earth

  • Oracle XE

Not to say that any of those pieces of software aren't useful, I'm just calling them what they are-- crippled freeware.

Not to pick on Ray, but he provided a good example of using the "ColdFusion is free" argument incorrectly in the comments of the linked post:

The dev tools are now as free for CF as they are for PHP or Ruby.

This is not true. While I can develop in ColdFusion without paying any money for software as well as use some free software to write CFML code, I cannot download a CFML runtime and modify it or even look at its source code as I see fit. That said, ColdFusion development tools are in fact not as free as PHP or Ruby. We won't even get into how you can't deploy a fully functional ColdFusion runtime without buying a license, or how Ruby and Python can be interactively interpreted. ;)

I know the first comment is going to be "well why would I ever want to make modifications to a ColdFusion runtime?", so I may as well squash that argument. I've ran across many cases where I'd wish I had access to a CFML runtime such as being able to do real threading (nice job New Atlanta on cfthread), looking at how the auto-scalarizing works under the covers to solve Java integration issues or find ways to optimize CFML for the runtime, etc. Another big reason-- one of the best parts of the OSS model is being able to submit patches back to the project so that bugs that directly affect you can be fixed in a future release.

I do think because a lot of alternatives to CF are actually free software it provides them with an advantage for both number of deployments and adopting new developers, but that's a completely separate topic.