So I'm here in Rockville,MD doing my best to follow MAX 2006 from a distance, keeping an eye on blogs, Adobe.com, labs.adobe.com, etc...
One of the things that I'm excited about is the announcement that CF8, codenamed Scorpio, will have built in image manipulation tags. However, after looking at some of the examples on how it works, I wish that the syntax would follow a more object like approach.
For example, here you create a new image to be manipulated, say we're resizing it, using the default CF8 way:
<cfset myImage = imageNew("foo.jpg") />
<!--- resize image - imageResize(image,width,height) --->
<cfset imageResize(myImage,"50%","50%") />
Instead, wouldn't it be nice to be able to do:
<cfset myImage = imageNew("foo.jpg") />
<!--- resize image - imageResize(image,width,height) --->
<cfset myImage.resize("50%","50%") />
Changing the subject a bit:
Now, I know that for years we have done the same thing with Array, Struct data types. I feel the same about them as I do about the image manipulation feature. If we treat Arrays, Structs, and Images as "data types" in a more Object-Oriented manner, my opinion is that it will help CF users become more aware of Object Oriented concepts, than if we just give them a set of methods to do a particular set of functionality. "CF is not an Object-Oriented language!", I totally agree, however, if we are to market ColdFusion as an enterprise level application platform, we need to start following some sort of proven development methodologies that attract decision makers, Object-Oriented concepts have been proven in ColdFusion with the creation of CFCs, however the number of CFML developers in our community that are ready to take on such projects are lacking.


Phill Nacelli has been architecting and developing software solutions for over 10 years. He has lead the engineering and development of multiple enterprise web based applications for the Federal Government, Commercial Software, and non-profit association/education market. He enjoys playing with the latest in programming techniques, frameworks and development tools. Phill is very active in the Adobe ColdFusion community as a member of the Adobe Community Professional Program, serving as the Capital Area ColdFusion User Group Manager, Adobe ColdFusion Customer Advisory Board. He's also involved in speaking at technical conferences, writing technical articles, user group presentations, community forums/chat rooms support and via this blog. He is currently the Senior Software Architect - Solutions Lead at



<RANT>
I agree 100%. One of the biggest problems I personally have is architecting OO solutions in CF where it doesn't follow the "everything is an object" approach. Because of this you end up with a bunch of service methods (or "shudder" UDF libraries as singletons) for operations that we should be able to attach to properties.
I would love to create new USPhone MyPhoneNumber and to be able to MyPhoneNumber.set(), MyPhoneNumber.validate(), etc. I could then have a MyImage with an Image data type and do MyImage.Resize().
<END RANT>
That said, I'm not sure this is ever going to be supported because of the cost of object instantiation in CF and the extremely small number of people (what it is? You, me, fifty of our favorite blogging friends) who would really like to see this. We're left with either rewriting all the nice cf tags in pythong or Ruby or just living with ugly service/procedural syntax.
Whatcha gonna do? I love CF!!!
Just wanted to say, saw the posting on Simons blog. Congrats on the new position!
Thank you... It's an exciting time to be using ColdFusion specially surrounded by a passionate bunch like the folks at AboutWeb. As far as the syntax in image manipulation, it's one of those things that we all have the responsibility to help close the gap in ColdFusion Developers, there's an interesting article by Andrew Powell on CFDJ about this very issue: http://coldfusion.sys-con.com/read/290513.htm.
Cheers...
Yep. Seems like you have a great team down there! Good article (fyi - remove the period from the end of the link to make it work), but I'd argue that ColdFusion will bifurcate as the person that wants to get a page up and the person that wants to be a professional OO software developer are two different groups and the cost of moving from one to the other will be much higher than many people are willing to pay.
The question is whether that is a bad thing and I'd argue "no". I have one thing in common with a complete cf n00b - we both think cfquery and cfoutput and cffile are cool. I happen to love cfcs because they solve problems I have, and they may use cfinsert because for their use case it makes their life easier. As long as we both keep on getting what we want from the language, it is doing its job and we're all happy. For all the noise in the blogosphere, you don't need to be OO or even MVC to get the job done so if a simple page controller with cfquery at top of each page meets their needs, the beauty of cf is that it supports that simplicity. IF the complexity of the app grows, there is fusebox, and then eventually M2 or MG.