Thursday, 1 November 2012

Where to focus Adobe's efforts to improve CFML's CFScript coverage

It's time for another survey. This time it's about where Adobe should focus its improvements to CFScript for ColdFusion 11.

This survey is now complete. The results can be found here.

CF11 is around the corner, so this is perhaps a good time to think about where we (as the community) think efforts should be put into improving CFML.  I've always been a huge "advocate" of CFScript for non-view code, and have always preferred it to tags.  I think tags have their place, but that place is seldom in business logic; they're great for view logic though (ie: mungled up with mark-up).

CFScript used to be a bit of a dog with only a few things implemented in it (like not even abort or throw or really fundamental functionality like that!), but since CF9 Adobe have been making a concerted effort to increase its coverage.  One of the targets they stated they were aiming for in CF9 was 100% coverage in CFScript.  They didn't make this target (and still have not in CF10), indeed - and this is surprising - they're not even at the 50% mark!  That said, a lot of UI-focused tags - eg: <cfform>, <cflayout> - don't merit a CFScript implementation, because they're... well they're just tags.  There's no sense in implementing a CFScript-able version of them.  And this covers a lot of the omissions.  However there is a lot tag-only functionality which should be available to CFScript, such as <cfcontent>, <cfsearch> and a bunch of others.  Their omission might not be the end of the world, but they still fall into that realm of being a right pain in the butt to deal with when one suddenly finds one needs to use them when in the middle of a CFScript-only CFC or similar.

I know it's really easy to write UDFs to wrap this functionality up, but that's beside the point: we shouldn't have to.  And some of the tags are harder than others to simply wrap in a UDF, meaning everyone's implementation is slightly different to either overlook the hard bits, or jerry-build them in.  We shouldn't have to do this: it should already be in the language.

Increased CFScript coverage is not a glamorous feature of any CF release, but it's the sort of thing we all use every day, so in a way is more important to the CF developer (as opposed to the Adobe Marketing Team) than the high-profile bells and whistles each new ColdFusion release has.

Anyway, in an attempt to give Adobe an idea of what the community thinks is important in this area, I have a survey I'd like you to fill in.  It lists the 80 (out of 150) CFMLtags that currently have no CFScript-ready equivalent, and a scale of 1-5 as to how important it is that there be a CFScript-ready implementation of them (or taken another way: how serious an omission that there is not already an CFScript-ready implemention).

Once I have a reasonable number of results, I'll publish them in a new article.

Thanks for helping out.