cf.Objective wrap-up and thoughts about ColdFusion4 comments Posted by: Laura
cf.Objective() was a great conference, thank you to the organizers and speakers! I was not able to attend to as many sessions as I wanted, but just being able to talk at the lounge with super-smart people was worth enough (Chris Scott, Maxim Porges, Brian Rinaldi, Andy Powell, and many others). I had the feeling that anyone I would talk to would have something interesting to say or something I could learn from. I haven’t had that feeling for a long time, and it was great.
I think my session went pretty well, thank you all for attending. I had been preparing for the presentation for a few months, and thanks to Sean Corfield, who asked for drafts, seconds drafts, release candidates and final versions of the slides, I had the general flow of the talk long ago. There were, as always, last minute changes, particularly because we added features to Mate and changed the names of all the framework tags the week before cf.Objective!
English is not my first language, and I believe that if people in the audience need to make a lot of effort trying to understand the speech in addition to trying to understand the topic, they get bored and you lose their attention. So as part of my preparation, I took a class on accent reduction. I don’t really know if I speak a lot better now, but it seemed to at least give me more confidence, something you really need when you are up on the stage.
A highlight of the conference for me was the Birds of a Feather where Adobe brainstormed features to add to the next version of ColdFusion. It was very interesting to see a little bit of a “divide”, where certain people will ask for the normal enhancements while others will ask for a complete revamp of the language or the product itself. I saw that kind of divide within Adobe itself, where some wanted to hear “sellable” features while other were more open to hear about more drastic changes. While I see the latter to be the least likely thing to happen, I do believe we have reached a point where a major change needs to be made. I don't like being looked down by other development communities because I am a ColdFusion developer.
But it goes beyond that. Whether it looks like Java or not, we need to be able to create well-architected object-oriented applications (though I would give up the OO part as long as we have a really well architected app). ColdFusion definitely needs to be a rapid application development platform, but not at the expense of creating bad-architected/sloppy applications. Everybody, including myself, write bad code, so it is not ColdFusion’s fault, but the fact that it encourages you to do so. I do think both things can be done, but it may require a bigger change than just adding a couple of new tags. Regarding rapid application development, recently, I’ve been hearing things such as that people are more productive in other environments (ie: Ruby). ColdFusion: you are getting pushed out of your comfort zone, one of your *main* competitive advantages is being implemented by others, and where you might have been king before, now you are only one of the many.
At times it seems that there are a lot of ColdFusion developers trying to push the envelope by creating frameworks and top-notch applications, to find later that they have hit a wall, be it performance, be it lack of supporting syntax, be it lack of features (ie: cfthread was only added in CF 8). It is hard for me to say this because I am very used to ColdFusion and its idiosyncrasies, so most of the time, I don’t see any problem. But I see there is a problem when I try to explain ColdFusion to other developers, they either don’t get it or it is just more work than they are willing to do (ie: writing a CFC is more work than writing a Java class). I see other problems too, the biggest one being performance. Whether performance is only a matter of perception only or not, it is not acceptable for a page to take 20 seconds to render just because I am instantiating a few objects and calling a few functions on them. I am sorry, but I don’t buy the argument that CF is slow only because it is dynamic. I know a lot other languages that are as dynamic or hybrid (ie: ActionScript 3), and still perform well.
I am not asking for everything, I just want to feel good when I recommend ColdFusion to my clients. ColdFusion: I love you, but you either change or I will have to go and find somebody else.
PS: nobody should take this personally and I still love you all, including my dearest ColdFusion