Skip to content


ColdFusion Is Not Free Software

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.

Posted in A Day In The Life Of, ColdFusion, Tech News, Tips, Hacks, & Tricks, Uncategorized.

9 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Damon Cooper said

    To be fair to Ray, I think perhaps what he was referring to was the fact that CFEclipse is free, Eclipse is free and + CF Developer Edition is a free download.

    Anybody can put data on a web page these days, and that’s not what makes ColdFusion unique and valuable to our customers any longer, I don’t think. Sure, it can do that, but so can any number of other solutions out there (many of which are free)

    Our job on the CF team is to make sure there are major advantages and innovations in CF tat give our customers big advantages over whatever else is out there. Eventually, others will pick up what they think is good about our stuff that they have the ability to imitate, but we continue to innovate our hearts out and have our pulse on what our customers are wanting to build and do that we can help them with.

    I think CF7’s feature set, for example is an example of some of the ways just one version of CF can respond to customers and add value over other and above the free competitors.

    Just my $0.02 :)

    Damon

  2. Yep Damon, I agree. Licensing/openness issues aside, CFMX is certainly the easist platform to do quite a wide variety of tasks on which would have you spending a lot of time in other languages to do similar items. To me, CFML’s power is in its developer friendly API.

    For instance, two recent features are great examples of this. The ColdFusion SMS Gateway and Flash Forms would take LOTS of time to try and implement in a Ruby/Java/PHP/Python based application.

    IMHO, as CF developers we don’t quite have the magic bullet web framework that other platforms do for rapid development, but we’re getting closer. :)

  3. So, I had a nice long reply this morning but kept having bugs when I posted. (Hence the Test post above.) So, pretend for a minute that this response is much better written. ;)

    When I said free, I didn’t mean Free. I was talking about the traditional usage of the word. CF has never had an IDE you have to use (like PHP), but there have always been both free and paid tools. CFEclipse is a great example of a free IDE. Dreamweaver is a great example of a not-free program.

    As for the “college kids” arguments - nothing prevents them from building CF apps. The only thing they have to pay for is hosting. Is that not true for PHP servers as well? I’ve seen CF hosts for as cheap as a few dollars a month, but as in all things, cheap does not always mean better. But the point is - if a college kid wanted to show something off online, he could, cheaply. (And let’s be reasonable, the college kid can’t get it all free. He may have to pay for his net access. His PC. Etc.)

    Open Source: Well, the problem I have with Open Source (note the capitols) is that it turns into a political/religous debate instead of a practical debate. I get that you want to tinker. I like to tinker as well. But I don’t have to tinker. I’d be willing to bet 99% of PHP users will never look at the source code behind PHP. They use PHP because it lets them get the job done. That’s why I use CF. Are you honestly telling me you would not use an non-open-source project evne if let you complete a project on-time and under-budget? I mean, look at your terms, “crippleware”. So if a vendor gives you a free tool that has less options than a pricey tool, you will automatically dislike it? What if it does what you want? Is it wrong to offer two versions in general?

    I simply do not buy the argument that it is wrong to sell software, or wrong to not share the code. Yes, free is better, open source is better, but I want a tool that can help me get the job done.

    (Whew, I said I wasn’t going to go long. Someone stop me next time.)

  4. When Brandon mentions “the Freeware version of BlueDragon,” I believe that he is referring to BlueDragon Server. We at New Atlanta do have for BlueDragon Server a licensing model that provides that those who use it for non-commercial purposes may use it fully and without restriction. That means that you install BlueDragon Server on a box and use it to serve CFML websites for your church, your neighborhood association, etc. and without paying New Atlanta any money for a software license. However, as Brandon notes, BlueDragon does not offer the same feature set as our editions for which a paid license is required (but then again, none of those versions offer the same feature set as one another either).

  5. Ray,

    I agree with you– nothing /prevents/ college kids from picking up ColdFusion, I just think there are better alternatives (with more exposure) for someone starting-out and learning something on their own, and I have quite a few reasons for that.

    - I’d say a large percentage of people who like to tinker with computer stuff end-up trying out some sort of Unix on an old computer. PHP/Perl/Python/Ruby (I’ll use [P] for now on for that combo) are all very easy to install on that platform, and do not require the resources that a J2EE Server does. As an example, I started playing around with FreeBSD and Linux when I was 18 on a DEC Alpha that I picked-up on the cheap, and taught myself Perl at the time because it was available. My first website in ‘94 or ‘95 was at Geocities because it was free to deploy it. I would have not spent a cent at the time for webhosting, and even now 10 years later, I still prefer to host at my house on my own hardware.

    - There are no popular, large collaborative projects that get a lot of eyeballs implemented in ColdFusion which would encourage someone to pick-up CF. I would vouch that most of the popular Free Software in the ColdFusion community is written by 3 or fewer people per project. In the scope of CMM, you are still very low on the scale if you have to always rely on “heros” to get things done, and we’re still in that spot with the various OSS projects in CF land. Projects like Django, RoR, Gallery, Wordpress, etc all have a lot of developers with commit access or who write lots of plugins and patches. I would say that the most popular ColdFusion OSS software would either be your BlogCFC, or perhaps the Fusebox framework. I don’t claim to know your process (and I’d be honestly curious to hear what it really is), but it would seem you mostly write BlogCFC (and I would assume you are the only person with commit access?) though you’ve had people submit fixes and other addons.

    - Because the PHP is free, it’s deployed at MANY more hosting companies. PHP is available at pretty much every hosting company, while ColdFusion hosting seems to be almost a niche market.

    - ColdFusion does not reallly have an application outside of web and internet releated duties. I’ve written plenty of Python scripts to automate tasks because it has a real interpreter and is not a web only language, it’s even used on great desktop apps like iPodder, and the attractiveness of a versatile, productive OO language is hard to resist.

    - There are few sources for ColdFusion books, and very little buzz about CF outside of people who already use ColdFusion. We’re basically down to one ColdFusion book that is only put out by the people who make the language itself, and no one is pushing ColdFusion in a way which helps it catch-on to mainstream developers.

    As far as tinkering goes, I guess it depends on your perspective. I work in a rather unique environment that tends to bring servers to their knees, and we have to come-up with creative solutions to get around various business domain problems out of our control. In otherwords, I’m not working on marketing material or intranets– more like heavily used Enterprise services and applications with n-tiers, terabytes and terabytes of data, clustered J2EE servers, etc. Posts like Aswhin’s cache implementation tend to be daily topics at work for me. To give you an example of a couple of items I’ve worked on this week; I’ve implemented pooled caching for decorator objects to solve some performance issues, helped someone design code to get around concurrency issues with a 3rd party driver, looked through another decompiled 3rd party JDBC driver in hopes of seeing why its broken, etc. I would /love/ to have an open source CFML version so that I could fix problems I frequently encounter that most people would never come across, but I don’t have that option.

    In the days of DOS, I frequently used programs like Norton Assembler to disassemble applications (I had a /very/ customized version of Windows 3.1), and talking with other fairly hardcore geeks they’ve done the same sorts of things. Geeks are curious and want to see and alter the “guts” of things. Many pieces of popular software and services (both commercial and free) were developed in college (Google, Yahoo, Solaris, Mosaic, Pine, etc…). I would agree that most people are probably not going to look at the source code of PHP, but it does have a lot more “street cred” with Joe Developer/future Joe Developer than ColdFusion, and that is one reason why.

    I’m also not an open source zealot / commercial software hater though it looks like you got that impression of me from my post– I’ve been programming using Windows as a workstation and CF as my primary development platform for many years. I joke all the time with people about how I think Linux and PHP suck (even though I am Linux Certified), and I do give Linux an honest try as a desktop OS every couple of years but still don’t have the desire to switch from Windows. ColdFusion has had a free development platform for quite some time, yet I think PHP has picked-up many more developers in the past few years. I’m probably the biggest proponent of ColdFusion where I work, I just have postings like this sometimes to get people out of groupthink and provide an opposing view despite my personal convictions. I enjoy friendly exchange (and thanks for commenting!), with the end goal of me both learning new things and hopefully helping other people learn and see other perspectives as well.

  6. One more thing I forgot to mention– I think that PHP, et al, have the reputation for being free, while the view that you can develop in CF for free is not widely shared despite the obvious.

  7. I would /love/ to have an open source CFML version so that I could fix problems I frequently encounter that most people would never come across, but I don’t have that option.

    You do have that option. The whole point of open-source is that anyone can contribute.
    If you want an open-source CFML engine, start one.

    Seriously - I see people say it often, so there’s certainly a lot of interest. All it probably needs it someone to take the lead, and keep things progressing.
    Give it a go; what’s the worst that could happen?

    (Personally, I’m happy enough using Railo)

  8. Brandon, If your want a free CFML
    check out “www.IgniteFusion.org”
    it is a free Windows CFML server that you can use
    as you want.
    We wrote it “just for fun”, The source is not
    available yet…
    We are thinking about open sourceing it, but that would
    happen after it is ported to Linux and stabilized.

  9. A better question to ask, from my perspective, is whether or not ColdFusion is still relevant in today’s developmental environment?

    ColdFusion has been caught in the triple crossfire between free and open-source solutions like PHP, Python, and Ruby; Microsoft’s .NET platform (also free); and high-end enterprise-class solutions like IBM’s WebSphere and BEA’s WebLogic.

    The question is: Is there still a middle ground? And can ColdFusion hold it?

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.