Thursday, January 31, 2008

Should we extend CF Objects with java APIs?

There have been a couple of recent posts regarding extending ColdFusion data types using the underlying java APIs.

ColdFusion array is actually an implementation of java list (java.util.List). So all the list methods are actually available for Array. CF provides most of the list functionality using Array functions but there are few things possible with java list which you can not do directly with CF functions.

For example, you can use java API to search an array to determine the position of a given search criteria.

<cfset myArray = listToArray('vanilla,chocolate,strawberry') />
<cfif
myArray.contains('strawberry')>
<cfset
strawberryIndex = myArray.indexof('strawberry') + 1 />
</cfif>
<cfoutput>
#myArray[strawberryIndex]#</cfoutput>

Note the adjustment that I've made to account for java arrays starting at 0. Russ Johnson, Rupesh Kumar and Adrian Moreno go into how to do this in more detail.

It's really quite cool that we can do this sort of thing, but should we? One of the great strengths of ColdFusion is its backwards compatibility. I have code, written for ColdFusion 4.5, that's been running untouched for 6 or 7 years. For those keeping count that's about 5 major releases ago. Adobe/Macromedia/Allaire has been great over the years about letting us know what's changed with various versions of ColdFusion. What happens if a future version of ColdFusion ends up breaking this functionality? We certainly can't expect Adobe to keep us informed when one of their changes breaks undocumented features of the product.

Perhaps it's because I'm in the middle of planning a ColdFusion 8 migration, but for my money maintainability nine times out of ten outweighs the short term gain of using these features. That's not to say that I'll never use this knowledge, but that I'll think very carefully about the possible consequences and benefits before doing so.

Labels: , ,

posted by Luis - 1 comments - links to this post

Thursday, January 17, 2008

Coping with Change

We interrupt our (semi) regular blog entry to bring you some thoughts on change. I mentioned that I was dealing with a reorganization a few months back. Before that I had the good fortune of being in a totally stable environment for 6 years, which if you've been at this professionally for any length of time, you know is practically unheard of in business. As a result some of our younger staff members are having a bit of trouble coping with the changes that a reorganization invariably brings.
Ch-ch-changes
Just gonna have to be a different man
Time may change me
But I can't trace time
- David Bowie
For me the change has meant watching new folks move in while most of my co-workers moved out, then moving down to be with most of my old co-workers, knowing that the changes are not complete and that I may find myself moving back or someplace completely different at any given time. For those of you who are fairly new to the business world, change is to be expected. Keep your head down, watch your back, work hard, don't take it personally, and you'll come through it fine. For those of us who've seen change before, don't forget to encourage and comfort your co-workers who have not been through it before. (at least the one's you want to keep.)

posted by Luis - 0 comments - links to this post

Monday, January 07, 2008

IDE Survey Relevance

As I'm sure you are already aware, there is a ColdFusion IDE survey out right now.

Tired of Dreamweaver/CFEclipse/Homesite/CFStudio/Notepad? Do you wish they did more or there was something better out there altogether? Do you want Adobe to provide it? Help us help you! We want to hear your thoughts about how we can best support you and your development in ColdFusion!

Of course I want better tools! Who doesn't? The fact of the matter is that there never will be the perfect IDE for all situations. We each pick the tool that best fits us, but let's face it, the right IDE for me may not be the right IDE for you. If I'm not careful, this could degrade into a full fledged rant.

The point I'm trying to make here is that I question how useful a 7 question (26 if you consider the parts of question 5 individually) really going to be to the ColdFusion team. It seems to me that it would make sense to start with a simple survey to determine if the ColdFusion community is interested in a new ColdFusion IDE from Adobe, and what the community thinks it should cost (not that people will necessarily pay what they say they think something should be worth, but that's besides the point). Once they decide to proceed, then a second, much more detailed survey could be conducted as part of a larger requirements analysis. From there they could then narrow down the features that they intend to implement, and proceed with a standard development cycle.

Of course, I did fill the survey out, but I do have to question it's relevance. Oops, guess I did end up with a full fledged rant.

Labels: ,

posted by Luis - 0 comments - links to this post
Template design by MLP Design
Licensed under CC-NC 3.0