10 Things ColdFusion 10 Really NEEDS
I was reading a ColdFusion 10 Wish List today (I am behind on my blog reading) and it is largely filled with minor tweaks that are a bit too myopic for me. I think Server-side Actionscript is interesting, particularly to Flex developers looking for a back-end, but almost everything else on the list struck me as missing a broader view.
From the general list there are things like incorporating Omniture (a web analytics tool), adding message queuing (I assume this is essentially incorporating JMS directly into the language. By the way, you can do this today with the JMS Gateway), calling a CFC from Java(CFCProxy already exists too), queryparam for LDAP, multiple datasources for ORM, and NTLM support.
Really??? This is what we want for ColdFusion 10!?!
Well I want more from Adobe than that. I know we are all still catching up to ColdFusion 9 (maybe even 8,) but there are 10 serious changes that ColdFusion NEEDS.
- Replace JRun
- Overhaul Reporting
- Overhaul CFDocument
- Fix Server Monitoring
- Re-think Flash Forms
- Fix Application Deployment
- Make a Free Edition
- CFML and CFSCRIPT
- AJAX and Flash Forms
- File Handling
- XML Parsing
- CFQuery (but I don't need the DataDirect drivers... all the databases provide their own)
- CFMail
- CFFTP
- Deployment
- BlazeDS (Hey it's free in supports the Flash Platform initiatives, so toss that in too)
- Add real support for Instant Messaging
- Update the Web Services Engine
- Add a Workflow Engine
I'm sorry, but if it's dead bury it. Get the engine to the 21st century. There are several viable options out there including replacing it with GlassFish, Geronimo, or a commercial application server.
ColdFusion ReportBuilder is a crusty outdated application built for windows only and very few people use it because of that. ColdFusion Builder deserves an Eclipse-based report building tool that understands CFML. Either update Jasper Reports or implement BIRT. If this is done right, Adobe sells more ColdFusion Builder and more ColdFusion... we get better report building tools out of the box.
It's common knowledge that the underlying HTML renderer in ColdFusion is ICEBrowser. ICEBrowser did a decent job with earlier versions of the HTML spec, but found it commercially unreasonable to try to keep up with that. Its End-of-Service Life is next year. http://www.icesoft.com/products/icebrowser.html
It's time to implement WebKit under the covers. WebKit is also the rendering engine used in Adobe AIR, so maybe there could be extra benefits to using this. If WebKit won't do the trick, hopefully Cobra can, or perhaps they go to just supporting XHTML with Flying Saucer. Whatever the answer is, it is probably not to stay on an unsupported OEM.
A lot of people use this to generate PDF, it needs to be solid and it needs to work with later revs of the HTML and CSS specs.
Server Monitoring was a terrific feature in ColdFusion 8 that just didn't make it all the way there. Either spend the time to get it there, or FusionReactor has their act together, partner with them to create an OEM'd version. They get an upsell opportunity for those in need of Enterprise Monitoring and the rest of us get a better Server Monitor.
Flash Forms were a great idea when they came out with ColdFusion 7, they are an even better idea today. They probably need to be re-envisioned. But let the server-developers create code within their CFML that creates a rich UI! ColdFusion developers that don't want to go out and learn an entire new development language and paradigm should still be able to leverage the Flash Platform.
Sourceless deployment is simply not easy enough. CARs are not a bad idea, there just hasn't been enough time spent on making using them easy. Add a deployment wizard to ColdFusion Builder that then brings up my Server Manager so I can point > click > deploy.
Yes, I said it. ColdFusion needs a Free Edition! This was tried once before and failed miserably and so those with corporate memory at Adobe sometimes bring that up (although really the only person left from that time is Ben Forta.) Here's the deal, like everyone else in the world one of these days I will get around to moving my blogs over to some free third party provider (blogger, posterous, tumblr, etc.) Why? Because I'm not going to pay $1299 to run a blog on CFML. All I really want is to stay with my warm and fuzzy CFML while staying with the platform I am familiar with. Give me an edition that just has the nuts and bolts:
Keep the rest to yourselves. I just want to be able to run a blog and a wiki without paying for a commercial application server for my home computer, and without learning PHP. If you did that, maybe you'd win back some of the PHP market and even create a vendor market around ColdFusion again. Just give me something that has no more features than the free platforms. Worst case scenario, you make a better investment in expanding use of the Flash Platform.
IM gateways were a cool idea, but supporting XMPP and Sametime is meaningless. Get the other gateways in there. While you're at it, make them part of the default language or easier to administrate. Maybe there is a way to make Gateways more approachable in general.
The underlying web services engine is still good old Apache Axis 1. While that is great for backwards compatibility, Apache Axis2 is considerably faster (4-5 times faster) and supports many new features. Axis2 was first introduced in 2004... I would say it's mature at this point. Hot deployment and Asynchronous calls would be hot!
Business Process Management is extraordinarily important these days. ColdFusion is often used to build custom business processes. Wouldn't it be awesome to drag-n-drop your way to a new application workflow?
Take the work that has been put into LiveCycle Workflow or maybe jBPM. The Business Process engine should tail into ColdFusion Components nicely. Implement either LiveCycle Workflow Designer or jBPM Process Designer with some ColdFusion awareness into ColdFusion Builder and you have a winner.
Push for greatness, go ColdFusion.
Jason

#5 - I thought the answer was "Use Flex"? Anytime I hear anyone ask a question about the flash forms, you get a bunch of cringes and a scolding that they should be using Flex. I believe the flash forms are just there for backwards compatibility.
#7 - With Railo / OpenBD available and able to match all of your requests (including BlazeDS), why should they bother? In fact, some of the guys on the Railo mailing list have been able to get all this working from a thumbdrive as well.
#8 would be cool.
#9 is long time coming.
http://twitter.com/webRat/status/6576377275
On my opinion its time that CFML moves in the same direction as other languages and start providing all those features as packages or libraries, and keep the core language (CFML) very basic and simple.
This way, adding support for google maps, spreadsheet, images, etc won't require full new versions of ColdFusion, just releases of new packages or libraries that can be downloaded and just used. You know, like a little language called Java.
Adobe should save the full releases for things that change the guts of the application, not for adding new functions and tags.
Was this list in a priority order? If not, its funny because you more or less hit on the order I'd prioritize these but they are all top-notch suggestions. Nice work!
I appreciate the efforts that the Railo and OpenBD teams have put in to create their offerings, they are still different and would require learning the nuances of their respective platforms rather than just taking what I already know and not using some tags. :)
I also believe that more companies would be compelled to use a free version of ColdFusion than they would be to use Railo or OpenBD.
I am in no way Anti-Railo or Anti-OpenBD, I just think Adobe's strategy should be to make a free edition for the ColdFusion product regardless of what is happening with other CFML vendors. I'm suggesting it as a way to compete in the larger market being swallowed up by free platforms like PHP, Ruby, Perl, and JSF market, not to keep from losing market share in the CFML market.
I'll have to join twitter. :)
Cheers!
Jason
BlogCFC / MangoBlog both run on Railo/OpenBD and very well I might add. CanvasWiki as well as Codex Wiki both run on Railo (Don't know about OpenBD).
Railo supports everything else on the list with very little difference from Adobe CF. I'm sorry, but I'm not buying it as it sounds like excuses. For the price tag of free, I can live with some nuances and learning something new.
The original Flash Forms idea was very cool, just build a form... all forms are pretty much the same right? You have some text boxes and some select boxes, you click a tab and an animation changes to a new screen. It isn't that tricky and there is no reason I need to learn Flex to be able to say how I want a simple form to be drawn.
But, when I do want to do more than a CFFORM, CFINPUT, and CFSELECT let me just grab the MXML source ColdFusion was making and go build your Flex app.
Give me an easy win and maybe people will accidentally start learning Flex and making that Flash Platform even more popular. :)
Jason
Maybe next week I will post what I think Railo and OpenBD should do for their strategy. :)
I'm curious what you think Railo's strategy should be so... list away. I'll make sure the Railo team looks it over. :)
I completely agree that Adobe should offer a free edition of CF with the "nuts and bolts" as you put. I think that would be freakin' awesome for all the reasons that you outlined. The only point I was trying to make with my comment was that, until that happens (IF it does), you have options now with the open source engines. Although I have to say that using Railo didn't reallly require me to do anything differently or learn new things compared with Adobe CF.
In all seriousness, I want an "Adobe ColdFusion" free edition. Why? Not just because I want a blog, but because I want internet start-up companies to choose ColdFusion. Start-ups are across the board choosing a free open source platform (largely PHP.) I would love to see start-ups choose ANY CFML engine, truly and absolutely love to see that. My CFML skills would be no less valuable to them if the engine they use is Railo.
However, I think a free edition of ColdFusion from Adobe would attract far more attention than the other engines have been able to so far. You can argue that Railo is still making moves on that front, and they are, and I hope they are successful.
If you want to run a free CFML engine, you can today, but I would like the decision makers at Adobe to understand that having a free edition for the ColdFusion product would support their broader platform adoption strategy.
As you say, there are options for free today, so there really shouldn't be anything for them to lose. :)
Good list, Jason.
I put something up on UserVoice
http://cf10.uservoice.com
Please add your top 10 or vote on the once that are already up.
Thanks
Axel
I"m not arguing with you. Did you miss the part where I said "I completely agree that Adobe should offer a free edition of CF... that would be freakin' awesome for all the reasons that you outlined." ;)
No need to defend your stance to me.
Oh and for anyone who votes for features to be added to Railo feel free to comment/vote on cfjs: http://railo.uservoice.com/pages/21016-general/sug...
Everyone will whinge about the limitations, no matter what they are, and will start poing out that "Railo does this, or Open BD does that" and comapring the 3, which will of course be an unfair comparison as they are FULL products.
There is absolutely no reason for Adobe to even consider entering this arena when it is already well covered by Railo and BD. They have the FREE developer edition which I think is sufficient for anyone who wants to use Coldfusion.
ColdFusion is meant to be an enterprise product and this is where I believe Adobe wish to position themselves, and quite rightly so. What they need to do is make sure it really is enterprise class compared to Railo and Open BD. The suggestions on Jasons list here will go some way toward this, especially getting rid of JRUN and integrating a better, lighter and faster engine.
One of the big pluses of CF vs the others is the ease of install, which I think will continue to give them the edge as well.
If they were to release a free edition then I do not believe that limiting the tabs and functionality would be the right move, as it would be a flop like cfexpress for the above reasons. Better that they remove enterprise features or limit the number of simultanious connections so that it can only be used for personal low traffic web sites.
As far as a free version goes, it's definitley something we'll be exploring for Link (v10) as it's always been reviewed with our GTM plan.
The CF ecosystem is very delicate and fragile. If a free version cannibalizes our revenue then we end up with less resources (engineering, marketing, OEM, conferences, etc). While it's important to grow the community, we can't do it at the expense of the community. But I do strongly belive there is a middle ground. Our Enterprise customers might be able to subsidize our independent and small business customers, if we substantially raise the bar for them.
Technically, there are a few things on this list I don entirely agree with, but I agree with to problems they are trying to solve.
-Adam
CF Product Manager
I want a free version so more companies will be compelled to choose CF for the first time. I actually think those that still use ColdFusion won't care that much that there is a free version. I want the other features for my business, that doesn't care about a few thousand dollars for Enterprise.
@Marcel - The first language I programmed for the web was Server-Side Javascript. Yes, Netscape came up with the idea in the mid-90s. It was, well, a language syntax. I guess if it made a come back I already know it. So w00t to the possibility of another language making a comeback. :)
@Russ - Limiting the performance wouldn't really solve the market I think Adobe should attempt to go into with a free edition. I would not use a free edition to get people interested in using it for personal use (although I would want to use it myself for that.) There is a huge market of start-up companies out there that choose PHP because they are building intellectual property from scratch and want productivity with decent performance. ColdFusion has better performance AND better productivity... but they will choose PHP because 1000 servers running CF costs A LOT of money. And let's face it, if you're building Myspace, you don't pay 5 Million dollars to have HTML to PDF conversion or CFPresentation...
Also, there are a lot of Enterprise products with free editions: Oracle Express Edition, SQL Server Express Edition, Websphere Community Edition... Having a free edition doesn't position your whole product line as not Enterprise.
Getting more companies to choose CF, even if its free, means more Adobe customers to cross sell to, more Flash Platform use, and more ColdFusion Builder sales. There is a market there, and there is a monetization strategy, the product just needs to be repackaged to address it.
@Adam - I'm like one of those ex-quarterbacks talking on Monday night football... all I can do is talk about what I think the guy on the field should do. Go run with it my friend. :)
Server-Side Javascript is rapidly growing in popularity due to jQuery and John Resig's Env.js project which puts a DOM model into a server (rhino) context. If you look at the number of SSJS implementations it is growing quite rapidly but non of them have taken off yet as developers are looking to see which one ends up the most popular and installed in the most hosting environments. That's where I feel CFJS could win that by ending up on far more hosting installs and with far more users than any other SSJS could. But only if it is done before someone creates a SSJS server to kill all others.
Oh and I also agree with some of the comments on no need for a free ColdFusion, Railo or Open Blue Dragon more than catter for that need as far as I am concerned.
I don't understand why sessions are supported but if the application scopes aren't identical on all the servers at the time one goes down then things are going to break anyway.
We have "solutions" in place to make sure application scopes are refreshed at certain times (without a server restart) but really this is something that we shouldn't have to think about.
So for the 3rd version in a row now PLEASE Adobe can we get shared application scopes :-D
Workflow Engine - +1,000.
These are the types of things that make CF great. These are the visionary aspects that would have been incredible 5 years ago and are becoming pretty mandatory today.
CF rocks at business apps and getting real work done. I'm tired of getting shoved towards .NET to do 'fluffy' stuff.
We also need the ability to fully utilize .NET components easily (stuff like Telerik and etc.) or we need our own flavor that makes it simple to drop new functionality in easily.
Worflow, Reporting - That's real world stuff that makes us all look good and makes it much easier to get CF subscription renewals and keep the flame burning.
I don't want to use .NET for everything - CF is great for getting real work done quickly without tons of junk getting in the way or using a sledge hammer to drive thumbtacks.
Push CF back to the front of the pack for doing Agile work that lets us focus on business logic and process instead of coding ourselves to death or getting beat senseless by noob devs whacking stuff together with .NET wizards and fancy UI controls that look incredible but are functionless shells distracting users from the complete lack of business logic and process they need.
Yeah, we can use .NET to throw Outlook look and feel into every app but it's obscene to watch these .NET kids throw a billion controls on a page because they look cool and not because they solve a real business problem for users.
That's what CF is for. It just needs a new batch of bright and shiny splashed on it again.
I would love to see a basic CMS and/or a personalized start page (like iGoogle) included with CF or sold as an add-on by Adobe.
Have you raised all these points on the CF bug/enhancement tracker? People making lists like this on their blog seems to be only doing half the job of getting it onto Adobe's radar, in my view. Other than obviously AdamL's seen it here...
I think a good thing to do would be to raise these points as issues, and encourage your readers to share your voice and go ave a vote. Democracy at work.
--
Adam