Wednesday, July 09, 2008

ColdFusion Costs too Much

That's a pretty common phrase I hear from folks looking at ColdFusion for the first time. Even scarier I hear it from folks inside the community! Don't get me wrong I love open source and I think there is plenty of room for open source CFML engines/platforms but when it comes down to it ColdFusion's platform for what it offers is a great deal. I get tired of hearing CFML developers tout the RAD of ColdFusion this used to be an okay mostly valid sell but the market has changed yet CFML developers montra hasn't. With a good framework and IDE Java can be pretty RAD these days, besides no one has ever quantfiably proved how much faster ColdFusion, or CFML, really is for development. What follows is an exceprt of a response I sent to a certain "journalist" when confronted about Open Bluedragon, he opened stating ColdFusion's (Standard) price at a mere 1300 was "unbeleivable":
... I'll be the first one to pimp the open source offerings but I also think there are some misconceptions of costs for ColdFusion. If you consider what the Adobe ColdFusion platform offers this [$1300 price tag] is pretty reasonable. What you or anyone needs to ask themselves, especially now with other CFML engines is, "Does the ColdFusion Platform offer me the features I need for the cost?" It seems more and more folks answer no to this but let's think about this for a second. Can Java produce a PDF? Certainly. You can use Java libraries and generate a PDF just fine. Without a bit of work though and a couple layers of abstraction generating an HTML equivelent and a PDF is tedious and can be costly when supporting an app long term. ColdFusion offers you a very simple and elegant way of generating a PDF based off purely the HTML you are already generating. Any pure Java shop can do this too but they need to either modify some open source HTML parses, write thier own, or purchase icesoft's parser (cost: nearly on par w/Adobe's ColdFusion). So with this feature alone all costs, never mind productivity gains of CFML, are nearly negated. Also consider JMS integration. Once again I could develop a nice abstraction layer in Java no problem but then my team is responsible for integration testing, regression testing, and support for this abstraction layer. Not nearly the same if I just use ColdFusion and it's JMS & ActiveMQ integration points. Testing is a real cost and relying on a commercial product is a huge cost saver. A final example to consider is ajax. Have you ever looked at how much a pain it is to refactor from ExtJS 1.0 -> X.X, or jQuery with the UI widgets? The api for ExtJs (and other js libraries) constantly changes and backwards compatibility is becoming a cost barrier to upgrading on large applications. By using ColdFusion's ajax tags you never have to pay a developer to upgrade your codebase to work with the latest version of ExtJS. Adobe is taking care of that for you behind the scenes. Now lets bring this full circle, these are only 3 examples I thought of off the top of my head, there are numerous other cost saving and value adds in the ColdFusion platform so the question really is are these worth it to you? Maybe they are (we certainly take advantage of some of these at my company) maybe they are not. If all you are generally interested in CFML and not the ColdFusion platform, great there are some awesome alternatives now through some open source offerings like OpenBD, Railo and, to a lesser extent, Smith Project. Each OS offering offers their own platform stuff, Open BD for example has a plugin for JMS. Railo, for example, has some very cool integration with Amazon's S3. ... ColdFusion's price point is very valid in many instances for many folks. I am an advocate for open source CFML, no doubt, but I am also an advocate for ColdFusion as it has solved many problems for the company I work for and done it at a huge cost savings.
Hopefully this spurs some good discussion and ideas on how ColdFusion is a money saver and not just from a RAD standpoint.


SOSensible said...

The reality is none of those developers who think a free alternative to CF is better... well they don't turn around and offer services for free. (Don't they know paid development is dead?) LOL / Now, if they want to work for free with PHP vs paid CF developers with a paid ColdFusion lisc. then I would have to see the point... sorta. To me it's still worth it.

Ben put it great in a video, if you are looking to bill your customer by the hour use a harder to build a "full application", harder to support, harder to learn platform. Of course wholistic development is a thing outside the thinking of many.

PDF integration by the company who owns PDF, ... ah, seriously. It's like trying to turn on a light and having someone shut their eyes because they don't want to see the truth. Seriously it's just frustrating to win it on features. What we need is more killer applications and sites and just show the customers. Let's quit preaching to the willingly difficult.

Andrew Scott said...

I am one of those that has been very vocal about the future of ColdFusion. The one thing most developers do not understand is the differences in the market, and by this I mean the market that ColdFusion hasn't got a grip in yet.

What do I mean by this....

We as developers have to look at what we do best, create Applications or websites that end up meeting the requirements of our customers. This leaves a huge problem, not only with ColdFusion but how we as a developer need to look towards the future.

The problem that I have with ColdFusion being closed source, and have to pay for a license is that the roadmap for a release is way to long.

As a Java developer as well as a ColdFusion developer, I am now looking at begining all websites and Applications with grails from now on.

There is no denying that spring + hibernate + groovy could mean so much RAD, now I can all hear you saying oh yes but ColdFusion 9 just might have native spring and hibernate support.

Good.... But when I have a need for that technology now, not 2 years from now...

And that is the problem.

By opening source ColdFusion, you create a shorter Roadmap with many more updates. With the ability to provide plugin support like openBD, you create a new application subscription module, that allows more players to provide more support.

I would not look at the price, because there is no argument that ColdFusion offers so much. But as stated above, it is the length to market that will kill ColdFusion.

Did I say kill? I know for a fact that as long as there is a need ColdFusion will continue, and that will be provided the right road is taken by Adobe.

galdamez said...

These are all some great points. I'm curious as to where the journalist was from, and not so much because I'm interested in hunting the guy down but because I'm curious as to what publication was inquiring about CF.

I think the best point you bring up is that the RAD selling point isn't enough to give it a competitive advantage over other alternatives. I'm definitely grateful for the time ColdFusion saves me, but it's the features that ultimately keep me coming back. There's so many it's nearly impossible for me to keep up.

You also brought some arguing points that I might not have considered previously (i.e. I don't even know what JMS is). Great job!