By Peter Bell

The Future of ColdFusion: Part 2 - Adobe

In this ongoing four part series I'm doing a little speculating about where ColdFusion might be going. In this posting I want to look at the Macromedia/Adobe ColdFusion release cycle to try to provide some context for some of the recent discussions on the future of CF.

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 . . .

Comments
Upgrade legacy system to CF8? What does this mean? That an application that runs quite happily on CF7 (or 6 or 5), is maintained and updated regularly according to user requirements and delivers value is suddenly "legacy"? It's an emotive word (especially at the moment) - use it with care
# Posted By richard | 6/11/08 2:44 PM
Concerning CF Ajax, like good old 'cfform', one should learn JavaScript and use those Ajax libraries independently of ColdFusion. Too many developers want to learn a server-side language and forget that the web is about html/xhtml/JavaScript/CSS. I hate CF Ajax because it is not flexible enough and is too bloated.
# Posted By Patrick Whittingham | 6/11/08 2:59 PM
Richard --A site running on older systems is not legacy but the systems themselves might be. For instance, ColdFusion like any other software has it's share of bugs that get fixed from relase to release and improvements that get added. Even though a site has been running for a long time on older software there still might be a reason to upgrade. If the site is growing in size (hopefully) then the upgrade might provide the added speed to hadnle additional requests without purchasing an additional server. Also, if you have ever experianced a strange error like a null pointer or badly parse sql during high load, then a newer version of CF might have fixed these.
# Posted By Robert Gatti | 6/11/08 3:09 PM
@Peter, I am enjoying this series so far, thanks for taking the time to put it together. One item that has been poorly covered by all releases of the Java-J2EE versions of Adobe ColdFusion (MX6.1, forward) is Clustering. This might be a contentious point as with the Enterprise version of CF, Enterprise Manager supposedly covers that need. However, I have found Enterprise Manager to be quirky in some ways, showing instances as started when they are not etc.

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.
# Posted By Mike Brunt | 6/11/08 3:15 PM
Sorry, typo'd that last paragraph, it should read. "The interesting thing is that Allaire had a really good software based clustering mechanism called "Cluster Cats" it was much more fully featured than 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."
# Posted By Mike Brunt | 6/11/08 3:17 PM
I find myself in the 'legacy' crowd. :) We are just now getting started on our CFMX8 migration plans and probably won't roll anything out til the fall. Then once we roll that out we have to wait for a new application before trying to implement new features in 8, and since we reuse a lot of code - sometimes those new features get overlooked. I'd have to go back to the CF7 docs but I probably haven't use many of it's new features - CFDocument maybe...

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.
# Posted By Jim Priest | 6/11/08 3:25 PM
@Richard, To me, an application is legacy as soon as it is in production. I have a number of legacy CF 8 apps! At the most a legacy app is one that isn't the way I'd code it now for that use case, which makes every project I've coded up to now a legacy project as I learn and improve something on every project I write. I don't consider legacy to be outdated, outmoded, irrelevant or of low value. It's just code that's shipped. For me, once it's live, its legacy - irrespective of whether it's in the latest version of the latest technology or not.

@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?!
# Posted By Peter Bell | 6/11/08 3:54 PM
Peter

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
# Posted By richard | 6/11/08 4:51 PM
Keep it up Peter!
# Posted By Sami Hoda | 6/11/08 5:02 PM
@Richard, That was kind of the point I was trying to make. But I do think that the people who take the time to investigate every new feature and blog and write about it have both a direct and indirect influence on the broader community that shouldn't be completely ignored.

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 . . .
# Posted By Peter Bell | 6/11/08 5:08 PM
@Sami, Thanks!
# Posted By Peter Bell | 6/11/08 5:09 PM
This is getting a bit off topic - but I wonder at the size of our ColdFusion 'community', the impact the 'blognorati' have and how much people keep up with the technology... I know we have a dozen people on the team where I work - yet only 1-2 of them show up regularly at our user group meeting, none subscribe to Fusion Authority, and I bet none of them know what Railo is, etc, etc. Are they in the minority? I don't know. I do know that Adobe claims huge numbers for ColdFusion developers yet I could only get 400 people to respond to my IDE survey? We also know Adobe does zero marketing for ColdFusion - so when a new version of ColdFusion does come out - how do people find out about it? I don't want to hijack Peter's thread so I'll leave it at that...
# Posted By Jim Priest | 6/11/08 6:58 PM
Peter

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
# Posted By richard | 6/12/08 1:16 AM
@Jim, I think Richards comment covered this. While it is a little O/T, it is an important point. I think that while the perspective of active community members/bloggers can be very different from the average developer, they are an important early warning sign for issues that may become more widespread over time.
# Posted By Peter Bell | 6/12/08 3:02 AM
@Jim, I share your frustrations / concerns. I'm a user group manager and I *know* there are lots of CF developers in my area but I have no way to reach many of them. The previous manager worked at a company with a team of CF developers and held a user group meeting across the road from the office. Not one member of their team attended. There are a lot of "9-to-5" CFers out there who just get on with their job and really don't know (or care) about blogs, mailing lists, user groups and so on. They learn about the new version of ColdFusion when someone at the company decides to upgrade for whatever reason.

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.
# Posted By Sean Corfield | 6/17/08 2:25 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.