Raymond Camden's Blog Rss

CFUNITED 08 Opening Keynote

26

Posted in ColdFusion | Posted on 06-18-2008 | 7,562 views

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.*.

view plain print about
1<cf:datasource id="..." datasource=".." offline="true" valueObject="somecfc">
2<cf:Query name="create" sql="insert into artists() ..." />
3<cf:Query name="read" sql="select * from artists where artistid = @artistid" />
4</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:

view plain print about
1<cfcomponent orm="true" datasource="cfartgallery">
2
3</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.

view plain print about
1<cfscript>
2hibernate = request.getORMSession(;
3artist = createObject("component", "com.etc").init();
4artist.setFirstName("Ben");
5artist.setLastName("Forta")
6artist = 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.

view plain print about
1<class name="cf:Artist" table="artists">
2etc - looks like transfer

Now showing adding cfproperty tags to the cfc.

view plain print about
1<cfpropery name="city" type="string" accessor="true">
2etc

Showing an example of getting a record via hibernate.

view plain print about
1artist = hibernatr.getById(33, 'cfc path here');
2artist.setAddress('new');
3hibernate.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

[Add Comment] [Subscribe to Comments]

Too bad I'm not at CFUnited. If you want a hint on Ray's tat, take a look at his flickr stream...
So Coldfusion will be free for Education? Does this start with CF8 or CF9? This is great news! :)
Sounds like 8, cuz Ben said that they hoped it'd be available today.
Ditto Ed. I believe it's for v8.
*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.
Thanks Ray for taking the time and making the effort to take notes. We didn't get any kind of preview at WebDU.
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.
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.
@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
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!!!
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
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.
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.
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.
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.
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.
Ray, apparently you have an evil twin named Caymond Ramden. Caymond must be dealt with before you can clear your name.
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.
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
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.
Whether Cfcomponent is working in Coldfusion 5 server?
How to invoke cfcomponent in cfm file?
CFCs work in CF6 and higher only.
Why would you support a proprietary interface such as Hibernate instead of JPA? That seems like a rather arbitrary choice considering even Hibernate itself supports JPA.
I was hoping for an complete simplifying of the language. Right now we going backwards when CF added AJAX. We need to stay in one place and still get all features of javascript or even JavaFX. <cfhttp should have the option to return an Array or a cfquery. Thanks for adding that for cffile! You need <cfimap>, <CFclassloader for hot updates. For example the MySQL driver has a bug for CF 8 so I loaded a newer driver then the ISP is willing to and I get around the slow update problem. CF could even hot update this way too. <cfpaypal tag I thought was going in, what happened to that? Simplified way to hide the fact a gateway is even being used at all. Giving away software will not do it, we need more teachers who know CF.
Dan, you have a lot of comments here. I'll try to parse them as best as possible.

CF+Ajax is Backwards: I strongly disagree. After teaching CF8/Ajax about 10 times now, I can tell you that for people who are not yet knowledgeable about JS or AJAX, the new features make it _super_ easy. As it stands, if it is a feature you don't like, don't use it. It doesn't bring CF backwards if you don't like a feature.

cfhttp should have array/query results: Um, you can return a query with cfhttp. Not sure an array makes sense though.

cfclassloader: Check out the javaloader project by Mark Mandel at RIAForge.
I would like to see all object-oriented features in ColdFusion. Then only we can attract other developers to CF, else CF will be under-rated. The first query they ask is "is CF a complete objec-oriented language?" and we can't say "yes it is". I know CF is positioned as a rapid development tool and it also helps non-programmers to develop DB driven apps. But our community now comprises of lot of object-oriented developers (Thanks to MVC frameworks) and CF should also satisfy them. So my suggestion is keeping the same Rapid development objective (otherwise CF's purpose will be lost, every body will move to Java :) ) CFML should support all object-orieneted features that Java offers. Also built-in Spring and Hibernate features.

[Add Comment] [Subscribe to Comments]