Reader Ken Auenson made some insightful comments on my previous post regarding "Scorpio" - the upcoming ColdFusion 8 release. Regarding my concern about keeping client side code up to date with the latest browser compatible version he said the following:
I starting writing a response but it turned out to be lengthy so I decided a follow up post is in order. I certainly don't disagree with Ken's take in the short run, and I got the same impression from Adam's presentation. Still, although this might seem like a free pass to the zoo, it is actually a double edged sword.
Let's say throw I update my calendar widget to fix X Y or Z and then throw in some customization for good measure. Two weeks later, Adobe follows up with it's own hot fix for the same problem. What happens then? Will my customizations be lost? Will my code throw errors because the fix I implemented is different than the fix they implemented? Should I forgo any hot fixes related to client side code?
This is, in fact, the same issue you often run into when you download and install open source products or commercial products that lend themselves to customization - how do I keep the versioned code in synch with my "customizations" and "work arounds". Open source is great - but it also means no more single source vendor control. That sounds like a good thing.... but it has it's disadvantages too. It kind of reminds me of a story my dad used to tell.
A man drove to work each day using the same route. At a particular section of road a huge Great Dane would lumber out and chase his car every day - barking furiously. The dog was voracious and loud and gave the man a jolt almost every day - even when he was prepared for him. The dog was fast too and often came quite close to the rear bumper of the car.
One day the man decided he was quite fed up with the galloping canine and decided to teach him a lesson. When the dog came out to chase him he waited till it was quite close to the rear of the car and then he slammed on his breaks. The dog skittered and slid into the car and planted his big mug squarely on the bumper with a yelp of pain and surprise.
The man got out of the car and walked back to the where the dog was panting and looking sheepish. "Well," he said, "now that you got it, what are you going to do with it?"
Can I say this to my fellow developers whom I love and appreciate? Open source software is not a panacea. Now that you are seeing it in your favorite platform you will have to figure out what to do with it. Everybody yammers about open source like it was the next penicillin. Meanwhile we are all making far more money off of non open source. We mostly use more proprietary products and commercial products than we do open source products. Now I know there is some guy in his basement out there that is going to comment and give me a litany of all the hoops he jumps through to keep his entire development effort from IDE to server open source. Don't bother. We all know that is the exception (and that that guy needs a date in the worst way).
It's true that including open source in this code base will solve some problems. But it is equally true that it will introduce other problems. I have great faith in Tim Buntel and Ben Forta and all the folks at Allaireobemedia to add tremendous value to the Coldfusion platform. I think their track record speaks for itself. Each version of CF has contained excellent features that have had an immediate impact on my own development. I will adopt a wait and see attitude regarding the client side code effort that is forthcoming.
It may well turn out that I'm completely off base - like that time I thought Michael Jackson was black. In which case I will be first in line to admit it and toast their success. Still, it won't surprise me if it turns out to not fulfill every promise it has made and instead just be another serviceable approach to dynamically generated client side code.