A Look Into ColdFusion's Future (Again) Sully? Link? Storm?
Posted by
Brad Wood
Oct 24, 2009 08:24:00 UTC
Well, now that ColdFusion 9 is officially out the door (it's still hard to believe), have you thought about what you want to ask Santa for CF10? We're going to double digits, baby-- so it'd better be good! Yeah, I know-- who do I think I am? Honestly, I still feel like a kid after Christmas with enough new toys to keep me busy for a while. Even so, I can't help but wonder what's in store. Once again, I have found clues in Adobe's own words via the latest version of the ColdFusion Evangelism Kit.
Back in September of 2008, Kristin Schofield released the first ever Adobe ColdFusion Evangelism Kit. Inside of it was a road map for ColdFusion's future. Centaur was slated for 2009 and there was a version referred to as Sully to come out in 2010 and one called Link to be released in 2011. I pointed them out in this blog post and Ciqala Burt pointed out that Sully might just be the 9.1 release which would make sense since Adobe has been sticking to a 2-year cycle for major releases.
Well, I dug up the latest version of the CF Evangelism Kit which is dated 9/15 /2009 (about a month ago) and noticed it had been updated. Sully has been removed and is nowhere to be found. (Sorry, old chap) Furthermore, Link USED to list the following:
- Language Extensibility
- Pluggable Architecture
- Improved Reporting
- Cloud Services
- Next-generation Ajax and HTML
- Rich Media
- Data
- Deployment
- Collaboration
- Video Manipulation/Encoding
- Audio Manipulation/Encoding
- Automatic upgrades/hotfix installs from the Administrator (like Webmin)
- Enhanced Query of Queries (LEFT OUTER JOIN, string manipulation)
- Upgraded J2EE platform (JRun has been out of development for a while now)
- Built-in object factory/DI like Spring
- Super-cheap "light" version
- Additional Performance gains (CF8 and CF9 have kicked butt so far in this area)
- Pre-built cloud AMIs
- Adobe ColdFusion on the Google App Server
- What about you? What do YOU want out of CF10?
Sean Corfield
I'm pretty sure Adam said at MAX that Storm is ColdFusion Builder 2.0.
Lola LB
Built-in captioning. Providing an easy, convenient way for people to encode captioning for deaf people, as well as other languages such as French, Spanish, Russian, etc.
Marcel
Brad Wood
@Sean: Ahh, thanks for point that out. Storm kind of goes with Bolt. Maybe they'll have Thunder next :)
@Lola: I'd never really thought of language support before. In fact I'm not even sure what you have to do in order to support those other languages now. By captioning do you mean stuff for screen readers?
@Marcel: Nice-- you've got some good ones. I do love the fact that CF integrates also nicely with other languages (and enterprise services). Having Goovy and Ruby etc could make CFML simply irresistible. Could you explain what you mean by server side JavaScript? How would that differ from CFScript?
Sean Corfield
@Marcel, some dramatic architecture changes are needed to appeal to ISPs. Shared hosting is dying, everyone is moving to VPS setups. ColdFusion has a massive memory / disk footprint for use in a small VPS and that needs addressing (or use Railo of course).
@Brad, JavaScript and CFScript are fairly different in a lot of ways. There's definitely room for additional CFSCRIPT LANGUAGE="..." options (keep watching Railo :)
Lola LB
No, I mean, when you click on "CC", you get words displaying. LIke this: http://www.youtube.com/watch?v=meCIER_s7Ng
Adam Lehman
fwiw. Sully is still the codename for 9.01... which will most likely be released in the first half of 2010. The formal research phase for Link (and Storm) is starting/underway now. Pre-built AMIs w/ new pricing are coming sooner than you think!
As far as the rest of your list, there are definitely some features that are already planned, some definitely not... I'll let you figure out which is which. ;-)
-Adam ColdFusion Product Manager
Marcel
@Brad What I am trying to do in my limmited spare time is get Rhino integrated with envjs so that I can run jQuery on the server-side. I love the CF application structure so I want to be able to define an Application.cfjs file and have my Application.cfc call the events in that file. I'd obviously love it if railo or another CF server could do this without me trying to do it :)
But with Rhino you can call Java objects you have a massive developer community of JavaScript nerds making jQuery plugins daily and it is something .Net will most likely never do, all the more reason for us to do it.
@Sean please don't tease, info info info! You may have noticed I have added most of these requests to the Railo uservoice site and I never got any feedback, I'd love to know if you are planning cfscript using other languages, in fact I wish I knew more about how to help with Railo, I'm average with Java but I find Railo exciting and have looked on the site for how to get involved in it further, pitty you aren't coming to cf.Objective(ANZ) I'd have loved to find out more about Railo internals :'(
Brad Wood
@Sean: "Shared hosting is dying, everyone is moving to VPS setups." I've been out of the shared hosting circuit for a while. Are you saying that shared hosting in general is dying, or just CFML shared hosting?
I am familiar with many differences between cfscript and javascript, I guess I was just trying to a feel for how one would use what has primarily been a client-side language that most people associate with basic DOM manipulation for server-side scripting. (And it looks like Marcel answered to a degree above, though I'm going to have to Google Rhino to see what it is all about)
> CFSCRIPT LANGUAGE="..."
I remember suggesting a language attribute for cfscript quite some time ago when you were talking about the javax.script stuff on HOF. That will be awesome if Railo is being distributed all over the place with JBoss AND complete scripting support for all those languages. Why would anyone need anything else?? http://www.mail-archive.com/[email protected]/msg293934.html
@Lola: Ahh- gotcha'
@Adam: Thanks for the info! > Pre-built AMIs w/ new pricing are coming sooner than you think! Lord haste the day!
> I'll let you figure out which is which In that case, I chose everything!
@Marcel: As I said above, I'm not familiar with Rhino, but I'll have to take a look. That all sounds very interesting.
Marcel
@Brad Rhino is Mozilla library for loading up javascript into Java classes for execution, another great benefit is that it supports e4x which is found in ActionScript and allows for very fast convenient manipulation of XML. Being server side it doen't have a DOM object but John Resig (aka the guy who made jQuery) has written env.js which can be loaded into Rhino to allow for DOM manipulation. So once that is loaded you can then load up jQuery and pretty much any JS framework and they should work on the server! You can have your server-side templating engine also work exactly the same client side.
Check out Aptana's Jaxer, it went one step further and loads everything into Mozilla server-side with some server features like file and database access, great stuff. I just don't like the data model as much as I like CF so I just want something similar but with all the scopes etc.. that I am familure with.
tony petruzzi
the one thing that i'm really wishing that adobe would concentrate on is providing more manipulation of metadata for components, it would be really helpful with what we're trying to do with wheels.
right now i know of no way creating a method in a child class and then injecting that method into the parent class. maybe some oo guru reading this can shed some light on this for me. i think in ruby you do this by using the send() method or something, i could be wrong.
Brad Wood
@Marcel: Thanks for the explanation. I'll dig around for some examples of Rhino to look at.
@Tony: when you say child and parent class do you mean a super and sub class (inheritance), or a class contained as a property of another (composition)?
For the latter, I have started inserting a pointer to the composing class called parent so I can do user.parent to get a reference to the class that contains the instance of the user object. This, of course, assumes the composed class is not referenced by multiple composing classes.
If you meant inheritance, I'd have to see the use case to wrap my head around it.
Regardless, I agree that the getMetaData is lacking a bit. For instance, mixin methods have NEVER showed up in the metadata which is a bug in my opinion. (And they STOPPED showing up in cfdump as of CF9. Hello, Adobe??)
Are you thinking of something much more verbose like how Java Reflection has all those methods to get out the pieces of the class?