Why Do You Stick with Adobe ColdFusion?

For people with a vested intered in cfml it’s a question a lot of people seem to be taking up these days. Stick with Adobe ColdFusion or stray away to BlueDragon, Railo or even Smith Project? BlueDragon and Railo seem to be making amazing progress at a time when ColdFusion was boarded up working on a great new version themselves. In the end though a lot of the features end up the same between the three, so what killer features have made you choose one over the other?

For a corporate environment Adobe is obviously the safe bet. I can’t imagine us going with the little(er) guys at work, especially at a time when Flex integration is so incredibly easy. But aside from Flex, and a few new CF8 tags I’d love to play with (with cffeed, onMissingMethod, interfaces and cfimage at the top of the list) it just be overkill for a small independent startup with a limited budget unless Adobe decides to alter the pricing model for CF8, which I highly doubt. BlueDragon on the other hand has a free version for non-commercial (non-SSL) deployment, while Railo has a free Community edition where the main limits are one webroot, no cfx tags and the lack of a few tags I wouldn’t otherwise be using. Railo is really making some great strides, but it’s happening on the programmatic and performance side rather than RIA and interfaces. The huge amount of CF8 helpers, cfcharts and flex integration would probably pay the way for a CF license to me if those were required features, but what about when they’re not?

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments
do programmers have a choice on which CFML engine? Honestly?

I thought it would be up to the decision on what they see as best value for money, how the choice fits in their overall IT strategy, for their company etc.

Programmers turn up to do the job. if they don’t like the CFML engine choice they walk or don’t start. They get used to the language and what features each platform has and perhaps give an opinion or two…

Would I take a job on a non-Adobe CFML engine? not if I had a choice. But that’s not a slight on Blue-Dragon or others. It’s only because I’ve spent energies to try and understand one particular implementation because I appreciate the integration with other Adobe products. However, if push came to shove I suspect that as long as it was some form of CF I’d take the job…

eh, my 2c

First of all, Railo and OpenSmith are not legitimate contenders. They don’t support the entire CFML language. At my work, Blue Dragon is not an option. First of all, my management doesn’t have any idea who they are. And I’m not a Microsoft fan, and we’re not a Microsoft shop, so I don’t see Blue Dragon in our future at all.

Its Adobe by default. The real question should be “Should we spend $10K to upgrade two servers to CF 8?” My manager chose ColdFusion about 4 years ago and then did absolutely nothing with it until I got there. Now he wants us to look for commercial apps written in CF. I told him he should have gone another route if he wants commercial apps. CF is a DIY platform.

Nice that it’s a straight forward decision for some people, otherwise it’s a question of evaluating 3 elements - price, functionality and support. If a cost-concious project doesn’t require any more functionality than what Railo provides then I don’t see why it shouldn’t be seriously considered, and that 2-3 times speed benefit sounds too good to overlook. I don’t know what Railo support is like - that could be a deciding factor for some projects. Where it could really shine is if you have your CF app split across multiple servers (perhaps not clustering as I don’t think Railo supports that?), it would save buckets of cash if you needed lots of licenses. Saying that I’m still using CFMX for my core CF project.
I really like the idea of having different options in the area of CF app servers but I have to agree with some of the other comments. The practicality of using another app server besides Adobe’s is unreasonable until all of the competitors can support the same language constructs. That being said, I really like the focus that Railo is taking. I don’t know too much about OpenSmith, but BlueDragon has made some pretty amazing strides as well in the app server realm.

If anyone is interested I would definitely suggest reading up on the work being done in Java right now with dynamic languages. If Adobe could release the CFML engine as an open-source JSR 223 compliant language, competition could really take off in the ColdFusion app server market. Basically anyone could take the language and build Java-based container in the form of an app server but guarantee compatibility across implementations. Adobe could still make the kick ass tools for development and possible enterprise extensions, but shops would have options. It feels like the beginnings of the markets are there, we just need Adobe to step up like they did for Flex.

Imagine if you could choose your app server based on who did a better job at implementing the app server rather than who had control of the language.
:)

barry.b:
>> do programmers have a choice on which CFML engine? Honestly? > First of all, Railo and OpenSmith are not legitimate contenders. They don’t support the entire CFML language. > And I’m not a Microsoft fan, and we’re not a Microsoft shop, so I don’t see Blue Dragon in our future at all. > Where it could really shine is if you have your CF app split across multiple servers (perhaps not clustering as I don’t think Railo supports that?)
My comment didn’t appear to go through last time, hopefully it’ll work this time…

barry.b:
~~ do programmers have a choice on which CFML engine? ~~
It probably depends on the company. Certainly in a SMB where there might only be one or two programmers, also occupying the IT manager/director position.
In larger companies, it probably depends on the structure.

Jeff:
~~ First of all, Railo and OpenSmith are not legitimate contenders. They don’t support the entire CFML language. ~~
Smith I agree with - there’s too much missing at the moment.
What makes you say Railo isn’t a legitimate contender - which features are missing that prevent you from considering it as one?

~~ And I’m not a Microsoft fan, and we’re not a Microsoft shop, so I don’t see Blue Dragon in our future at all. ~~
BlueDragon isn’t a Microsoft-only solution. They offer three Java-based versions too.

Gary:
~~ Where it could really shine is if you have your CF app split across multiple servers (perhaps not clustering as I don’t think Railo supports that?) ~~
I’m not certain about this, but I think that since Railo supports jessionid, you can possibly use clustering on the underlying server?

We purchased BlueDragon because it consumes less server resources, has a great upgrade subscription plan, and has enterprise features for less than CF Standard.

Having said that, however, we are finding that it is costing us more because many of the popular CF frameworks are not supported by BlueDragon (or vice-versa, however you look at it) and I am afraid that is only going to get worse as framework authors begin developing to CF8.

–And I’m not a Microsoft fan, and we’re not a Microsoft shop, so I don’t see Blue Dragon in our future at all.

Yeah, I’m on BD and Linux. I have no use for flex and such. I appreciated locally the huge drop in memory use too. And the much cheaper hosting.

I do hope like Aaron that BD ensures major framework compatibility as they promised on their list. I haven’t seen any recent update posts about that after the initial flurry, though. I hope the promised hotfix is coming quickly, really shouldn’t take long. (Aaron, take a look at Coldbox. Coldspring is supposed to work on BD and Reactor can with some small changes to it posted on Shuck’s blog.)

I use the following metaphor when thinking about the “Adobe vs. Everyone else’s CF app server debate”.

You know those kit cars that look like Lamborghini’s? They’re usually built on an old Fiero frame or something? Those kit cars are not the real thing, they’re not a Lamborghini. They just look like one. People who can’t afford a Lamborghini, but want a sports car, should buy a 350Z or Corvette or something.

Likewise with Coldfusion.

If you can’t afford Adobe’s Coldfusion, use PHP, ASP, JSP, Rails, Python, etc… There are plenty of non-knock-off languages out there. Do you really want to deal with the nuances of bugs between each CF app server provider?

@barry.b
Really depends on the situation. If you’re doing contract/hosting for a client who just wants a website done you may have control. But then again it might be unwise to choose a platform used by 1 in 10,000 of the already 1% stake.

@Jeff
True, as long as Adobe creates new tags, especially some of those that tie into their other software so well I don’t see other vendors supporting them. Perhaps going with the cheaper alternative it’ll be easier to go somewhere else than CF if needed as well? Then again with CF you could do a J2EE deploy or on .net now and look for quite a few other options as well.

@Gary Fenton
$10,000 for 7 servers or $28,000? Scaling up that would be quite a problem. Then again that kind of shop could probably afford the top of the line, especially with the new multi-server monitoring in CF8. If they’re going the cheap route though. Railo help does mention one thing about multi-server environments though:

“With the Server Administrator “Railo Enterprise” offers a tool with which all Railo webs can be administrated from one server, unique in the CFML world.”

Seems like this is in CF8 as well with a nice flex interface.

@Brian
All dreams :p But as far as others implementing all cfml, I don’t ever see that happening. From what I’ve read there are things in Railo they have decided explicitly NOT to implement, such as structs with periods in them accessed ambiguously (you can’t do mystruct.varname.withaperiod as that’ll throw an error. You’ll have to do mystruct['varname.withaperiod']. A few other small things like that will keep the languages different to no end.

@Aaron
Ouch! I doubt any of the major frameworks would go entirely cf8, but i’d be shocked if there weren’t some specialized ones that only those on it will benefit from.

@Sica
Maybe if the engine from the kit car has twice the horsepower! BD and Railo are almost slimmed down versions of CF. I’d compare it more along the lines of Apache vs lighttpd. Hell of a lot more support for apache, but those using lighttpd seem to be happy with their choice as well.

If you’re choosing a platform and sticking with it, the only nuances and bugs will be from other peoples code that you’re using. With framework support this cuts it down so the nuances aren’t huge, but can certainly be a pain. Someone coming into the language from the start I’d suggest CF so that you don’t have to worry about all that. But if you’re thinking about end all cost for someone that already knows CF, then it’s probably cheaper to use something like Railo than to learn an entirely new language and it’s helper frameworks from scratch. For someone on a budget looking at that list of languages blindly the obvious choice is PHP — it’s free, most developers, most jobs, most hosting — but does that make it the right choice?

Standards and R&D. Adobe came up with CFML and they’ve had years of experience with it. R&D - they’ve put time and money into successive versions of ColdFusion. Why not take adantage of work that Adobe has done on CFML?

And finally, when I look at job ads, I see most of them are asking for CF 5, MX, 7, 8 even. I don’t see a lot of job ads asking for Railo or BD.

Just my couple of thoughts…

Railo supports clustering in a regular J2EE environment. That’s why you have the ability to switch between J2EE and CFML session types.

The things that Railo does not support (yet, up to Railo 2.0) are:
, eventgateways, , , and flashforms as well as some of the new CF8 features. But Railo 2.1 will contain most of them. So if you say that Railo is no real contender and you consider one of the things mentioned above, then you are right. It still depends on your needs. Some companies using Railo have decided to use Railo for their high traffic websites since the performance was more important to them as one of the features above.

We at Railo try to stick as good as possible to the CFML standard (well we call it that way). So all major the frameworks like MachII, Fusebox 5.x, Modelglue, Coldbox, Coldspring etc. work on Railo 2.0 without any exceptions.

I think there’s a fair amount of misunderstanding about Railo as a CMFL engine. Unless you’re using every possible CFML tag, you’re very likely to have no problems deploying with Railo.

For example, my agency has been able to deploy our CMS using Railo, with losing no functionality. Our CMS is built using CFML constructs like Fusebox, ModelGlue, ColdSpring, Reactor, etc, so we’re not talking about out of date or limited code. In fact, because Railo deploys in a Java environment without a ColdFusion app server, we’ve been able to sell our CFML solutions to (major) clients where we otherwise would have been shut out.

So while it’s true that Railo doesn’t support the *entire* CMFL tag library, I think you’d be surprised how much is supported. We’ve been very happy to have Railo as an alternative solution for us, and the fact that it’s significantly faster than Adobe’s ColdFusion server is an added benefit.

We’re huge fans of Railo - it’s a great addition to the CMFL world.

@Adam
“All dreams :p But as far as others implementing all cfml, I don’t ever see that happening. From what I’ve read there are things in Railo they have decided explicitly NOT to implement, such as structs with periods in them accessed ambiguously (you can’t do mystruct.varname.withaperiod as that’ll throw an error. You’ll have to do mystruct[’varname.withaperiod’]. A few other small things like that will keep the languages different to no end.”
——————————–
This is not quite correct, you can allways access a struct data with either syntax without any problem, but there are no interpretation of the keys of a struct, because that slows down execution of the engine and can produce some irregularity in some special cases and it is used very rarely.
Let me make an example: If you define a variable like this
<cfset myStruct["some.key"] =3>
you cannot access it in this way
<cfdump var=”#myStruct.some.key#”>
but only this way
<cfdump var=”#myStructmyStruct["some.key"]#”>
because the key is not “some”, but “some.key”

CFMX7 does a little more interpretation and therefore in this case it works with the first notation as well. BUT in CFMX8 the second notation throws an exception as well! So we were on the right track. Now this means that in Railo it works the same way as in CFMX8.

We are really working hard to be as close to CFMX as possible, because a lot of the behaivour is not properly documented and CFML is not yet standardized. So it is not always that easy as it looks like. If you have any problems running your apps with Railo, we will always try to help you or by fixing issues on our side.

SORRY I meant: “in CFMX8 the FIRST notation throws an exception as well!”
[...] and it’s comparative cost with other application server products (ASP.NET, PHP etc etc). See Adam on Life, the crumb and even Feed-Squirrel for a small sample.  This is why I was somewhat stunned to see [...]
Leave a comment

(required)

(required)