Wednesday 12 September 2012

Survey Results: ColdFusion Modularisation

The third survey (there's a first and a second that I have also recently written up) I ran was about how we might think ColdFusion might be modularised: it was to determine how important various areas of ColdFusion are to us, how much we use them, whether we're happy to pay for them or would roll our own or simply do without if they were paid-for options.

I didn't get quite as many answers for this as I did the previous two, which is strange as this one seemed to be the most popular one (going by hits to the page).  Perhaps because there were more options to select on this one, and people couldn't be arsed.  Or having done two surveys already, people got bored.  Oh well (and I completely understand both those positions!).

Anyway, I had to scratch my head for a while as to how to present the data in a useful way, because the questions were large matrices of options, which don't lend themselves well to my fetish-of-the-week: Zingcharts (look at the results of the first two surveys to see what I mean).

Finally I settled on a tabular presentation, where - thanks to JQuery - the columns are all sortable, and I've highlighted blocks which are grouped by majority answers.  If you look at the table below, you'll see each row is coloured, and there are four graduations of blue.  Each graduation from darkest to lightest represent the areas that have the majority for a given column: darkest to lightest reflect columns left to right, eg: the ones that the majority of people voted "All the time" for are the darkest blue; where the majority of people voted "Frequently" are coloured the next darkest blue, etc.  This is the same for all the tables.  So one can see how each area was scored, as well as seeing which areas fall into which category, based on the majority vote.  Hopefully that makes sense.  If you mess around with the sorting on each column, you'll probably get a better idea of what I mean.

So... the results...

Q1: How often do you use these areas of ColdFusion functionality?

Notes on the categories below:
  • (*) Authorisation framework: <cflogin>, etc
  • (**) Email: SMTP connectivity / POP / IMAP
  • (***) UI wizards:, eg: <cflayout> / <cfmap> (UI stuff that isn't specifically form-oriented)
  • (****) VFS: Virtual File System

Area All the time Frequently Occasionally Never
AJAX integration3.7%7.4%31.5%57.4%
Authorisation framework (*)1.9%7.4%13.0%77.8%
CFAdmin API3.7%5.6%50.0%40.7%
CFX tags7.4%3.7%22.2%66.7%
DB drivers81.5%5.6%9.3%3.7%
Ehcache integration3.7%11.1%22.2%63.0%
Email (**)61.1%22.2%11.1%5.6%
Event gateways1.9%9.3%42.6%46.3%
File system processing40.7%37.0%20.4%1.9%
Flash/ActionScript integration3.7%7.4%16.7%72.2%
Form elements14.8%14.8%20.4%50.0%
Image processing11.1%33.3%46.3%9.3%
MS Exchange / SharePoint integration3.7%1.9%14.8%79.6%
Packaging / deployment0.0%1.9%24.1%74.1%
PDF processing25.9%38.9%27.8%7.4%
Presentation / reporting5.6%9.3%38.9%46.3%
UI wizards (***)3.7%3.7%11.1%81.5%
Web services (SOAP or REST)18.5%27.8%38.9%14.8%
XLS processing5.6%18.5%27.8%48.1%

I had some comments for this one:

We do most of the "Never" things but tend to use 3rd-party OSS solutions such as POI or Highcharts rather than the built-in libraries. We will be moving to SOLR but not via the CF interfaces. Maybe I don't understand whether your survey is geared to only CF-embedded techs such as AJAX or is it asking if we use AJAX in our CFML pages (without the CFAJAX). I'll answer the rest as if you meant the CFAJAX variety.

By AJAX integration I'm assuming you're not including remote access to CFCs, which I do make heavy use of. I don't use cfAjaxProxy or any of the UI stuff though.

Generally the applications I work on on are very data-driven, with little emphasis on layout/design. There are only a couple exceptions which account for about 10% of the work I do, and they use lots of AJAX/UI elements.
I guess I was vague with the "AJAX" one.  I meant stuff like bindings in <cfform> and <cfajaxproxy>.  Basically "the AJAX stuff" that CF provides for us.  And, yes, I mean the stuff built-in to CF... this is after all a survey about modularising stuff in ColdFusion...

I'm pleased to see that the UI wizards are something people don't use so much.  I always questioned the merits of their inclusion in CF.  I think the Exchange/SharePoint stuff might not be used because it's never really got much beyond proof-of-concept in my view.  I've done a lot of testing on the Exchange stuff, and whilst it's nearing something I would call "production ready", it's still more "proof-of-concept" to me.  Too many things that I thought to test simply aren't supported.  I've not done much with SharePoint because I don't have a SharePoint server to play with, but I understand the same applies to the SharePoint integration, and it's further hamstrung by only accepting basic auth (which is no good when connecting to SharePoint).  I'm hoping websockets and the Ehcache stuff is so low down the list 'cos they're new, and not many people will be running CF10 yet! (?).

I think the rest of the results here are reasonably predictable?  There's no surprises, I think.

Q2: How important to your work are these areas of ColdFusion functionality in your day-to-day work?

Area Critical Fairly important It's good it's there, but not that important Not important at all Didn't even know it existed
AJAX integration5.6%14.8%18.5%61.1%0.0%
Authorisation framework (*)9.3%0.0%24.1%64.8%1.9%
CFAdmin API7.4%18.5%40.7%33.3%0.0%
CFX tags5.6%11.1%14.8%66.7%1.9%
DB drivers85.2%7.4%3.7%3.7%0.0%
Ehcache integration9.3%18.5%35.2%18.5%18.5%
Email (**)75.9%14.8%7.4%1.9%0.0%
Event gateways5.6%22.2%35.2%31.5%5.6%
File system processing51.9%35.2%11.1%1.9%0.0%
Flash/ActionScript integration5.6%1.9%22.2%63.0%7.4%
Form elements14.8%11.1%18.5%53.7%1.9%
Image processing20.4%40.7%35.2%3.7%0.0%
MS Exchange / SharePoint integration1.9%9.3%35.2%50.0%3.7%
Packaging / deployment1.9%9.3%38.9%42.6%7.4%
PDF processing40.7%40.7%16.7%1.9%0.0%
Presentation / reporting7.4%16.7%35.2%40.7%0.0%
UI wizards (***)3.7%3.7%18.5%66.7%7.4%
Web services (SOAP or REST)27.8%35.2%31.5%5.6%0.0%
XLS processing13.0%16.7%35.2%31.5%3.7%

Comments that people made:

missed a category: would use it a lot if done properly :) examples: PDF processing, Form elements, Presentation/Reporting, Pre-CF10 Authorisation

if I use it, it's critical, otherwise it isn't :-)

This feels like the first set of questions. Too many dups.

Although I do actually like some of the UI stuff (don't tell anyone) it's just as easy to use other technologies (jQuery, EXT.js, CSS, etc.) to do what I need there. No need for CF to do that for me, although I might see some value for a beginner.

The first comment is a good point.  I thought about that, but it sounded a bit negative (although it's not like I shy away from that usually!)

I was worried someone would make both the second and the third comments.  First the second one (this sounds like something from Abbott & Costello, suddenly).  I know you're kidding, but there is a difference between "critical" and "I use it".  Similarly with the I don't knowthird answer.  The questions are quite different: one is asking how frequently you use something, the second is how critical it is.  I might use <cfform> all the time (I don't), but it's not that critical: if it wasn't there, I'd just use a form and JQuery validate (which is what I do use).  I might not use an event gateway very often, but the one time I have it implemented it might be critical.

And I very much agree with the fourth comment.  A lot of CF's implementation of stuff is great for a superficial handling of something, but as soon as it gets complex, CF's "helpfulness" gets in the way more than anything else.  But I do get that some of the stuff is for newbies.  Fair enough, I guess.

Q3: If you had to pay for these areas of ColdFusion functionality, would you:

(I realise that it's difficult to comment about this sort of thing without knowing what the pricing would be like. Let's assume it's pricing that is not unreasonable for the feature offered, according to your own interpretation of "reasonable")

Area Pay for it Use a free third-party equivalent even if the integration with CF might not be so seamless Write my own Go without I've never needed this anyhow
AJAX integration11.1%38.9%25.9%5.6%18.5%
Authorisation framework (*)7.4%5.6%63.0%1.9%22.2%
CFAdmin API35.2%18.5%3.7%25.9%16.7%
CFX tags18.5%11.1%3.7%35.2%31.5%
DB drivers63.0%31.5%0.0%3.7%1.9%
Ehcache integration20.4%38.9%1.9%11.1%27.8%
Email (**)75.9%22.2%1.9%0.0%0.0%
Event gateways25.9%18.5%7.4%20.4%27.8%
File system processing68.5%18.5%9.3%3.7%0.0%
Flash/ActionScript integration9.3%16.7%1.9%22.2%50.0%
Form elements9.3%22.2%24.1%18.5%25.9%
Image processing44.4%48.1%3.7%1.9%1.9%
MS Exchange / SharePoint integration16.7%20.4%1.9%22.2%38.9%
Packaging / deployment20.4%7.4%7.4%24.1%40.7%
PDF processing55.6%40.7%0.0%1.9%1.9%
Presentation / reporting25.9%29.6%14.8%11.1%18.5%
UI wizards (***)5.6%13.0%7.4%16.7%57.4%
Web services (SOAP or REST)42.6%29.6%13.0%5.6%9.3%
XLS processing22.2%29.6%9.3%14.8%24.1%

I use Fusion-reactor for as the server monitor already, because it's a lot cheaper than the enterprise licence is.

Where's 'use a pay-for 3rd party, like FusionReactor for monitoring ? As long as createObject('java') is core, then almost anything I can think of code be done by a 3rd party (for free) I could reuse, but at work we have odd ORM requirements so have our own already :-)

In almost all cases I'd rather roll my own through external libraries since I can decide which version I want to use. It doesn't make sense to me to invent a new tag or script function for every possible user/system interaction. Going through Java is not that hard.

Thought provoking distinction between "Pay for it" and "Use free 3rd party". Certainly don't mind paying where the CF integration is genuinely simpler/better, e.g. CF-ORM is clearly easier than learning Java/Hibernate. But I'm not sure that the CF-Solr implementation is actually better than DIY Solr (I haven't done it, but CF-Solr seems a bit lacking and I ended up having to hack it somewhat).

Even though I could probably use third party apps for a lot of things, what I love about CF is that it's all done for me. That's its value proposition!!

cfcs for the Flex backend
The second person is right.  I should have not specifically said "free" third-party solutions.  I think people would have shot me if I had entirely different columns for each though!

I'm not sure what the last comment is supposed to mean (and can't infer it when looking at the rest of that person's answers to the question).

Q4: Core / module & the notion of bundles

Please selection whether you consider the following areas of ColdFusion functionality as core or perhaps worthy of just being a pluggable module. If a pluggable module, select which ColdFusion package should it ship with.
Area Core ColdFusion Free ColdFusion Standard ColdFusion Enterprise Unspecified / Unsure
AJAX integration16.7%18.5%22.2%5.6%37.0%
Authorisation framework (*)22.2%11.1%22.2%13.0%31.5%
CFAdmin API33.3%5.6%29.6%14.8%16.7%
CFX tags22.2%16.7%22.2%9.3%29.6%
DB drivers72.2%14.8%5.6%0.0%7.4%
Ehcache integration14.8%9.3%22.2%18.5%35.2%
Email (**)63.0%16.7%13.0%0.0%7.4%
Event gateways13.0%9.3%31.5%16.7%29.6%
File system processing74.1%16.7%3.7%3.7%1.9%
Flash/ActionScript integration7.4%5.6%33.3%13.0%40.7%
Form elements22.2%14.8%24.1%1.9%37.0%
Image processing27.8%16.7%37.0%3.7%14.8%
MS Exchange / SharePoint integration5.6%0.0%14.8%42.6%37.0%
Packaging / deployment18.5%3.7%22.2%27.8%27.8%
PDF processing22.2%18.5%33.3%3.7%22.2%
Presentation / reporting11.1%9.3%37.0%14.8%27.8%
UI wizards (***)3.7%9.3%25.9%7.4%53.7%
Web services38.9%24.1%22.2%1.9%13.0%
XLS processing14.8%14.8%31.5%7.4%31.5%

I don't have an opinion about this because my employer provides Enterprise

the 'development' license is currently free and limited to access from two (2) IP addresses: the 'development' license should continue as is and contain all enterprise features.

This survey is a PITA - I don't feel like answering all of the same questions over and over again but it won't let me submit without filling in something - often meaningless. Please rework this next time :)

Difficult to be objective. Haven't used Enterprise for years - standard is expensive enough (compared to other languages) these days - so haven't distinguished. See it as just Paid vs Free.

Those are my first impressions. I suspect I might change quite a few of those given more time for consideration.

excpectation is high, and now on the Front side, trying to connect backend to FLEX projetcs now... ORM, Security trimming and more is done by VS2010
It's interesting that people who are unfamilar with either standard or enterprise can't just sort of reflect and think "yeah, I reckon x is an Enterprise feature".  Like a gut feeling.  I've only ever used developer or enterprise, but I can easily think "there's no way packaging & deployment should be an enterprise-only piece of functionality" (pity that it is!).

I'm surprised people think the CFAdmin API is a core piece of functionality.  You did see the "API" bit on the end, yeah?  I don't mean CFAdmin itself.  Same with websockets: core to CFML.  Really?  I'm surprised, that being the case, we've managed to get by without out them all these years until CF10 finally introduced them ;-) (yes, I know there is a logical fallacy at work there).

Personally I don't think email and ORM are core to the language either.  Fairly important, yes, but not part of the inner core of CFML.  But mileage varies, obviously, and I'm not suggesting the people voting that way for them are wrong at all.

Sorry to not make the questions optional, that was an oversight on a survey with so many options, you're right.  However the questions are all different.  Unless you mean that you need to answer four different questions on each of the same 30-odd components in CF?  I did wonder how better to do that, but drew a blank.  Either it'd be 30-odd question topics asking the same four questions for each element of CF, or the way I've done it.  I personally am annoyed at surveys that don't always provide a "don't know / care / have an opinion" for a given question.  I should have thought of that.  Again: sorry.  And thanks for persisting with the survey!  At least the questions change tack after this point.

Q5: Revised architecture

If one of the options for a future version of ColdFusion was to rework the server so it supported a modular / pluggable architecture, what would your reaction be?

Adobe keeps adding useless clutter to the engine. Make that crap optional (i.e. UI wizards, Form Elements, etc...), or better yet drop them altogether.

Could be great if done properly (high-quality modules, reasonable price model, good communication), but could kill CF if existing low-quality features (lets say CFREPORT) would not be improved significantly and just become highly-priced modules instead. I also fear Adobe could again communicate this step as if they would 'abandon' CF, as happend with Flash/Flex. Of course it would also be crucial that the CF community would support this step. Summary: *could* be a great opportunity, but I am not sure if this can be done properly by Adobe.

I think this might further divide the ColdFusion community, it might be more difficult to find programmers because they may not have ever had the opportunity to play with some modules and only used modules that my business doesn't care about. I think this is more an issue of accessibility than cost savings.

Adobe need to show what they can do for CFML, not what CFML can do for it.

DROPPING FLASH CATALYST +FB Production chain already damaged companys Trust. Dont understand what are they doing?
Some good thoughtful comments here (although I don't understand the last one).  I appreciate people taking the time to type all this in after having worn their mouse out clicking a million radio buttons.  Just a comment about the "it might be more difficult to find programmers because they may not have ever had the opportunity to play with some modules" thing.  I would expect the developer edition of CF to have all the modules, or all modules to have a "mode" for running in developer edition.  But this is a good point to make: it's something that needs to be thought about.

Q6: If ColdFusion was modularised, the core should be free. What is your reaction to that?

Railo is free. Railo works very well. Maybe Adobe should help to finance the Railo team to develop the core CFML engine which would free them up to develop all the add-on fluff they tend to think we want.

would really like a free and open source core, but not one which is getting abandoned by Adobe

A free version of Coldfusion would boost it's popularity and use massively. It would likely boost it's sales of Standard/Entrprise in the long run as well, as universities and small start businesses could use CF instead of more difficult to use free alternatives.

Railo already does free CFML. Adobe don't need to compete there.

but the ability to install development and staging sites at zero or very low cost is critical for 'best practices' and security in my environment (a University).

Free or cheap

Forced to choose one here, but genuinely not sure. In the late 90s there was CFExpress - apparently a flop, and then later Railo - neither seem to have had any effect in halting CF's decline.

Provided not functionality crippled, and perhaps the core should be open sourced in some fashion.

Adobe needs to market ColdFusion more aggressively. Joe Rinehart made some good points in his "breaking up" video.

Cf builder and .cfc generator is undone , vs VS2010 and third parties has multiple perfect solutions... Cf makers should focus CfBuilder+CF framework integration....

Argh... sorry to the person who said "forced to choose".  I meant to make the "other" option an actual answer option, not simply a comment.  Oops.

I would love to think that Railo by itself could have any impact on the future of CFML, but I really think if Adobe stopped doing CF that Railo would struggle a bit.  It might see some short term gain, but I think the CF world would just shrink away without a major vendor owning the ColdFusion name. I really don't think "Railo" means anything to anyone outside the existing CF community, and what needs to happen is for the community to grow, which I think is over to Adobe to sort out.  I think Railo's a great product, but it's more like a pilot fish than a shark.

Phew. And writing all that (or copying & pasting the stuff you lot wrote / did anyhow!) has sapped my will to live, so I'm gonna down-tools now. Thanks for answering the survey and I've taken note of the criticisms levelled at it.  If anyone else has any tips on how to ask survey questions, please let me know).  And, obviously, any comments on anything else... leave a comment.

I'll leave the survey open for a while in case people reading this now decide to fill it out.  I'll update the results if there's a reasonable amount of new results coming in.

Cheers all.