Monday, 8 April 2013

A reader asks me: "CF10 for a new start up?". Answer: no

G'day:
Goodness: someone asking me for advice. How risky is that? Anyway, it's interesting I guess, and the person said I could use this as a blog article topic, so that's precisely what I'm doing. What I reproduce below is the completely unexpurgated, other than removing a couple of references which identify the correspondent/client/project. At the person's request, I have fixed a couple of typos from the original too. NB: the links below are from the original email, not something I added. I can't / won't vouch for their merits (one way or the other).


Adam,

First, I appreciate your blog and how you attempt to be realistic about ColdFusion in context with what else is happening on the web.

In your opinion, would I be insane to use CF10 as the foundation for a new start up?

Here's my situation, and feel free to make this
[a blog] topic if you want, minus our names or the link I'm providing.

We are a small training company whose CEO used to be CEO of a big, well-known and very profitable corporate training company. He wrote a book and struck out on his own to train based on the IP of his book, and on additional IP developed by the company for training.

To support the training, he contracted some guys to do a web app (which they did in perl), then contracted another group of guys to do an iPad (Objective-C) app. While the iPad app is quite helpful, there is not much love for the perl app, which may explain why he went iPad instead of web for that second app.

As for me, I am a former CIO of a fair sized enterprise who retired in 2004, and eventually moved and became a neighbor to the CEO. He's talked me out of retirement to help with his new start up.

At my urging, he has consented to having the iPad app and the perl app redone on the same platform and integrated. (Here is a 15 minute video overview of the iPad app, if you care.
[link removed]) There are also plans for substantial upgrades to the feature set, but for the first phase we are mostly wanting them ported and integrated.

In short: this is our opportunity to make that big decision of a platform for our new start up.

In my previous life, we used a lot of technologies including Oracle, DB2, Microsoft and open source stuff, and Macromedia ColdFusion was especially beloved by one of our groups -- even though it drove me crazy because the coders wouldn't build n-tier. Microsoft's ASP was used too for things, but it was still young and primitive then.

Fast forward to 2013 and ColdFusion doesn't appear to have aged at all as well as asp.

We cannot fail; we have a timeline, a target and a budget and we cannot miss any of them. Nor can we make
[...] our deadlines, budgets and features only to be embarrassed by glitches during training.

I'm leaning asp.net mvc for all the reasons you can easily guess, and also because there are gazillions of code libraries where we can jumpstart the development.

The problem with asp.net mvc? The Microsoft Tax. BizSpark would be nice of course, but we've got to get started now.

Researching CF 10, it looks like it should, in theory, but a good decision too, especially since our app will need to run well on both tablet and desktop browsers, and since radar charts are an important part of our training and radar charts just happen to be
[baked] into CF10.

But instant gratification is seldom congruent with long term happiness; you should never give up what you want most for what you want now. I just don't know if CF is a solid long term decision.

Reading about DaveRamsey.com "breaking up" with ColdFusion for Ruby on Rails wasn't reassuring in this respect, although I am a bit suspect of their process. For starters, as of March 12, 3013 they are just getting "first impressions" about agile software development! Wow. I retired in 2004 with much more than "first impressions;" I was a full on believer! Plus I saw no evidence that they considered a platform outside of what their developers on staff had previously liked. If they seriously considered, for example, Django/Python or node.js I didn't see it. In fact, more than anything the real reason for the break up seems to be they just wanted to belong to a different developer community.

However, W3Techs.com reports a decline of CF over the last year, and that is not subjective. And when I check out the sites  W3Techs lists as CF sites, nearly all of them has asp.net running as well. Perhaps only target.com is really leaning hard on CF from what I could make out from w3techs.com.

That's not to say Microsoft is universally beloved, but ASP is second only to PHP in market share in "server side langauges" for web apps, so it's hard to imagine Microsoft possibly pulling the plug on ASP.net MVC, or developers abandoning the platform like we see with Adobe. With development shops souring on Adobe, and larger shops dumping ColdFusion, CF10, it almost doesn't matter what CF10 can do, it would still leave me nervous about building a new start up on the platform.

What would you do if you were in my, er, sandals?

Cheers,

[signed]

My reply was thus:

Hi [...]
Sorry to not reply to you earlier, but your email found its way into my junk mail for some reason.

In short, I would not outlay the capital for ColdFusion 10, no. What I would do, though, is have a close look at Railo.  I really don't think there's much in CF10 that Railo doesn't do, and Railo's free, well-supported, and has a good active community (not as big as ColdFusion's, sure, but they seem to be more enthusiastic). If you post a question on their mailing list, odds-on the chief engineer of Railo will reply! Railo has financial backing from some of its larger clients, so they are not going away, either (this is a concern for some people).

As far as the charts in CF10 that you mention go... just have a look at using ZingCharts directly. I have found them easier to use natively in JS than using <cfchart> to arrive at the same end. The only thing CF10 gives you here is a licence for ZingCharts, but you can acquire that separately.

I use ZingCharts (unlicensed) a bit on my blog, and they work well.  And the docs are brilliant (and I'm OK with JS, but not brilliant).

As for whether Railo might be a good fit in place of CF10, have a look at the other things that CF10 does that Railo doesn't (I don't know a definitive list, but asking on the Railo Google Group will get that answered quickly), and see whether you care about any of it. EG: Web sockets look great, but they're definitely in the realms of "cute" rather than "deal maker" for most situations.

Cheers for thinking to touch base to ask me about this.

Oh, hey... you said I can use this as an article for my blog? Are you completely OK with me using it exactly as you sent it, minus names and URL to the video? I'll also post my response, as per above.
So there you go. Having reflected on the question, I decided there was pretty much no way I'd actually pay for ColdFusion. What do you think of my advice here? What am I missing... if you were starting a new project which required a new server (so could not recycle/reuse existing licences), would you buy ColdFusion? If so: why? If not: why not?

I really don't want this to come across as anti-ColdFusion, because I really am not anti-ColdFusion. But reality is what it is. What are we paying for when we pay for ColdFusion? Hmmm.

That was a pretty easy article to write. I wish I got more email like this! ;-)

--
Adam