By Peter Bell

The Long Term Viability of ColdFusion

I love ColdFusion and believe it is a great language choice for RAD website development, but I don't think we should underestimate the challenge of keeping ColdFusion as a credible and relevant language choice in the longer term.

I was just speaking with a VC worried about that fact that one of his portfolio companies used CF and asking whether they should port to Java or .NET. After explaining the business benefits of a dynamically typed language, I said he could join the "cool kids" and port to Ruby or Python, but for a start up, CF, Ruby and Python (to me) are the obvious choices in terms of speed of development. And with the proven scalability of the underlying Java server and the ability to port parts of the model to Java if required as they stabilize (plus the very cool RAD tags) I think CF is still often the best choice.

I do think that Adobe is committed to ColdFusion. It will be interesting how they work with perceptions in the wider community as part of the Scorpio release. There needs to be more outreach and clear "whycoldfusion.com" style resources making the business and technical case, as I don't think CF is in immediate danger from Adobe management, but I think it has a fight on its hands to stay relevant in the 36-72 month window and beyond.

I like the recent debate on what CF should become and to me as long as it continues to be acceptable for OO development (which it already is) and continues to innovate in terms of speed and ease of development for less technical users (and more technical users who are just in a rush!) it will be in a strong place, but I don't think we should underestimate the difficulty of ColdFusion staying viable in the longer term.

Hal Helms pointed out a lot of this at cf.objective() this year, and as a community I think we need to continue to support Adobe in innovating to continue to keep CF as a compelling language choice for RAD web development.

ColdFusion is (like Perl) a great "glue" language for pulling disparate systems together and reconfiguring them quickly and easily. I think that Scorpio announcements like the ability to natively consume local and remote .NET objects will continue to support that goal and adding new tags for doing more "cool stuff quick" will continue to support that process.

I also think there would be a place for reusable UI widgets a la Visual Studio, but with a more tag based syntax and Adobe needs to either get behind CF Eclipse or provide its own Eclipse based IDE (I'd much prefer them to work with Mark and the CF Eclipse project than against them).

All of the above items are important as they keep ColdFusion in the game, but to really change the game as CF did when it first came out and then when it ported to Java in MX, I think it should look at de-skilling Active code generation and Test Driven Development. Right now CF is undertooled for serious software engineering compared to some of the tools available for Java and .NET (Resharper et al).

Many of the limitations are a function of the difference between dynamic and statically typed languages, but I think we are at a moment in history where approaches like design by contract and test driven development could be folded into a language/IDE (as options) in a way that would allow less skilled developers to create more robust software and that would speed development.

In the past I think CouldFusion could be positioned as "web development made easy". But as even the simplest sites become more complex I think it needs to become "web engineering made easy", allowing simple access to powerful architectural and engineering paradigms.

I've ignored Flex for a reason. Flex is going to be very popular, but Adobe can't afford to make it HARD to integrate with any language, so easy integration and single provider benefits aside, it'll help ColdFusion, but it is only going to carry it so far.

What do you think? Forget interfaces and new cfwhatever tags and fixing minor bugs - what is the next game changing innovation ColdFusion needs to make it the obvious choice for RAD web application development?

Comments
While I think CF isn't expensive I also think the price will always be an issue to many startups. CF is a tool, and a great one, but so is .net, php, etc. People make choices in the beginning of their new project about the tools they will use and often times it comes down to "cf would be great, but PHP is free, and that means I can eat for the next month". That said, I have found less push back this year in the corporate world. I easily sold Disney and CareerBuilder on CF and continue to do multiple projects. Same with Universities and government. The push back I had in the past just isn't there.

One really good idea is to get CF code samples available for EVERY public API available from all major players. Ray has done a great job starting that with Yahoo, but Adobe needs to work on getting that code listed on the Yahoo site. Check out the topic of Tims latest blog post about this.

http://www.buntel.com/blog/index.cfm?mode=entry&am...

CF needs to be presented as an option everywhere. If not then people make decisions based on what is perceived as available. In the absence of information people take whatever they can find. I think a special version of CF for web hosts would be a good idea. Get CF on every shared hosting machine, and thus an easy option for anyone to use in a production setting.
# Posted By Joshua Cyr | 11/11/06 4:06 PM
A startup wouldn't choose CF if they're not already well versed in CFML. From a neutral project management point of view it makes sense to use a free or low cost platform such as PHP on Linux or even .NET if you don't have heaps of money. You also have to look at support. PHP is a self-help community with vast amounts of free info and people willing to help, CF is similar but on a slightly smaller scale. Microsoft provides developers with lots of free resources and free expert help which no other platform provides. Help from Adobe costs $10,000+ per year.

However, the simplicity of CFML is its best selling point. For example, my current project is so complex that the last thing I want to be thinking about is HOW to program something in a particular language. The priority is to manage the complexity of the app and ensure each piece of functionality is implemented in a user-friendly way that works well with all the other features. Having to focus too hard about the technicalities of the code itself is something that should be avoided, although I grant you it's important, but if you have 100 units of effort to spend you don't want to throw too much into thinking about working with the language itself. What I'm saying is CF lifts the mist so you can see the objectives of your application more clearly. And another bonus is if I want to change some functionality to see how it improves/ruins the app I can do that very quickly as there's less code to adjust or type out.

CF is the plasticine of the web application programming languages. :-) I must admit that new clients are still cautious of using CF thanks to the lack of marketing from MM/Adobe, and if they ask me what the support is like from Adobe I find it very hard to come up with an honest answer that builds confidence in the product. That's why I also offer PHP and Microsoft solutions if the client insists.

Long term viability - yes, if Adobe improves support and that means supporting the community a lot better, and starts marketing the product to improve awareness and confidence.
# Posted By Gary Fenton | 11/11/06 5:14 PM
I should have qualified what I meant by a start-up. I meant someone bootstrapping the business on a nominal $100,000 - $500,000. I simply don't see the cost of CF being material unless you're looking at a whole bunch of servers - it costs the same as a decent laptop which is not very much.

I don't like PHP. There is a lot of bad PHP written (same as ColdFusion), but it really doesn't have any compelling benefits over Python or Ruby, and with their OO background, Python or Roby developers aree more likely to write maintainable code.

There is a shortage of skilled developers in all of the dynamic languages, but the nice thing about CF is that you can transition someone fairly quickly from a Java background and you have the added benefit that you an write parts of your app in Java if it makes more sense.

@Joshua - I'm very glad to hear you're getting less push back. Any ideas why? Any resources you use from third parties (or Adobe) to "sell the platform"?. Great idea re: the API samples - that is a constant minor annoyance. There is usually something out there, but finding it has historically been a pain.

@Gary - a startup should choose whatever language they are comfortable with already. A CF license is a lot cheaper than learning something new, and even classic ASP can be used to hack together a website if that is the only skillset you've got (although I'd recommend first hire being a VP Eng. so you can go fix the mess early!).

I agree that CF does a great job of simplifying some things (especially "low level" tasks being replaced by simple tags). It needs to do a better job of handling essential complexity by somehow better supporting best engineering practices for developers that want to use them.

I also have clients that insist on a LAMP or Microsoft stack, but that is a problem that everyone has (a Microsoft shop isn't going to get a LAMP gig and vica versa). That's just one of those things.
# Posted By Peter Bell | 11/11/06 5:25 PM
I hear what you are saying Peter and I completely agree that a startup with money is not needing to worry about the price of CF that much. I guess I am thinking about the 99% of the rest of the sites and ideas people have. Perhaps not properly termed as a start up, these people or groups have an idea, and need to prove concept. Once they start down a road it is less likely they change languages later. How many companies can you think of that said they started with 10k in credit cards while working evenings until they got it off the ground or their demo was ready to put in front of angel investors / vc? A working demo means you need the system in place which means money is a consideration. I am not advocating that CF be free, or even lower priced. Just a market dynamic they have to deal with. Certainly people can do proof of concept with a dev copy of CF, but it doesn't prove much if only 3 ip's can hit it, etc.

As for choosing CF or .net. Some people just pick the first language that seems to fit the bill. They may have some exp with a few in testing.
# Posted By Joshua Cyr | 11/11/06 5:59 PM
Hi Joshua,

I agree and in fact my first few companies (Personal Training business in London, Ad Agency in London and New Media Agency in Texas) were all started on under $15,000 in credit card money. See my next post for thoughts on micro-start-ups which to be fair is where most of the cool ideas come from - not old farts like me in their mid 30's :->

I would argue that any start up that doesn't have deep knowledge of a language will be handicapped. Luckily a lot of web plays actually don't have very much technology to them, but I can't imagine starting a company in a language that I didn't know inside and out. That is one of the many reasons I chose ColdFusion for SystemsForge - I've been using it on and off since '97.
# Posted By Peter Bell | 11/11/06 6:12 PM
I think price is always a sticking point with any product and the fact that (almost?) every other competing language is totally free seems to immediately rule out CF in a lot of peoples minds - including mine up until a couple of years ago.

Is it just me, or is it not obvious enough that the developer edition is free and is perfect for people to learn with? Younger developers will choose the free option 99% of the time because they rarely have the cash to fork out for an actual production, commercial edition (not that they need it initially, but the mental barrier is there). Along similar lines, CF hosting costs significantly more than PHP/whatever hosting and so even if someone is learning CF and really likes it they don't have many options to put their projects into production on a real web site.

Adobe needs to get some new blood into the ranks to build the user base. ColdFusion 8 will be the perfect opportunity for this, especially with all the kick ass new features that seem to be on their way - ajax tags, .net integration, pdf stuff, image manipulation, the list goes on. I think they either need to drop a free(ish) product on us that people can actually use, or market the power of the language and make it known that the developer version is free and that it will be a great starting point for the young developers of the future. But either way I think the dollar figure is still a hurdle, because if it was to me then it definitely is to others, especially in times of open source 'hype' (no I don't dislike OSS, I think it's great!) and people expecting software to be 'free'!

Just my 2 cents anyway :)
# Posted By Justin Carter | 11/11/06 6:49 PM
Any arguments relating to the cost of ColdFusion having any effect whatsover on a startup are nothing short of pure bullshit!

If you can't afford the $1,200.00 for a CFMX license, you can host your site for $20.00/month or less.

If you are generating enough traffic to drive the cost of hosting up, you can probably afford the license.

I'm sick of people throwing out the red herring of the cost of CFMX being a substantial barrier to adoption. For any truly viable business, the cost of ColdFusion is trivial.

Gus
# Posted By Gus | 11/11/06 8:32 PM
ok, you've convinced me. I just ordered whycoldfusion.com
# Posted By Michael Dinowitz | 11/11/06 10:02 PM
Gus, I agree that for startups the cost of CF is indeed trivial, but cost is anything but a red herring in regards to adoption, in my books at least... Back to my point in the previous post, I'm specifically talking about the cost to new developers, the ones still in high school, or trying to pay their way through university (that was me a few years ago), or the ones fresh out of university (that was me a couple of years ago). On face value, CF costs a substantial amount whereas the rest of the options (Java, PHP, Python, Ruby, .NET to a certain extent) are free.

What was the first programming language you used? Was it free? I went from Basic to Pascal to C/C++ to Java to ASP (hah) to .NET to ColdFusion, and all of those had a free option until you get to ColdFusion. Years ago I had no interest in ColdFusion because I knew there was a price tag attached, so I didn't bother learning it. Maybe younger developers today have a bit more foresight than I did 5 years ago, but I'm willing to bet that most will still ignore CF simply because it does have a price tag attached and for not many other reasons at all...

I still think that ColdFusion could be a lot more accessible to a lot more developers by either a 'free' version, or a good marketing and community push (the latter is probably a better choice for Adobe, for obvious reasons). It is apparent that people think ColdFusion is 'stagnant' (I'm sure you all read Kevin Yank's articles on SitePoint, and strongly disagreed with him!), but those of us on the inside of the community know that CF is anything but stagnant. We know how exciting things currently are with the great amount of sharing that the community does, we know the current batch of frameworks available to us are nothing short of amazing and are improving all the time, and then we are simply drooling at how cool CF8 will be... But does anybody else on the 'outside' know? The mentality always seems to be "ColdFusion? Doesn't that cost thousands?".

Maybe I'm off in my own little world, but this has been the impression I got for years and I think I am still seeing the same thing even now... Software companies don't exist without developers, but if the developers never learn ColdFusion then the businesses are less likely to use it. In some ways it's like the chicken and the egg thing! :P Feel free to disagree though :)
# Posted By Justin Carter | 11/11/06 10:31 PM
Justin,

Yes, ColdFusion does have a free edition. The developer edition is free, and fully functional with the exception of restricting the number of IP addresses that can hit it. This is what most developers install locally for development.

And yes, I started out my web career with a free language. PERL. But that is because it was pretty much the only option. ColdFusion hadn't been invented yet. Nor had ASP, PHP or RoR. It had nothing to do with cost.

So here are the costs for getting started with ColdFusion:

Developer license: $0

If you want a public facing site with a host:
Hosting < $20/month

How is this any more expensive than the 'free' options out there?

If you are looking to run your own servers, yes, there is an additional cost for the ColdFusion license, but again this is a pretty insignificant cost once you are at that point.

Gus
# Posted By Gus | 11/12/06 11:10 AM
Even though many developers say so, price has never been the achilles heel of ColdFusion. Lack of trust in the product, and little (none) marketing resulted in other competitors in the market to step forward. When advantages of a product are not clear enough, no company is interested in investing in it.

In the last years, the product itself did not help spreading the word either. People were stuck in stability issues with cpu spikes, or the services hanging while running in production. Some had to do with configuration, but alot with the product itself. On top of that, the innovation was primarely focussed on Flex integration, and long requested functionality like image processing was left out because Macromedia decided similair functionality was available from other companies as an add-on.

BlueDragon took advantage of that, and it performs better, has superior stability, and is more focussed on helping developers with core programming functionality.
# Posted By M. Schopman | 11/12/06 5:00 PM
Hi Everyone

I've read lots of blog articles etc on this topic and I'm surprised that no-one much airs the topic of being able to build and deploy applications on J2EE platforms. We are doing this quite successfully (and painlessly) and it definitely cuts ice with clients when you say that you can drop the app into their websphere/weblogic/tomcat configuration.. Rightly or wrongly it seems to give CF more viability (its all just Java see..) No hassle with convincing corporates to license and maintain CF server (lots of companies have real pains introducing a new piece of software as I'm sure everyone knows). Now it isn't cheaper - still need a licence, and the licensing policy from Adobe is a trifle oblique in this respect, but as has been said, for most clients the actual license fee is not a problem
# Posted By Richard Tugwell | 11/14/06 1:11 PM
A lot of comments relate to how ColdFusion complements Flex, and one can see, from Adobe's point of view, why they want Flex to succeed.

But tying CF to Flex is a double-edged sword, as it assumes that the rest of the world wants Flex, that users want even heavier/slower-to-download "rich" applications, and that developers want to tie themselves and their web applications to proprietary Flash-based systems, and that they're going to want to move to the "best" platform that supports Flex.

There's an awful lot of assumptions in that paragraph, and again, it seems that Adobe is moving developmental resources away from supporting web-standard HTML/XML/CSS/JS systems to Adobe's own technologies.
# Posted By Michael Long | 11/14/06 7:05 PM
Gus,

You can make the argument that if you have your own servers CF's cost is inconsequential if you wish, but I disagree. Since a new rack server can be had for $2,000 ro so, adding $1,200 on top of that for CF is half again the costs.If you ever get to the point where you want to have two servers for uptime/load balancing issues, the price skyrockets to $5000 more per box, or $14,000 total for the pair.

Compare to a pair of servers with W2003 installed, and add .NET and built-in clustering for free, for a total of $4,000. Or subtract $1000 from THAT price, should you drop W2003 licensing altogether and go with a LAMP stack.

I don't care if you're a big business or not. Start throwing around bundles of $10,000 bills and people start to notice.
# Posted By Michael Long | 11/14/06 7:17 PM
Where does the $14K go... (2K + 1200)*2 = 6400 ?
# Posted By Justin | 1/30/07 3:02 PM
Not necessarily agreeing with Michaels position, but I think he's suggesting you'd move from CF Professional to CF Enterprise for load balancing, so the $1200 per box becomes $5k. 2 * (2k + 5k) = 14k.
# Posted By Peter Bell | 1/30/07 3:15 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.