Thursday 12 September 2013

"What you didn't know about CFML", eh?

G'day:
A few weeks back the existence of a document / flyer / thingey entitled "What you didn't know about CFML". A lot of people sent Twitter messages announcing its existence, other people (sometimes the same people) had various 140-char-long observations to make about it. I think conceptually it's a good idea (-ish), but it could do with some polish. Here are my thoughts on it...

"ColdFusion (CFML) is an application server and software development framework..."

Well ColdFusion might be those things, but CFML isn't. CFML is - and we all know this - is the language ColdFusion - and Railo, OpenBD (kinda) - processes/serves/uses. The doc should get its terminology right here.

The original wording - which doesn't include "CFML" - must've come from Adobe: if one googles "ColdFusion is an application server and software development framework", there are plenty of matches for that exact paragraph used on the flyer. Interestingly (?) I cannot find the text on Adobe's own website though. I guess their description has moved on, they now say:

Adobe® ColdFusion® application server enables developers to rapidly build, deploy, and maintain Java™–EE applications for the enterprise.
That said, I think the description is fine, other than the misuse of "CFML".

Myth: No One Uses CFM Any More

There's some supposed metrics here: 12000+ companies, 778000+ developers etc using CFML. But there's no references to corroborate these figures, so they're a bit empty. Down the bottom there are some reference sites which I guess are used for some/all of the figured cited (each figure should have  a reference), one of which is trends.builtwith.com. This actually claims to have well over 200000 sites using ColdFusion, so that might've been a more impressive figure to use.


It's really annoying, btw, that this doc has been produced as an image file, because if one wants to visit those reference sites, one needs to manually type the URL in. Not very "web". For the benefit of anyone wanting to check them, the links are:

Looking at the last one, that's were all the figures come from. But I'll get to the "Evangelist kit" later.

NB: the flyer says "108900" applications. The evangelist kit says "1089000" (so the flyer is out by an order of magnitude).

Conferences on CFML

This still lists CFUnited, which has gone the way of the dodo, plus lists MuraCon which isn't a CFML conference, it's a conference relating to... well... a CMS. So that's like saying a WordPress conference is a PHP conference. Looking at the MuraCon schedule for 2013, it has one presentation relating to ColdFusion: "Implementing Websockets With ColdFusion 10". Not a CFML conference. Equally neither NCDevCon nor Scotch on the Rocks are CFML conferences any more. I guess they are significant gigs in the CFML community calendar though, so I think I can see justification for including them.

Myth: ColdFusion is only used in a couple of industries

Really? Where did that myth come from? I've never heard anyone say that. The only thing I have heard relating to this sort of notion is CFML is often - and correctly - pigeon-holed as being a web-only language, compared to other popular languages which are more cross-purpose. However this is true.

Another issue I have with this is that by stating these myths, one is kinda perpetuating them. TBH, I would have positioned this flyer in such a way as to ignore inaccurate myths and just focus on what ColdFusion does well. Don't even dignify the misinformation by giving it air time.

"Myth": it takes longer to use CFML

Comparing Java and CFML is not comparing like-for-like. Even mentioning JSP makes the thing look outdated, and immediately had me thinking "good point... where's the comparison to Ruby? Groovy? Some of the cool-kid functional-programming lingos? You know... modern stuff". I suppose the PHP & ASP.NET parallels remain relevant, because they are technologies that CFML competes with in the web market.

Again, I don't actually think there is a myth that it takes longer to develop stuff in CFML than other languages. And it raises more questions than it answers by mentioning it. Especially as it's clear that there aren't comparisons to modern solutions, because I think we'll find it does take longer to develop apps in CFML than these more zeitgeisty languages. Zeitgeisty isn't a word, I know.

There's three "bullet point" boxes here, which make illogical / misleading claims:

Language can be learned in 1 to 2 weeks. No it can't. Not in any meaningful way. And no more so than any other language.

2-4 months to develop a small to medium sized application. What does that even mean?  What's "small"? I can knock out a "small" app in a coupla days. What's medium? Without an actual yardstick, this is a meaningless metric.

Maintenance: .5 to 1 person months for a small to medium size application. Huh? I have no idea what this means. To do what?

Myth: CFML uses more lines of code compared to other options

Oddly, this heading comes below the table that provides some of the figures. And - yet again - I've not ever heard this myth, but now that it's been put in front of me, I'm going... hmmm... does it? Maybe it does. Also the metrics for the lines of code / learning time / dev time aren't backed-up with actual references, so might as well be random numbers, and actually read that way, too.

Myth: CFML is too expensive to run

This one is a real-world "myth", and something that stands clarification. And indeed some sort of solution from Adobe. It's a pity that something relating to CFML doesn't get around to mentioning Railo and OpenBD until close to the bottom of the page. I'd say the biggest barrier to CFML adoption is the price and the licensing. This should be at the top of the doc, not the bottom.


A lot of people in the CF community that I pay attention to (via blogs or Twitter or mailing lists) were very quick to circulate the URL to this flyer, but most didn't have much to say about it other than that. I think it really comes across at something aimed inwards to the community to try to make it feel less defensive about what the big meanies in the rest of the world are saying about CFML as a valid language decision, but won't wash as far as a compelling resource if aimed at the outsiders.

I'd re-task it as follows:
  • promote Railo more heavily. Make it clear that there are free and OSS solutions for CFML that don't rely on Adobe.
  • If one is going to cite figures, have the references to back them up. Otherwise do not cite figures.
  • Don't cite meaningless/nebulous figures at all.
  • Make comparisons to languages that matter, or that people find interesting.
  • Don't dwell on negative "myths". Just promote the good things about CFML.

ColdFusion Evangelism Kit

I wanted to have a read of the ColdFusion Evangelism Kit, to see what it had to say on this topic. So I googled "coldfusion evangelism kit".

The first result is to a doc which has a most recent year cited of 2008, and includes quotes relating to ColdFusion 8. Indeed it has a roadmap speaking of future milestones in 2009, 2010, 2011. This is not the current version of this document, but it's the "best fit" on Google, so people will land on this and just see ColdFusion as being... well... dead. Their evangelism document is five years old. Adobe should take this doc down to get it off Google.

The second result is more recent... it seems to be the 2009 version of this document. And the very first thing in the doc is a quote about ColdFusion 8. For Pete's sake. Obviously it was OK in 2009 to be talking about CF8, although it would not have been too far-fetched to get a forward-looking quote about CF9's pending release, and what it brings to the table. It seems to be an OK doc other than this. But its placement in the second slot on Google needs to be dealt with.

The third result goes to http://www.adobe.com/products/coldfusion-family/white-papers.html, which redirects to http://www.adobe.com/uk/products/coldfusion-family/white-papers.html. This is worse than the previous two, as it's a current-seeming page on the Adobe website, under the banner of "Adobe ColdFusion 10 family", yet it speaks about ColdFusion 8 & 9, and does not mention CF10 at all!

It goes on. The fourth result is to a ColdFusion-9-era document, and so on.

Where is the ColdFusion 10 one?

I googled "ColdFusion 10 evangelism kit", and got pretty much the same results as above. But do you know what's funny? The sixth result is my article from a coupla days back "Prelude to a storm", in which I allude to this article I'm writing now, and expressing my derision and Adobe's inability to present themselves to the market professionally. So... it's not exactly difficult to get SEO rankings on this topic. I didn't even try, and there I am.

So back to the question: where is the CF10 one? I don't think there is one! There's no mention of it on the ColdFusion 10 product page. There is a link to white papers, but...  they're behind a login! How daft is that? How obstructive is that? And - for f***'s sake - I need to fill in a form before I progress through the site. It's a form I've filled in before, but Adobe don't manage to remember my data properly, so keep saying "you've not filled this bit out". No, Adobe, you've just not got the ability to handle a form properly. Not a great advertisement for a web company. Not a great advertisement for ColdFusion. Or CFML.

And then...

... hahahahahahahaha...



You're idiots. Idiots.

--
Adam