I spent the day in Washington, DC today (thank goodness for air conditioning!) meeting with various government agencies all of whom use ColdFusion. I love spending time with government agencies as they tend to be a microcosm of the real world – all sorts of developers with all sorts of needs and all sorts of skills all trying to be productive with limited budgets and looming deadlines.
I met with three different agencies today (and will meet with more tomorrow and Friday), and what struck me was the complete extremes among ColdFusion users. One group was using CFMX for J2EE and wanted more structure, and integrated frameworks, and built-in support for MVC, and explicit data types, and greater access to Java. Another group was still at CF4.5 (looking at CFMX) and is very happy building full blown content management systems minus CFCs or even Custom Tags. And yet another group is at CF5 (about to roll out CFMX) and is intrigued by the new features but really wants more basics, nuts-and-bolts stuff like better control of applications in shared environments, and simplified data-entry screens and drill-down screens and reporting.
As I said, a microcosm.
Which begs the obvious question: What should ColdFusion become post CFMX? Which features should it concentrate on, and for which audience? Should it stay true to its initial mission of simplicity and productivity (is there still a demand for this), or must it become more hardcore to appeal to enterprise users? And either way, what are the features it needs, and at what point must we say “this is not a job for ColdFusion, extend ColdFusion with Java (or .NET or Web Services or whatever)”.
My gut feel is that ColdFusion needs to get back to basics. Sure, XML and Web Services for example, are cool and in vogue, but for the most part these are still being played with as opposed to being used. ColdFusion has great support for both XML and Web Services, and this support must be enhanced and extended. But at the same time, I don’t think that these can be the primary emphasis for ColdFusion. It seems that most developers are still building the same old “data in and out” apps using half a dozen tags at most. ColdFusion was the first to simplify this type of development, and to this day no other language comes close to ColdFusion in this space. If there is still a need for this, and it appears that there is, then this is where ColdFusion need to concentrate – doing what it does best, and doing it even better.
Or so I think.
Agree? Disagree? Either way, I’d love to hear your thoughts on the subject.