ColdFusion X Writeup
Today at Scotch on the Rocks, Adam Lehman released some tidbits about the upcoming new release of ColdFusion, ColdFusion X. I tweeted as much as possible, but for those who don't use Twitter, and for those who want a general one page summary they can comment on, here is what he said and my opinion where applicable. Please note that anything announced today could easily change between now and the real release. Also remember these notes are based on my memory of what Adam said. Any mistakes are my fault.
1) Verity will be removed.
Not much to say about this. Adam suggested anyone using Verity now should begin looking into transitioning to Solr. Even if Verity wasn't being removed I think most people would recommend this anyway. Verity was a good product. I don't think it got the credit it deserved. But it's ancient now and Solr is much more capable.
2) JRun is being removed in favor of Tomcat.
Not much to say about this one. I've used Tomcat before and it seems ok - but I've had issues with it and Apache. Hopefully that won't be a problem. Adam said - multiple times - that Adobe would be supporting Tomcat so that if you had issues with ColdFusion and Tomcat you won't be left out in the cold. I'm guessing this will be a slightly painful transition the first time and then after that - not much of a big deal. Unofficial reports are that ColdFusion runs much faster over Tomcat so any 'free' speed boost is a good thing.
3) Webservices updated to Axis 2.
Anyone who does much with web services in ColdFusion will know that it's use of Axis 1 leads to issues with many service providers. ColdFusion X will upgrade Axis to 2.latest while keeping support for Axis 1 as well. It was suggested that in ColdFusion 11 Axis 1 would go away completely. This update will help enable Exchange 2010 support.
4) Scheduled tasks updated.
Scheduled tasks will support chaining (run task B when A is done), conditions (don't run if CPU is 80% busy), priroty, and grouping (consider A, B, and C a group and do this to them as a whole). Also - finally - you will be able to make them application specific.
5) Jobs
Basically you wrap a set of code in a cfjob tag and it runs asynchronously. It gets added to a queue you can introspect and modify. Basically a shorthand for cfthread but with more control over the queue stack.
6) Java loader/proxies.
No more need for JavaLoader - you can now load jars/classes via a This scope attribute in the Application scope. On the Java side, your Java code can create an interface from a CFC. Both seem like really nice, useful updates.
7) Closures.
Ok, I'm on the fence on this one. I load closures in JavaScript. I honestly don't know how much I'd use them in a server side language. I'm sure I'll regret saying that though and I bet I'll wonder how I ever lived without them. Then again, it could end up being the next cfinterface. It was hinted that the implementation could be similar to what Mark blogged about a few months ago.
8) HTML5/jquery
Nothing concrete was said here, but it was stressed that HTML5 and jQuery would be supported in big ways.
Finally, I was told, under NDA, that the release date would be

Like the tasks/jobs stuff, really useful.
BTW what's a closure?
Hope you enjoyed the haggis Ray!
Best. Update. Ever.
The "jobs" section seems nice too, I can see many places where it would be useful for batch processing.
Good to hear about Tomcat as since last month I was working with coldfusion and tomcat.
a closure is a way of declaring local variables inside a function but having them available to the rest of your routine. Here's a link on how ppl use them in JavaScript:
http://www.javascriptkit.com/javatutors/closures.s...
http://blog.mxunit.org/2010/01/what-would-your-cfm...
When building large applications with frameworks like ExtJS, you are much better off learning the framework and using it directly. You free yourself to upgrade CF without breaking your ExtJS apps, and you have the opportunity to implement regular framework fixes for problems you may encounter instead of waiting for Adobe to dispatch a hotfix (which probably will not come until a new major release of CF)
Explanation:
Having worked with ExtJS very heavily over the last 4 months... While it may be convenient for little things here and there to be included in CF, it is generally not a good idea to build entire ExtJS applications using the CF implementation. The CF implementation is updated extremely infrequently, and new browser versions are always breaking the rendering and behavior intended.
Another big problem is most CF implementations of ExtJS are not upgrade safe. When you upgrade CF, your old app code may or may not work. This is not really Adobe's fault, because there's plenty of things from say Ext 2.x that do not work in Ext 3.x. But to be free to upgrade ColdFusion any time you want and not break your ExtJS apps, use the framework directly instead of the CF implementation.
If they did include ExtJS, I am mostly certain it would be ExtJS 3.x (probably 3.3.x). The problem with that is ExtJS 4 preview is out right now, and everything changed.
If you want ExtJS, I recommend you grab the framework and work with it directly.
I am excited about CF X though! New toys!
If they (Adobe/ColdFusion team) could contribute a connector back to the Tomcat project that is as robust as the JRun connector it would be a BIG benefit both to ColdFusion, since it will maintain that same level of connectivity to the web server, but also to Tomcat in general (especially anyone using Tomcat on Windows with later versions of IIS).
Later,
Az
Regarding the dropping of JRun, it's been a long time coming, especially since Adobe dropped support of the product a while ago. I only hope that CF10 on Tomcat will further improve performance when instantiating CFCs etc.
The scheduled task updates sound useful. Dumping Jrun is a good idea. It wouldn't look good if CFX sat on top of a long dead product. Maybe CFX can utilise features that Tomcat has that Jrun didn't, on top of the speed improvements. I'm guessing it could include revamped clustering under the hood.
To be fair, it was updated as late as 2007 (in its updater 7, more at http://tjordahl.blogspot.com/2007/09/more-jrun-upd...). How many people still run in Windows 2003? Or even use Outlook 2007? :-)
But yes the base JRun 4 did come out in 2003, and no question, the consolidation of the J2EE server and servlet engine market left JRun behind, and it was indeed EOL'ed finally in 2009.
It served CF pretty well even after that (though many would argue to the contrary), but it is indeed finally time to move on. There will surely be benefits, though as Ray says it will likely be rough going at first as we make the transition, though I'm sure the CF team will try very hard to avoid that if possible.
Anyway, I just wanted to salute JRun and play Taps one last time before the party starts over its gravesite.
@Misha: Nothing was mentioned in terms of ExtJS/Sencha.
@Jeff: No mention of other Linux distros were mentioned.
@Simon: Think John F got you covered.
@Simon 2: CF is free for development. Free for staging. I've got no issues paying for it in production. It saves money in development time overall. If a manager can't understand that then I don't think there is anything Adobe could do to convince them. Just my two cents - I don't set policy for Adobe.
IMO, most of the JS stuff rolled up into CF is a bad idea. Although I'm glad to see jQuery used instead of Spry and the like.
We are using CF 9. It works well. The change to Tomcat is nice, but not important for me and i think for many other developers too. I hope they make some changes to cfdocument, cfimage, cfpdf or things that bring CF to another level and more interesting for PHP or Java developers. With the features above there is no need for an upgrade. We have more than hundreds CF Projects on our server and only 5 ScheduledTasks running!
Hope to hear more in the near future.
Cheers
Thanks Ray
But, even with jquery, jquery ui and over 200 files being loaded and various objects and queries running... my entire page loads in under a second according to both chrome and firefox. So, speed? It definitely has it.
Didn't try Tomcat yet, but as I can read from the comments people welcome this change.
Some of the scheduled task improvements were already overdue in my eyes. Good to hear, that there's a big step forward.
It's also fantastic, that jQuery seems to be integrated. I already use it for some years and don't want to miss it anymore.
I also just know closures from JavaScript, but I am also sceptical how useful they will be in CF.
Besides all that I'm really curious about which other new language features will be integrated.
If they also implement some of the suggestions I made in the bug tracker, I'll be completely satisfied! ;-)
Sebastian
OT, but have you seen this awesome Death Star infographic?
http://www.geeksaresexy.net/2011/02/28/the-most-ic...
I used to be a part of private betas back in the days, and lost interest in the latest release.
But the X looks really great with some game changing features.
Starting a new project with ExtJS 4 and would love to know if I should wait a little more to get back to CF or not.
Can you give us one more little hint, without breaking your NDA in any ways ?
Last time you wrote about X is more than 6 months ago ? Pretty please ?