CFML, Clojure, Software Design, Frameworks and more...

Is Choice A Good Thing?

April 6, 2009 ·

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.

19 responses

Excellent points, Sean. As a CFML developer, I want the platform to become more popular and widespread so I can continue to develop with CFML, which I really enjoy. So from my perspective, anything that helps CFML to grow will benefit everyone involved.

For any fans of &quot;The Office&quot; (American version), it's not a win-win situation, it's a win-WIN-win situation :)

I think there is a very valid argument in this line of reasoning. I've come across several marketing studies that demonstrate that competition can increase overall volume of sales to the point where all competitors benefit. Of course it won't always hold true, but in this case, breaking down the price barrier may bring the CFML language forward in demographics where it may count significantly, opening up the market to Adobe in ways that would not have been otherwise possible.

License sales are limited to a certain degree by the number of programmers that know the language. A free version of CFML might make learning the language a more attractive proposition.

I'm loving the direction that Railo is heading in. I think it's going to mean great things for the CF Community as a whole. I also think it's going to play a major role in helping to propel CFML forward.

This reminds me of my early days as a Community Expert. Someone in the Adobe forums was just learning CFML, really excited about it, but then their company decided they weren't going to pay for ColdFusion licenses, and that they'd just use ASP (I believe this was pre-.NET) instead.

The person who just learned CFML was distraught and was really looking forward to working with it, and asked if there was an alternative. At the time, the free version of BlueDragon was available so with many caveats and &quot;if you have no other options&quot; due diligence in place, I pointed them to BlueDragon.

I almost immediately got an email from some folks at Adobe; let's just say it was a &quot;very stern talking to&quot; and they deleted my message from the forums (or made me delete it--can't remember which).

It probably was stupid on my part to point this person to BlueDragon, but the way I looked at it then (which I explained to the irate Adobe-ites) is the same way I look at now: this was a person/company you are going to LOSE ENTIRELY to another technology if they have no CFML option available that will fit their situation. To me that's worse than losing them to a different CFML engine because then at least they're using CFML.

I asked the question of Adobe at the time if I was an evangelist for ColdFusion as a product, or an evangelist for CFML in its entirety. You can guess what their response was. I suppose I look at the situation in a lot more &quot;big picture&quot; way than &quot;Are we going to sell this person a license? If not, who cares.&quot; I guess that's my luxury since it's not my job to sell CF licenses.

Also, as I got more and more into the free software movement, quite frankly ColdFusion stuck out like a sore thumb in my world view, and while it probably sounds crazy to some, that's important enough to me that I was looking at moving off CFML entirely before OpenBD came along.

Anyway, this is all just to say choice is good in the CFML world because I've seen far too many cases over the years where CFML lost out for many of the reasons you outline above. Adobe may not care specifically about those situations if they aren't going to get a sale out of it anyway, but I firmly believe it's better to keep people in CFML than to lose them entirely.

About time one of the big names in ColdFusion came to this conclusion.

IMO, even if Adobe can still make money selling service to big customers. It is the Java, JBoss, and Redhat model to give the product away for free in return for selling very expensive support. In fact, I could make a very strong argument that Redhat only got big in government/circles when they upped their price for RHEL support.

Nice post Sean. I think that the newly open-sourced versions of CF will greatly help Adobe's bottom line, however, it might not help where people expect.

To me the benefit for us CFML developers is in the greater adoption (and the attendant increase in numbers of developers using the language) that Railo and OpenBD can bring to CFML as a language and community.

For Adobe, I think the profit lies in Bolt (or whatever it will be called). Assuming a greater number of CF users (sites, developers, etc.), the need for a standard IDE increases (no knock on CFEclipse...I love and use it daily). I, personally, think this is where Adobe sees the dollars (see the opening of Flex as a server versus the incredible sales of Flex Builder since version 2 as a model).

Anyway, long-ass comment short, I think the moves by Railo and OpenBD will have a profound and positive affect on both the community and Adobe's bottom line.

All very good points Sean. One things I've noticed: The community is starting to refer to the language as CFML more consistently. This lends toward becoming a more non-proprietary platform, which gains trust from developers who prefer not to get locked into proprietary technologies. Overall I think it's a great thing, it will help the community as a whole grow and provide significant diversity, given the options available.

Sean, are you sure you aren't still a lurker on cfguru? We just had a HUGE thread about most of these topics in your post. ;)

Excellent points. I hope Adam or someone else big at Adobe reads this. I could be wrong, but I'd think Adobe would rather keep customers like you and others that are leaving for various reasons. So this might prod them to make some changes to pricing/licensing in future releases. I'm not going to hold my breath, but it would be nice. I am not one that thinks Adobe should give it all away, but I do think there is plenty of room for an unrestricted (by licence) free or inexpensive version.

I know that the big point you were making is that Railo/BD fills the open/free gap. But ask yourself this: How many non ColdFusion community IT managers and/or web developers even know about Railo/BD? And is that going to change anytime soon? Maybe. Only time will tell.

@Jake, I've been off CFGURU for a long time but I just asked to be reinstated today because I'd heard that there have been some interesting discussions there lately :)

I don't think Adobe needs to change its pricing. I do think they need to change their licensing in two areas: cloud deployment (which they've already committed to - and are actively working with individual companies on) and dev/QA servers (again, something that Adam @ Adobe has indicated they recognize as a problem).

As for the question in your last paragraph, I just answered that in a comment on Brian Rinaldi's blog so it's a timely question!

Sean makes a lot of good points as usual, and I have to especially agree with your comments towards the end about growing the community. Many people WILL (the Matt Woodwards of the world, and there are many) reject software or seriously consider rejecting it if its not open source. Railo/OpenBD at least provide an option for OS purists who want to do CFML.

Also, Adobe does a lot of business with big big corporations or the government, who I would imagine that the licensing fees are much less important then stability, reliability, etc. If the licensing issues shawn mentioned are tidied up, then I would be surprised if any of this business was seriously in jeopardy.

Meanwhile, lots of smaller developers who would have left for PHP/ruby/etc can stay with ColdFusion. Eventually some of those people will get hired into corporate jobs where they'll use Adobe CF and have no problem writing great code - assuming that the CFML advisory committee does a good job preserving the language!

Maybe one day the openBD/ Railo, and adobe engines might all contribute to a common &quot;Core&quot; cfml engine, and then offer their own proprietary or open source plugins on top of that.

Those are licensing restrictions that have annoy you at some point, but what about other people? Say, hosting companies? I think we all have been annoyed with ColdFusion's various restrictions at some point, whether it be price or features. You yourself mentioned in your post that you didn't want to pay the price for extra ColdFusion licenses at one point in your career. You say that Adobe could fix the licensing for QA/dev, but wasn't the /real/ issue the cost prohibitive price?

I don't expect Adobe to make everybody happy, but it does make one wonder how many other people out there are &quot;suffering&quot; from these same issues, but instead of just sucking it up (or moving to Railo/BD), they move to another language altogether.

@Jake, well, obviously different people are going to have different axes to grind :)

I was buying ColdFusion Enterprise licenses two at a time for my company's production servers. I didn't feel it was &quot;fair&quot; to have to keep buying additional Enterprise licenses for the multi-stream dev and QA servers in-house - so we moved to a big virtualized server that was covered by a single Enterprise license. I didn't have a problem with buying Enterprise licenses for production - and I'm still using Enterprise in production for that same product line and don't plan to change that.

As I was saying to Adam @ Adobe today, I think the reality is that there are projects for which Adobe ColdFusion Enterprise (or Standard) is the right choice and there are projects for which OpenBD or Railo is the right choice. I'd rather see low-budget projects on OpenBD or Railo than on PHP or Rails.

Sean, thank you for a great post and thoughtful insights into the state of CFML (I never thought I'd be using that name!)

Far be it from me to give business advice to anyone but I wonder if Adobe would consider - or even should consider - licensing ColdFusion Standard for free, while retaining sales on Enterprise edition? My thought is that while many, usually smaller, companies would never want to pay the cost of licensing standard, larger companies might prefer to pay a licensing fee for Enterprise Edition. Some companies would rather pay for what they believe to be &quot;real&quot; software rather than use what they believe to be free &quot;hackware.&quot;

In any case, I'm delighted about where things are going and am looking forward to using Railo in the near future!

Interesting and informative read, and many valid points made. The challenge facing ColdFusion, however, is the phenomenal dearth of best-of-breed, open source application components built with CF. If your client wants a leading-edge blog, are you really going to recommend BlogCFC over Wordpress? Are there any credible Web 2.0/Social Networking/CMS open-source frameworks, ala Drupal, Elgg, or Joomla built in CF? There are millions of installs of MediaWiki, and perhaps 14 of CodexWiki. I love CF, but it is becoming harder and harder to justify to my clients why to stick with CF instead of going with the most ubiquitous technology stack on the web, that being LAMP. The fundamental reason behind this lack of credible open-source projects is that PHP is open-source and CF is not. Perhaps advancing open alternatives such as Railo may spur the growth of best-of-breed open source solutions for the CF community. We can only hope.