Thursday 1 November 2012

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

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

Update:
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.

--
Adam