ColdFusion is doing exceptionally well in the marketplace, has strong support from upper levels of Adobe management and is still as easy and powerful as ever. Yet one nagging question remains: where does it fit in to the new/fresh/exciting world of Flex and AIR or rich internet applications in general?
The CF community does tend to get a little too much like Chicken Little when we see Adobe give a Flex demo using a PHP or (forbid the thought) .NET back end; at times is a little embarrassing. CF is not the only app server on the market and there are lots of people who could use an introduction to Adobe "stuff" on their own terms, using tools they're already comfortable with. Once we've hooked them with that, then we can show them how stupid simple it is to use CF instead.
Jared Rypka-Hauer interviewed Bruce Chizen, then-CEO of Adobe and this is what he had to say:
"From our perspective, there is no other platform in existence that can be used to build powerful, flexible backends for Rich Internet Applications as quickly and competently as can be done with ColdFusion. It will support any RIA technology, be it Flex, Flash, AJAX or AIR. It's really, from our perspective, the glue that holds everything else together."
The rest of the interview is here, which I found to be a fascinating read. Adobe is strongly backing CF (best sales growth ever tends to capture executive eyeballs), which is even further reinforced if you consider the investment it must have taken to make ColdFusion 8 as feature-packed as it is. As Adam and Tim told us when they visited last summer, they raided the pantry of Adobe technologies (the expensive ones) and tossed them in to the CF8 feature set. Try doing that if your product isn't valued and respected! Not entirely coincidentally, these same technologies are what makes using CF as a backend for RIAs so darn effective and powerful. Image functionality, PDF generation and manipulation, Exchange integration, LiveCycle integration - doing all of that any other way would cost far more than the $1100 cost of entry. By "cost" I not only mean real products to do each of those but also the billable time lost creating it yourself.
ColdFusion has a fantastic ROI. Those of us who have been working with it for any length of time know how much faster we can get things done in CF. That's even more important now - Flex/AIR applications simply take more time to build. We've been doing Flex development for about a year and a half now. That pales in comparison to the time we've put in with ColdFusion, but it's enough to get a good feel for what a full development cycle takes.
Think about it this way: at the end of the day, your clients/customers/coworkers see your application's interface, not your Reactor/ColdSpring/Mach-ii/Fusebox/roll-your-own-framework service tier. Build that robust and efficient backend in little time with CF (don't forget your unit tests!) and then focus on the user experience. Add those UI widgets that make life easier for the end user. Spend extra time with your designer to make it look and behave better than any HTML webapp you've ever created. If you're writing backend services on a platform that doesn't simplify this task as much as CF does, you're wasting precious time and shortchanging the folks who will have to live with your application. ROI is not only financial, but personal.
Anyway, this started off as a "ColdFusion is the keystone in Adobe's RIA strategy" post and veered off into developer land. Point is, ColdFusion makes it easy build software to drive Flex applications ( - is that easy enough?) in a logical, orderly and efficient fashion. Without CF, Flex development gets harder. Now if only we could bring more CF-like syntax and structure to Flex development, then we'd be cookin'...
See you all tonight!
Steve