The Future of ColdFusion: Part 2 - Adobe
There seems to be a certain rhythm to ColdFusion releases over the last few versions . . .
There is a run up to the new release as the evangelists start to show us some sneak peaks in public about what will be in the new version - whether it's CFImage, .NET integration or CF AJAX goodness. Then there is the launch and for a few months the blogosphere is bursting with postings about how to make use of the new features. Then about six to nine months after launch, the ennui seems to set in (and the perennial "is ColdFusion dying" posts start up again . . .).
I think what happens is that some of the features looked cool but end up not being relevant to a given developer. Others are life savers and become so integral to our development style that we forget we didn't have them until recently. Because of this, we forget just what a big deal they were! Either way, nine months into a new version, a lot of the bloggers who are on the bleeding edge start to get a little jaded about what they've got in the current version of the product.
For example, I think the CF AJAX functionality is a perfect example of what ColdFusion should do. If you want some simple AJAX, write a tag and you're done. However, if you're already using jQuery and Ex-JS, it's probably not as exciting. I'm personally finding that I don't use a lot of the CF AJAX code myself, but onMissingMethod() has allowed me to completely rewrite my in-house framework in a much more elegant manner and I'm finding little things like the implicit structs and the more conventional operators have made a big difference in my day to day coding.
Each developer will have a different list of "not relevant to me" and "can't live without it" features, but the bottom line is that six to nine months into a release, the early adopters who populate the blogosphere are done with the release and looking for some new coolness. Unfortunately, this usually happens a little before Adobe is willing to start to publicly preview the features in their next release, so there is a window where there is a lot of noise about whether CF will continue to be relevant.
What's interesting to me after seeing a few of these cycles is that the ColdFusion team continually come through. With each release there are a new set of great features and while the "can't live without" features are different for different developers and the best features aren't always the ones you expected to be the best, every time there has been a ColdFusion release I have found there have been a bunch of new compelling reasons to choose ColdFusion over alternative technologies for developing my web applications.
Right now we're just in that window where CF8 is passe (at least in the blogosphere - I'm guessing a good number of CF shops haven't even had a chance to upgrade their legacy systems to 8 yet), but Centaur isn't being discussed. Given the history of the ColdFusion team in consistently surprising the developer base, I'm certainly looking forwards to seeing what will be included in Centaur.
What's interesting now is that with Railo, there's another player on the CF scene that could potentially have impact on the adoption of the language rather than leaving it all to Adobe, but I'll post my thoughts on that tomorrow . . .


The interesting this is that Allaire had a really good software based clustering mechanism called "Cluster Cats" it was much more fully featured that what we now have and covered both Load Balancing and Fail-Over. I will be blogging more about this myself; once again thanks for this series.
And I have a lot of older applications I maintain that would still probably run fine on CF5 - there is just no need to add new features to them.
@Patrick, I don't think you *need* to learn AJAX at all - that is the beauty of ColdFusion. I personally chose to learn some more about AJAX as it made sense for my requirements, but the whole point about tooling and languages is that they should be designed to allow you to learn just as much of a given technology as is consistent with the ROI it'll provide (or your personal hobby or career interests in learning it).
@Robert, Good points, all, but just to clarify all I was suggesting was that while some of the blognorati are getting bored with a new release, many regular developers may not even have had a chance to play with it at work. I certainly remember back before I was involved with the community that it took a long time for new releases to make it to the projects I was working on.
@Mike, Thanks for the comment - glad you're enjoying it. I think the Railo announcement is going to have an impact on the clustering story for ColdFusion. I'm very interested to hear more about what they plan to do with the JBoss stack and also to learn more about the JBoss solutions (unlike yourself I'm no clustering guru :-) ).
@Jim, Agreed. You've always got to look at the cost of porting a site to a new version of software, and there has to be an ROI when compared to the opportunity cost of using the engineering time elsewhere. Of course, a good suite of unit and integration tests can cut the engineering costs involved in the upgrade, but you still have the licensing costs, and honestly, how many of us have a good suite of tests for our CF 5 applications?!
Your phrase "while some of the blognorati are getting bored.." is very telling. Who is driving the use of a platform or language? The people who are making good use of it on a daily basis, or the chattering classes. The former are very rarely vocal in these kind of discussions, they just get on with producing and maintaining software.
@robert - my main point was about the use of the word legacy. Recently a source of some discussion because of New Atlantas (quite legitimate) targetting of what they call legacy CF applications (not systems, note). This has a probably unintentionally pejorative connotation which is why I suggest using the term with care. If you think that the term "legacy" is clear cut, then even the wikipedia entry about "legacy software" is a good pointer towards muddy waters
Directly, they are at the conferences, speaking with the Adobe team, championing certain features. Indirectly, imagine if you heard that all of the 200 most popular CF bloggers had all decided to move to .net because they'd suddenly realized how misguided they had been all these years using something other than C# :-) Assuming you ruled out mind-control on a mass scale it would have no impact on your use of ColdFusion the next day, but I've got to believe it would have some impact the next time the boss came round asking why you couldn't just use .net for one of the projects to give it a go . . .
I'd better quickly clarify my last comment because it sounded like I was denigrating the CF blogging community. Nothing could be further from the truth - it's gold dust and I for one would be dead without it. Also need to make a distinction between championing the use of the platform as opposed to influencing the development. However it seems that in the cycle you are discussing there is also the regular appearance of the "is cold fusion dead" theme. There seems to be some kind of angst in the community about the future of the platform that regularly surfaces. Thankfully this normally subsides and as you say the CF team come through and each release provides at least one new feature that warrants an upgrade.
But here's a wee note from personal experience. I do work for various companies, and a few years ago one of the largest decided that for small applications Coldfusion would no longer be used and that future developments should use .Net. Nothing unusual in this, large companies need to try and standardise on their core technologies. However the decision was based on research carried out into the usage of various possible technologies and they picked up on the point that the CF online community seemed uncertain of it's future and the development of the product. This apparently swung the decision even though CF applications were successful and supported by the users. Pretty stupid piece of research (maybe there was an agenda) but that's why I get edgy when I see any post that starts talking about the "future" of CF. By my own experience I needn't be worried though. I'm still delivering work for the company in question, and user support for the commissioning and delivery of CF based apps has ensured the survival of the platform, and upgrades
I think this is actually true in *all* programming language communities. But the relatively small, close-knit nature of the CF community amplifies the disconnect.