My Adobe ColdFusion wishlist
Here’s my wish list for any future versions of Adobe ColdFusion. It’s partially inspired from what Adobe stated at their SotR13 keynote. Some of it may have already been covered by their roadmap and some parts are wishes for improvements to existing features. I’ve not thought much about the new mobile features that Adobe are aiming for, simply because I’d like to see this stuff in action first and don’t really know how much usage I’d make of it in my day job.
Deployment / Testing / CI
Adobe always seemed to try and sell ColdFusion for “Rapid Development”. That’s great but if you want to boost that further, make it easier to do the development tasks that us developers should be doing. Help us with solutions (guides, software, scripts etc…) to improve deployments (from dev to staging and production), do unit testing and CI. Mike Henke has a "Cloudy with a chance of tests" project that helps developers get started with this sort of thing. But what if Adobe worked with developers to make this more standard and an optional part of the “developer” install?
Modular
Having spent a bit of time in the world of NodeJS, I love how nice it feels to only bring in a module for some functionality when you need it. I’d think this would probably improve performance in some areas as well as possibly allow for easier deprecation and removal of old features.
Deprecation
I can understand that this is always a tricky one to approach. If ACF was more modular in nature and allowed developers to create their own modules that could operate as normally named tags / functions, we’d have a nicer solution for deprecation. Take "ParameterExists()
" as an example, if it’s removed from a new version of ACF and a customer wants to upgrade but still needs the tag (lol), they could easily hire a developer to create a module for it. You could even allow overwriting of existing function, with your module code reimplementing old behaviour on top of the new version of the function. I’m sure some would abuse this to create something horrible, but for the more sensible developers / customers, it’d allow the rubbish to be removed from the engine.
Package Management
Kind of leading on from the Modular nature above. A package management tool would work wonders for ColdFusion. Especially if it came with an open standard for projects to support for easy installation or inclusion into an existing project. Adam Tuttle’s Ramen looks good but something official would be even better, especially if it was web and command line based.
CFScript support
I love me some CFScript. Tags are great for my view templates but script feels much nicer when it comes to the grunt work. Pretty sure that Adobe have stated several times that they’ll achieve parity with the tags but it always seems to get pushed back to CFNext+1.
New functions based on community usage
There are probably a lot of things that CFML projects always reimplement. If Adobe went through some of the major projects, found out what these were and included built in solutions, they’d make for some happier developers and improve development time. Plus there are certain things that projects have to go digging into Java or abusing bits of ColdFusion to get at. If it’s something simple or some kind of information, it’d be better for everything if it was exposed officially instead of being left to go digging for.
Better security
At SotR13, Adobe did talk about the importance of security and I hope they really do focus on this.
Work with hosting providers
These are the people who have the experience with deploying ColdFusion for multiple customers, trying to maintain all those instances and making sure they’re secure. If Adobe put more effort into working with these providers, it might provide insight into changes that’d make everyone’s life easier and more secure when it comes to deployment.
Web contexts or similar
This is one of the things I really like about Railo and I’m not expecting Adobe to implement the idea in the exact same way but it’d be nice to have the ability to separate out settings / administration at a lower level than just instance wide.
Monitoring
Warning: This bit will get a little rant-ish due to CFTracker ;)
Better monitoring and instance inspection! Some people out there (points towards the internet) find CFTracker a useful tool for monitoring their Adobe CF servers. While that makes me happy, it also boggles my mind to think that a poor developer with a full time job, wife and 3 kids could manage to create something useful that Adobe haven’t thought about feature stealing from. I don’t expect them to try and include something at the level of FusionReactor/Analytics, SeeFusion or this new Morpheus4Railo thingybob. Those products have money, teams and time behind them. But my little side project… come on, seriously?
P.S. Adobe, if that’s you reading this, I’m happy to have money thrown at me to help you out in this area. K, thanks, bye. P.P.S. If not, any other company? ;)