CFUNITED 08 Opening Keynote

Welcome to CFUNITED 08. I'm going to be taking notes during the opening keynote, so please be sure to reload this entry for updates. Right now Michael Smith is speaking about the various things we can do to improve our applications. Adobe will be up in a few minutes and I'll do more frequent updates then.

8:47AM: Michael is still talking, so while we wait for Adobe, an update on my 'free book if you find my room' note. I discovered that my floor is blocked to anyone who doesn't have a room on the floor, so I need to figure out another way to give away the WACK. The first person to ask me about my tat will get a copy. (Although you have to guess where it is - so you may be in some danger...)

9:00AM: Ben Forta and Adam Lehman are about to begin. Michael is still wrapping (needs to speed it up a bit).

9:02AM: Ben says, normally, this is where we show new features of CF, make big announcements, etc. "Cool stuff" Ben will cover higher end management stuff while Adam will be showing off the cool code stuff.

9:05AM: Where CF is today. Sales are "superb". Adobe doesn't say numbers, but it's doing very well. CF sales numbers are the best since Adobe got Macromedia. CF801 released early 2008. Added new OS support, 3rd party library updates, and other stuff.

9:08AM: What's next? Public bug database, public enhancement request system. Customer advistory boards (with enterprise developers/community leaders) - includes focused subgroups (language, ria, frameworks, etc). And earlier access to Alpha/Beta releases.

9:10AM: Centaur development is on going. Themes: Advancing CFML, improved integration story, and improving the developer experience. Details are coming later in the keynote.

9:12AM: Planning for the Future. Biggest problem is lack of available developers. Everyone has small little language issues, or issues with pricing, but the lack of developers is the biggest problem (in Adobe's eyes). Speaking about reaching out to educational market. They did it will w/ Flex. CF will FREE for students and faculty for academic use (similar to Flex model). Full unrestricted version of CF. (Enterprise version.)

9:16AM: Protecting the integrity of CFML. Over the years, language has become fragmented and inconsistent. We need rules and guidelines for how the language evolves. Also need to play well with other CFML implementations. CFML Advistory Committe. Sean Corfield, Ben Forta, Sanjeev Kumar, Gert Franz, Me, Rob Brooks-Bilson. To help define the rules and guidelines around the use and evolution of CFML.

9:20AM: Centaur Sneak Peek time

9:22AM: What follows may or may not be in Centaur. (FYI, I hope to have a 'what I think of all this' post later today - focusing on just taking notes). Create UDFs and CFCs using CFSCRIPT. You can do argument def. and validation, roles, access, return types - again in cfscript.

9:23AM: Showing an example of a CFC with a method all done in script. (I won't bother typing the slide code, we all know what script syntax looks like.)

9:24AM: Explicit Local scope. cfset local.foo = 1. Can be used ANYWHERE in the func (no need to var crap all on top)

They will add a cfsetting thing to let you say all variables are var scoped.

9:25AM: cffinally/cfcontinue tags. Surprised it took this long for cfcontinue. cffinally is a bit obscure.

9:27AM: New keyword. implicit getter/setters for CFCs. implicit constructors (finally) for method's name init. import keyword. You can also use a method with the same name as CFC for an implicit constructor. You can do cfcomponent init=".." to define a constructor to run on init.

9:29am: implicit getter/setters - useful for bean cfcs. cfproperty will have more meaning to help with this. you will be able to override these as well.

9:30am: onServerStart and end - done with an Server.cfc file. All Application.cfcs will inherit this. Server.cfc is per server instance.

9:33AM: ColdFusion + AIR. Centaur will make AIR integration easier (big surprise there).

9:35AM: About to show a demo (which isn't working). Flex code with a cf:datasource tag and N cf:query tags. Kinda cool looking. Looks like he defined N queries so he can easily run a create, read, list, etc. Showing import com.adobe.coldfusion.*.

<cf:datasource id="..." datasource=".." offline="true" valueObject="somecfc">
<cf:Query name="create" sql="insert into artists() ..." />
<cf:Query name="read" sql="select * from artists where artistid = @artistid" />
</cf:datasource>

Note I really abbreviated the code there.

9:38AM: This is big. Looking at exposing CF stuff, like cfmail, directly to AIR. Ie, you don't need to write a CFC to just wrap a CF service.

9:41AM: Adam is going to show his favorite feature. Database integration via ORM. Centaur will support ORM natively with Hibernate!

9:42AM: Example:

<cfcomponent orm="true" datasource="cfartgallery">

</cfcomponent>

This is the least amount of code you need. It uses the CFC name to see if it matches the table name. You get auto get/set.

<cfscript>
hibernate = request.getORMSession(;
artist = createObject("component", "com.etc").init();
artist.setFirstName("Ben");
artist.setLastName("Forta")
artist = hibernate.save(artist)

Ray's note: I think this can be done cleaner. Ie, artist.save(). Todd made a good point - if CF knows the tables and stuff, why even require a CFC?

Now showing the XML to help define mappings. It's the exact same schema as Hibernate normally uses.

<class name="cf:Artist" table="artists">
etc - looks like transfer

Now showing adding cfproperty tags to the cfc.

<cfpropery name="city" type="string" accessor="true">
etc

Showing an example of getting a record via hibernate.

artist = hibernatr.getById(33, 'cfc path here');
artist.setAddress('new');
hibernate.save(artist);

9:51AM Awesome question. "What about performance" Awesome anaswer. "It will be fast."

9:56AM: To learn more about Centaur, go to MAX.

9:57AM: Open to questions now so the updates will slow down a bit.

Comments

Too bad I'm not at CFUnited. If you want a hint on Ray's tat, take a look at his flickr stream...
# Posted By Rob Brooks-Bilson | 6/18/08 8:15 AM
So Coldfusion will be free for Education? Does this start with CF8 or CF9? This is great news! :)
# Posted By Chris | 6/18/08 8:18 AM
Sounds like 8, cuz Ben said that they hoped it'd be available today.
# Posted By Ed | 6/18/08 8:19 AM
Ditto Ed. I believe it's for v8.
# Posted By Raymond Camden | 6/18/08 8:21 AM
*waves*

Enjoy the conference. Wish I was there! This is the first time I'll miss CFUnited (CFUN) in 8 years. I'll be attending vicariously through your posts.
# Posted By Steven Erat | 6/18/08 8:25 AM
Thanks Ray for taking the time and making the effort to take notes. We didn't get any kind of preview at WebDU.
# Posted By Ben Davies | 6/18/08 8:26 AM
Thanks for blogging this Ray :) Sounds like they have some great new announcements. The educational version is a great step forward, and the CFML Advisory Committee is excellent news! The explicit local scope is nice too.
# Posted By Justin Carter | 6/18/08 8:29 AM
Have they said anything about moving away from using JRUN? Since hibernate is part of JBOSS I assume that they are going to be bundling JBOSS for the underlying J2EE server.
# Posted By John Blayter | 6/18/08 10:35 AM
@John:

They did talk about JRUN and said Adobe has the right to switch out the java server at anytime and when it is compelling to do so. Ben nor Adam would commit either way, so they really left it up in the air.

Mark
# Posted By Mark Mazelin | 6/18/08 11:45 AM
Wow! Great stuff going on. I'm glad I held off on CF8 so far...I'm not too into the ajax stuff that seemed to be the bulk of CF8 changes. Really stoked about the CFC changes...local scope, argument definitions in cfscript etc. These are the things folks have been clamoring for.

So exciting to see the top folks in the community (Sean, Ray etc.) getting to be directly involved. And the "free to academic institutions" decision...it's about time!!!
# Posted By Josh Nathanson | 6/18/08 1:19 PM
My gosh, I just drooled all over my keyboard. I want it!!!!!!!!

Hope you're having a great time Ray, thanks for the update!

~Brad
# Posted By Brad Wood | 6/18/08 1:39 PM
There are plenty of CF developers, just not good ones. Good developers tend to migrate over to java or .NET. I am not say all good developers, but many of them do. CF needs to find a way to keep these developers stick. One of the problem I notice is that on average a senior java developer gets paid about $20k more than a senior CF developer.
# Posted By Johnny | 6/19/08 11:00 AM
I find it odd that Ray was picked for the committee to contribute to standards based off of his unprofessional behavior at some of the sessions. I would think someone would rethink this. I appreciated your insight and knowledge in your class; but show some class in others.
# Posted By Josh | 6/19/08 4:57 PM
Josh - This is twice now that you have attacked me on my blog. If you are going to do this, at least back it up.

What unprofessional behavior did you observe?

I try to make every presentation as good as possible. So if you can offer concrete advice as to how I can improve, I will take it to heart.
# Posted By Raymond Camden | 6/19/08 5:08 PM
Oh - wait - you are accusing me of acting up in a session? I hate it when people act up in sessions and I can't remember a time I ever have. I'm not perfect of course. So if you can tell me what session I supposedly acted up in - what I did - I will immediately apologize to the speaker. If you are right of course.
# Posted By Raymond Camden | 6/19/08 5:14 PM
Josh, I'm still waiting to hear you back up your claims. As you have not done so - and this is the second time you've attacked me for no reason, I'm beginning to think you have no real point.
# Posted By Raymond Camden | 6/20/08 6:39 AM
Ray, apparently you have an evil twin named Caymond Ramden. Caymond must be dealt with before you can clear your name.
# Posted By Todd Rafferty | 6/22/08 2:02 PM
Ray was one of a few developers called up by Allaire/Macromedia more than once to consult on the future of the language. I see no problem with his name on the list and am even a bit envious. As for unprofessional behavior, I think Josh must mean a different Ray here. I've never seen any unprofessional behavior or acting up from Ray and I've known him a few years more than most people here.
# Posted By Michael Dinowitz | 6/22/08 4:01 PM
Ray, thanks for taking notes on the keynote... I was too busy just taking it all in...

One note regarding the use of cffinally... In other languages that I've worked with, the finally block can be very useful. As you'd expect, the code inside there gets executed whether an exception was thrown or not. The catch is that if there WAS an exception, then the code acts as if the exception gets raised again after the finally block is complete. It was something that I missed quite a bit when I moved over to ColdFusion back in version 4.5... :-) I can't wait for it...

-Andy
# Posted By Andy Lynch | 6/22/08 9:05 PM
Thanks for the D Michael. I was prepared to give this guy attention is I was indeed being rude w/o knowing it (or heck, being rude and not caring ;) but he is an obvious troll. He posted another rude comment a day or two before this one.

Anyone who can't defend their statements and use a real name is a coward and not worth listening to.
# Posted By Raymond Camden | 6/23/08 8:35 AM