By Peter Bell

The Future of ColdFusion: Part 4 - Whither ColdFusion

In this ongoing four part series I'm doing a little speculating about where ColdFusion might be going. The first posting provided some general background on the changing landscape and the second posting looked at how the Macromedia/Adobe team have consistently exceeded expectations with ColdFusion. The third posting looked at some elements of the Railo announcement.

In this fourth and final posting I want to look at some of the different ways this could play out.

The Rise of Frameworks
As I mentioned in the first posting, full stack frameworks like Rails or Django are another approach to making hard things easy and while they'll never be as simple as getting started with CFML, if you're writing OO applications, they make some of ColdFusions traditional benefits less compelling (cfquery, cfoutput, cfmail, etc). At some point we need a compelling full stack framework in ColdFusion that breaks the rules in the same way as Django, Rails, Waves and Seaside have done in Python, Ruby and Smalltalk respectively.

Scripting the JVM
I don't know if all ColdFusion developers realized how big a deal CF moving to Java really was. I certainly didn't get it at the time, but while CF was ahead of the curve, Groovy, JRuby and a bunch of other scripting languages thanks to JSR-223 now allow you to get the productivity benefits of dynamic typing with the deployment benefits of running on the JVM. This makes the object instantiation penalty in CF and the lack of easy integration with industry standard tools like Hibernate to be an issue that needs to be addressed. There was already some interest in the outer reaches of the CF community in using Groovy or Java for the model and CF for the controller and view and I'd like to see a compelling reason for most developers NOT to want to leave CF for their model most of the time.

RIA Halo Effect
Adobe is clearly going to affect the ColdFusion market with its success in the RIA space. I see Flex, AIR and LCDS as some of the most interesting changes in the business of developing applications. Suddenly a generation of web developers can develop rich desktop applications using technologies they already know, and as we migrate more of our data to the cloud, I think a seamless online/offline story is going to become increasingly compelling.

Of course, there is no guarantee that Flex will drive ColdFusion adoption, but the more that the ColdFusion team can do to make Flex, AIR and LCSD integration and deployment easier using ColdFusion the more chance there is that CF will be used as the back end for an increasing number of projects. And with the JBoss announcement, that could help with the credibility story in the Java community. After all, if JBoss (who are now part of Redhat) are making a ColdFusion engine one of their projects, maybe it's worth taking a second look at!

Railo and JBoss
I'm really interested to see how the Railo/JBoss announcement will play out in the Java community. I've never even considered pitching CF presentations to QCon or Java One or JAOO. Will the relationship with JBoss help Gert to take a compelling CF story to the Java world and beyond? I don't really know but I'm certainly excited to see how it'll play out.

Adobe and Railo
While there are always challenges that any programming language faces in continuing to grow market share, I think that a combination of the RIA push from Adobe and the JBoss announcement from Railo will create a real opportunity for the size of the ColdFusion community to grow substantially. However, that will depend on how Adobe and Railo interact. As I mentioned previously, the most important factor (great people on both teams and good relationships between them) is already in place. But it still leaves the question - what will Adobe and Railo do next?

Adobe could just decide to open source their server or (at the opposite extreme) offer to buy out Railo to either avoid having a credible open source alternative or to cripple the open source version offered.

I don't think it would be in anyones interest for Adobe to open source the ColdFusion server in the forseeable future as the more money they make, the more cool new features and marketing budget we have supporting the community.

As far as a buyout, if it was to take advantage of the engineering talent and/or elements of the code base while still genuinely supporting the open source version it could be a real win all round. I doubt Adobe would try to just buy and suppress the code base as the only winners from that would be New Atlanta and Adobe are way too savvy about open source to do something that silly.

The above options are possible but I'm guessing fairly unlikely. The question then is the nature of the competition/coopetition between Adobe and Railo.

A lot of this will come down to the commercial considerations within Adobe. As the "new kids on the block", it's obviously in Railo's best interests to co-operate. For Adobe the best approach is a little less obvious.

As a ColdFusion developer, I'd love to see at the least a W3C style committee where Adobe, Railo and community representatives could agree a CFML standard that we could all code to, with the ability for specific vendors to add custom extensions if they so desired.

Personally I'd love to see key new features like Hibernate and clustering/caching solutions added ASAP if both vendors are planning to implement them as for me those are a compelling reason to continue to choose CF over Groovy for the model part of my applications, but I understand that for the majority of the community those tags probably aren't as urgent. That said, if ColdFusion wants to compete in the Java world against Groovy (quick way of throwing together apps using a dynamic typed scripting language) it's going to have to have an interesting Hibernate/Caching/Clustering story ASAP. Otherwise at most CF will be considered a possible replacement for jsp's when developing views (which isn't horrible, but I wonder if there is a one time chance to persuade some Java devs to choose CF over Groovy/JRuby for quickly developing RIA back ends - especially if Adobe and Railo are able to finish out cfscript).

It's also going to be important to clarify any implications for people involved with (say) Adobe alpha/beta programs or the Adobe Community Expert program of getting involved with any Railo initiatives. The initial impression I got was that there would not be any problems, but depending on how open Adobe wants to be about any proprietary tags it wants to be able to add to their engine, we're going to have to be clear about whether there would be any potential conflicts of interest and how they should be handled.

Finally, in the long run we also need to start to develop a clear story about where and when to choose Adobe ColdFusion vs. Railo. Right now it makes sense for pretty much all CF devs to do all of their commercial development using the Adobe product, but it is clear that over time there may be some projects which ColdFusion developers would choose Railo for. It is in all of our interests to minimize the confusion and develop a generally agreed set of heuristics for which engine to choose for what classes of applications and to ensure that the structure is good for both building the community and ensuring that Adobe continues to have a compelling commercial incentive to invest strongly in continuing to "wow" us with new features with every release.

While I know that it wouldn't replace the server revenue, I'm also hoping that Adobe has been far-sighted enough to consider finally creating a best of breed IDE for ColdFusion which offers the kind of dynamic runtime introspection that Smalltalk engines and the Netbeans Ruby IDE provides so we can get the benefits of code completion without the overhead of having to statically type everything. That would be another revenue stream for Adobe which is consistent with its position as a developer of premier tools for designers and developers.

Looking forward to finding out more at CF United this week.

Comments
Good stuff! Another option would be for Adobe to treat Railo like New Atlanta is doing with OpenBD. Make it the unsupported 'test bed' to try out new advanced features. If they work - roll them into ColdFusion...

If you want stable/support - go with Adobe. If you want free, bleeding edge, supported by the community - go Railo.

And I'll say it again - if anyone creates an IDE - ideally it would be flexible enough to handle all the engines (CF, Smith, OpenBD and Railo). With Eclipe's plugin feature - ideally we could have a 'base' CFML IDE (that worked with the CFML 'Standard') and vendors could provide plugins for their features.
# Posted By Jim Priest | 6/17/08 10:03 AM
If Adobe is building an IDE for ColdFusion, I want nothing to do with it if its going to be similar to what they've done with Flex Builder. I downloaded Flex Builder 3 and thought I'd have plenty of time to kick the tires and learn some Flex. But the 60 day trial went by and I managed to look at it for maybe 2 hours total. Now I can't uninstall and reinstall Flex Builder. How in the world does Adobe expect me to ever get a feel for it?

I have been really pushing it as a possible development tool in-house to replace a lot of our mainframe apps. $250 is a good enough price to take a risk on a couple of copies for trying it out. But then I found out to get charting, you have to spend $699. Why in the world does the charting feature raise the price tag $450? Thats just nuts. $699 is not a lot by corporate standards for a development tool, but it is a lot for trying the product out.

Can't Adobe just make a developer version that displays a watermark on the application? That seems much more reasonable to me. I doubt if we'll ever purchase it now.

I'm glad you mention Django. I've been playing with that for a while now. You're right that creating a page with CFML is definitely easier when creating a webpage. But ColdFusion is a product that I put into the category of what I call page-centric web development. I also include ASP, JSP, and PHP in this category. They make it very easy to create webpages. Rails, Django, Grails, TurboGears, etc. are what I call app-centric web development. Your mentality is on the creation of an application, not a page. Its a different way of thinking.

I'm looking forward to seeing the ColdBox talk at CFUnited. It looks like the first CF framework that isn't modeled after Struts. You know, XML hell.
# Posted By Jeff Self | 6/17/08 10:43 AM
Interesting series and many good points.

However it plays out the future of ColdFusion has never been as bright. Enjoy it everyone!
# Posted By Sam Farmer | 6/17/08 10:55 AM
Personally, I'd like Adobe to put money into open source projects rather than open sourcing the server. It would be great if we had PHP like free content management/forum/blog systems. While Ray's projects are great, we can all agree that one person cannot be responsible for the robust feature set available with those PHP alternatives.

It actually surprises me that Adobe doesn't have a ready to go CMS/forum solution bundled with ColdFusion. While only practical for enthusiasts , hobbyists, and very small businesses, which definitely aren't their target market, they are great for viral marketing and developer adoption.

In addition, smaller projects would aid large companies by having proven solutions bundled up and ready for customization and deployment.

@Jeff - I want an IDE just like Flexbuilder. Sorry you didn't have time to experience the trial Jeff, but Flex Builder is so fantastic with in line error reporting, code hinting, formatting, and customization that it would rival every CF editor out there. Granted it helps that AS3 is strongly typed for detecting compiler errors, but we can get close.
# Posted By Justin | 6/17/08 11:11 AM
I'm glad that there is enough of a community to support all of these open source CF cousins but to be honest I just don't think that any of them will compete with Adobe when it comes to innovation. I looked at BlueDragon and the others for some of our smaller clients and I ultimately just recommended CF because of all of the AJAX, Reporting, MS Exchange and other capabilities that make CF great. Querying a database is cool but if you're building RIA/Web 2.0 stuff then you've got to go with Adobe. Adobe's next move needs to be getting CF front and center in universities. There is a massive shortage of talent on the low and middle end and that means that new developers are not picking CF up - they're going with PHP, .NET or straight Java - and that's really bad for Adobe. Adobe if you're listening please get the new IDE done, give it and CF Server away to universities and start marketing - you've already got the best product - you just haven't told enough people.
# Posted By Andy Sandefer | 6/17/08 11:53 AM
I'm really confused about all this open source hype. ColdFusion 8 was one of the best releases, IMHO. So when everyone says 'competition will be good', I don't see why everyone thinks Adobe needed competition to innovate. It's not like all these engines went open source after CF7, which I could understand.

Since everyone is demanding a decent CFML IDE (for me CFEclipse is great), then why don't all these people contributing to the OS alternatives, build an IDE instead? It seems like everyone is stepping up to join the ranks of OpenBD and Railo, but ignoring CFEclipse.
# Posted By Dean Chasen | 6/17/08 1:34 PM
@Dean: for my part, because I don't want to spend tons of my free time contributing and then have adobe come out with their IDE and have all my work be for naught. Selfish? hell yes. I would love to contribute to cfeclipse, but I increasingly cannot justify the time investment in light of the constant (and unbelievably annoying) teasers from adobe along the lines of "cf9 geared toward developers" and "hey, developers, 'we hear you'" that I read on the evangelists' blogs.

I know mark and jim from cfeclipse really think that cfeclipse would continue to thrive if adobe came out with an IDE; but I'm not so optimistic that it would remain anything more than a slowly/infrequently/moderately enhanced version of what it is today, serving an increasingly smaller set of developers. I certainly hope I'm wrong on this one! my big long. My big long annoying-to-read rant on this subject of contributing to cfeclipse is here: http://groups.google.com/group/cfeclipse-users/bro... and my opinion really hasn't changed much. the discussion that followed was pretty interesting though.

one thing though: I don't know that "everyone is stepping up to join the ranks..." is accurate. I think we've seen like maybe 5 people with good java experience join those projects. So I'm not sure we lost a deep bench of people who would otherwise have contributed to cfeclipse anyway. Does it hurt? Sure! But I think there are other larger reasons -- different from just losing some potential contributors -- that cfeclipse languishes.

good stuff, dean.

@peter, thanks for the thought-provoking posts, as always! and i beg your pardon for my damn-near-unrelated comment.
# Posted By marc esher | 6/17/08 2:08 PM
I don't think it's unrelated at all - for CFML to survive I think it's going to need a good IDE. I think CFEclipse fits that description but ideally what we all want is a GREAT IDE. :)

I do really, really, really wish Adobe would commit one way or the other. It would save everyone a considerable amount of time and effort that could be contributed elsewhere. It pains me to know there are people out there like Marc that hesitate to contribute to CFEclipse because they are waiting on Adobe. :(

Of course now there are a lot more questions considering recent events...

- If Adobe releases an IDE will it support Railo/OpenBD/Smith? Either natively or though plugins of some sort?
- Will it be open-source?
- Cost?

Lots of questions here... To me the logical answer would for everyone (Adobe, Railo, etc) to get off their collective tushs and contribute to CFEclipse. :) We'd all end up with a great CFML IDE, Adobe could even charge for their plugins if they wanted to...
# Posted By Jim Priest | 6/17/08 2:30 PM
Regarding the IDE: it seems like Adobe is already 2/3 of the way there with Dreamweaver. It's already got a lot of great support for CF features. If they just spun off a big chunk of the DW codebase and maybe added a few other features, there's your IDE.

Then maybe market CF with a slight increase in price if you want to bundle the IDE with the server license...less than the cost of buying them separately.

So like CF Standard license is $1499, with IDE $1799, IDE standalone $399, something like that. And the IDE comes free with an Enterprise license.
# Posted By Josh Nathanson | 6/17/08 3:03 PM
"At some point we need a compelling full stack framework in ColdFusion that breaks the rules in the same way as Django, Rails, Waves and Seaside have done in Python, Ruby and Smalltalk respectively."

www.cfwheels.com

stop wishing for one and start contributing. per grabbed the bull by the balls and created an awesome framework the kicks the crap out of all the other ones out there, but he does need help furthering it along.

have "higher ups" (like yourself) ignoring the great work (like wheels) that someone does (like per) is down right shameful and pathetic. it's no wonder most of the coldfusion user base prefer to fly solo and not get involved within the "community".
# Posted By df guy | 6/17/08 5:01 PM
@df guy,

Looked at it some time back. I'm not a big Rails fan personally, so cfwheels wasn't a good fit for my projects. That said, what's happening with it now? Where is the mailing list, who is doing presentations to evangelize it, etc?

In my experience, a successful project requires a combination of technical merit, marketing genius, charismatic dictator and a dash of luck. Oh, and a huge amount of evangelism - do you SEE how much time (for example) Mark Mandell spends on evangelising Transfer?
# Posted By Peter Bell | 6/17/08 5:27 PM
I actually found this post while a lazy Sunday morning Google search to see who's talking about Wheels.

I think we're starting to see a shift within the Wheels community where people are starting to talk about it without a central evangelist (though I do play that central role). I can assure you that df guy wasn't prompted to leave the comment that he did.

Where are we with the project? Conversations are actually heating up on the Google Group. We're within months of a 1.0 release candidate. And we're finally breaking over the hump of the "one guy doing it all" mentality that plagues most open source CF apps. Per has been taking on the lion's share of the development work, but we're starting to have other people developing features that we hadn't dreamed of being able to do.

I must agree with df guy that our ColdFusion community can sometimes be so pompous that it puts a distance between them and "the rest of us." I've felt that since day one. I'm not directing that at you, Peter, because honestly I'm not sure whether you're pompous or not. ;)
# Posted By Chris Peters | 10/26/08 9:42 AM
Hi Chris,

I really don't see it as a "them and us" attitude. The market for OSS apps is pretty cutthroat. Most people want to be able to use the best OSS apps but don't really want to have to look at the darned things to figure out which one to use. There was a lot of push back against ColdBox, but Luis and the team persevered, they did a lot of really good evangelizing, and now many people talk about it. I got a lot of hassle when I first introduced LightWire (why not just use ColdSpring?), but I think now that some people are finding use cases for it - just as I did (which is why I wrote it in the first place).

ColdBox is WAY more popular than LightWire, at least in part because I'm not really committed to evangelizing - I don't get an ROI. I use it, some others use it, it works for us, and ColdSpring is also great and a better fit for many people.

Glad to hear all is going well with wheels. It's going to be an uphill struggle. Just look at all the work Ike is doing to promote OnTap and it isn't getting a huge amount of traction. Similarly look at John Farrar and COOP - it'll be interesting to see what happens as he starts to promote it more actively within the community.

The bad news is that it's really hard for an OSS project to get traction, but I don't think it is "us and them" - it is simply homeostatis operating at a community level as most people don't want to have to play hands on with 30 different frameworks and those who do try different frameworks and post about them often find a favorite and then focus on building apps instead of reviewing other frameworks for building apps. C'est la vie!

Best of luck with Wheels - nice to hear it's continuing to progress!
# Posted By Peter Bell | 10/26/08 9:59 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.