Orange is my favorite color

Just a quick highlight from the cf.Objective() keynote this morning. Adam Lehman and Terry Ryan from Adobe kicked off the conference with some new news and features of ColdFusion 9 (aka Centaur). There are three big picture things that I think will be relevant:

  1. Free for Education and Students – Adobe is giving away free full-blown ColdFusion Enterprise licenses for schools and students. They are also providing curriculum. Not shelling out $7500 to learn ColdFusion means the long-term future of ColdFusion developers is looking a little brighter. It’s available at FreeRIATools.com
  2. CFaaS – ColdFusion As A Service. The underlying out-of-the-box functionality that CF provides like Mail, Charting, Documents, Database interaction, etc. is being opened up to SOAP web services and AMF for Flash/Flex. This will eliminate building a middle tier for RIAs that wrap ColdFusion tags and it opens up ColdFusion as a RAD service layer for any technology that can speak SOAP like .Net, Perl, Ruby, PHP, etc.
  3. Object Relational Mapper – ORM. This has been said before so isn’t new but if you haven’t heard, CF9 will have ORM support via Hibernate baked in with a lot of stupid easy syntax that will eliminate the need to write SQL. I’m a Transfer user today but am watching this carefully.

As a developer, there were a handful of things that are going to be great for day-to-day development:

  • Server.cfc and onServerStart(). The ability to run code when the server first starts will eliminate the dreaded first hit for any application with a lengthy initialization process (that’s you, frameworks!). This isn’t a game changer, but it sure makes restarting a server more consistent.
  • Implicit struct/arrays can be used everywhere. The gross speed advantage of defining a struct or array in a Javascript-like syntax with:
    myArray = ["Brian", "Joe", "Frank"];
    was less helpful because you couldn’t create it as part of a method call like so:
    methodThatTakesAStructure({name = "Brian", age = "32"});
    That code would fail in CF8 but will work in CF9. This makes the syntax more consistent with other languages and more natural to use which is the kind of sugar that makes day to day development a little easier.
  • Assignment chaining! Good god, more than a decade later we can finally say:
    a = b = c = 0;
  • Direct access to the elements of a returned array. This wouldn’t work in CF8 but will in CF9:
    <cfoutput>#getSomeArray()[2]#
    This makes working with dynamically returned arrays a little easier by avoiding an intermediate assignment.
  • ColdFusion Components have a new automatically defined LOCAL scope (the equivalent of a CFMs “variables” scope). So you don’t need to var every variable if you use the local scope instead:
    <cfset local.myPrivateVariable = "foo" />
    The other part of this is that you can now put a var’d variable anywhere in your method declaration, no longer just at the top! Another syntax tweak that will make day to day development a little nicer and will make reading code a little easier.

There was a lot of stuff that Adam and Terry covered, including a cool demo of the new CF IDE code named Bolt, but there were two specific things that I am looking forward to:

  • Multi-server Server Manager. Like the multi-server server monitor in CF8, the Server Manager will let you administer multiple servers from a single interface. For anyone who has to admin even two servers, there are two bitching features: apply changes (e.g., new datasource) to more than one server at a time and compare the settings of any two servers with one click. The latter will help track down why one server is performing exceptionally well or poorly.
  • Object Cache – Adobe is going to ship a built-in, pluggable caching framework. New methods cacheGet(), cachePut() and cacheGetMetaData() combined with fragment caching should eliminate a lot of the homegrown caching frameworks. Just like CFQUERY caching will look at the variables passed in and determine if the cached results are still applicable, these tools will do the same and are going to work with CFCs.

More to come… my presentations are tomorrow on PostgreSQL and Saturday on Migrating to a Framework.

2 Comments

  1. Joshua Cyr said:

    on May 14, 2009 at 8:46 am

    The slide for edu had the wrong URL. it’s freeriatools.adobe.com

  2. Brett S said:

    on May 15, 2009 at 5:33 am

    Thanks for the recap Brian, exciting stuff. Good luck with your sessions.

    .brett

{ RSS feed for comments on this post}