Saturday 24 November 2012

Thoughts on "Coldfusion and the law of dialectics of progress" by Stofke on wheels

G'day:
This is another article that started as a comment on someone else's blog, but it got too long, so I figured I'd clutter up my own blog rather than theirs.

"Stofke on wheels" has written an interesting article entitled "Coldfusion and the law of dialectics of progress" (I wish I could come up with titles like that... without simply just copying it, like I have in this article, I mean ;-)
 
The article starts well - discussing a concept I was unaware of "Law of the handicap of a head start" - and how it possibly applies to ColdFusion - but ultimately arrives at some dubious conclusions as to how Railo is an answer to the questions left asking.

As I said, this started being a response-comment on their blog, and I had about 50% of it written before porting it across to here. I've tried to reword it so it reads like a stand-alone article, but forgive me if it belies its origins in places (wrong pronouns, etc).

It's a nice article, and it start off discussing an interesting take on ColdFusion's challenges: one that I've not seen discussed before. Good stuff!

However I'm not seeing how it get from the theoretical situation it describes (although it all seems a very reasonable analysis) to Railo being part of a solution.

Railo is a great project, but it lacks any marketing muscle that I can see (is this something else it's copying from ColdFusion? ;-), so its relevance to anyone other than its own choir is always going to be muted. It's one thing to have a name in the local community, but for it to be relevant it needs to stamp its presence outside that small bubble too. People might migrate from the ColdFusion choir to the Railo one, but if one takes the basis for this article and recent chatter in general - ColdFusion's shrinking relevance - that resource pool is an endangered species, with people jumping ship from CFML entirely. So it's a resourcing practice that ultimately is not going to be sustainable.

There's a very vocal minority community that are well behind Railo (and rightly so) and I sing its praises too, but I think that gives a false impression of how important it really is as far as the broader picture goes.  I doubt the majority of even the current CFML community have used Railo (and quite a number probably haven't even heard of it), and I doubt anyone outside the CFML community have heard of it at all.  Whilst it's in that state, it's not going to be part of any significant solution to CFML's perceived relevance issues, I'm afraid.

CFML lives and dies with Adobe, unfortunately. I think CFML is perhaps victim of the situation mentioned in the article (and various things other people discuss elsewhere), but I think the article's conclusions are naïvely optimistic.  I also think it misses the point that it's not specifically ColdFusion (ie: the Adobe product) we're really talking about here, it's CFML. And CFML is what Railo is an implementation of, remember? So if Adobe's implementation of CFML is suffering from the handicap of a head start, so is Railo's one.

At the end of the day, Railo is copying ColdFusion. They might have done a better job that Adobe have with a bunch of things, there might be a few extra bells and whistles (although nothing of real consequence, I think?), but what Railo does is copy ColdFusion. So if ColdFusion has moved beyond the apex of its relevance, then the copy of ColdFusion has also. Except it's always been a lower apex, so less distance to the flatline.

The specifics of the article's conclusion also cause me to raise my eyebrows, wondering how the writer got from A to B. I'd like to discuss them specifically, and individually:

The advent of a company like Railo is addressing a lot of the problems that Coldfusion is facing.
  •     Open: it’s open source
  •     Modern: It’s introducing lots of new modern features
  •     Hosting: cheaper and more hosting options
  •     Commitment: Has made a 10 years commitment
  •     Good product: Lightning fast product and a fixes bugs fast
  •     More focus: Railo (CFML) is its primary product not one of the many

It's Open Source

So what? I am not anti-OSS at all (at all), but I don't see how Railo's OSSness compared to ColdFusion's closed-source-ness is in any way relevant to a solution to the issue here.  A person who is considering whether to use Adobe's CFML product or Railo's CFML product might base their decision either way based on Railo being OSS (or, let's face it: on the basis of it being free. I don't think that its OSS is really that important to a lot of people: it's that it's free), but this does nothing for solving CFML's relevance and this "handicap of a headstart". Railo (and ColdFusion) have to compete with other OSS offerings, so on the basis of that, that Railo is OSS is actually not a decision-making criterion: all the other options will also be OSS. So on the basis of that, that Railo is CFML works against it as much as it does for ColdFusion.

Modern

Get off the grass. Railo has a couple of minor different features that ColdFusion doesn't have, but nothing game-making. I imagine the articles is referring to having the object.method(args) syntax (as opposed to ColdFusion's function(object, args) approach) that Railo 4 has added, but again: that only distinguishes Railo from ColdFusion. Not from other languages (which will already have that syntax, or simply not think it's a big deal).  So, again, not a distinguishing feature when one looks outside the CFML world.  And it's also forgetting that ColdFusion has a bunch of stuff that Railo hasn't got.  "More features" is not a marketable point for Railo. And I hate to say it, but I expect this will probably be added to ColdFusion in CF11. So it won't be a point of differentiation any more.  Good on Railo for leading the charge on this one though.

Hosting

Cheaper and more hosting options. I don't know about "more" (and I mean "I don't know know", "I think that's wrong"), but I would be surprised if the author actually knows one way or the other either. I'll give him "cheaper" though. Although my ColdFusion hosting is free (a small plug for CFMLDeveloper there). Of course they do free Railo hosting too.  But... again... the author is getting hung-up on Railo competing with ColdFusion. That's not going to help the underlying issue they've been discussing. I imagine the number of PHP, RoR, Python, etc hosting options out there far far far eclipse the number of Railo hosting options. So Railo remains uncompelling in this comparison too.

Committment

This is just naïve. Here's proof.  "I hereby declare I have a ten year commitment to continuing this blog". And I do. Until, of course, I change my mind. It's exactly the same for Railo's reported ten-year commitment. Railo's commitment to CFML will last exactly as long as it's financially viable to the Railo services company. If the key people from Railo - the ones who have been around since before it went open source - stop being interested in Railo, or get interested in something else, or stop making enough money from elsewhere that they can afford to sink their time into Railo, then Railo will mostly stop. And they will do this whenever they feel like it.  There is simply no way that anyone involved in Railo can or would realistically make any meaningful declaration that they'll be sticking with Railo for ten years. I'd take them at their word if they said 1-2 years, but I would just be thinking "well that would be nice" if they said anything beyond that. And I certanly would not hold them to it.

Ignoring their dedication (which, I hasten to add, I do not question in a here-and-now timeframe), let's look at it from a technology viewpoint. They have a roadmap for Railo that extends beyond the next coupla years? Really? How? How on earth can they know what the web will be doing in three years' time, let alone ten years' time? Think back to ten years ago. Do you think someone then would have been able to predict where the web is now? 2002 is pre smart-phone, and pre-social networking, remember. I guess someone clever or lucky might be able to crystal-ball-gaze with some serendipitous accuracy, but this would not be the basis for any sort of roadmap to be taken seriously. If anything, Railo making such claims makes me take them less seriously than more seriously. Because it's such a far-fetched claim.

Railo claiming to have a ten year plan cannot be more than a sound-bite to stoke enthusiasm at a conference. Nothing more.

Adobe could make the same claim if they liked, however they're probably aware that the people listening won't so fanboyishly lap it up without first stopping to think "hang on... how?". That said, I'd put more stock in Adobe saying something like that than Railo, simply because they're a bigger company, and more likely to still be around in ten years time (*). This is another thing: I'd be deeply surprised if any of the current participants in Railo still gave a toss about it in ten years' time. \\\they almost certainly will have moved on. Bear in mind that most of the Railo community are the "users" of the software, not the writers of it, so they're gonna be hung out to dry if the core developers move on.

(*) I do not expect ColdFusion - if it exists - to still be an Adobe product in ten years time. Or even three years time.

Good Product

Yes it is. I have no qualms about this assertion. So's ColdFusion though. They're both really good. And Railo definitely gets more props from me (I've gone on record as such) in regard to how much momentum they have with dealing with issues I raise when I find them. Adobe suck in this department, and I will continue to be at them about this until I run out of breath (no sign of this happening so far... ;-) or they get their act together.

But - still - this is comparing Railo to ColdFusion, which is neither here nor there as far as the subject of this article goes.

More Focus

This is possibly a bit facile. Obviously Railo just does Railo, and Adobe does a whole bunch of stuff, and ColdFusion is clearly unloved by the mothership.  But how big is the ColdFusion business unit, and its development team (and documentation team, marketing team, etc). I have no idea of the numbers, but I am aware of more ColdFusion engineers by name than I am aware of people involved with Railo in any way, shape or form. Adobe's ColdFusion operation is almost certainly going to be a bigger operation than Railo's one. And, equally, the ColdFusion community is far far bigger than Railo's one. So whilst Railo might have more focus than Adobe does when it comes to their CFML offering, I'm not sure that's a meaningful metric.

And it's yet another comparison between Railo and Adobe, rather than identifying where Railo is actually doing anything more than Adobe is regarding this "dialectics of progress" issue that's being focused on.

To be honest, I think this is just an article with the agenda of saying "my toy's better than your toy" with a new and interesting initial hook. Well done for the subject line of the article - I wouldn't have read it if it simply set out to say "I think Railo is better than ColdFusion" - but it's really let itself down at the end by drawing inaccurate and irrelevant conclusions. But even that said, I enjoyed reading it, and it's clearly given me pause for thought, so I say it's a good article, and I will thank the author for writing it.



So that was all reaction to someone else's thoughts and efforts, and not a lot of original material from me (other than my own brand of analysis and blathering-on in reaction).

If this "law of the handicap of a head start" is a reasonable consideration here - I think it is - what should the Railo people do about it (if anything)?

To be honest, one thing I have been thinking recently is that Railo's pool of technical resources (who seem very good at what they do) are being hamstrung by the fact they're sinking their time copying someone else (and something that's receding in relevance), rather than doing their own thing.  That way they really could exercise their inventiveness, and stamp their own mark on the web-application-programming-language space. The can never be that much better than ColdFusion (if at all, once one considers all the metrics, rather than just speed and reactiveness), because they are always going to be following ColdFusion. Railo can't diversity terribly far from where Adobe go with CFML because that will create a barrier to transition from ColdFusion to Railo... and if that's the route they're using to build their marketshare, that is counter-productive for them.

If Railo wanted to pioneer something new, fresh, and shake of this lack of impetus that CFML has, they'd be better off applying themselves to a new language, rather than hacking away at CFML with all its perceived flaws and irrelevance.

But obviously they can't do this because they've got a lot of investment in their implementation of CFML, so - whilst I can't see it being a ten year future - their immediate future is in CFML.

The best thing Railo could do to improve CFML's relevance is to market itself outwith the auspices of the CFML community.  Get Railo's name out there where they can pick up new blood. Not just siphon blood from Adobe's community.  They could make some good headway here because Adobe really doesn't seem to do this, so they'd not be in Adobe's shadow here, so the CFML name they'd be making in the broader web community would be Railo, rather than just "CFML", or - by virtue of its eponymity - "ColdFusion" (which will continue to corelate to Adobe's product).

That said, marketing is expensive. And whilst they might be able to convince developers to pitch in for free to do the coding work for them, I don't think they'll be able to do that with marketing specialists ;-)

So "Stofke on wheels" raises a good point, but after two articles looking at it, we're no closer to a solution to it, I think.

The All Blacks are on, and I want to watch the rugby. I'm orf.

--
Adam