Saturday, 25 August 2012

ColdFusion Modularisation

I was listening to the <CFHour> podcast this morning, and one of the things they touched on whilst discussing the new ColdFusion roadmap that Adobe have released was this thing it mentions about a "pluggable framework".  The roadmap gives no details, but Dave and Scott basically discussed the same conclusions I had drawn when thinking about it.

I'd really like to see the core of ColdFusion pared back to the essentials, and then everything else offered as a module.  I think CF is overpriced, but I see where the pricing comes from: there's a helluva lot of features in there.  Unfortunately I don't use most of them, so I'm paying for stuff I don't need.  I don't mind paying for stuff, but I do actually prefer to want the stuff I'm paying for.

(That said, I've never bought a licence of CF in my life.  That's what employers are for ;-)

So, anyway, I've got my own ideas about how important the various areas of ColdFusion are to me, but everyone's got different requirements of ColdFusion, and we all work our own way.

I'd like to get an idea of what bits 'n' pieces of ColdFusion are important to people, and to that end I've created a survey (the link's further down).

The gist of the survey is that I've broken ColdFusion down into a number of areas, and predetermined what I think is "core" and what I think is possibly a module.  My breakdown was as follows:

  • Flow control: if / loop / switch / exception handling / etc
  • Structural: CFCs / functions / include / CFML custom tags / script
  • Base data types: string / numeric / boolean / list / array / struct / query / XML / object
  • Application framework
  • ColdFusion Administrator

  • AJAX integration
  • Authorisation framework (*)
  • CFAdmin API
  • CFX tags
  • Charting
  • DB drivers
  • Ehcache integration
  • Email
  • Event gateways
  • File system processing
  • Flash/ActionScript integration
  • Form elements
  • Image processing
  • Monitoring
  • MS Exchange / SharePoint integration
  • ORM
  • Packaging / deployment
  • PDF processing
  • Presentation / reporting
  • Scheduling
  • Solr
  • UI wizards (***)
  • VFS (****)
  • Web services
  • Websockets
  • XLS processing
(*) <cflogin>, etc
(**) SMTP connectivity / POP / IMAP
(***) EG: <cflayout> / <cfmap> (UI stuff that isn't specifically form-oriented)
(****) Virtual File System

I've not covered absolutely everything there because I need to get all this into a manageable survey.  I don't actually know if I've achieved the "manageable" side of things... I'm asking you to rank each of those modules in four different ways, plus ask another coupla questions at the end.  It looks daunting, but it only took me about six minutes to read it all and fill it out.

Here's the survey.

The survey has been closed, and my analysis of the results are in a follow-up article: "Survey Results: ColdFusion Modularisation"

It'd be really cool if you could fill it out... the results should be interesting, and I'll flick 'em through to Adobe if we get enough responses, and that might give them some idea of what the community things about all this.

I've still got my other surveys running, and I have almost got enough answers for me to analyse them & post the results back here.  I'm only after 50 responses per survey, and both are lingering around the 40 mark at the mo'.  If you've not done 'em, please do:
Ta: much appreciated.

Obviously lemme know any thoughts you have about the survey: stuff I've missed / not covered / general thoughts.

I ballsed-up one of the questions in the survey, asking only if an item should either be considered core to CF, or a module.  I meant to ask whether it should be one of these options:
  • Core
  • Bundled with ColdFusion Free
  • Bundled with ColdFusion Standard
  • Bundled with ColdFusion Enterprise
I've updated the question to ask this, but a dozen or so people have already answered, and given I didn't want to put words in their mouths, I have added an option "Unspecified / Don't know", and set their answers to be that if they had previously selected "Module".  That's the fairest I can be here, I think.

Sorry about the balls-up.