Rakshith did a good job in the latter half of the main Adobe ColdFusion 11 presentation @ CF.Objective() yesterday. The first half was still a bit of a sell job on
<cfclient>, but in the latter half Rakshith rolled up his sleeves and showed us some code. Which is what developers at developer conferences want to see. Towards the end of the presentation he (or was it back to Elishia at this point?) spoke about some of the stuff they're looking at for ColdFusion 2016. I sent out Twitter messages about it all at the time, but here it is again.
Firstly, thanks to Andrew Dixon for taking a snapshot of the slide I'm referring to:
@coldfusion share the roadmap for CF2016 at #cfobjective pic.twitter.com/r72WPzm9L5
— Andrew Dixon (@aandrewdixon) May 14, 2014
And the text version:
- High Performance engine - Optimizations - compiler, bytecode and runtime
- Modular Nimble Engine - services as independent modules
- Enterprise Class Package Manager - CLI, dependencies, public/private repository
- Language Revamp - performance, OOP, concurrency, extending lang
- Language - improved logging, image manipulation, deploy anywhere WAR
- Existing feature enhancement
@dacCfml While we want to reduce the release cycle, it is a little early to comment on the timeframe.Here's the thing though... all that stuff there is probably a year's work in itself, and it won't be the sum total of the whole project. Plus there's already at least one updater's worth of issues in ColdFusion 11 to take care of, and I really hope a significant updater for ColdFusion 10 to back-port a bunch of the issues fixed in 11.
— Rakshith Naresh (@rakshithn) May 15, 2014
So I think they should release an 11.5, and focus on one thing: "Modular Nimble Engine - services as independent modules". Well ignore the marketing angle, and just "modularise the engine". This by itself is a serious undertaking, but it will shape the way for everything else in ColdFusion going forward. This would need to be coupled to the concept of the package manager. Having a modularised language only works if there's a way to manage the modules.
Once the engine is modularised, then they can make the core language free. As Andy pointed out this morning:
@dacCfml @rakshithn honest opinion (which I've shared before): the commercial application server market is dead, and has been for some timeThis is essential to perpetuate the uptake of ColdFusion. Languages are free these days. That's it. Obviously Railo have got this ground covered, but I'm specifically thinking about ColdFusion's future here.
— Andy Allan (@fymd) May 15, 2014
So how does Adobe make money from ColdFusion? I guess they make compelling modules that they can bundle together atop the core language:
<cfclient>, PDF generation, image manipulation etc. Charge for those. People will want to buy them (not all people, obviously, but there will be a bunch of people - chequebooks at the ready - to pay for those modules). But they need to resolve themselves to the fact that it's a barrier to entry to charge for the actual language. Give the language away, and this will build the community base for then upselling them the modules. And for enterprise customers, a whole bunch of modules can be sold as a bundle so that the cost centres can remain the same.
Money aside, once the language is modularised, it should expedite further development of modules, bugfixing etc, as a module's surface area will be reduced.
Talking to some people today, there's skepticism as to whether "increasing uptake" of ColdFusion is really on Adobe's radar at all, instead their content to milk their US govt (and EU govt too, I understand) support & upgrade contracts, so they don't really need to worry about making it a more attractive prospect to the great wodge of developers out there who could conceivably be convinced to shift to CFML if ColdFusion was more accessible to them (cost and usage, both). As cynical as I am, I really hope this is not the case.
Anyway, I think Adobe need to be less optimistic about what they can get into a release, and just do the modularisation first, as a baseline for all future work. And as this is not, in an of itself, a very sellable feature, it should just be an "11.5" exercise not a "12", but get on with it now, and aim to get it released within the next 12 months. Then the more feature-y stuff can go into ColdFusion 2016.
I hope to collar Rakshith at some point whilst at CFObjective and see what he thinks about this sort of thing. In the meantime, what are your thoughts?