Overall review of cf.Objective() and thoughts on OpenBD and the CF9 BOF
First of all, if you're a mid to senior level ColdFusion developer, you REALLY SHOULD attend this conference next year. There's no substitute having access to 280 of the top CF developers in the world in one hotel. I can't tell you all of the great conversations I've had over the those four days (including Day 0). You'll learn all sorts of new ideas you might not have considered.
I've said it before, as have others, but the sessions and speakers were top notch. Most of the ones I attended were sessions I had already seen at user group meetings or CFMeetups, or even read in FAQU, so I didn't really get that much out of a lot of them, but still picked up one or two things I might not have known. I may try to get out of my comfort zone next year, take a different strategy and try to attend sessions on things I am not as familiar with to round out my knowledge.
The conference has a developer "feel" to it. In other words, it's not as polished as a MAX or even a CFUNITED. That's great in some ways because it really makes it feel like it's developer grown, not a corporate money-making thing, and it's intimate enough that it was easy to meet up with CF developers and get into extended conversations, both ColdFusion and non-ColdFusion related. That said, there were a few things I would have liked to see a bit more "polish". At the reception on the evening of Day 0, the guide and the website (which was down for a while on Thursday) said 9pm, but it started at 8pm, so I got down there at 9:10 and they put away the food by 9:20. I felt like a horse's ass not realizing that the bar wasn't a cash bar thing. If there were signs, I didn't see them. During the conference, the A, B, C and D rooms kept shuffling. That was a bit confusing, but the rooms were fairly close to each other, so that was OK. If it had been a bigger conference area, this would have been a bigger issue.
The food was not bad. I've had better, but it wasn't bad. There was usually some food or beverage available. The only time there wasn't was during the BOFs. That was one thing I appreciated at MAX last year (although Adobe really botched publicizing the BOFs).
The hotel was nice, probably one of the best I've stayed at for a conference. I had a nice room and the Sleep Number beds were the best I've ever had in a hotel.
St. Paul was... kind of dull... of what I saw of it. I didn't get a chance to go into Minneapolis or the Mall of America (I missed Iron Man), so I might have had a better impression if I had. It was quiet, which is not a bad thing, especially during a conference.
So... next year... come to cf.Objective()! I heard there are some thoughts about expanding it to other continents. I don't know if that will happen, but this conference is a good one to make it to. If I am grading the conference, I would give it an A. It would have been an A+ if it had a tiny bit more polish, but that's still a high mark.
The rest of the blog post will focus on Open BlueDragon and the CF9 BOF, which I had both mentioned in my day 2 post.
Open BlueDragon
I still find it quite ironic that, just as Jason Delmore was going to announce an open source initiative for ColdFusion, one of the audience members had a seizure. The next day, relatively quietly, the Open BlueDragon beta was released. It will be interesting to know what the significance of both of those events will be in a year. I think Open BD has the potential to do wonderful things for the CF developer community. We'll just have to see. Competition is good. I think an open source, stable and fully featured CFML engine will finally give Adobe some good competition in this space.
If you look at the Open BD source, you'll be impressed by how clean it is. If enough ColdFusion developers look at it, I think you'll see many CF developers take to Java. It's really not that foreign when you look at the source. One thing that intrigues me with looking at the source is the possibilities it could bring. If you are finding there's a tag or function you want that doesn't exist, add it to the source! If you find some limitations to... say... CFHTTP, for example, make modifications to the source code to make it more robust! Whether you contribute that code to the project is up to you and the steering committee. The reason why I mention it is you are no longer stuck to the existing tags and functions for your CFML projects. You can add your own in a way that CFCs, UDFs and Custom Tags never could. It's food for thought.
CF9 BOF
I am still quite surprised and shocked over how the CF9 BOF focussed on AS3 support instead of hammering Adobe on the need for a ColdFusion IDE. I noticed my Day 2 post said twice that perhaps the audience took it for granted that Adobe IS working on an IDE for ColdFusion - I guess that shows how much it perturbed me. I've read several blog posts about the "divide" in the room, and I'll address that later, but I think many of them don't realize that I don't think it's what they thought it was.
Having access to ActionScript3 in ColdFusion would be a good thing, don't get me wrong, as would the ability to make CF XML compliant, but NOT at the expense of breaking compatibility. If you are building a new application, I think more robust CFSCRIPT, AS3 and XML compliance would be a GREAT thing, but NOT if it means it's a pain in the ass to port my applications to CF9. If you are advocating that, forget it. And if you are talking about Adobe choosing a path that makes it very difficult for companies to migrate existing applications to ColdFusion 9, you need to be very careful what you are suggesting. If you are a consultant, this is great for you. You don't have to live with the applications you create, and maybe those companies will hire you again to re-architect those apps, but this is fantasy talk. GET REAL. Adobe would NEVER develop a backwards incompatible CF9. For one thing, it would cut down their upgrade sales drastically, not to mention how it would affect ISVs who sell ColdFusion apps, and open source applications and frameworks.
Back to the "divide". Several bloggers have mentioned this "divide" between developers during the CF9 BOF, almost a class distinction between those developers that want a radical change in the language over those that were just asking for new features. Since I was one of the developers asking for new features, I guess that puts me on the "wrong side of the tracks". Instead of it being the "big thinkers" vs. the "lesser minded developers", I think it was a divide between those that have a love/hate relationship with the language and those that love the language and have learned to embrace, or at least work with, its limitations.
I think those that were asking for a radical change really need to decide why they are using ColdFusion in the first place. If they REALLY need this change, perhaps what they need to do is change languages. Move to Groovy, Ruby or Java. I am NOT saying there's not a valid reason for AS3 in CF. I am saying that's not where I'd start making changes in the engine.
I wish I didn't have to tell people in my presentation to be very careful when creating large arrays of objects because ColdFusion is a performance pig in that situation and that they should consider doing an array of structures. I wish that a fully OO solution would give good performance... but in CF8, it doesn't.
I am a pragmatist. I try to create well performing, stable and easily maintainable applications, but I do that using the language that I am working with, developing well structured code, and that thing between my ears. I don't try to develop ColdFusion in a way that doesn't make sense from a performance standpoint.
OK - so object creation is a pig. Rather than throw out the language, shouldn't you tell Adobe, "Please fix object creation?" Why is it necessary to overhaul the language to fix performance?
On the same discussion, I agree that CFC creation can be a pain in the ass and that we need something better. Wouldn't it be better if you could use CFSCRIPT for everything? Do we REALLY need AS3 to overhaul CFC creation? Sure, it would be nice if you had a fully object oriented scripting language in ColdFusion. However, why is it so important that we need it?
Is it envy? Do you wish you could tell your "cooler" Ruby, Python or Java developer friends that your language is fully OO, too? I wonder.
I think the need for AS3 in ColdFusion is displaced. If you want to overhaul the engine, I think your best bet is to get Adobe to create an AS3 J2EE server. Don't kill compatibility. Think of all the companies that never upgraded after CF5 because of incompatibilities between 5 and MX. Some converted to another language and never upgraded.
Also, I have to comment on the tone I am seeing. I don't appreciate those that act like they are better than others because they don't share your "vision". I live in the real world, and my world tells me you do not turn ColdFusion into something that breaks RAD and compatibility. Learn to use ColdFusion wisely, and stop trying to turn it into something it is not.
Could ColdFusion have better ties into Flex? Yes, but that's not exactly what you spent most of your time asking for. I wholeheartedly support better ties into Flex, and I think we'll see that in CF9.
Adobe should make CFSCRIPT be full-featured and ECMA compliant (but also allow it not to be), fix object creation so it's not a dog, spend some time marketing CF to the Enterprise for more than just intranet development. Done right, ColdFusion is an EXCELLENT public facing web platform, but Adobe always seems to push the intranet features like PDF, reporting and .NET integration. I wish Adobe would focus on getting more hosting providers to support CF and get CF in the classroom so it's not so damn hard to find good CF developers.
And, Adobe build a good ColdFusion IDE for goodness sake! I really don't love any of my choices for a CF IDE today, and I'd be willing to PAY for a good one.
At the very least, if not build an IDE, I'd like to see Adobe help out with CFEclipse. Mark Drew needs help building out CFEclipse, and you'd think Adobe would have a vested interest in supporting a good IDE. It seems like Dreamweaver and ColdFusion are distancing themselves from each other. Dreamweaver is certainly wanting in many respects as a CF IDE, but I still prefer it on a strictly code editing basis (in other words, the code view). If CFEclipse had </ to close tags, and not be wonky on a few things, I would probably switch to it... but CFE is still not there for me. I will say, though, that I am starting to use it more than I have before.
I'd also like to see Adobe open source Homesite+. If they aren't going to offer it anymore, open source the damn thing so that others may support it. I realize that Homesite+ only works on Windows, but I could see someone taking the bulk of it and porting it to Eclipse, writing a Cocoa version of it, or porting it to Wine/Darwine so it could run on other systems. I've not seen that blogged anywhere, nor was it mentioned during the BOF, so I thought I'd mention it here.
So, there it is... I finally got out one of my LONG blog posts. I imagine this will get a few comments. If you don't agree with me, that's great. My opinion is just that and you are entitled not to agree, but I thought it was time someone talked from the "other side of the room".


