An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View


June 19, 2008 ·

I dragged my carcass out of bed extra early for a "technology managers" breakfast that TeraTech were organizing prior to the keynote. 7:30am. Such an uncivilized time. The "breakfast" was a few croissants and some fruit and juices and a thinly veiled pitch from TeraTech for their services. Luckily only a handful of managers actually wasted their time attending. Next was TeraTech's opening "keynote". It's always the most painful thirty minutes of CFUNITED. Michael Smith is a nice guy but he really doesn't understand what a keynote is meant to be about. At least he didn't mention FLiP for a whole 22 minutes this year (last year seemed to be a pitch by TeraTech for Fusebox and their services and a lot of attendees were pretty annoyed by it). Then Ben Forta and Adam Lehman took the stage and, after about half an hour of the usual "good news" about the state of ColdFusion, they launched into the meat of their presentation: announcements and then new features that "may or may not be in" the next version of ColdFusion that "may or may not be called CF9". First off, the announcements:
  • ColdFusion will be free to students and faculty in much the same way that Flex Builder is today. The exact details are still being worked out so watch the Adobe site for more news.
  • The CFML Advisory Committee. I've already blogged about this and will be blogging more over the next few weeks.
Next, the features (for "will" read "may"):
  • <cfscript> will be enhanced to allow functions (both UDFs and CFC methods) to have access declarations, return types and arguments. A new component syntax will also allow entire CFCs to be written using <cfscript>. The applause was somewhat belated but I'm very pleased to see this coming!
  • A new scope local will be added to functions make it easier to deal with local variables. You will be able to declare variables with var anywhere in a function (not just at the top). You will be able to specify the default scope for unscoped variables via <cfsetting>.
  • We're getting <cfcontinue> as a tag (we've had it in <cfscript> for a while) and we're getting finally and <cffinally> to make it easier to deal with exceptions.
  • A new keyword (as an alternative to createObject()) and an import keyword to make CFCs accessible to new - just like Java / ActionScript. Some sort of implicit constructor will also be added.
  • Tired of writing all those "best practice" getters and setters? CF9 will have implicit getters and setters auto-generated based on <cfproperty>.
  • A Server.cfc will be added to allow for onServerStart() and onServerEnd() handlers in addition to the current application model.
  • AIR integration will be improved (I didn't catch any details that were given). They showed some MXML containing <cf:...> tags that defined a datasource and SQL queries that will somehow handle automatic synchronization of data between online and offline operation.
The final feature shown - the "big" feature - was deep integration with Hibernate, the de facto standard Java Object-Relational Mapping engine, so that you can simply specify orm="true" and a datasource on a <cfcomponent> tag and then you can load and save that object against a database table of the same name as the component. More enhancements to the <cfproperty> tag will allow finer control over what parts of a CFC are mapped to what parts of the table in the database. I think a lot of people were a bit bewildered by the Hibernate announcement because they're not using CFCs yet but I think it has the potential to drive CFC usage by making database access even simpler than ever. After the keynote, I went to Shlomy Gantz "10 Steps to Ruin a CF Project" which was a wonderfully humorous look at why projects fail. Shlomy told us not to test, not to document, not to plan, not to have a process and so on, illustrating each point with real experiences from his project management consulting past. He said he'd trying telling people the right things to do but it never seems to sink in so he's become bitter and wants to try reverse psychology instead. It was a great session and really brought home the important messages. During lunch I got caught up in conversations and missed the next two sessions (including Bill Shelton's which I really wanted to see). I popped into the speaker ready room to say "Hi!" to Peter Bell and Joe Rinehart but then Brian Meloche and the cfconversations crew arrived to interview Gert Franz of Railo so I ended up in there for another hour (it was a fascinating interview / roundtable - watch the CFConversations podcast for this episode to appear). I skipped the networking event (again, a guest pass was $150 for the networking event and the special event and that certainly wasn't worth it) so I had dinner with my wife and then we hung out in the bar with a good crowd.

Tags: cfunited08 · coldfusion

3 responses

  • 1 Elliott // Jun 20, 2008 at 8:15 AM

    It wasn't $150.

    It was $100 for both the Crime and Punishment and the networking event together, or about $50 for a single event.

  • 2 Dan Sorensen // Jun 20, 2008 at 9:12 AM

    I'm SO EXCITED about the cfscript enhancements!! I love the tags for the MVC &quot;View&quot; pages. Tags make so much sense together with the HTML for output. But frankly, I'm embarrassed to show tag based CFCs to my non-Coldfusion friends. It will be nice to write a CFC entirely in the javascript-like format. (And maybe appeal to those javascript guys looking for a server side platform.

    Hopefully, we'll get some missing pieces such as (cf)throw and (cf)location. I'm also happy about the (possible) 'new' keyword and explicit local scope. Some good stuff on the way. I hope your CFML meetings will be very productive. :-)
  • 3 Sean Corfield // Jun 20, 2008 at 10:55 AM

    @Elliott, quoting from Liz's email to the advisory board on May 15th 2008:

    On May 15, 2008, at 11:02 AM, Liz wrote:
    &quot;Actually we are loosing money on charging $150 per guest.&quot;

    That was the last I ever heard about the price of guest tickets.