Too Many Choices Can Hinder ColdFusion Productivity

The last week has seen some big announcements in the CF world! On March 31st, Gert announced the open source release of Railo, the next day Mark Drew announced he has joined Railo as CEO of the new Railo UK and then this week Peter Bell announced that he has also joined Railo and will be heading up the new Railo US operation.

I’ve been using ColdFusion since 2001, back when I worked at Macromedia and my team of Java and C++ developers first encountered CFML in the form of very early builds of what went on to become CFMX (6.0). We were pretty skeptical at first.

A tag-based language? Weird, pseudo-objects? Lots of bugs (sorry, but CFMX was very buggy!). CFMX 6.1 was a huge step forward. Frameworks helped (Fusebox didn’t suit my team but Mach-II was adopted with enthusiasm). I moved from web development to systems integration, helping the ERP team integrating dozens of sales order feeds into Oracle’s business applications – using early builds of what went on to become CFMX7 and writing the first cut of the JMS event gateway that shipped with CFMX7 and an OracleAQ event gateway (which was subscribe-only and therefore never released publicly). After the acquisition by Adobe, I had a new team which continued to work with ColdFusion, pushing some core web services live with an early build of CF8 on JBoss (there was definitely some push back from ‘legacy’ Adobe team members to using CFML on that project and we did encounter memory leak problems which gave them some just cause – but I now think that was due to a cache problem in Transfer ORM… did I mention we were using early builds of Transfer ORM as well?).

After I left Adobe in April 2007, I went freelance and worked on a number of interesting projects for clients who were all using ColdFusion 8 (well, almost all of them were!). I took advantage of my lack of tethers to the ‘mothership’ to become a User Group Manager (staff cannot be UGMs) and a Community Expert. And I started talking with Vince Bonfanti at New Atlanta about the upcoming Open BlueDragon steering committee which I joined officially in April 2008, albeit fairly briefly, and then I was asked by Adobe to head up the CFML Advisory Committee a few weeks later (and I’ll be blogging about the committee a lot in the next few weeks!). The committee initially featured Adobe representatives, community representatives and Gert Franz from Railo. A couple of months ago, we were pleased to welcome Matt Woodward of Open BlueDragon onto the committee.

Along the way, I joined Broadchoice to work with Ray Camden and, later, Brian Kotek and Joe Rinehart. Long-time ColdFusion users and evangelists, we found ourselves designing an application for the Amazon cloud and turned to free open source software to build it. Flex (which is free open source, remember), BlazeDS, Groovy, Spring, Hibernate, JBoss. We launched Broadchoice Workspace in mid-October 2008. We decided to add an iPhone-compatible web application and we all knew the best way to add that was using CFML. However, Adobe’s license for ColdFusion 8 didn’t work with Amazon EC2 and our deployment process was WAR based so ColdFusion’s JEE packaging didn’t really work for us. We decided to try out Railo 3.0 Community Edition. Railo ran Model-Glue 3 and ColdSpring just fine. It ran on top of JBoss just fine. It didn’t add a huge amount to our deployment WAR (about 12MB). It was a pragmatic choice and we were happy with it.

I have to say that Adobe were not thrilled about our decision. Since we were working with Cocomo at the time, there was talk of us being featured in the opening keynote at MAX 2008 (we weren’t, in the end) but we did have our time on Flash Platform Adobe Partner booth at MAX. I was cautioned to keep the focus on the AIR application rather than the Railo-powered iPhone web application.

In the meantime, we’d been evaluating our development and QA server organization. We were using the JMS event gateway for our ColdFusion 8 powered CMS (Broadchoice Community Platform) but we didn’t feel it was right to have to pay $7,500 for each development and QA server. Fortunately, Adobe’s license did permit virtualization on a known number of CPUs so we bought a ‘big’ server and used Xen to set up ten virtual machines: 5 development instances, 4 QA instances and 1 demo instance. Just one CF8 Enterprise license covered the entire system. It wasn’t our ideal but it was the only reasonable way to manage our systems with Adobe’s license. Our production cluster – for our CMS – grew to four servers, all running CF8 Enterprise, fully paid for. Yet we had to skimp on on dev/QA setup.

We really wanted to move our CMS out of the data center and up into the cloud, like our collaborative Workspace system. Discussions with Adobe ensued and we got the permission we needed to deploy CF8 on EC2 – thank you Adam and Kristen! – and so, at the end of 2008, we migrated our CMS to multiple instances of CF8 running on EC2 (and that migration will be the subject of my talks at Scotch on the Rocks and CFUNITED). The net result was that CF8 ran beautifully on EC2 and we saw improved performance (after the slower startup due to the virtual file system).

Today, the Broadchoice applications are very coupled to their choice of CFML engines. We run both Railo and ColdFusion – and unless there are substantial changes to both, those choices are unlikely to change.

Which all brings me back to my point (oh, I bet you are pleased to discover I actually have a point after all this rambling!). Over the years, I’ve become a huge fan of ColdFusion and I’ve staked my professional career on it. However, despite that enthusiasm, I recognize that there are certain situations where Adobe’s licensing and/or the memory/disk footprint of ColdFusion simply don’t work. Sometimes a ‘proprietary’ system won’t fly, only an open source solution. Sometimes cost is an issue. What are the options in those situations? In the past, the only option was to turn to a non-CFML solution.

Given many companies’ preference for homogenization, this often meant a wholesale shift to Java or .NET (the latter is something that New Atlanta seem keen to assist with). It has also meant the ‘bleeding out’ of advanced CFers to Ruby on Rails and Groovy (as hinted at by Peter Bell and Neil Middleton, who has moved to Ruby on Rails).

ColdFusion long held the RAD crown for web development but even Adam Lehman will admit, I think, that RoR and Grails have at least borrowed, if not stolen, that title these days. Adobe are working hard to grab the crown back with Centaur – and from everything I’ve seen it will be an incredibly impressive release! But these days, it isn’t just Adobe fighting to get the RAD title back. OpenBD and Railo have shown that you can have a full-featured CFML engine that can compete with RoR and Groovy on price and licensing.

This week we’ve seen the culmination of the maturing process for CFML so far. We now have multiple, credible open source implementations. We have big names backing those projects. We have a strong, growing community (Adam Lehman says 350k new CF developers have appeared since Adobe took the helm). The original implementation continues to evolve and innovate. The open source implementations are also innovating and evolving too. We have a central, multi-vendor committee that is attempting to standardize the language.

Could the free alternatives hurt Adobe? There’s an argument that they’ll leech away some of the low-end sales but my impression is that high-end sales are growing and Adobe is making more money from the Enterprise edition than from the Standard edition. Having said that, I think there’s no doubt that free open source CFML engines will cannibalize some low-end ColdFusion licenses. However, if those licenses are endangered by free CFML engines, they are also endangered by other free options (or even non-free options). A corporate commitment to CFML is not overturned by price alone but licensing is a factor. So if some low-end licenses will be lost by Adobe, how could this new competition actually benefit Adobe? Consider those CF shops that would move to another technology, a free technology (or a “free” technology – don’t get me started on .NET!) or a perceived “more RAD” technology. What if CFML was available in those categories too? What if the choice between PHP and CFML was not based on price? What if the Java community could consider CFML as a native JVM language supported by a well-respected Java-based organization like JBoss? All of a sudden, CFML is no longer a proprietary, expensive application server. The eco-system has grown. Adobe’s audience has grown to encompass people who might otherwise have embraced PHP or RoR or Groovy or even Java. If Adobe picks up even a few of those licenses – as people in that sector demand more from their new language – they’ll have benefited from the competition.


Sean Corfield
About Sean Corfield
Sean is currently Chief Technology Officer for Railo Technologies US. He has worked in IT for over twenty five years, starting out writing database systems and compilers then moving into mobile telecoms and finally into web development in 1997. Along the way, he worked on the ISO and ANSI C++ Standards committees for eight years and is a staunch advocate of software standards and best practice. Sean has championed and contributed to a number of CFML frameworks and was lead developer on Fusebox for two years.

Leave a Reply