Saturday, 7 December 2013

CFML: Response for Russ

I feel like writing more in response to Russ than Twitter messaging will sensibly allow, so am doing a quick blog article instead.

The context is as follows:

Note that the RT's of Matt's messages aren't quite in the correct order, but as his Twitter account is "private" (that was easily circumvented ;-), I cannot include them inline in a custom timeline. But the gist of the exchange is preserved.

Right, so I feel the decline of CFML as a language is mostly down to Adobe's stewardship of it. There are a few factors here:

Language stagnation

The last revolutionary language change in CFML was the inplementation of CFCs, back in [checks]... 2003 (I am not counting CFMX 6.0's attempt at CFCs because it was a f***-up. It was not until 6.1 that they sorted them out). That's a decade ago. And it was under the stewardship of Macromedia. But even that wasn't implemented very well. As I have mentioned previously, I think it was a fairly significant misfire to enable CFML developers to implement components / objects and use their own code in an OO fashion, but to leave the CFML language itself almost entirely procedural.

There have been a few other improvements: getting script up to being a viable alternative to writing everything in tags was a good move, but was more "doing what should have been done from the outset", not "a new feature".

Script-only CFCs were a welcome addition, but again that's in the realm of back-filling what should have already been there. But, I guess it's the best language feature that's presented itself since CFCs themselves.

Function expressions and being able to use closure is increasingly interesting to me, but is a bit niche.

Application.cfc was a good addition to the language too.

Note that there's a lot of functionality included in CFML which is really good too: REST, ORM, PDF manipulation and the like, but they're not language features.  And this is the point. I think Adobe's exhausted their expertise when it comes to what could go into the language.

There's a bunch of language-related stuff coming in CF11 (and CF12 sounds pretty bloody good too... although I really doubt we'll ever see it), and that's good, but that's in the uncertain future, and I'm talking about the state of affairs now.

Community Stagnation

Adobe just don't engage the community. Their blog articles are uninspired (or simply reactive, or necessities like "ooh... there's a really big security hole you better know about"), their advocates / evangelists seem tired of their jobs, their chief non-Adobe pundits all seem to have moved on, or in the process of moving on. Their presence on social media is subpar.

They created the ColdFusion Community Portal, but it was basically stagnant from the outset. The most recent of their "Recent Posts" list is from April. The most recent Twitter message was from mid November. Their list of user groups is still woefully out of date: the UKCFUG isn't even listed, and it's existed for years. Yes, they're working on that, I know they've said that. They said it about six months ago.

They claim to have this education initiative worked out, but I've heard bugger-all about it other than its existence. Where's it being run? Where is it? But this is a mishit anyhow. College courses isn't how they should be engaging new developers these days. They should be pouring effort into and getting a CFML presence on that. Or Or CFML's very own (modelled on Or presentations on YouTube (actually there's a few - more than expected actually - on the Adobe ColdFusion Youtube channel).

They don't participate on Stack Overflow. Flippin' 'eck, the last time I looked the didn't even participate in a professionally competent way on their own forums.

I hear nothing about them presenting ColdFusion at non-CFML-specific conferences, or any activity other than pretty much navel-gazing. We keep hearing "ColdFusion is Dead", and we keep getting all defensive and uppity about it, but who can blame the rest of the industry for thinking this? Unless you're already in the CFML community, how would anyone know it still exists? Isn't it part of the Adobe ColdFusion Team's remit? To actually try to increase the market awareness of CF?

Misplaced focus

It's very clear that Adobe only care about licence re-ups, and accordingly target the managers with cheque books, not the developers. This is an obvious tactic to engage in, but it's also obvious it's a short-game strategy. If they don't engage their developer community, it'll dry up. And without the devs, there's not going to be any new licences coming through. They've gotta chase the £££ to make the shareholders happy, but they could be a bit cleverer about it.

Security issues

It's laughable that the claim to have a Security Czar in Shilpi Khariwal (link is currently broken), but CF seems to be getting less and less secure all the time. The apologists will be quick to blame ColdFusion administrators (ie: the people managing the CF servers) for not securing their boxes, but let's be honest here: they're only having to secure their boxes because they're so insecure in the first place. And the chief vector used - security holes in the public-facing CFAdmin - is such a staggering obvious target for hacking I don't see how it's been public-facing for so long (especially because I know this had been pointed out to Adobe years ago). Sure, there have been patches availed and people should have installed them, but they shouldn't have been there in the first place.

And whatever the cause, the public hear "ColdFusion hacked", and not read beyond that.

Ignorance of their industry and their language

And the ignorance seems almost wilful to me. Their team is completely disconnected from ColdFusion and CFML itself. None of their developers use ColdFusion, none of them are even web developers. They seem completely oblivious to what's been happening in the web-dev industry over the last five (or more) years.

Railo really shows Adobe up

By contrast to Adobe, Railo - the server, language and company - seem to be getting it right. They engage with their community, they are reactive to people raising issues, and proactive in adding new features their community actually will want. They're open source. They attend CFML conferences and actually talk to the developers rather than the (absent) IT Managers. They attend our meetings! Mark Drew has been an active participant in both London Railo Group meet-ups so far. They just act like a modern web language company / community should.


So Russ / others, that's why I said what I did. I don't think any of that is inaccurate or unfairly critical, do you?